Настройка среды разработки ESP8266 и демонстрация проекта

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

ESP8266 поддерживает множество сред разработки; в данной статье рассматривается настройка среды разработки Arduino IDE.

Ссылки на покупку используемой в статье платы разработки, других модулей и соединительных проводов указаны в конце.

В данной статье используется плата NodeMCU, оснащённая этим чипом.

Скачайте и установите драйверы для вашего USB-to-TTL-чипа в зависимости от используемой платы разработки. Моя плата использует чип CH340.

Установка Arduino IDE

Arduino IDE — это интегрированная среда разработки, официально предоставляемая Arduino, поддерживающая язык C, в основном предназначенная для программирования плат серии Arduino.

С помощью простой настройки можно добавить поддержку плат ESP8266 в существующую среду разработки. Для пользователей, знакомых с библиотеками Arduino и процессом разработки, использование не будет отличаться.

Ссылка для скачивания Arduino IDE:
Официальный сайт Arduino: https://www.arduino.cc/en/Main/Software
Tencent Weiyun: http://go.zeruns.com/E
Baidu Netdisk: http://go.zeruns.com/F Код доступа: h6cy

Добавление поддержки ESP8266

Откройте Arduino IDE, нажмите Файл в левом верхнем углу, перейдите в Параметры (Preferences), найдите поле Дополнительные URL-адреса менеджера плат (Additional Board Manager URLs) и введите следующую ссылку: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Затем перейдите в ИнструментыПлатыМенеджер плат, чтобы открыть интерфейс менеджера плат:

Найдите esp8266 и установите его:

После установки перезапустите Arduino IDE. В разделе ИнструментыПлаты появится опция для плат ESP8266:

Выберите порт: сначала проверьте порт в Диспетчере устройств, затем выберите соответствующий порт в Arduino IDE.

Примеры проектов

Отправка “Hello World” через последовательный порт

Создайте новый проект в Arduino IDE и введите следующий код:

void setup() {    // Функция инициализации, выполняется один раз при запуске
  Serial.begin(115200);    // Установка скорости передачи последовательного порта
}
/*
https://blog.zeruns.com
*/
void loop() {     // Циклическая функция, код внутри неё выполняется постоянно
  Serial.println("Hello World"); // Отправка "Hello World" через последовательный порт
}

После ввода нажмите кнопку Загрузить для компиляции и загрузки на плату, затем откройте Монитор последовательного порта, выбрав скорость 115200 — вы увидите вывод “Hello World”.

Мигание светодиода

На модуле ESP8266 встроен светодиод, подключённый к выводу D4.

Внимание: Существует множество плат ESP8266, и их GPIO-выводы могут отличаться.

void setup() {          // Функция инициализации, выполняется один раз при запуске
  pinMode(D4,OUTPUT);  // Настройка вывода D4 в режим выхода
}

void loop() {             // Циклическая функция, код внутри неё выполняется постоянно
  digitalWrite(D4,HIGH);  // Установка высокого уровня на выводе D4 (HIGH можно заменить на 1)
  delay(1000);            // Задержка 1000 мс
  digitalWrite(D4,LOW);   // Установка низкого уровня на выводе D4 (LOW можно заменить на 0)
  delay(1000);            // https://blog.zeruns.com
}

Чтение данных с DHT11 и отображение на экране

В этом примере используется датчик DHT11 для измерения температуры и влажности, а результаты выводятся на OLED-экран 0,96 дюйма.

Исходный код:

#include <Arduino.h>
#include <NTPClient.h>
#include <U8g2lib.h>
#include <DHT.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

DHT dht(D3,DHT11, 15);
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ D1, /* data=*/ D2, /* reset=*/ U8X8_PIN_NONE);

void setup(){
  u8g2.begin();
  u8g2.enableUTF8Print();
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_unifont_t_chinese2);
  u8g2.setFontDirection(0);
  u8g2.setCursor(0, 15);
  u8g2.print("Влажность:"); 
  u8g2.setCursor(80, 15);
  u8g2.print(h);	// https://blog.zeruns.com
  u8g2.setCursor(120, 15);
  u8g2.print("%");
  u8g2.setCursor(0, 40);
  u8g2.print("Температура:"); 
  u8g2.setCursor(0, 55); 
  u8g2.print(t);
  u8g2.setCursor(40, 55);
  u8g2.print("°C");
  u8g2.sendBuffer(); 
  delay(1000);
}

Поскольку в исходном коде используются библиотеки DHT и U8g2, которые не входят в состав Arduino IDE по умолчанию, необходимо сначала перейти в ПроектПодключить библиотекуУправление библиотеками, найти и установить следующие три зависимости: Adafruit Unified Sensor, DHT sensor library и U8g2:

Подключение схемы

NodeMcu DHT11
3V3 VCC
GND GND
D3 DATA
NodeMcu 0.96-дюймовый OLED
3V3 VCC
GND GND
D1 SCL
D2 SDA

Подключение к Wi-Fi

Главная особенность ESP8266 — его сверхнизкая стоимость реализации Wi-Fi.

Приведём простой пример кода для подключения к Wi-Fi:

#include <ESP8266WiFi.h>

const char* ssid = "blog.zeruns.com";		// имя Wi-Fi
const char* passwd = "blog.zeruns.com";	// пароль Wi-Fi

void setup() {
  Serial.begin(115200);		// Установка скорости последовательного порта
  WiFi.begin(ssid,passwd);	// Подключение к Wi-Fi
  while (WiFi.status() != WL_CONNECTED)	// Проверка состояния подключения Wi-Fi
  {
    delay(500);
    Serial.print(".");		// Вывод точки через последовательный порт
  }
  Serial.println("");		// Переход на новую строку
  Serial.println("Wi-Fi подключён");
  Serial.println(WiFi.localIP());	// Вывод полученного IP-адреса
  Serial.println("https://blog.zeruns.com");
}

void loop() {

}

Ссылки на покупку

Плата NodeMcu (ESP8266): https://s.click.taobao.com/mWfgiTu

Модуль датчика DHT11: https://s.click.taobao.com/gAduxTu

Провода Dupont: https://s.click.taobao.com/yxUfiTu

OLED-экран 0,96 дюйма: https://s.click.taobao.com/6IFfiTu

Рекомендуемые статьи

2 лайка