Установка платы ESP8266 в Arduino IDE
Существует несколько платформ разработки, доступных для программирования ESP8266. Вы можете выбрать:
Arduino IDE — предназначена для тех, кто знаком с Arduino
Espruino — JavaScript SDK и прошивка, близко эмулирующая Node.js
Mongoose OS — операционная система для IoT-устройств, рекомендованная Espressif Systems и Google Cloud IoT
MicroPython — реализация Python 3 для микроконтроллеров
SDK, предоставленный Espressif — официальный SDK для использования всех возможностей ESP8266
По сравнению с другими платформами, Arduino IDE является наиболее удобной для начинающих. Хотя она может быть не идеальной платформой для работы с ESP8266, это программа, с которой большинство людей уже знакомы, что значительно упрощает начало работы.
Прежде чем вы сможете использовать Arduino IDE для программирования ESP8266, вам необходимо сначала установить плату ESP8266 (также известную как ESP8266 Arduino Core) через Arduino Board Manager. Это руководство проведёт вас через процесс загрузки, установки и тестирования ESP8266 Arduino Core.
Примечание
Что такое Core?
Ядра (cores) необходимы для обеспечения совместимости новых микроконтроллеров с вашей Arduino IDE, а также с существующими скетчами и библиотеками. Arduino разрабатывает ядра для микроконтроллеров (Atmel AVR MCU), используемых на их платах, но любой может разработать ядро для своих плат, если он следует правилам и требованиям, установленным Arduino.
Некоторые платы разработки требуют установки дополнительного ядра; поэтому Arduino разработала Менеджер плат (Boards Manager) как инструмент для добавления ядер в Arduino IDE.
Для получения дополнительной информации о том, как использовать Менеджер плат Arduino IDE, ознакомьтесь с их руководством.
Шаг 1: Установка или обновление Arduino IDE
Первый шаг в установке ESP8266 Arduino Core — это наличие последней версии Arduino IDE, установленной на вашем компьютере. Если вы ещё этого не сделали, мы рекомендуем сделать это прямо сейчас.
Шаг 2: Установка драйвера USB-to-Serial моста
Существует множество плат разработки на базе ESP8266. В зависимости от конструкции вам может потребоваться установить дополнительные драйверы для вашего USB-to-Serial преобразователя, прежде чем вы сможете загружать код на ESP8266.
Например, ESP8266 NodeMCU использует CP2102 для преобразования USB-сигналов в UART-сигналы, тогда как WeMos D1 Mini использует CH340G. ESP-01, с другой стороны, не имеет встроенного USB-to-Serial преобразователя и требует отдельного модуля.
Обязательно внимательно осмотрите свою плату, чтобы определить, какой USB-to-Serial преобразователь на ней установлен. Скорее всего, на плате будет установлен либо CP2102, либо CH340.
Если вы ранее не устанавливали драйверы для этих USB-to-Serial преобразователей на своём компьютере, вам следует сделать это прямо сейчас.
Шаг 3: Установка ESP8266 Arduino Core
Запустите Arduino IDE и перейдите в File > Preferences.
Заполните поле «Additional Board Manager URLs» следующим содержимым.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Затем нажмите кнопку «OK».
Теперь перейдите в Tools > Board > Boards Manager…
Отфильтруйте поиск, введя «esp8266». Найдите ESP8266 от ESP8266 Community. Нажмите на эту запись, а затем выберите Install.
Шаг 4: Выбор платы и порта
После установки ESP8266 Arduino Core перезапустите Arduino IDE и перейдите в Tools > Board, чтобы убедиться, что платы ESP8266 доступны.
Теперь выберите свою плату в меню Tools > Board (в нашем случае это NodeMCU 1.0 (ESP-12E Module)). Если вы не уверены, какая у вас плата, выберите Generic ESP8266 Module.
Наконец, подключите ESP8266 NodeMCU к компьютеру и выберите порт.
Вот и всё! Теперь вы можете начать писать код для вашего ESP8266 в Arduino IDE.
Вы должны убедиться, что у вас всегда установлена самая последняя версия ESP8266 Arduino Core.
Просто перейдите в Tools > Board > Boards Manager, найдите ESP8266 и проверьте версию, которая у вас установлена. Если доступна более новая версия, вам следует установить её.
Шаг 5: Тестирование установки
После выполнения предыдущих шагов вы готовы протестировать свою первую программу с ESP8266! Запустите Arduino IDE. Если вы отключили плату, подключите её снова.
ESP8266 Arduino Core включает несколько примеров, которые демонстрируют всё — от сканирования ближайших сетей до создания веб-сервера. Чтобы получить доступ к примерам скетчей, перейдите в File > Examples > ESP8266.
Вы увидите набор примеров скетчей. Вы можете выбрать любой из них, чтобы загрузить скетч в вашу IDE и начать экспериментировать.
Давайте загрузим самый базовый скетч — Blink! Перейдите в File > Examples > ESP8266 и откройте скетч Blink.
Этот скетч использует встроенный светодиод, который есть на большинстве плат разработки ESP8266. Этот светодиод обычно подключён к цифровому пину D0, и его номер может отличаться от платы к плате.
void setup() {
pinMode(D0, OUTPUT);
}
void loop() {
digitalWrite(D0, HIGH);
delay(500);
digitalWrite(D0, LOW);
delay(500);
}
Если всё работает, встроенный светодиод на вашем ESP8266 должен теперь мигать! Для выполнения скетча вам может потребоваться нажать кнопку RST на вашем ESP8266.
Поздравляем! Вы только что запрограммировали свой первый ESP8266!
Пример ESP8266: сканирование WiFi
Давайте попробуем запустить ещё один пример скетча для ESP8266, который демонстрирует, как использовать библиотеку ESP8266WiFi для сканирования ближайших WiFi-сетей и вывода результатов.
Вы можете найти этот пример в File > Examples > ESP8266WiFi > WiFiScan.
Загрузите скетч WiFiScan из примеров в вашу Arduino IDE.
#include <ESP8266WiFi.h>
void setup() {
Serial.begin(115200);
Serial.println(F("\nESP8266 WiFi scan example"));
// Set WiFi to station mode
WiFi.mode(WIFI_STA);
// Disconnect from an AP if it was previously connected
WiFi.disconnect();
delay(100);
}
void loop() {
String ssid;
int32_t rssi;
uint8_t encryptionType;
uint8_t* bssid;
int32_t channel;
bool hidden;
int scanResult;
Serial.println(F("Starting WiFi scan..."));
scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true);
if (scanResult == 0) {
Serial.println(F("No networks found"));
} else if (scanResult > 0) {
Serial.printf(PSTR("%d networks found:\n"), scanResult);
// Print unsorted scan results
for (int8_t i = 0; i < scanResult; i++) {
WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden);
Serial.printf(PSTR(" %02d: [CH %02d] [%02X:%02X:%02X:%02X:%02X:%02X] %ddBm %c %c %s\n"),
i,
channel,
bssid[0], bssid[1], bssid[2],
bssid[3], bssid[4], bssid[5],
rssi,
(encryptionType == ENC_TYPE_NONE) ? ' ' : '*',
hidden ? 'H' : 'V',
ssid.c_str());
delay(0);
}
} else {
Serial.printf(PSTR("WiFi scan error %d"), scanResult);
}
// Wait a bit before scanning again
delay(5000);
}
После загрузки скетча откройте монитор последовательного порта на скорости 115200 бод и нажмите кнопку RST на ESP8266. Вы должны увидеть SSID, RSSI, WiFi-канал и шифрование для каждой обнаруженной сети.