В этом руководстве мы построим простую цепь, которая будет мигать светодиодом при помощи ESP8266-модуля, запрограммированного с помощью IDE Arduino.
Почему мы всегда вначале учимся мигать светодиодом? Хороший вопрос! Если вы умеете мигать светодиодом, то можно с уверенностью сказать, что вы также умеете включать/выключать любое электронное устройство, будь то светодиод, лампа или даже тостер.
В начале создаем переменную типа «int» под названием «pin» и присваиваем ей значение «2» (оно означает контакт GPIO2);
В блоке setup() при помощи функции pinMode(pin, OUTPUT) переключаем контакт GPIO2 в режим вывода данных (OUTPUT). Код в setup() проработает только один раз;
Далее в блоке loop() мы поочередно два раза используем функции digitalWrite() и delay(). Код в loop() будет повторяться вновь и вновь, пока вы не выключите ESP8266;
Затем включаем светодиод на 1 секунду (1000 миллисекунд) при помощи функций digitalWrite(pin, HIGH) и delay(1000);
Программа будет повторять шаги 4 и 5, благодаря чему светодиод будет мигать периодичностью в 1 секунду .
Загружаем код на ESP8266
В двух следующих разделах мы объясним, как загружать код на модуль ESP-12E, оснащенный встроенным программатором (см. раздел «Вариант А» ниже) и как загружать код на модули ESP-01 или ESP-07, которым необходим внешний FTDI-программатор (см. раздел «Вариант Б» ниже).
Вариант А – Загрузка кода на ESP-12E
Загрузка кода на ESP-12E NodeMCU Kit выполняется очень просто, т.к. эта плата оснащена встроенным программатором. Вам не придется делать никаких лишних соединений – достаточно лишь подключить плату к ПК.
Кликните в IDE Arduino на «Инструменты» > «Плата» (Tools > Board) и выберите плату NodeMCU 1.0 (ESP-12E Module). Все ее настройки по умолчанию должны выглядеть вот так:
Важно
Ваш COM-порт будет называться, скорее всего, не «COM11» (как на скриншоте выше), а как-то по-другому. И это нормально – так он не будет мешать никаким другим процессам. Но все остальные настройки должны быть как на скриншоте выше.
Проверив настройки, нажмите на кнопку «Загрузка» (Upload) в IDE Arduino
и подождите несколько секунд, пока не увидите сообщение «Загрузка завершена» (Done uploading) в нижнем левом углу программы.
У большинства FTDI-программаторов есть перемычка для преобразования 5 вольт в 3.3 вольта. Убедитесь, что у вашего программатора она стоит на 3.3 вольтах.
Далее подключите ESP8266 к FTDI-программатору согласно схеме ниже, чтобы настроить последовательную коммуникацию между ними.
Их контакты должны быть подключены друг к другу следующим образом (слева – ESP8266, справа – FTDI-программатор):
RX –> TX
TX –> RX
CH_PD –> 3.3V
GPIO0 –> GND
VCC –> 3.3V
GND –> GND
Примечание
На схеме выше контакт GPIO0 подключен к GND, т.к. наша задача – загрузить код. Когда мы загружаем на ESP8266 новый скетч, это требует от ESP8266 записать новую прошивку. При нормальном использовании (если нам не нужно записать на ESP8266 новую прошивку) контакт GPIO0 должен быть подключен к VCC.
«Раскирпичивание» FTDI-программатора на Windows-компьютере
Если у вас возникли проблемы с установкой FTDI-драйверов на Windows 7/8/8.1/10, то ваш FTDI-программатор, скорее всего, «окирпичился». О том, как его «раскирпичить», смотрите здесь.
В видео по ссылке выше говорится, что вам нужно загрузить драйверы с сайта FTDI. Соответствующую ссылку можно найти в описании к видео (или просто кликнуть тут).
Кликните на «Инструменты» > «Плата» (Tools > Board) и выберите плату «Generic ESP8266 Module». По умолчанию все настройки для нее должны выглядеть примерно вот так:
Важно
В вашем случае, скорее всего, будет какой-то другой COM-порт, а не тот, что на скриншоте выше («COM8»). И это нормально, потому что мы не будем мешать другим процессам. Но все прочие настройки должны выглядеть как на скриншоте выше.
Проверив настройки, нажмите на кнопку «Загрузка» (Upload) в IDE Arduino
и подождите несколько секунд, пока не увидите сообщение «Загрузка завершена» (Done uploading) в нижнем левом углу программы.
Как должна выглядеть цепь
Загрузив код в модуль, отключите его от компьютера. Затем подсоедините компоненты друг к другу как на схеме ниже.
Запитайте ESP8266 от 3.3-вольтового источника питания. Все готово, поздравляем! Светодиод должен начать мигать раз в секунду.
Код
/********* Руи Сантос Более подробно о проекте на: http://randomnerdtutorials.com *********/intpin=2;voidsetup(){// Переключаем контакт GPIO2 в режим вывода данных (OUTPUT):pinMode(pin,OUTPUT);}// Код в блоке loop() будет повторяться вновь и вновь:voidloop(){digitalWrite(pin,HIGH);// включаем светодиод // («HIGH» - это уровень напряжения)delay(1000);// ждем секундуdigitalWrite(pin,LOW);// выключаем светодиод,// переключая напряжение на «LOW»delay(1000);// ждем секунду}