Создание удаленного градусника на ESP8266.
Для этого нам понадобиться из железа:
- ESP8266
- DS18B20
- Стабилизатор питания AMS1117-3.3V
- Кондицатор для цепи питания
- Провода
- TTL com (Можно использовать ардуино уно)
Из программного обеспечения:
- Arduino IDE для ESP8266 https://github.com/esp8266/Arduino/releases
Далее используя её:
- Подключить USB-TTL к USB
- Подключить ESP8266 к USB-TTL как обычно. GPIO0 на землю, передернули питание, приготовились к прошивке
- Запускаем Arduino IDE
- В меню Инструменты – Плата – Generic ESP8266 board (в самом низу)
- В меню Инструменты выбираем порт, к которому подключен наш USB-TTL
- В меню Инструменты – Программатор – esptool (тоже в самом низу)
- В вставляем скейтч:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <OneWire.h>
#include <DallasTemperature.h>const char* ssid = «WiFiSSID»;
const char* password = «12345678»;#define ONE_WIRE_BUS 0
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);ESP8266WebServer server(80);
const int led = 13;
void handle_root() {
sensors.requestTemperatures();
String str=»»;
str+=(String)sensors.getTempCByIndex(0);
str+=(String)»C»;
server.send(200, «text/plain»,str);
}void setup(void)
{
Serial.begin(115200);
pinMode(led, OUTPUT);
digitalWrite(led, 0);// Connect to WiFi network
WiFi.begin(ssid, password);
Serial.println(«»);// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(«.»);
}
Serial.println(«»);
Serial.print(«Connected to «);
Serial.println(ssid);
Serial.print(«IP address: «);
Serial.println(WiFi.localIP());server.on(«/», handle_root);
server.on(«/inline», [](){
sensors.requestTemperatures();
String str=»»;
str+=(String)sensors.getTempCByIndex(0);
str+=(String)»C»;
server.send(200, «text/plain»,str);
});
Serial.print(«HTTP server started»);
server.begin();
Serial.println(«\t\t[OK]»);
Serial.print(«Dallas Temperature IC Control Library …»);
sensors.begin();
Serial.println(«\t\t[OK]»);
}void loop(void)
{server.handleClient();
}
- В строках 12 и 13 заполняете ваши SSID сети и пароль
- Жмем кнопку компиляции и загрузки скетча
- По окончании процесса отключаем питание от ESP8266 не отключая USB-TTL, отключаем GPIO0 от земли
- В меню Инструменты – Монитор последовательного порта
Выбираем скорость 115200 - Подаем питание на модуль и смотрим что происходит в терминале
- Когда модуль подключится к сети появятся надписи в мониторе “WiFi connected” и “Server started”
- Ниже будет IP адрес вашего модуля ESP8266, например 192.168.1.248
- Открываете любой браузер, в строке адреса вбиваете “http://192.168.1.248/″
- Profit!
Апрель 3, 2015 Пятница at 11:25 пп