ESP8266 — это Wi-Fi-модуль, подходящий для проектов в области Интернета вещей и домашней автоматизации. Он позволяет управлять входами и выходами так же, как и платы серии Arduino, но с помощью Wi-Fi. Поэтому он хорошо подходит для приложений в области домашней автоматизации/Интернета вещей.
По сравнению с другими Wi-Fi-решениями, представленными на рынке, ESP8266 является отличным выбором для большинства проектов в области «Интернета вещей». В этой статье мы расскажем об основных концепциях платы ESP8266, ее распиновке и примерах программирования.
Введение в ESP8266
ESP8266 — это мощный и универсальный микроконтроллер с поддержкой Wi-Fi, который завоевал популярность в мире электроники и IoT (Интернет вещей). Разработанный компанией Espressif Systems, ESP8266 предлагает экономичное решение для подключения устройств к Интернету и обеспечения их взаимодействия друг с другом. Он оснащен встроенным модулем Wi-Fi, мощным процессором и контактами GPIO для подключения внешних компонентов. ESP8266 можно программировать с помощью различных языков программирования, что делает его доступным как для начинающих, так и для опытных разработчиков. Низкое энергопотребление и компактный размер делают его идеальным для широкого спектра применений, включая домашнюю автоматизацию, беспроводные сенсорные сети и интеллектуальные устройства. Например, ESP8266 можно использовать для создания интеллектуального термостата, который позволяет пользователям удаленно контролировать температуру в своих домах.
ESP8266 Распиновка

На схеме выводов некоторые выводы имеют другие назначения, помимо GPIO. Например, вывод D1 является не только GPIO5, но и интерфейсом SCL, который можно подключить к соответствующему выводу SCL ЖК-экрана.
В следующей таблице показано соответствие между метками на идентификаторе платы и номерами GPIO, а также указано, какие контакты лучше всего использовать в проектах, а какие требуют осторожности. Контакты, выделенные зеленым цветом, готовы к использованию. Контакты, выделенные желтым цветом, можно использовать, но они требуют внимания, так как могут вести себя непредсказуемо, в основном при запуске. Контакты, выделенные красным цветом, не рекомендуется использовать в качестве входов или выходов.
| Label | GPIO | Input | Output | Notes |
|---|---|---|---|---|
| D0 | GPIO16 | No Interrupt | No PWM or I2C support | HIGH at boot used to wake up from deep sleep |
| D1 | GPIO5 | OK | OK | Commonly used as SCL (I2C) |
| D2 | GPIO4 | OK | OK | Commonly used as SDA (I2C) |
| D3 | GPIO0 | Pull-up | OK | Connected to FLASH button, boot fails if pulled LOW |
| D4 | GPIO2 | Pull-up | OK | HIGH at boot connected to on-board LED, boot fails if pulled LOW |
| D5 | GPIO14 | OK | OK | SPI (SCLK) |
| D6 | GPIO12 | OK | OK | SPI (MISO) |
| D7 | GPIO13 | OK | OK | SPI (MOSI) |
| D8 | GPIO15 | Pull-down | OK | SPI (CS) Boot fails if pulled HIGH |
| RX | GPIO3 | OK | RX | HIGH at boot |
| TX | GPIO1 | TX | OK | HIGH at boot debug output at boot, boot fails if pulled LOW |
| A0 | ADC0 | Analog | X | Analog pin |
Как запрограммировать ESP8266 с помощью Arduino IDE?
Существует много способов программирования ESP8266:
- Используйте Arduino IDE для разработки, следуйте стилю разработки Arduino, простота в использовании;
- Используйте официальный SDK ESP8266 для разработки;
- Используйте MicroPython для разработки, следуя стилю программирования Python (для этого метода необходимо сначала записать специальную прошивку на плату);
Здесь мы выбираем первый вариант, потому что программирование Arduino простое и удобное.
Шаг 1: Установите Arduino IDE
Загрузите IDE с официального сайта Arduino: https://www.arduino.cc/en/software. Версия, которую я использую сейчас, — Arduino IDE 1.8.3. (Обратите внимание, что последняя версия Arduino IDE 2.1.1 не может установить пакет ресурсов ESP8266 онлайн.)

Шаг 2: Установите пакет ESP8266
Поскольку Arduino IDE по умолчанию используется для платы разработки Arduino, по умолчанию доступны только соответствующие ресурсы для платы разработки Arduino. Чтобы использовать ESP8266 в Arduino IDE, нам необходимо вручную установить пакет разработки ESP8266. Существует два метода установки: онлайн-установка и автономная установка пакета. Здесь мы выберем первый.
Сначала найдите «Файл -> Настройки» в меню Arduino IDE:

Затем введите следующую ссылку в поле «Дополнительные URL-адреса диспетчера досок»:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Затем щелкните, чтобы открыть: Инструменты -> Плата -> Диспетчер плат.

В поле введите и найдите «esp8266», вы увидите пакет esp8266, нажмите «Установить», чтобы начать онлайн-установку.


После завершения установки все ресурсы, относящиеся к плате esp8266, можно найти в меню «Инструменты->Плата».

Шаг 3: Программирование ESP8266
Здесь мы напишем простую программу для тестирования сетевого соединения для платы ESP8266. Код программы выглядит следующим образом:
void setup() {
Serial.begin(9600);
Serial.println("esp8266 test");
initWiFi();
}
void loop() {
Serial.println("hello esp8266");
delay(1000);
}
#include
constchar ssid[] = "xxxxx"; //WiFi Name
constchar pass[] = "xxxxx"; //WiFi Password
WiFiClient client;
//Initialize WIFI
void initWiFi()
{
Serial.print("Connecting WiFi...");
WiFi.mode(WIFI_STA); //Configure WIFI as Station mode
WiFi.begin(ssid, pass); //Incoming ssid and password of WIFI hotspot
while (WiFi.status() != WL_CONNECTED) //Waiting for successful connection
{
delay(500);
Serial. print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //print your own IP address
}
Примечания:
Функция setup используется для инициализации последовательного порта. Например, «Serial.begin(9600);» означает, что начальная скорость передачи данных последовательного порта составляет 9600.
Функция loop аналогична while(1){} в основной функции при разработке однокристального микрокомпьютера, где мы можем писать коды программной логики.
Чтобы использовать функцию WIFI, необходимо включить заголовочный файл «ESP8266WiFi.h».
Процесс инициализации WIFI включает 3 шага:
- Настройте WIFI в режим Station, то есть наш ESP8266 используется как устройство WIFI;
- Передача ssid и пароля точки доступа WIFI, чтобы ESP8266 мог подключиться к точке доступа;
- Считать статус подключения WIFI и дождаться успешного подключения.
Выберите модель и номер последовательного порта вашей платы разработчика ESP8266:

Теперь мы можем скомпилировать и записать код на плату ESP8266WiFi.





