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

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

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


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

В этом руководстве мы построим простую цепь, которая будет мигать светодиодом при помощи 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 выполняется очень просто, т.к. эта плата оснащена встроенным программатором. Вам не придется делать никаких лишних соединений – достаточно лишь подключить плату к ПК.

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

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

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

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

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

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

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

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

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

Важно: У большинства 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-драйверы, то официальные драйверы можно найти, как правило, на этом сайте. Или можно попросить их у продавца, у которого вы купили FTDI-программатор.

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

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

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

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

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

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

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

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

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

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

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

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

Код

/*********
  Руи Сантос
  Более подробно о проекте на: http://randomnerdtutorials.com  
*********/

int pin = 2;

void setup() {
  // Переключаем контакт GPIO2 в режим вывода данных (OUTPUT):
  pinMode(pin, OUTPUT);
}

// Код в блоке loop() будет повторяться вновь и вновь:
void loop() {
  digitalWrite(pin, HIGH);   // включаем светодиод 
                             // («HIGH» - это уровень напряжения)
  delay(1000);               // ждем секунду
  digitalWrite(pin, LOW);    // выключаем светодиод,
                             // переключая напряжение на «LOW»
  delay(1000);               // ждем секунду
}

См.также

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