ESP8266:Примеры/Мигание светодиодом

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Перевел 364226 статей для сайта.</br>Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Pixel Art Mini Meow Animated.gif Черновик


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

В этом руководстве мы построим простую цепь, которая будет мигать светодиодом при помощи ESP8266-модуля, запрограммированного с помощью IDE Arduino.

Почему мы всегда вначале учимся мигать светодиодом? Хороший вопрос! Если вы умеете мигать светодиодом, то можно с уверенностью сказать, что вы также умеете включать/выключать любое электронное устройство, будь то светодиод, лампа или даже тостер.

Необходимые компоненты

Как работает этот скетч

  1. В начале создаем переменную типа «int» под названием «pin» и присваиваем ей значение «2» (оно означает контакт GPIO2);
  2. В блоке setup() при помощи функции pinMode(pin, OUTPUT) переключаем контакт GPIO2 в режим вывода данных (OUTPUT). Код в setup() проработает только один раз;
  3. Далее в блоке loop() мы поочередно два раза используем функции digitalWrite() и delay(). Код в loop() будет повторяться вновь и вновь, пока вы не выключите ESP8266;
  4. Затем включаем светодиод на 1 секунду (1000 миллисекунд) при помощи функций digitalWrite(pin, HIGH) и delay(1000);
  5. Теперь выключаем светодиод при помощи digitalWrite(pin, LOW) и ждем 1 секунду при помощи delay(1000);
  6. Программа будет повторять шаги 4 и 5, благодаря чему светодиод будет мигать периодичностью в 1 секунду .

Загружаем код на ESP8266

В двух следующих разделах мы объясним, как загружать код на модуль ESP-12E, оснащенный встроенным программатором (см. раздел «Вариант А» ниже) и как загружать код на модули ESP-01 или ESP-07, которым необходим внешний FTDI-программатор (см. раздел «Вариант Б» ниже).

Вариант А – Загрузка кода на ESP-12E

Загрузка кода на ESP-12E NodeMCU Kit выполняется очень просто, т.к. эта плата оснащена встроенным программатором. Вам не придется делать никаких лишних соединений – достаточно лишь подключить плату к ПК.

Fritzing nodemcu v1.png

Кликните в IDE Arduino на «Инструменты» > «Плата» (Tools > Board) и выберите плату NodeMCU 1.0 (ESP-12E Module). Все ее настройки по умолчанию должны выглядеть вот так:

Arduino ide esp8266 node mcu tools board settings 1.PNG

Важно: Ваш COM-порт будет называться, скорее всего, не «COM11» (как на скриншоте выше), а как-то по-другому. И это нормально – так он не будет мешать никаким другим процессам. Но все остальные настройки должны быть как на скриншоте выше.

Проверив настройки, нажмите на кнопку «Загрузка» (Upload) в IDE Arduino

Arduino-ide upload button 1.png

и подождите несколько секунд, пока не увидите сообщение «Загрузка завершена» (Done uploading) в нижнем левом углу программы.

Arduino-ide done uploading 1.png

Как должна выглядеть цепь

Подключите к контакту D4 (GPIO2) ESP8266-модуля светодиод и резистор на 220 Ом.

ESP-12E circuit led blinking 1.png

Перезапустите ESP8266. Все готово, поздравляем! Светодиод должен начать мигать раз в секунду!

Вариант Б – Загрузка кода на ESP-01

Для загрузки кода на ESP-01 между ESP8266 и FTDI-программатором должна быть установлена последовательная коммуникация.

Usb-uart-converter-ttl-ftdi-ft232rl-32.jpg

Важно: У большинства FTDI-программаторов есть перемычка для преобразования 5 вольт в 3.3 вольта. Убедитесь, что у вашего программатора она стоит на 3.3 вольтах.

Далее подключите ESP8266 к FTDI-программатору согласно схеме ниже, чтобы настроить последовательную коммуникацию между ними.

Esp8266-reflash-firmware.jpg

Их контакты должны быть подключены друг к другу следующим образом (слева – 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-драйверы, то официальные драйверы можно найти, как правило, на этом сайте. Или можно попросить их у продавца, у которого вы купили FTDI-программатор.

«Раскирпичивание» FTDI-программатора на Windows-компьютере

Если у вас возникли проблемы с установкой FTDI-драйверов на Windows 7/8/8.1/10, то ваш FTDI-программатор, скорее всего, «окирпичился». О том, как его «раскирпичить», смотрите здесь.

В видео по ссылке выше говорится, что вам нужно загрузить драйверы с сайта FTDI. Соответствующую ссылку можно найти в описании к видео (или просто кликнуть тут).

Подготовка IDE Arduino

Подключив к ПК связку из ESP8266 и FTDI-программатора, запустите IDE Arduino.

Кликните на «Инструменты» > «Плата» (Tools > Board) и выберите плату «Generic ESP8266 Module». По умолчанию все настройки для нее должны выглядеть примерно вот так:

Arduino ide esp01 tools board settings 1.PNG

Важно: В вашем случае, скорее всего, будет какой-то другой COM-порт, а не тот, что на скриншоте выше («COM8»). И это нормально, потому что мы не будем мешать другим процессам. Но все прочие настройки должны выглядеть как на скриншоте выше.

Проверив настройки, нажмите на кнопку «Загрузка» (Upload) в IDE Arduino

Arduino-ide upload button 1.png

и подождите несколько секунд, пока не увидите сообщение «Загрузка завершена» (Done uploading) в нижнем левом углу программы.

Arduino-ide done uploading 1.png

Как должна выглядеть цепь

Загрузив код в модуль, отключите его от компьютера. Затем подсоедините компоненты друг к другу как на схеме ниже.

Esp01 blink led 1.png

Запитайте ESP8266 от 3.3-вольтового источника питания. Все готово, поздравляем! Светодиод должен начать мигать раз в секунду.

Код

 1 /*********
 2   Руи Сантос
 3   Более подробно о проекте на: http://randomnerdtutorials.com  
 4 *********/
 5 
 6 int pin = 2;
 7 
 8 void setup() {
 9   // Переключаем контакт GPIO2 в режим вывода данных (OUTPUT):
10   pinMode(pin, OUTPUT);
11 }
12 
13 // Код в блоке loop() будет повторяться вновь и вновь:
14 void loop() {
15   digitalWrite(pin, HIGH);   // включаем светодиод 
16                              // («HIGH» - это уровень напряжения)
17   delay(1000);               // ждем секунду
18   digitalWrite(pin, LOW);    // выключаем светодиод,
19                              // переключая напряжение на «LOW»
20   delay(1000);               // ждем секунду
21 }

См.также

Внешние ссылки