Навчитися підключатися до WiFi мережі з мікроконтролера Arduino і передавати дані по WiFi.
1.Додати підтримку мікроконтролера NodeMCU на базі WiFi-модуля ESP8266
2. Розробити скетч для підключення до WiFi мережі і передачі даних по бездротовому каналу зв'язку.
1. Комп'ютер з підключенням до мережі Internet
2. Мікроконтролер NodeMCU V3 на базі EPS8266-12E
Плата NodeMCU побудована на базі модуля WiFi ESP8266.
Разпіновка плати:
Для роботи з цією платою була додана підтримка середовища розробки Arduino IDE. Практично всі бібліотеки для звичайної Arduino так само працюють і для цієї плати, однак її терморегулятори відрізняється від терморегулятори плат Arduino. Так, на платі є один аналоговий вхід (A0), на якому працює 10-бітний АЦП. Цифровим пінам 0-15 Arduino відповідають виходи, позначені GPIO1-GPIO16. Наприклад, якщо в Arduino IDE використовується пін 12, йому буде відповідати контакт, позначений на платі як D6 (GPIO12). Піни GPIO1 - GPIO5, GPIO10, GPIO12-GPIO15 підтримують ШІМ.
Характеристики плати:
підтримка WiFi протоколів 802.11 b / g / n
Wi-Fi Direct (P2P), soft-AP
вбудований стек TCP / IP
SDIO 2.0, SPI, UART
вбудований PLL, регулятори, і система управління живленням
Номінальна напруга: 3,3 В
Вхідна напруга: 3,7-20 В
Максимальний споживаний струм: 220 мА
D9, D10 - UART
D1, D2 - I²C (D1 - SCL (SCK), D2 - SDA)
D5-D8 - SPI
Для додавання підтримки NodeMCU в середу Arduino IDE потрібно виконати наступні кроки:
1. Відкриваємо налаштування (Файл -> Настройки)
2. Знаходимо додаткові посилання для менеджера плат і натискаємо праворуч кнопку редагування (виділена на скріншоті)
3. Додаємо URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
4. Зберігаємо і заходимо в менеджер плат (Інструменти -> Плата: -> Менеджер плат)
5. Вводимо в пошук "esp8266" і встановлюємо пакет esp8266
6. Створюємо новий скетч і зберігаємо його як Esp8266Test.
7. Вибираємо плату "NodeMCU 1.0 (ESP-12E Module)" (Інструменти -> Плата :). Нижче в меню "Інструменти" вводимо настройки для CPU Frequency, Flash Size і Upload Speed як показано на скріншоті (швидше за все, будуть стояти саме такі, якщо плата відрізняється від зображеної вище, настройки можуть відрізнятися).
8. Обираємо потрібний порт.
Скетч для роботи з WiFi використовуємо бібліотеки, аналогічні стандартної бібліотеці WiFi для звичайних Arduino. При роботі зі звичайною Arduino і будь-яким WiFi Шілд будуть підключатися аналогічні заголовки, тільки без префікса "ESP8266".
Підключаємо заголовки
Вказати параметри WiFi мережі
WIFI_ESSID і WIFI_KEY замінюємо на ім'я і пароль використовуваної WiFi мережі.
У функції setup () запускаємо Serial і підключаємося до WiFi
У функції loop виконуємо GET запит на WEB-сторінку віддаленого сервера. Для цього підключаємося до сервера
WiFiClient client;
if(!client.connect("wl.unn.ru",80))
{
Serial.println("connection failed");
return;
}
Відправляємо з генерований вручну GET запит
client.print("GET /laboratory/?page=1 HTTP/1.1\r\nConnection: close\r\n\r\n");
Очікуємо відповідь від сервера:
unsigned long timeout = millis();
while(client.available()==0)
{
if(millis()-timeout>5000)
{
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
Виводимо відповідь і спимо 10 секунд
while(client.available())
{
String line=client.readStringUntil('\r');
Serial.print(line);
}
delay(10000);
Завантажуємо скетч на плату і відкриваємо менеджер порту. Там раз в десять секунд повинен з'являтися код веб-сторінки, що прийшов у відповідь від сервера wl.unn.ru.