Wemos D1 ESP8266 настройка и первое включение

Сегодня я хочу познакомить вас с основной платой нашего будущего устройства: Wemos D1 R2 – это популярный модуль ESP8266 ESP-12 разведенный в формфакторе Arduino UNO.

Технические характеристики WeMos D1 R2:

  • 11 цифровых входов/выходов. Все выводы поддерживают interrupt/pwm/I2C/one-wire (за исключением D0)
  • 1 аналоговый вход (максимальное входное напряжение 3,2 В)
  • Разъём Micro USB
  • Разъем питания 9-24 В
  • Микроконтроллер ESP-8266EX
  • Частота микроконтроллера 80MHz/160MHz
  • Flash память 4 Мб
  • Поддержка Arduino
  • Поддержка NodeMcu
  • Программирование через Serial или OTA (беспроводная загрузка программного кода по Wi-Fi)
  • Наличие WI-FI модуля

Pin

Function

ESP-8266 Pin

TX

TXD

TXD

RX

RXD

RXD

A0

Analog input, max 3.3V input

A0

D0

IO

GPIO16

D1

IO, SCL

GPIO5

D2

IO, SDA

GPIO4

D3

IO, 10k Pull-up

GPIO0

D4

IO, 10k Pull-up, BUILTIN_LED

GPIO2

D5

IO, SCK

GPIO14

D6

IO, MISO

GPIO12

D7

IO, MOSI

GPIO13

D8

IO, 10k Pull-down, SS

GPIO15

G

Ground

GND

5V

5V

-

3V3

3.3V

3.3V

RST

Reset

RST

Первое, что нам потребуется для работы с этим модулем - это установить драйвер и Arduino IDE. Скачать драйвер CH340 можно со страницы загрузок Wemos https://www.wemos.cc/downloads, а Arduino IDE с официального сайта https://www.arduino.cc/en/Main/Software. С установкой проблем возникнуть не должно.

Настройка Arduino IDE под ESP8266

Для того чтобы Arduino IDE могла «прошивать» Wemos D1 необходимо зайти в «Файл - Настройки» и в строку «Дополнительные ссылки для Менеджера плат» ввести следующий URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json и нажать кнопку «ОК».

В менеджере плат находим пакет «esp8266 by ESP8266 Community», устанавливаем его и закрываем окно.


Теперь мы можем выбрать наш контроллер Wemos D1 R2 & mini в меню «Инструменты».

Давайте загрузим примеры из официального репозитория и попробуем что-нибудь запустить. Скачайте архив https://github.com/wemos/D1_mini_Examples/archive/master.zip, распакуйте его, и откройте файл Blink.ino из каталога \examples\01.Basics\Blink. Всё, что делает этот скетч – это моргает встроенным диодом с интервалом раз в секунду. Подключите вашу плату Wemos D1 к usb, если вы делаете это впервые, windows установит драйвер и добавит в систему новый com порт. Убедитесь, что в Arduino IDE указан com порт вашей платы и нажмите кнопку «Загрузить» после чего произойдёт компиляция и загрузка скетча в модуль.

Если всё сделано правильно, то вы увидите, как светодиод на плате начал моргать.

Поздравляю! Ваша плата работает и вы можете ею управлять! ))

Управляем диодом по Wifi

Немного усложним код нашего примера. У нас всё-таки модуль с WiFi, так давайте его задействуем и будем управлять светодиодом с телефона!

Штатный диод довольно блёклый поэтому подключим более яркий красный. Соедините длинную ножку светодиода (анод) с контактом D4 а короткую (катод) с контактом GND вашей платы. Обратите внимание, что штатный светодиод подключен к этому же пину D4, поэтому на нём уже присутствует сопротивление и можно подключить диод напрямую без резистора.

Открываем Arduino IDE, копируем в него следующий код и запускаем.

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

int val = 0;                         // По умолчанию диод не горит
const char *ssid = "Ardulogic";      // Название сети WiFi
const char *password = "1234567890"; // Пароль для подключения
ESP8266WebServer server(80);         // Создаем веб сервер на 80 порту

// Метод формирует стартовую страницу http://192.168.4.1
// Выводит в браузер текущее состояние диода и две кнопки
void handleRoot() {
  String s = (val) ? "<h1>LED On</h1>" : "<h1>LED Off</h1>";
  s += "<h2><a href=\"/led/on\">LED On</a> ";
  s += "<a href=\"/led/off\">LED Off</a></h2>";
  server.send(200, "text/html", s);
}

// Метод включения диода
void ledOn() {
  val = 1; // Включаем диод
  digitalWrite(BUILTIN_LED, val);
  // Перенаправление обратно на стартовую страницу
  server.sendHeader("Location", String("/"), true);
  server.send ( 302, "text/plain", "");
}

// Метод выключения диода
void ledOff() {
  val = 0; // Выключаем диод
  digitalWrite(BUILTIN_LED, val);
  // Перенаправление обратно на стартовую страницу
  server.sendHeader("Location", String("/"), true);
  server.send ( 302, "text/plain", "");
}

// Функция настройки. Выполняется один раз при запуске
void setup() {
  delay(1000);                 // Ждём секунду
  WiFi.softAP(ssid, password); // Создаём точку WiFi
  // Указываем по каким роутам какие методы запускать
  server.on("/", handleRoot);
  server.on("/led/on", ledOn);
  server.on("/led/off", ledOff);
  server.begin();
  // Диод по умолчанию выключен
  pinMode(BUILTIN_LED, OUTPUT);
  digitalWrite(BUILTIN_LED, val);
}

// Основной цикл программы
void loop() {
  // Ждём подключения
  server.handleClient();
}

А теперь возьмите телефон и подключитесь к сети Ardulogic.


Откройте браузер, перейдите по адресу: http://192.168.4.1 и попробуйте понажимать ссылки, диод будет загораться и гаснуть.

До скорой встречи!