Мини-кейс 1: Удалённый термометр
Пример работы. Устройство отправляет данные в сервис dweet.io.
Что делаем?

Аналоговый термометр /* Подключаем необходимые библиотеки: ESP8266.h для работы с Wi-Fi модулем и SoftwareSerial.h для использования программного UART. Библиотека math.h потребуется для расчета логарифма. Кавычки вида <> означают, что мы используем библиотеку, встроенную в Arduino IDE. Кавычки вида " " — что мы используем внешнюю библиотеку. */ #include "ESP8266.h" #include <SoftwareSerial.h> #include <math.h> #define WIFI_SSID "dimdimdim" // Указываем SSID и пароль Wi-Fi сети, с которой будем выходить в интернет #define WIFI_PASSWORD "" // Спрашиваем у препода #define TEMP_PIN A4 // ПИН, с которого считываем показания Troyka-модуля термистора (датчик температуры). SoftwareSerial mySerial(4, 5); // TX и RX WI-FI модуля ESP8266 wifi(mySerial); String dweet_name = "my_iot"; // Задаём "my_iot" для dweet.io. void setup(void) { Serial.begin(9600); // Запускаем аппаратный UART на скорости 9600 бод. Он потребуется для вывода информации в Serial Monitor. while(!wifi.joinAP(WIFI_SSID, WIFI_PASSWORD)) { Serial.println("Wi-Fi connection error"); } Serial.println("Wi-Fi connect."); Serial.println("https://dweet.io/follow/" + dweet_name); } void loop(void) { float v_temp = 1023.0 / analogRead(TEMP_PIN) - 1.0; float temp = 1.0 / (-log(v_temp) / 3977.0 + 1.0 / 295.0) - 273.0; if (wifi.createTCP("www.dweet.io", 80)) { //Открываем TCP-соединение к серверу dweet.io. Если соединение установится, выполним запрос к dweet.io. Если нет — в Serial Monitor появится сообщение «create TCP error». // «Собираем» HTTP-запрос и внутрь вставляем значение датчика температуры. String data = "GET /dweet/for/" + dweet_name + "?"; data += "temp=" + String(temp) + " HTTP/1.1\r\n"; data += "Host: dweet.io\r\n\r\n"; // Отправляем запрос на сервер. Закрываем TCP соединение. wifi.send(data.c_str(), data.length()); wifi.releaseTCP(); } else { Serial.println("create TCP error"); } delay(1000); // Задержка цикла }
Last updated