Модуль WiFi ESP8266: руководство по настройке и проектам

Содержание

Programming ESP8266 WiFi Module with Arduino IDE

ESP8266 — это Wi-Fi-модуль, подходящий для проектов в области Интернета вещей и домашней автоматизации. Он позволяет управлять входами и выходами так же, как и платы серии Arduino, но с помощью Wi-Fi. Поэтому он хорошо подходит для приложений в области домашней автоматизации/Интернета вещей.

По сравнению с другими Wi-Fi-решениями, представленными на рынке, ESP8266 является отличным выбором для большинства проектов в области «Интернета вещей». В этой статье мы расскажем об основных концепциях платы ESP8266, ее распиновке и примерах программирования.

Введение в ESP8266

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

ESP8266 Распиновка

ESP8266 Pinout
ESP8266 Pinout

На схеме выводов некоторые выводы имеют другие назначения, помимо GPIO. Например, вывод D1 является не только GPIO5, но и интерфейсом SCL, который можно подключить к соответствующему выводу SCL ЖК-экрана.

В следующей таблице показано соответствие между метками на идентификаторе платы и номерами GPIO, а также указано, какие контакты лучше всего использовать в проектах, а какие требуют осторожности. Контакты, выделенные зеленым цветом, готовы к использованию. Контакты, выделенные желтым цветом, можно использовать, но они требуют внимания, так как могут вести себя непредсказуемо, в основном при запуске. Контакты, выделенные красным цветом, не рекомендуется использовать в качестве входов или выходов.

LabelGPIOInputOutputNotes
D0GPIO16No InterruptNo PWM or I2C supportHIGH at boot used to wake up from deep sleep
D1GPIO5OKOKCommonly used as SCL (I2C)
D2GPIO4OKOKCommonly used as SDA (I2C)
D3GPIO0Pull-upOKConnected to FLASH button, boot fails if pulled LOW
D4GPIO2Pull-upOKHIGH at boot connected to on-board LED, boot fails if pulled LOW
D5GPIO14OKOKSPI (SCLK)
D6GPIO12OKOKSPI (MISO)
D7GPIO13OKOKSPI (MOSI)
D8GPIO15Pull-downOKSPI (CS) Boot fails if pulled HIGH
RXGPIO3OKRXHIGH at boot
TXGPIO1TXOKHIGH at boot debug output at boot, boot fails if pulled LOW
A0ADC0AnalogXAnalog pin

Как запрограммировать ESP8266 с помощью Arduino IDE?

Существует много способов программирования ESP8266:

  1. Используйте Arduino IDE для разработки, следуйте стилю разработки Arduino, простота в использовании;
  2. Используйте официальный SDK ESP8266 для разработки;
  3. Используйте 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 онлайн.)

Install Arduino IDE 1.8.3
Install Arduino IDE 1.8.3

Шаг 2: Установите пакет ESP8266

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

Сначала найдите «Файл -> Настройки» в меню Arduino IDE: 

Open Preferences in Arduino IDE
Open Preferences in Arduino IDE

Затем введите следующую ссылку в поле «Дополнительные URL-адреса диспетчера досок»:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Setting Additional boards manager URLs in Preferences
Setting Additional boards manager URLs in Preferences

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

Open Boards Manager in Arduino
Open Boards Manager in Arduino

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

Search and Install the ESP8266 Board
Search and Install the ESP8266 Board
Installing ESP8266 packages
Installing ESP8266 packages

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

ESP8266 Boards Resource (3.1.2 Version)
ESP8266 Boards Resource (3.1.2 Version)

Шаг 3: Программирование ESP8266

Здесь мы напишем простую программу для тестирования сетевого соединения для платы ESP8266. Код программы выглядит следующим образом:

				
					void setup() {
  Serial.begin(9600);
  Serial.println("esp8266 test");
  initWiFi();

}

void loop() {
  Serial.println("hello esp8266");
  delay(1000);

}

#include <ESP8266WiFi.h>

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 шага:

  1. Настройте WIFI в режим Station, то есть наш ESP8266 используется как устройство WIFI;
  2. Передача ssid и пароля точки доступа WIFI, чтобы ESP8266 мог подключиться к точке доступа;
  3. Считать статус подключения WIFI и дождаться успешного подключения.

Выберите модель и номер последовательного порта вашей платы разработчика ESP8266:

Choose Board NodeMCU 1.0 (ESP-12E Module)
Choose Board NodeMCU 1.0 (ESP-12E Module)

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

Compile and Upload the code to ESP8266 WiFi Module
Compile and Upload the code to ESP8266 WiFi Module

Подписаться

Присоединяйтесь к нашему списку подписчиков, чтобы получать ежемесячные обновления блога, новости о технологиях, практические примеры. Мы никогда не будем рассылать спам, и вы можете отказаться от подписки в любое время.

Об авторе

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Поделиться

Рекомендуемый пост

Tags

Нужна помощь?

Прокрутить вверх

Instant Quote