ESP8266 и Arduino - это на сегодняшний день, возможно, две самые популярные темы в среде радиолюбителей и энтузиастов. Но несмотря на большое количество документации по настройке и программированию WiFi-модуля ESP8266 в сети практически не было ничего о взаимодействии ESP8266 со средой Arduino IDE. И вот наконец-то в Arduino IDE добавлена поддержка данного модуля, что позволит программировать его прямо из популярной среды разработки.

Новая сборка Arduino IDE доступна для Windows, Linux и OS X.
Скачать Arduino IDE с поддержкой ESP8266 можно отсюда.
Библиотека ESP8266WiFi, поставляемая с этой IDE, имеет тот же интерфейс, что и библиотека WiFi Shield. Это позволяет с легкостью портировать код, ранее написанный для стандартного WiFi-шилда.
Базовые функции для работы с портами ввода/вывода остались те же: pinMode, digitalRead, digitalWrite. Номера указываемых в функциях выводов соответствуют номерам выводов GPIO модуля ESP8266. Например для считывания с GPIO2 нужно ввести digitalRead(2). GPIO0-GPIO15 могут иметь статус INPUT, OUTPUT, INPUT_PULLUP и OUTPUT_OPEN_DRAIN. GPIO16 может быть INPUT или OUTPUT. Функция analogRead(0) позволяет считывать значение с канала АЦП, подключенного к выводу TOUT.
Функции обмена данными через последовательный порт (Serial) также не изменились. Но пока доступен лишь режим обмена 8n1.
Как было указано выше, работать с ESP8266 можно как с WiFi shield. Но есть некоторые нюансы:
- WiFi.mode(m): установка режима в WIFI_AP, WIFI_STA или WIFI_AP_STA.
- Для создания открытой точки доступа вызываем WiFi.softAP(ssid).
- Для создания точки доступа с шифрованием WPA2-PSK вызываем WiFi.softAP(ssid, passphrase).
- WiFi.macAddress(mac) для STA, WiFi.softAPmacAddress(mac) для AP.
- WiFi.localIP() для STA, WiFi.softAPIP() для AP.
- WiFi.RSSI() не работает.
- WiFi.printDiag(Serial) выведет диагностическую информацию.
WiFiServer, WiFiClient и WiFiUDP работают практически так же, как и в библиотеке WiFi shield. Примеры работы с библиотекой ESP8266WiFi можно найти в \hardware\esp8266com\esp8266\libraries\.
Таким образом, программировать ESP8266 стало также просто, как и Arduino. Несмотря на некоторую недоработку (пока еще не реализована работа ШИМ и интерфейсов SPI и I2C в режиме slave) новая Arduino IDE станет мощным инструментом для разработки проектов на основе недорогих WiFi модулей ESP8266.
