Lolin new nodemcu v3 инструкция

На чтение 16 мин Просмотров 2.1к. Опубликовано

Экран последовательного порта ведомого устройства (Arduino Uno):

Вывод информации из последовательного порта Arduino Uno

Экран последовательного порта главного устройства (NodeMCU V3):

Вывод информации из последовательного порта NodeMCU

Содержание

  1. Самые популярные материалы в блоге
  2. За все время
  3. Установка ядра ESP8266 на ОС Windows
  4. Последовательная связь
  5. Настройка облачной части для работы с устройством
  6. Периферия и ввод/вывод
  7. Подготовка программного обеспечения
  8. Подключение и настройка девайса
  9. Прошивки для esp8266 NodeMcu
  10. Сбор прошивки в облачном сервисе
  11. Обновление прошивки Node Mcu
  12. Требования к питанию
  13. Приложение для смартфона
  14. On-board Switches & LED Indicator
  15. Комплектующие
  16. 13 People Made This Project!
  17. Платформы разработки для ESP8266
  18. Создание Azure-функции для генерации SAS
  19. Продолжение доступно только участникам
  20. Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
  21. Вариант 2. Открой один материал
  22. Подключение NodeMCU к компьютеру
  23. Распиновка NodeMcu v3
  24. Кнопки и светодиодный индикатор на плате
  25. Программируемый логический контроллер для автоматизации процессов
  26. Пример подключения светодиода к NodeMCU
  27. Собираем проект
  28. Краткое описание языка Lua

Самые популярные материалы в блоге

За все время

  • BMS — обзор контроллеров защиты аккумуляторных батарей
  • Установка ESP32 в Arduino IDE (Руководство для Windows)
  • Адресная светодиодная лента Arduino и WS2812B
  • Веб-сервер потокового видео ESP32-CAM (работает с Home Assistant)
  • Светодиодный индикатор TM1637 и Arduino — схема подключения

Установка ядра ESP8266 на ОС Windows

Перейдем к установке ядра Arduino ESP8266.

Во-первых, на вашем компьютере должна быть установлена ​​последняя версия Arduino IDE (Arduino 1.6.4 или новее). Если у вас его нет, мы рекомендуем вам обновить его сейчас.

Последняя версия Arduino IDE

Во-первых, нам нужно обновить диспетчер вкладок с помощью настраиваемого URL-адреса. Откройте Arduino IDE и выберите Файл → Настройки. Затем скопируйте приведенный ниже URL-адрес в текстовое поле Additional Links for Board Manager, расположенное в нижней части окна:

Рисунок 7 Установка платы ESP8266 в Arduino IDE с использованием json url
Рисунок 7 — Установка платы ESP8266 в IDE Arduino с использованием URL-адреса json

Хороший. Затем перейдите в PCB Manager, выбрав Tools → PCB → PCB Manager. Помимо стандартных плат Arduino, должно быть несколько новых записей. Отфильтруйте результаты поиска, набрав esp8266. Щелкните эту запись и выберите Установить.

Рис.8 Установка ядра ESP8266 в Arduino IDE Board Manager
Рисунок 8 — Установка ядра ESP8266 в диспетчере плат Arduino IDE

Определения и инструменты для платы ESP8266 включают полностью новый набор gcc, g ++ и других довольно больших скомпилированных двоичных файлов, поэтому загрузка и установка может занять несколько минут (размер сжатого файла ~ 110 МБ). Когда установка будет завершена, рядом с элементом появится УСТАНОВЛЕНО. Теперь вы можете закрыть диспетчер плат.

Последовательная связь

На плате используется контроллер USB-UART Silicon Labs CP2102, который преобразует сигнал USB в сигнал последовательного порта и позволяет компьютеру программировать и взаимодействовать с микросхемой ESP8266.

Последовательная связь

  • Конвертер USB-UART CP2102
  • Скорость связи 4,5 Мбит / с
  • Поддержка управления потоком

Рисунок 5 USB - преобразователь TTL CP2102
Рисунок 5 — Конвертер USB-TTL CP2102

Если на вашем компьютере установлена ​​старая версия драйвера CP2102, мы рекомендуем немедленно выполнить обновление.

Драйвер CP2102

Настройка облачной части для работы с устройством

Оставим на время наше устройство и создадим его двойника в облаке. В последнее время можно создать двойное устройство прямо на портале Azure, чтобы воспользоваться преимуществами новых функций. В группе настроек Центра Интернета вещей под названием Проводник выберите устройства Интернета вещей и нажмите + Добавить.

Чтобы подключить устройство к IoT Hub, нам нужно создать SAS (Shared Access Signature). Двойной ключ устройства используется для генерации SAS, который можно получить с помощью вспомогательной утилиты (Device Explorer, iothub-explorer, IoT Extension for Azure CLI 2.0). Но самый простой способ получить ключ по-прежнему существует на портале Azure, перейдя в Центр Интернета вещей → Устройства Интернета вещей.

IoT Explorer
IoT Explorer

SAS можно создать на устройстве или воспользоваться онлайн-службой. По сути, SDK может автоматически генерировать SAS (просто укажите в коде двойной ключ устройства).

Создание токена с помощью службы
Создание токена с помощью службы

Способ генерации токена SAS веб-службой в течение ограниченного времени немного более безопасен. Хотя есть определенный нюанс. Если вы отправляете службе только имя устройства, злоумышленник может заставить имена получить токен с другого устройства. Поэтому, чтобы немного обезопасить процесс, я предлагаю следующее решение: сохранить хеш Azure-ключа двойника устройства на устройстве. А в служебном коде перед генерацией SAS мы проверим, совпадает ли хеш с хешем ключа устройства. Следовательно, вы можете получить SAS, только если знаете имя устройства и хэш его ключа.

Первый метод, при котором SAS генерируется на устройстве, проще и удобнее, но немного менее безопасен, поскольку, получив доступ к устройству, злоумышленник сможет получить ключ и сгенерировать устройства SAS самостоятельно. Во втором случае взломщик сможет получать только токены SAS, срок действия которых ограничен.

Оказывается, оба метода обычно не идеальны, если у хакера есть доступ к устройству. Защита вашего соединения с помощью VPN здесь тоже не поможет. В этом случае канал передачи будет защищен, но тот, кто получит устройство, сможет получить доступ к каналу. К сожалению, на NodeMCU, Arduino и т.п нет возможности хранить ключи / пароли в каком-либо безопасном хранилище.

Периферия и ввод/вывод

NodeMCU ESP8266 имеет в общей сложности 17 контактов GPIO, подключенных к разъемам по обе стороны от макетной платы. Эти результаты можно использовать для выполнения различных периферийных действий, в том числе:

  • вход АЦП — 10-битный канал АЦП;
  • интерфейс UART — интерфейс UART используется для загрузки кода через последовательную связь;
  • выходы PWM — выходы PWM могут использоваться для уменьшения яркости светодиодов или управления двигателями;
  • интерфейсы SPI, I2C: интерфейсы используются SPI и I2C для подключения всех типов датчиков и периферийных устройств;
  • интерфейс I2S — интерфейс I2S используется для передачи цифрового звука.

Вывод мультиплексного ввода / вывода

  • 1-канальный aDC
  • 2 интерфейса UART
  • 4 выхода ШИМ
  • Интерфейсы SPI, I2C и I2S

Рисунок 3 Вывод мультиплексированного GPIO ESP8266 NodeMCU
Рисунок 3 — Мультиплексированные контакты GPIO платы NodeMCU ESP8266

ESP8266 использует функцию мультиплексирования контактов (несколько периферийных устройств мультиплексируются на одном контакте GPIO). Это означает, что вывод GPIO может действовать как PWM / UART / SPI.

Подготовка программного обеспечения

NodeMCU в этом проекте из Китая, поэтому используется USB-чип CH341. Необходимо установить драйвер для CH341. Драйвер можно скачать ниже, разархивировать и установить на свой компьютер.

Затем для использования с Arduino IDE вам необходимо добавить библиотеку плат. Откройте IDE Arduino:

  • Инструменты -> Доска -> Менеджер (Инструменты -> Доска -> Менеджер доски).
  • Найдите «esp8266 от сообщества ESP8266» и установите.
  • Файл -> Настройки).
  • Заполните дополнительное поле URL-адреса Board Manager:
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Инструменты -> Плата -> NodeMCU 1.0 (Инструменты -> Плата -> NodeMCU 1.0).

В прикрепленном файле Arduino измените параметры соответствующим образом:

  • SSID к вашему Wi-Fi
  • пароль для вашего Wi-Fi

Вы также можете изменить контрольный вывод в NodeMCU.

Технические характеристики оборудования NodeMCU ESP8266 - Multiplex GPIO Pin
IoT Explorer

SAS можно создать на устройстве или воспользоваться онлайн-службой. По сути, SDK может автоматически генерировать SAS (просто укажите в коде двойной ключ устройства).

Создание токена с помощью службы
Создание токена с помощью службы

Способ генерации токена SAS веб-службой в течение ограниченного времени немного более безопасен. Хотя есть определенный нюанс. Если вы отправляете службе только имя устройства, злоумышленник может заставить имена получить токен с другого устройства. Поэтому, чтобы немного обезопасить процесс, я предлагаю следующее решение: сохранить хеш Azure-ключа двойника устройства на устройстве. А в служебном коде перед генерацией SAS мы проверим, совпадает ли хеш с хешем ключа устройства. Следовательно, вы можете получить SAS, только если знаете имя устройства и хэш его ключа.

Первый метод, при котором SAS генерируется на устройстве, проще и удобнее, но немного менее безопасен, поскольку, получив доступ к устройству, злоумышленник сможет получить ключ и сгенерировать устройства SAS самостоятельно. Во втором случае взломщик сможет получать только токены SAS, срок действия которых ограничен.

Оказывается, оба метода обычно не идеальны, если у хакера есть доступ к устройству. Защита вашего соединения с помощью VPN здесь тоже не поможет. В этом случае канал передачи будет защищен, но тот, кто получит устройство, сможет получить доступ к каналу. К сожалению, на NodeMCU, Arduino и т.п нет возможности хранить ключи / пароли в каком-либо безопасном хранилище.

Периферия и ввод/вывод

NodeMCU ESP8266 имеет в общей сложности 17 контактов GPIO, подключенных к разъемам по обе стороны от макетной платы. Эти результаты можно использовать для выполнения различных периферийных действий, в том числе:

  • вход АЦП — 10-битный канал АЦП;
  • интерфейс UART — интерфейс UART используется для загрузки кода через последовательную связь;
  • выходы PWM — выходы PWM могут использоваться для уменьшения яркости светодиодов или управления двигателями;
  • интерфейсы SPI, I2C: интерфейсы используются SPI и I2C для подключения всех типов датчиков и периферийных устройств;
  • интерфейс I2S — интерфейс I2S используется для передачи цифрового звука.

Вывод мультиплексного ввода / вывода

  • 1-канальный aDC
  • 2 интерфейса UART
  • 4 выхода ШИМ
  • Интерфейсы SPI, I2C и I2S

Рисунок 3 Вывод мультиплексированного GPIO ESP8266 NodeMCU
Рисунок 3 — Мультиплексированные контакты GPIO платы NodeMCU ESP8266

ESP8266 использует функцию мультиплексирования контактов (несколько периферийных устройств мультиплексируются на одном контакте GPIO). Это означает, что вывод GPIO может действовать как PWM / UART / SPI.

Подготовка программного обеспечения

NodeMCU в этом проекте из Китая, поэтому используется USB-чип CH341. Необходимо установить драйвер для CH341. Драйвер можно скачать ниже, разархивировать и установить на свой компьютер.

Затем для использования с Arduino IDE вам необходимо добавить библиотеку плат. Откройте IDE Arduino:

  • Инструменты -> Доска -> Менеджер (Инструменты -> Доска -> Менеджер доски).
  • Найдите «esp8266 от сообщества ESP8266» и установите.
  • Файл -> Настройки).
  • Заполните дополнительное поле URL-адреса Board Manager:
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Инструменты -> Плата -> NodeMCU 1.0 (Инструменты -> Плата -> NodeMCU 1.0).

В прикрепленном файле Arduino измените параметры соответствующим образом:

  • SSID к вашему Wi-Fi
  • пароль для вашего Wi-Fi

Вы также можете изменить контрольный вывод в NodeMCU.

Технические характеристики оборудования NodeMCU ESP8266 - Multiplex GPIO Pin

Подключение и настройка девайса

Чтобы устройство было распознано в Windows, драйвер должен быть загружен по следующей ссылке: CP210x USB to UART Bridge VCP Drivers.

Стандартная скорость последовательного порта NodeMCU составляет 115 200 бит / с. Вы можете установить другую скорость, но при первом сбросе устройства она вернется к 115 200. Важно, чтобы драйвер был установлен на точно такую ​​же скорость.

Собственность водителя
Собственность водителя

Прошивки для esp8266 NodeMcu

Платформа основана на стандартной прошивке MCU Node, в которую интегрирован интерпретатор языка Lua. Используя команды Lua, вы можете делать следующее:

  • Подключение к точке доступа Wi-Fi;
  • Работает как точка доступа Wi-Fi;
  • Войдите в режим глубокого сна, чтобы снизить энергопотребление;
  • Включение или выключение светодиода на выходе GPIO16;
  • Выполнение различных операций с файлами во флеш-памяти;
  • Найдите открытую сеть Wi-Fi, подключитесь к ней;
  • Вывод MAC-адреса;
  • Управление пользовательскими таймерами.

Чтобы запрограммировать NodeMCU, вы можете использовать Arduino IDE или ESPlorer SDK. Этот комплекс имеет ряд отличий:

  • Его можно запускать на многих разных платформах;
  • Поддержка нескольких открытых файлов;
  • Позволяет выделить код языка Lua;
  • Возможность грамотно отправлять файлы;
  • Возможность одновременной поддержки нескольких типов прошивок.

Для обеспечения правильной и стабильной работы необходимо обновить прошивку до последней версии. Есть несколько способов обновления: облачная служба, образ Docker и сборка на Linux. У каждого из этих методов есть свои плюсы и минусы. Первый способ самый простой и понятный.

Сбор прошивки в облачном сервисе

Облачный сервис имеет простой и понятный интерфейс. Работа начинается с ввода электронной почты. Далее вам будет предложено выбрать тип прошивки: стабильная или протестированная. Первый используется для обучения и создания большого количества объектов, поэтому рекомендуется выбирать его. Следующим шагом будет подключение необходимых модулей. По умолчанию уже записано несколько основных пунктов, остальные следует включать только при необходимости. Затем выбираются дополнительные параметры. Среди них — поддержка FatFS для чтения SD-карты или включения режима отладки.

После начала сборки по почте придет письмо, сигнализирующее о начале процесса. Через некоторое время придет и вторая буква — вам будет предложено выбрать версию float (дробные числа) или integer (целые числа).

После перехода по полученной ссылке вам нужно будет скачать bin-файл и поместить его в раздел Ресурсы — Двоичный. Там будет находиться файл nodemcu_integer_0.9.5_20150318.bin, который необходимо удалить. В результате содержимое папки будет выглядеть так.

Esp8266 NodeMcu
Собственность водителя

Прошивки для esp8266 NodeMcu

Платформа основана на стандартной прошивке MCU Node, в которую интегрирован интерпретатор языка Lua. Используя команды Lua, вы можете делать следующее:

  • Подключение к точке доступа Wi-Fi;
  • Работает как точка доступа Wi-Fi;
  • Войдите в режим глубокого сна, чтобы снизить энергопотребление;
  • Включение или выключение светодиода на выходе GPIO16;
  • Выполнение различных операций с файлами во флеш-памяти;
  • Найдите открытую сеть Wi-Fi, подключитесь к ней;
  • Вывод MAC-адреса;
  • Управление пользовательскими таймерами.

Чтобы запрограммировать NodeMCU, вы можете использовать Arduino IDE или ESPlorer SDK. Этот комплекс имеет ряд отличий:

  • Его можно запускать на многих разных платформах;
  • Поддержка нескольких открытых файлов;
  • Позволяет выделить код языка Lua;
  • Возможность грамотно отправлять файлы;
  • Возможность одновременной поддержки нескольких типов прошивок.

Для обеспечения правильной и стабильной работы необходимо обновить прошивку до последней версии. Есть несколько способов обновления: облачная служба, образ Docker и сборка на Linux. У каждого из этих методов есть свои плюсы и минусы. Первый способ самый простой и понятный.

Сбор прошивки в облачном сервисе

Облачный сервис имеет простой и понятный интерфейс. Работа начинается с ввода электронной почты. Далее вам будет предложено выбрать тип прошивки: стабильная или протестированная. Первый используется для обучения и создания большого количества объектов, поэтому рекомендуется выбирать его. Следующим шагом будет подключение необходимых модулей. По умолчанию уже записано несколько основных пунктов, остальные следует включать только при необходимости. Затем выбираются дополнительные параметры. Среди них — поддержка FatFS для чтения SD-карты или включения режима отладки.

После начала сборки по почте придет письмо, сигнализирующее о начале процесса. Через некоторое время придет и вторая буква — вам будет предложено выбрать версию float (дробные числа) или integer (целые числа).

После перехода по полученной ссылке вам нужно будет скачать bin-файл и поместить его в раздел Ресурсы — Двоичный. Там будет находиться файл nodemcu_integer_0.9.5_20150318.bin, который необходимо удалить. В результате содержимое папки будет выглядеть так.

Esp8266 NodeMcu

Обновление прошивки Node Mcu

Для правильной и стабильной работы карты файл esp_init_data_default.bin должен быть перезаписан. Вы можете скачать его с официального сайта. Требуемый файл необходимо вернуть в систему для прошивки NodeMCU Flasher по пути Ресурсы — Двоичные файлы после удаления из него старого файла.

Затем вы можете подключить NodeMCU и начать обновление. Для начала нужно изменить настройки: в NodeMCU Flasher во вкладке Config вместо INTERNAL: // NODEMCU нужно выбрать файл собранной прошивки.

NodeMcu

Остальное оставьте без изменений, перейдите в «Операции» и нажмите «Вспышка». Как только прошивка закончится, нужно снова зайти в Config и в первой строке указать путь esp_init_data_default.bin. Он также указывает адрес, по которому вы хотите переместить этот файл. Для модуля NodeMCU следует выбрать адрес 0x3FC000. Затем вам нужно вернуться в «Операции» и нажать «Вспышка.

Далее необходимо переформатировать всю файловую систему ячейки. Для этого вам необходимо запустить ESPlorer, установить скорость передачи данных 115200 и перезапустить NodeMCU. После всех вышеперечисленных шагов выйдет новая версия прошивки. Плата отладки полностью прошита и готова к использованию.

Требования к питанию

Поскольку диапазон рабочего напряжения ESP8266 составляет от 3 В до 3,6 В, эта плата оснащена стабилизатором напряжения LDO для поддержания постоянного напряжения 3,3 В. Он может надежно подавать ток до 600 мА, чего должно быть более чем достаточно. ESP8266 потребляет до 80 мА во время передачи RF. Выход стабилизатора также выведен на клеммы по бокам платы и обозначен как 3V3. Эти контакты можно использовать для подачи питания на внешние компоненты.

Требования к питанию

  • Рабочее напряжение: от 2,5 до 3,6 В
  • Встроенный стабилизатор: 3,3 В, 600 мА
  • Рабочий ток: 80 мА
  • Потребление в спящем режиме: 20 мкА

Рисунок 2 Батареи ESP8266 NodeMCU
Рисунок 2 — Аккумуляторы NodeMCU ESP8266

ESP8266 NodeMCU получает питание через встроенный разъем MicroB USB. В качестве альтернативы, если у вас есть регулируемый источник питания 5 В, вы можете использовать вывод VIN для прямого питания ESP8266 и его периферийных устройств.

Предупреждение

ESP8266 требует 3,3 В для питания и логического уровня 3,3 В для связи. Контакты GPIO не принимают 5В! Если вы хотите подключить плату к цепям 5 В (или выше), вам необходимо реализовать адаптацию логического уровня.

Приложение для смартфона

Мы используем MIT App Inventor (ссылка) для создания приложения для телефона Android. Вы можете бесплатно зарегистрироваться, используя свою учетную запись Gmail. Если вы просто хотите использовать приложение, загрузите zip-файл, распакуйте его и установите home3.apk на свой телефон.

Команда для каждого выходного контакта очень проста:

  • включить красный / выключить красный
  • включить зеленый / выключить зеленый
  • включить синий / выключить синий
  • включить желтый / выключить желтый
  • включить оранжевый / выключить оранжевый
  • включить коричневый / выключить коричневый

А если вы хотите изменить команды, перейдите в MIT App Inventor и измените home3.aiaas, как показано на изображениях ниже:

  • Проект -> Импортировать проект (.aia) (Проект -> Импортировать проект).
  • Перейдите в «Блокировать и редактировать команду).
  • После внесения изменений выберите: Сборка -> Приложение (сохранить .apk).
  • Установите ваше приложение

On-board Switches & LED Indicator

NodeMCU ESP8266 имеет две кнопки. Одна, помеченная как RST, расположенная в верхнем левом углу, — это кнопка сброса, которая, очевидно, используется для сброса микросхемы ESP8266. Другая кнопка FLASH в нижнем левом углу — это кнопка загрузки, используемая при обновлении прошивки.

Переключатели и индикаторы

  • RST — сброс микросхемы ESP8266
  • FLASH — загрузка новых программ
  • Синий светодиод — программируется пользователем

Технические характеристики оборудования NodeMCU ESP8266 - кнопки сброса вспышки и светодиодные индикаторы

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

Комплектующие

Необходимые детали перечислены ниже. Все это можно купить на Aliexpress или в любом другом интернет-магазине.

  • NodeMcu V3 ESP8266 Китайская версия LoL1n v3.
  • Релейный модуль с 8 реле (или отдельными релейными модулями).
  • Смартфон Android.

Кроме того, нам потребуются сопутствующие детали: вентилятор, лампочки и т.д., которые мы будем включать или выключать со смартфона через приложение с помощью кнопок или голоса.

13 People Made This Project!

Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
martini73 сделал это!

Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
AengusR сделал это!

Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDEБыстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
сирисак сделал это!

Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
BrittB9 сделал это!

Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
KegRaider сделал это!

Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
Быстрый запуск Nodemcu (ESP8266) в среде Arduino IDE
PaulS557 сделал это!

Платформы разработки для ESP8266

А теперь самое интересное!

Существует множество платформ разработки, на которых можно программировать ESP8266. Вы можете использовать Espruino, JavaScript SDK и прошивку, которая эмулирует Node.js, или использовать Mongoose OS, операционную систему для устройств IoT (платформа, рекомендованная Espressif Systems и Google Cloud IoT), или использовать комплект для разработки программного обеспечения (SDK), предоставленный express или любой из платформ, перечисленных в Википедии.

К счастью, фантастическое сообщество ESP8266 сделало еще один шаг вперед в выборе IDE, создав надстройку для Arduino IDE. Если вы только начинаете программировать для ESP8266, мы рекомендуем вам начать с этой среды разработки, и мы опишем ее в этом руководстве.

Это дополнение ESP8266 для Arduino IDE основано на работе Ивана Грохоткова и остальных участников сообщества ESP8266. Для получения дополнительной информации см. Репозиторий Arduino ESP8266 GitHub.

Создание Azure-функции для генерации SAS

Самый простой онлайн-сервис — использовать Функции Azure. Это фрагменты кода, которые можно записать прямо на портал Azure в браузере. Серьезно, но таким образом вы также можете программировать со своего смартфона. Конечно, никто не запрещает создавать и отлаживать их из Visual Studio и только потом публиковать в Azure в скомпилированном виде. Задача функции — выполнять какие-то операции, как правило, не очень сложные. По идее микросервиса каждая функция может делать что-то одно, но очень хорошо (принцип единой ответственности).

вы можете создать приложение Azure Functions на портале, заполнив небольшую анкету.

Создать функцию Azure
Создать функцию Azure

План Pay-As-You-Go позволяет вам оплачивать только те вызовы функций, которые сделаны. Это самый дешевый вариант. В настоящее время один миллион вызовов функций бесплатен. Обратите внимание, что вспомогательное хранилище данных (Storage) создается вместе с функцией).

Создав приложение-функцию, вы можете создать саму функцию. В этом случае нам понадобится такая функция, как Webhook + API. Функция может быть открыта для всех (анонимный доступ) или доступна только обладателям специального кода. Код можно получить из окна работы с функцией, щелкнув ссылку Получить URL-адрес функции.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного периода даст вам доступ ко ВСЕМ материалам Hacker, позволит вам загружать PDF-файлы, отключить рекламу на сайте и увеличить вашу личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Интересует статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для вас! Обратите внимание, что этот метод подходит только для статей, опубликованных более двух месяцев назад.

Аватар
Создать функцию Azure

План Pay-As-You-Go позволяет вам оплачивать только те вызовы функций, которые сделаны. Это самый дешевый вариант. В настоящее время один миллион вызовов функций бесплатен. Обратите внимание, что вспомогательное хранилище данных (Storage) создается вместе с функцией).

Создав приложение-функцию, вы можете создать саму функцию. В этом случае нам понадобится такая функция, как Webhook + API. Функция может быть открыта для всех (анонимный доступ) или доступна только обладателям специального кода. Код можно получить из окна работы с функцией, щелкнув ссылку Получить URL-адрес функции.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного периода даст вам доступ ко ВСЕМ материалам Hacker, позволит вам загружать PDF-файлы, отключить рекламу на сайте и увеличить вашу личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Интересует статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для вас! Обратите внимание, что этот метод подходит только для статей, опубликованных более двух месяцев назад.

Аватар

Подключение NodeMCU к компьютеру

Чтобы начать работу с NodeMcu, вам необходимо подключить плату к компьютеру. Первый шаг — установить драйвер CP2102 и открыть Arduino IDE. Далее нужно найти в «Файл» — «Настройки» и в окне «Дополнительные ссылки для менеджера карт» ввести ссылку http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json.

NodeMcu

Далее в меню «документы» выберите «esp8266» — «доска» «менеджер досок» и установите последнюю версию. После действий, выполненных в меню «инструменты» — «вкладка», вам нужно найти NodeMCU.

После того, как все необходимые данные установлены и скопированы, можно приступать к работе.

Распиновка NodeMcu v3

Модуль V3 имеет 11 контактов ввода / вывода общего назначения. Кроме того, некоторые выводы имеют дополнительные функции:

  • D1-D10 — вывод с широтно-импульсной модуляцией;
  • D1, D2 — контакты для интерфейса I²C / TWI;
  • D5 — D8 — вывод для интерфейса SPI;
  • D9, D10 — UART;
  • A0 — вход от АЦП.

Распиновка NodeMcu

Кнопки и светодиодный индикатор на плате

На плате NodeMCU ESP8266 есть две кнопки. Одна из них с надписью RST, расположенная в верхнем левом углу, — это кнопка сброса, которая, конечно же, используется для сброса микросхемы ESP8266. Другая кнопка, FLASH, в нижнем левом углу — это кнопка загрузки, используемая при обновлении прошивки.

Кнопки и индикаторы

  • RST — сброс микросхемы ESP8266
  • FLASH — загрузка новой программы
  • Синий светодиод — программируется пользователем

Рисунок 4 Кнопки и светодиоды на плате NodeMCU ESP8266
Рисунок 4 — Кнопки и светодиоды на плате NodeMCU ESP8266

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

Программируемый логический контроллер для автоматизации процессов

Установка платы ESP8266 в IDE Arduino с URL-адресом jasonУстановка ESP8266 Core из Arduino IDE Boards Manager

Пример подключения светодиода к NodeMCU

Принципиальная схема подключения представлена ​​на рисунке.

NodeMcu

Окончательный макет макета выглядит так:
NodeMcu

Сама плата работает от 3,3 В, поэтому для подключения светодиода нужно использовать резистор. В этом примере резистор 65 Ом используется для красного светодиода.

Аналогично к плате подключается фотодиод:

NodeMcu

Плату NodeMCU также можно использовать для инфракрасного управления. Для управления понадобится пульт с ИК-приемником и сама платформа. Инфракрасный приемник подключается по следующей схеме:

NodeMcu

Собираем проект

Как вы можете видеть на изображении, NodeMCU работает при напряжении 3,3 В. Так что на борту есть регулятор напряжения. Вы можете включить его через порт USB, чтобы обеспечить 5 В постоянного тока, или подключить вывод VIN NodeMCU к источнику питания с максимальным диапазоном от 6 до 20 В.

На плате реле снимите перемычку между VCC — JDVCC. Поскольку реле 5 В, необходимо подать 5 В или меньше, но не менее 3,3 В. В противном случае реле не сработает.

В первом сценарии используется внешний источник питания 5 В. Для одновременной работы NodeMCU и всех реле минимум 1,5 А.

  • Подключите источник питания к JD-VCC и контакту GND на плате реле.
  • Подключите питание к VIN и GND NodeMCU
  • Подключите выходные контакты от NodeMCU к плате реле (D0 D1 D2 D5 D6 D7)
  • Подключите NodeMCU при 3,3 В к VCC на плате реле (у меня это работает, но в некоторых случаях 3,3 В недостаточно для активации реле; вы можете использовать VIN NodeMCU для VCC на плате реле, но он питает совместное использование не более доступно; это не будет проблемой, если только одно реле используется для управления лампочкой).

Во втором сценарии NodeMCU питается через USB-кабель от аккумулятора. Для платы реле используется внешний источник питания. Вместо 3,3 В вы можете подключить VIN NodeMCU к VCC на плате реле.

Краткое описание языка Lua

Lua имеет простой синтаксис, мощные конструкции описания данных на основе массивов и расширяемую семантику. Этот мощный язык программирования используется для создания программного обеспечения, расширяющего возможности различных игр. В отличие от других языков, Lua имеет более гибкие и более мощные конструкции.

Introduction: Getting Started With ESP8266(LiLon NodeMCU V3) Complete Guide for IoT Startup With Example(as Server)

Things You Need:

  • NodeMCU Flasher Master (Flasher)
  • NodeMCU Firmware (Firmware)
  • Latest Arduino IDE (Arduino)
  • NodeMCU V3
  • Micro USB Cable
  • LED

Features

  • Open-source, Interactive, Programmable, Low cost, Simple, Smart, WI-FI enabled
  • Arduino-like hardware IO
  • Lowest cost WI-FI

Step 1: Installing the Firmware

In NodeMCU Boards the first thing you need is to install the Firmware to the board

the following method works for all NodeMCU Boards

  1. Open the NodeMCU flasher master folder than open the win32/win64 folder as your computer. now open the folder Release than double click ESP8266Flasher.
  2. Select the COM Port.
  3. Goto config tab
  4. click on the small gear and open up the firmware which you have downloaded
  5. go to the advenced tab and select the desired Baudrate
  6. Goto the Operation tab and click on Flash Button.

Step 2: Preparing the Arduino IDE

After Installing the firmware you are ready to do the programming with the ESP8266

  1. Install the Arduino IDE
  2. open the Arduino IDE from the desktop icon
  3. Click on File tab and than open preferences
  4. In the additional Boards Manager URLs add the following link (http://arduino.esp8266.com/stable/package_esp8266com_index.json) and click OK
  5. Goto Tools>Borads>Boards Manager
  6. In the search field type esp8266 click the esp8266 by ESP8266 Community option and click Install

Step 3: Code…

Now you can do whatever you want with your NodeMCU board
Following is an example for led blinking with NodeMCU board via webserver

  • In arduino IDE goto tools>Boards>select NODEMCU 1.0 (ESP — 12E Module)
  • again goto tools and select port.
  • Change the Wifi name and password from the following code.
  • Now click on Upload button to upload the following code.
  • Connect the led’s positive leg on D9 pin of board and negative to the ground of the code.
  • Power up the board and open the serial monitor from arduino IDE
  • after connecting to the wifi it will show you the IP address.
  • type that IP address on the web browser(Edge, Chrome, Firefox etc..)
  • A webpage will open you can change the status of LED by turning it ON or OFF.
#include<ESP8266WiFi> 

const char* ssid = "Tenda"; //your WiFi Name
const char* password = "12345678";  //Your Wifi Password
int ledPin = 03; 
WiFiServer server(80);
void setup() {
  Serial.begin(115200);
  delay(10); 
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW); 
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid); 
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected"); 
  server.begin();
  Serial.println("Server started");
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/"); 
}

void loop() {
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  } 
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush(); 
  int value = LOW;
  if (request.indexOf("/LED=ON") != -1)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); 
  client.println("");
  client.println("");
  client.print("Led is : "); 
  if(value == HIGH) {
    client.print("On");
  } else {
    client.print("Off");
  }  client.println("");  
client.println(" On ");
   client.println(" Off ");  
  client.println(" ");
     delay(1);
   Serial.println("Client disonnected");
  Serial.println("");   }
//code copied from link

If you encounter any problem comment it down

Время на прочтение
7 мин

Количество просмотров 322K

В этой статье я хочу поделиться опытом того, что делать, когда в руки впервые попадают платки ESP8266. Сразу оговорюсь, что ковыряние в таких железках, равно как и программирование, это моё хобби за мои деньги и в свободное от основной деятельности время. Поэтому прошу отнестись с определенной скидкой к степени критики данного материала.

Почему я это решил написать? Всё просто: я убил 3 недели времени на то, чтобы разобраться с чего начинать и как это работает. Кроме того, попробую собрать небольшой каталог ссылок по работе с ESP8266. Надеюсь, что эта информация поможет сэкономить вам хоть толику времени.

image

Итак, приступим!

Я заказал себе 3 варианта плат на известном китайском сайте:

  1. ESP8266 WIFI Serial Wireless Dev Test Board на основе ESP-12 (далее «Жёлтая плата») ($3.12)
  2. ESP8266 ESP-07 вместе с Adapter Plate For ESP8266 (далее ESP-07) ($2.30)
  3. LoLin V3 NodeMcu Lua на основе ESP-12 (далее «Лолин») ($3.12)

Причины, по которым я взял такой зоопарк:

  1. У Жёлтой платы уже встроены светодиодики, которыми можно сразу поморгать, для питания можно использовать не сказочные 3,3В, которые надо еще как-то добыть, а 3 батарейки типа АА или подключив 4,5В (что я и сделал).
  2. ЛоЛин меня подкупила тем, что подключается с помощью микро юсб кабеля и ей не нужны никакие UART конвертеры — в ней сразу он встроен на основе китайского чипа CH340, для которого можно легко найти драйвера как на win7x64 и на win10x64 (мои случаи), и, опять же питание от обычного адаптера с USB выходом, а не мудреные 3,3В.
  3. Конкретно эту ESP-07 я брал под метеостанцию. Ртутно-аналоговый градусник выцвел, прибивать новый лениво, да и врёт он нагреваясь от стены дома прилично. Для начинающих рекомендую брать сразу Adapter Plate — удорожание всего на 20 центов, а удобств намного больше.

Для начала — проверка модулей.

Во всех инструкциях по запуску пишут, что если Вы подключили питание и появилась WiFi сеть «AI-THINKER xxxxxxx», значит устройство работает. С моими устройствами так и вышло — они все создали WiFi сеть, к которой можно было подключиться. Ура! Заработало! Обрадовался я, но рано.

Для начала решил экспериментировать с Жёлтой платой. У продавца с лучшим показателем цена-рейтинг в описании товара были только картинки. И ни слова описания. На русскоязычных ресурсах были упоминания это платы, но конкретики именно про неё не нашёл. У некоторых продавцов я видел такую инструкцию:

Инструкция к Жёлтой плате

1. Android phone installation IOT.APK, IOS client be released later
2. shorting cap connected to the power to enter the programming mode, enter the normal operating state removed
3. Replace the battery, mobile search network «AI-THINKER» router
4. join the router (the router module form) password is: ai-thinker
5. after the success can be added directly to the control module of the mobile phone.
6. Enter the home router «SSID» and «Password» in the «Configure Device», then click on the icon at the top of the router, wait a few moments after the jump to join the router, connect the phone router WiFi, again «discovered device» to achieve control in the LAN.

Мой вольный перевод:

1. На устройство с Wi-Fi работающим на ОС Андроид (не работает на версии 5.0 и старше!) установите IOT.APK, Клиент для IOS будет выпущен позже
2. На плате необходимо снять пермычку, активирующую режим прошивки.
3. Перезагрузите модуль (отключить и подключить питание) и через минуту ищите на андроид устройстве Wi-Fi сеть «AI-THINKER»
4. Подключитесь к этой сети с паролем «ai-thinker»
5. После этого запустите установленной приложение IOT и нажмите на лупу. Плата должна автоматически определиться. После этого перемещайте ползунки, щелкайте выключателями и наблюдайте светодиоды на плате.

Нестыковка была в том, что моя сеть «AI-THINKER хххххххх» не спрашивала пароль, а сразу телефон к ней подключался. И приложение в упор не «видело» ESP после подключения. RGB светодиод горел синим с установленной перемычкой или зеленым без неё.

image

Я догадывался, что, возможно, китайцы спаять — спаяли, а прошить забыли (или криво прошили). Поэтому решил шить сам. Для прошивки я использовал ESP8266 Flasher. И тут вылез второй сюрприз: ни одна программа плату не распознавала, на команды не отвечала, прошивка не заливалась. Подключал через Ардуино и через UART-конвертер — ничего. Две другие платы уже успел перепрошить и помигать светодиодом, а тут глухо. Пока не догадался прозвонить контакты.

На этой плате отдельно выведены три контакты для прошивки: TX, RX, GND. Так вот оказалось, что TX разведен на RX самой ESP-12, соответственно RX — на TX. Т.е. просто надо было поменять местами два провода: к отдельно вынесенным трём контактам подключаем UART-конвертер по схеме:

TX-TX
RX-RX
GND-GND
Или Ардуино:
TX-RX
RX-TX
GND-GND

После такого открытия модуль ожил, была найдена оригинальная прошивка для мигания светодиодами (AI-THINKER-IOT-2014-10-17 165528.bin) и прошита все тем же ESP8266 Flasher. Появился пароль на точку доступа, и приложение сразу увидело Жёлтую плату. Единственный нюанс: для перепрошивки надо установить перемычку, для всех остальных случаев снять. И не забывать перезагружать устройство после перепрошивки.

ESP8266 ESP-07 вместе с Adapter Plate

Инструкция подключения ESP-07 (ESP-12) через UART-конвертер:

image

  • Красный — питание 3,3в;
  • Черный — GND;
  • Желтый — на стороне ESP8266 — RX, на стороне USB-TTL — TX;
  • Зеленый — на стороне ESP8266 — TX, на стороне USB-TTL — RX;
  • Оранжевый — CH_PD (CHIP ENABLE) — должен быть всегда подтянут к питанию;
  • Синий — GPIO0 — подключен через выключатель к земле для включения режима перепрошивки модуля. Для обычного старта модуля GPIO0 можно оставить никуда не подключенным;
  • Серый — GPIO15 (MTDO, HSPICS) этот пин необходимо притянуть к земле;
  • Если подключаете к Ардуино, то RX-RX, а TX-TX.

С помощью паяльника были объединены ESP-07 и адаптер. Адаптер рекомендую поскольку он в дальнейшем облегчает соединение беспаечным методом с помощью макетной платы и проводов. В данном случае для питания я использовал понижающий DC-DC преобразователь из Китая. В наличии были датчики DS18B20, их и было решено подключать.

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

Загружал скрипт через ESplorer.

Было на Ардуино

image

Стало на ESP8266

image

Жду компактный модуль питания 220AC — 3,3DC чтобы оптимизировать количество проводов.

LoLin V3 NodeMcu (Лолин)

Эту плату советовали сразу прошить прошивкой NodeMcu, что и было сделано через программу NodeMcu flasher. Сама прошивка собирается конструктором, что позволяет включить только самое необходимое.

Далее предполагалось подключение и управление 2-хканальным реле и управлять двумя бра в спальне. Тут хочу остановиться на одном ньансе. У китайского варианта такого реле есть перемычка JD-VCC — VCC — GND. По умолчанию она установлена на контакты JD-VCC — VCC.

image

Так вот, пермычку никогда нельзя устанавливать на VCC — GND — устроите КЗ! Эти три контакта используются для дополнительного питания реле, в случаях, когда управляющее может быть недостаточным для срабатывания реле. Присутсвие перемычки обозначает, что питание идет от «управляющих» контактов.

Скрипт был использован такой:

Текст скрипта

#================= init.lua =================
-- вводим имя сети и пароль сюда
ssid,pass = "SSID","PASSWORD";

if (file.open('wificonf') == true)then
   ssid = string.gsub(file.readline(), "\n", "");
   pass = string.gsub(file.readline(), "\n", "");
   file.close();
end

wifi.setmode(wifi.STATION)
wifi.sta.config(ssid,pass)
wifi.sta.autoconnect(1);
print('IP:',wifi.sta.getip());
--print('MAC:',wifi.sta.getmac());

led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
restart=0;

gpio.write(led1, gpio.HIGH);
gpio.write(led2, gpio.HIGH);


t=0
tmr.alarm(0,1000, 1, function() t=t+1 if t>999 then t=0 end end)

srv=net.createServer(net.TCP, 1000)
srv:listen(80,function(conn)
    conn:on("receive",function(client,request)
    -- парсинг для отслеживания нажатий кнопок _GET
            local buf = "";
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        if(method == nil)then
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
        end
        local _GET = {}
        if (vars ~= nil)then
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
                _GET[k] = v
            end
        end
    -- это начало веб сайта
       -- в начале ставим <html><body>, в конце каждой строки знак \
   -- в конце последней строки не ставим знак \, а </body></html>
    conn:send('HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nCache-Control: private, no-store\r\n\r\n\
   <!DOCTYPE HTML>\
<html>\
 <head>\
        <meta charset="UTF-8" />\
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> \
        <meta name="viewport" content="width=device-width, initial-scale=1.0"> \
        <title>My control</title>\
   </head><body>\
        <div class="container">\
            <section class="color-1">\
                <p>\
                    <a href=\"?pin=ON1\"><button class="btn btn-4 btn-4a">Back ON</button></a>\
                    <a href=\"?pin=ON2\"><button class="btn btn-4 btn-4a">Bra ON</button></a>\
                </p>\
                <p>\
                    <a href=\"?pin=OFF1\"><button class="btn btn-5 btn-5a">Back OFF</button></a>\
                    <a href=\"?pin=OFF2\"><button class="btn btn-5 btn-5a">Bra OFF</button></a>\
                </p>\
            </section>\
        </div>\
</body></html>')
    -- это конец
    -- теперь опрос нажатых кнопок
        local _on,_off = "",""
        if(_GET.pin == "ON1")then
              gpio.write(led1, gpio.LOW);
        elseif(_GET.pin == "OFF1")then
              gpio.write(led1, gpio.HIGH);
        elseif(_GET.pin == "ON2")then
              gpio.write(led2, gpio.LOW);
        elseif(_GET.pin == "OFF2")then
              gpio.write(led2, gpio.HIGH);
        end
        
  
              
    conn:on("sent",function(conn) conn:close() end)
    collectgarbage();

    
    end)
    
end)

#========================================

Я не смог повторно найти ссылку на первоисточник. Но схема проста: К Лолин подключаем на выходы D3 и D4 реле 1 и реле 2 (led1 = 3 led2 = 4). Дальше заходим на выданный нашим роутером IP адресс и видим страничку:

image

К моему огромному сожалению, я пока не разобрался как наводить красоту, например подключить файл CSS-стиля. Вопрос именно в задействовании отдельных файлов при выводе странички, а не в задании стиля.

Очень надеюсь что эта информация пригодиться хотябы одному человеку. И не судите строго за первую статью.

Ссылки

  • esp8266.ru — очень обширный ресурс по ESP8266
  • NodeMcu flasher (ESP8266 Flasher)
  • NodeMcu конструктор
  • Драйвер CH340 (для Windows)
  • Статья «ESP8266 — подключение и обновление прошивки»
  • AI-THINKER-IOT-2014-10-17 165528.bin — прошивка для Желтой платы
  • ESplorer
  • Народный мониторинг
  • Как отправлять данные датчиков DS18B20 на Народный мониторинг
  • Проект homes-smart

ESP8266 NodeMCU V3 (LoLin)

Распиновка (pinout) ESP8266 NodeMCU V3 «LoLin» совпадает с распиновкой ESP8266 NodeMCU V2 «Amica», за исключением двух зарезервированных у NodeMCU V2 выводов RSV (reserved). У NodeMCU V3 к ним подключена «земля» и напряжение 5V с USB-разъема.

Кроме использования двух зарезервированных выводов, плата NodeMCU V3 практически не отличается от V2. В обеих платах используются одинаковые микроконтроллеры ESP8266, они имеют одинаковое количество памяти. А к немногим отличиям можно отнести увеличенные габариты у V3, что неудобно при работе с макетными платами, и использование микросхемы CH340G в качестве моста USB – UART, вместо CP2102, что никак не сказывается на работе с платой, кроме необходимости выбора соответствующего драйвера.

ESP8266 NodeMCU V3 распиновка (pinout)


Описание и назначение выводов NodeMCU V3 ESP8266


GND — общий провод, «земля»


Выводы питания

Vin — вывод для подключения внешнего источника питания 5V. Стабилизатор AMS1117-3.3 позволяет подавать питание на Vin в широком диапазоне от 5 до 10 V. Хотя стабилизатор допускает подачу более высокого напряжения (до 15 V), но без дополнительного охлаждения может возникать перегрев чипа.

3.3V — контакт, на который подается выходное напряжение внутрисхемного стабилизатора. Может быть использован для питания подключаемых к плате датчиков. Суммарная максимальная нагрузка всех выводов 3.3V не должна превышать 300мА.

V USB — вывод, на который заведено напряжение 5V с USB-разъема.


Выводы GPIO

GPIO (General Purpose Interput Output) — контакты ввода/вывода общего назначения. Могут быть сконфигурированы как входы или выходы и программно назначены на различные функции.


Выводы управления

RST (Reset) — вывод используется для сброса микроконтроллера ESP8266.

EN (Chip Enable) — при подаче на контакт сигнала высокого уровня, микроконтроллер ESP8266 переходит в рабочий режим, при сигнале низкого уровня — в режим энергосбережения.

WAKE — контакт используется для пробуждения чипа ESP8266 из режима глубокого сна (deep-sleep mode).


АЦП (ADC)

ADC0 / TOUT — вывод встроенного 10-разрядного аналого-цифрового преобразователя (АЦП). Преобразованные значения лежат в интервале 0-1023. Платы разработки NodeMCU V2 и V3 поставляются с внутренним делителем напряжения, поэтому входной диапазон составляет от 0 до 3,3 В. Диапазон входного напряжения для АЦП в кристалле ESP8266: 0 — 1 В.


UART

UART (Universal Asynchronous Receiver-Transmitter) — асинхронный последовательный интерфейс устанавливает связь с другими устройствами по шине UART. У контроллера ESP8266 два модуля UART. Максимальная скорость передачи данных, заявленная производителем, 4,5 Mbps.


SPI

SPI (Serial Peripheral Interface) — последовательный периферийный интерфейс. NodeMCU имеет два SPI (SPI и HSPI) в ведущем и подчиненном режимах.


SDIO

SDIO — интерфейс безопасных цифровых входов/выходов, предназначен для коммутации с внешней флэш-памятью стандарта SD по последовательной шине.


Reserved

Зарезервированные выводы.


FLASH

Кнопка Flash на NodeMCU подключает к земле GPIO0. Ее можно использовать как обычную кнопку. Если программно подтянуть вывод GPIO0 с помощью внутреннего подтягивающего резистора к высокому уровню, то появление низкого уровня на этом выводе будет означать, что кнопка нажата.


Интерфейс I2C — последовательная асимметричная шина. I2C используется для подключения датчиков и периферийных устройств. NodeMCU ESP8266 не имеет аппаратных выводов I2C, но интерфейс можно реализовать программно. Поддерживаются как I2C Master, так и I2C Slave. Обычно в качестве контактов I2C используются следующие выводы.

  • GPIO5: SCL
  • GPIO4: SDA

PWM (pulse-width modulation) — широтно-импульсная модуляция (ШИМ) управляет мощностью методом пульсирующего включения и выключения вывода. NodeMCU поддерживает программный ШИМ на выводах, обозначенных на рисунке изгибающейся линией.


Материалы по теме:

  • NodeMCU схема (ESP8266, ESP32)
  • Скачать драйвер CH340 для NodeMCU
  • Скачать MicroPython ESP8266

Размещение этой статьи на других сайтах как полностью, так и частично разрешено только после согласования с администрацией myROBOT.RU


In this tutorial you learn the highlights of the ESP8266 NodeMCU regarding its datasheet and you learn the differences of the pinout between the NodeMCU V2 and V3 Lolin.

There are three possibilities to power the ESP8266 NodeMCU and you can reduce the power consumption up to 91% with the deep sleep mode.

Table of Contents

ESP8266 NodeMCU Datasheet

The NodeMCU is based on the ESP8266 microcontroller, designed and produced by Espressif Systems in Shanghai. The ESP8266 has a build-in bootloader, that makes it quite easy to flash the board with program code that you create.

The technical highlights and noticeable points of the ESP8266 NodeMCU are:

  • Easy to use for I0T projects with micro-USB connection and build in WiFi (IEEE 802.11 b/g/n)
  • Fast processing power with up to 160 MHz compared to 16 MHz for the ATmega328p (Arduino)
  • The version 2 fits on a standard breadboard so that you can access any pin but because version 3 is wider, it also fits on a breadboard, but you cannot access the pins.

The following table shows the full technical specifications for the ESP8266 NodeMCU V2 and the ESP8266 NodeMCU V3 Lolin.

Board ESP8266 NodeMCU V2 ESP8266 NodeMCU V3
Microcontroller ESP8266 ESP8266
Processor Tensilica Xtensa Diamond 32-bit Tensilica Xtensa Diamond 32-bit
Operating Voltage 3.3V 3.3V
Minimum Operating Voltage 2.58V 2.58V
Maximum Operating Voltage 3.6V 3.6V
Arduino IDE Board NodeMCU 1.0 (ESP-12E Module) NodeMCU 1.0 (ESP-12E Module)
Power Supply via VIN,VCC 5V…12V 5V…12V
Digital I/O Pins (with PWM) 11 (11) 11 (11)
Analog Input Pins 1 1
Resolution ADC 10 bit (0…1023) 10 bit (0…1023)
Analog Output Pins 0 0
SPI/I2C/I2S/UART 2/1/2/2 2/1/2/2
Max DC Current per I/O Pin 12 mA 12 mA
Flash Memory 4 MB 4 MB
SRAM 64 KB 64 KB
EEPROM 512 bytes 512 bytes
Clock Speed 80/160 MHz 80/160 MHz
Length x Width 48mm x 26mm 58mm x 31mm
Fits on standard breadboard yes no
WIFI IEEE 802.11 b/g/n IEEE 802.11 b/g/n
Bluetooth no no
Touch sensor no no
CAN no no
Ethernet MAC Interface no no
Temperature Sensor no no
Hall effect sensor no no
Power jack no no
USB connection yes yes
Battery Connection no no
Programmable Arduino IDE, LuaNode SDK, Micropython Arduino IDE, LuaNode SDK, Micropython
3.3V Voltage Regulator AMS1117 AMS1117
Output Voltage 3.3V 3.3V
Maximum Input Voltage 15V 15V
Minimum Input Voltage 4.8V 4.8V
Maximum Output Current 1A 1A
Maximum Voltage Dropout 1.1V @ 800mA 1.1V @ 800mA
Typical Quiescent Current 5mA 5mA
Power Consumption @ 5V
Reference WiFi Scan Mean [mA] 109 126
Reference Empty Script [mA] 82 81
Light Sleep [mA] 10 9
Deep Sleep [mA] 9 9

Do you want to compare the datasheet of different microcontroller boards like Arduino Uno, Arduino Nano, WeMos D1 Mini against the ESP8266 NodeMCU? I wrote a complete article for the big microcontroller board comparison.

If you do not already have an ESP8266 NodeMCU, you can buy one from the following links. I get commissions for purchases made through links in this table.

ESP8266 NodeMCU Pinout

Because there are different versions of the ESP8266 NodeMCU on the market, we must differentiate the pinout. The following sections shows the pinout of the V2 and V3 Lolin. There exists also a V1 of the ESP8266 NodeMCU, but you have trouble to find the first version and I also do not recommend buying the first version.

ESP8266 NodeMCU V2 Pinout

ESP8266 NodeMCU V2 Pinout

The ESP8266 NodeMCU V2 has in total three 3.3V output pins. The VIN pin has either the function as a power supply for the ESP8266 with voltages between 5V and 12V or can be used as 4.7V output when the ESP8266 NodeMCU V2 is powered via USB. Therefore you can also supply electronic components that need a supply voltage of 5V, because these components should also work with a supply voltage of 4.7V.

The ESP8266 NodeMCU V2 has in total 11 digital input / output pins. All these 11 pins can create PWM signals and have a maximum output current of 12mA.

If you want to close the electrical circuit, there are in total 4 ground pins available, which are all connected to each other on the PCB.

Unfortunately, the ESP8266 has only 1 analog input A0 that is connected internally with a 10-bit analog-to-digital converter (ADC) to convert the analog voltage into 1024 digital values between 0 and 1023.

The ESP8266 NodeMCU V2 has all communication standards on board:

  • 2x UART
  • 1x I2C
  • 2x SPI

ESP8266 NodeMCU V3 Pinout

ESP8266 NodeMCU V3 Pinout

The ESP8266 NodeMCU V3, produced by Lolin, is not a further development of the version 2 of the NodeMCU board. The pinout has only a slightly difference that has a great influence on your wiring:

  • The VIN pin has the same functionality as the version 2 of the NodeMCU to supply the NodeMCU with a voltage between 5V and 12V. But if you power the ESP8266 NodeMCU V3 via USB; you get only a 1.6V output voltage from the VIN pin and not 4.7V like the NodeMCU V2. Therefore you have to use the VU pin that is new in the version 3. This VU pin has an output voltage of 5V when the microcontroller board is powered via USB.
  • Besides the new VU pin the ESP8266 NodeMCU has also a fifth ground pin.

All other pins and communication pins are the same between version 2 and 3.

ESP8266 NodeMCU Power Supply

The ESP8266 NodeMCU power supply depends on the different voltage levels of the microcontroller. Therefore we have to know which electronic components are relevant for the voltage levels. The following picture provides an overview of the voltage levels and the maximum currents of the NodeMCU.

The main component of the NodeMCU is the microprocessor ESP8266. The following table shows the minimum, operation and maximum voltage of the ESP8266.

Microcontroller Minimum Voltage Typical Voltage Maximum Voltage
ESP8266 NodeMCU 2.58V 3.3V 3.6V

Because the operation voltage is 3.3V, there this a build-in voltage regulator that provide a stable 3.3V for the ESP8266 and the corresponding pins.

ESP8266 NodeMCU Voltage Regulator

The following table shows the most important technical details of the 3.3V voltage regulator regarding the power supply.

Voltage Regulator Output Voltage Minimum Input Voltage Maximum Input Voltage Maximum Output Current
AMS1117 3.3V 4.8V 15V 1A

The AMS1117 3.3V voltage regulator is connected to the VIN pin and the USB port. Technically the maximum input voltage is 15V but because at 15V the voltage regulator is producing a lot of heat and would break after a short time, it is recommended to supply an input voltage between 4.8V (USB input voltage is 5V) and 12V. The AMS1117 provides a stable output voltage of 3.3V and a maximum current of 1A for the ESP8266.

How to Power the ESP8266 NodeMCU?

You have two possibilities to power the ESP8266 NodeMCU in a save way and one additionally possibility that I do not recommend.

  1. Micro USB: The most popular and the easiest way to power the microcontroller is via USB cable. The standard USB connection delivers 5V and allows you to draw 500mA in total.
  2. VIN Pin: If you use an external power supply like a battery or laboratory power supply, you can use the VIN pin. The voltage must be between 5V and 12V. Therefore you are able to power the NodeMCU with an external 9 Volt battery.
  3. 3V Pin: Because the 3.3 pin is directly connected to the ESP8266 after the voltage regulator, you can also power the ESP8266 via a stable 3.3V voltage on the 3.3V pin. But be aware that if the voltage gets higher than 3.6V you can damage the ESP8266.

Microcontroller Datasheet eBook

The 35 pages Microcontroller Datasheet Playbook contains the most useful information of 14 Arduino, ESP8266 and ESP32 microcontroller boards.

ESP8266 NodeMCU Power Consumption

The power consumption of the ESP8266 NodeMCU is obviously dependent on the connected electrical devices and the task that is performed. But when we are interested in the power consumption, most of the times we want to know how to reduce the electrical power consumption.

The following two pictures show the power consumption of the ESP8266 NodeMCU V2 and the ESP8266 NodeMCU V3 in different setups.

ESP8266 NodeMCU Power Consumption

If you use the WiFi of the ESP8266 NodeMCU, the power consumption is the highest with 109mA for the version2 and 126mA for version 3 at the power supply of 5V. You can reduce the power consumption to 82mA and 81mA if you let the ESP8266 run in IDLE.

The ESP8266 has several power saving modes that you can use to further reduce the power consumption. In the light sleep power mode, the current consumption is only 10mA and 9mA because the WiFi module and the system clock are disabled and in the deep sleep mode, you can reduce the current drain to 9mA so that also the CPU is disabled.

If you want to know what changes you have to make in your program script to enter the different power modes of the ESP8266, then I recommend reading my article: How to reduce the ESP8266 power consumption?

You find a full comparison about the power consumption in different power modes of several Arduino, ESP8266 and ESP32 microcontroller boards in my Microcontroller Datasheet eBook.

How to flash your Code on the ESP8266 NodeMCU?

You can create your program script with the Arduino IDE and use the Arduino IDE to flash your code to the ESP8266 NodeMCU. There is only a small change in the Arduino IDE that is described in the following steps:

  • In the Arduino IDE menu click on File → Preferences
  • Insert the following URL in the field “Additional Boards Manager URLs:”: http://arduino.esp8266.com/stable/package_esp8266com_index.json

The following picture shows the result in the preferences menu.

The second step is to install the necessary packages for the ESP8266 module:

  • Click in the Arduino IDE on Tools → Board → Board Manager.
  • Now search for NodeMCU and you will find the esp8266 by ESP8266 Community. Install the latest version of the board.

Arduino IDE Boards Manager

Arduino IDE Boards Manager ESP8266 NodeMCU

After the installation you can select the ESP8266 NodeMCU that has the name “NodeMCU 1.0 (ESP-12E Module)” under Tools → Board.

Arduino IDE Select ESP8266 NodeMCU

ESP8266 NodeMCU Advantages and Disadvantages



  • In my opinion, the biggest advantage of the ESP8266 NodeMCU is that you get a WiFi capable microcontroller for little money.


  • The NodeMCU V2 fits perfectly on a breadboard so that you can test your projects with other electrical devices super easy.


  • If you have a project that needs a lot of analog inputs, you need an analog multiplexer, because the ESP8266 has only one analog input pin.



  • For a battery powered project, the power consumption of the ESP8266 NodeMCU is too high. There are other microcontroller boards that have a power consumption of 0.17mA. instead of 9mA. If you want to know which microcontroller have a lower power consumption than the ESP8266 NodeMCU, download my Microcontroller Datasheet eBook.

Recent Posts
  • MH-Z14A CO2 Meter Tutorial with Arduino, ESP8266 or ESP32
  • Control a DC Motor with Arduino, ESP8266 or ESP32 without IC
  • ESP8266 WeMos D1 Mini Tutorial
  • ESP8266 NodeMCU Tutorial
  • TCRT5000 Line Tracking Module for Arduino, ESP8266 and ESP32

Понравилась статья? Поделить с друзьями:
  • Lomvum dm58 инструкция на русском
  • Love sculpture гипсовый 3d слепок инструкция
  • Losyon мазь турецкая инструкция по применению
  • Love potion ботокс для волос инструкция по применению
  • Lomoxicami инструкция по применению на русском