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

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

Экран последовательного порта ведомого устройства (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

Добавлено 15 июля 2020 в 21:38

Интернет вещей (IoT) является одной из самых популярных областей в мире технологий. Физические объекты и цифровой мир связаны сейчас как никогда. Помня об этом, компания Espressif Systems (шанхайская компания по производству полупроводниковых устройств) выпустила крутой микроконтроллер с поддержкой Wi-Fi, ESP8266, по невероятной цене! С помощью него менее чем за 3 доллара можно контролировать и управлять устройством из любой точки мира – идеально подходит практически для любого проекта IoT.

Характеристики платы NodeMCU ESP8266 и ее использование в Arduino IDE

Модуль ESP-12E

Отладочная плата оснащена модулем ESP-12E, содержащим микросхему ESP8266 с RISC микропроцессором Tensilica Xtensa® 32-bit LX106, который работает с регулируемой тактовой частотой от 80 до 160 МГц и поддерживает RTOS.

Характеристики ESP-12E

  • 32-разрядный LX106 от Tensilica Xtensa®
  • Тактовая частота от 80 до 160 МГц
  • 128 КБ встроенной оперативной памяти
  • 4 МБ внешней внешней флеш-памяти
  • Приемопередатчик Wi-Fi 802.11b/g/n

Рисунок 1 ESP8266 NodeMCU

Рисунок 1 – ESP8266 NodeMCU

Также данный модуль имеет 128 КБ ОЗУ и 4 МБ флеш-памяти (для хранения программ и данных), достаточных, чтобы справиться с большими строками, которые составляют веб-страницы, данными в JSON/XML и всем, что мы сегодня добавляем на устройства IoT.

ESP8266 содержит встроенный приемопередатчик Wi-Fi 802.11b/g/n HT40, поэтому он может не только подключаться к сети Wi-Fi и взаимодействовать с интернетом, но и устанавливать собственную сеть, позволяя другим устройствам подключаться напрямую к нему. Это делает ESP8266 NodeMCU еще более универсальным.

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

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

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

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

Рисунок 2 Элементы питания ESP8266 NodeMCU

Рисунок 2 – Элементы питания ESP8266 NodeMCU

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

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

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

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

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

  • вход АЦП – канал 10-разрядного АЦП;
  • интерфейс UART – интерфейс UART используется для загрузки кода по последовательной связи;
  • выходы ШИМ – выводы ШИМ могут использоваться для регулировки яркости светодиодов или управления двигателями;
  • интерфейсы SPI, I2C – интерфейсы используются SPI и I2C для подключения всевозможных датчиков и периферийных устройств;
  • интерфейс I2S – интерфейс I2S используется для цифровой передачи звука.

Мультиплексируемые выводы ввода/вывода

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 5 – Преобразователь USB↔TTL CP2102

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

Распиновка ESP8266 NodeMCU

С внешним миром ESP8266 NodeMCU соединяют всего 30 выводов. Ниже показана распиновка отладочной платы.

Рисунок 6 Распиновка ESP8266 NodeMCU

Рисунок 6 – Распиновка ESP8266 NodeMCU

Для простоты мы сгруппируем выводы с аналогичными функциями.

Выводы питания – на плате расположено четыре вывода питания, а именно: один вывод VIN и три вывода 3.3V. Если у вас есть стабилизированный источник напряжения 5 В, вывод VIN можно использовать для непосредственного питания ESP8266 и его периферии. Выводы 3.3V – это выходы встроенного стабилизатора напряжения. Эти выводы могут использоваться для подачи питания на внешние компоненты.

GND – это вывод земли отладочной платы ESP8266 NodeMCU.

Выводы I2C используются для подключения всех видов датчиков и периферийных устройств на шине I2C в вашем проекте. Поддерживаются и I2C Master, и I2C Slave. Работа интерфейса I2C может быть реализована программно, а тактовая частота составляет максимум 100 кГц. Следует отметить, что тактовая частота I2C должна быть выше самой низкой тактовой частоты из ведомых устройств.

Выводы GPIO На ESP8266 NodeMCU имеется 17 выводов GPIO, которые можно назначать программно на различные функции, такие как I2C, I2S, UART, PWM, дистанционное инфракрасное управление, светодиодный индикатор и кнопка. Каждый включенный вывод GPIO может быть настроен либо на внутреннюю подтяжку к земле или к шине питания, либо установлен на высокоимпедансное состояние. При конфигурировании на вход для генерирования прерываний процессора он может быть настроен на срабатывание либо по фронту, либо по спаду.

Вывод ADC подает сигнал на имеющийся в NodeMCU, встроенный 10-разрядный прецизионный аналого-цифровой преобразователь последовательного приближения (SAR ADC). С помощью этого АЦП могут быть реализованы две функции: проверка напряжения питания на выводе VDD3P3 и проверка входного напряжения на выводе TOUT (но не одновременно).

Выводы UART ESP8266 NodeMCU имеет 2 интерфейса UART, то есть UART0 и UART1, которые обеспечивают асинхронную связь (RS232 и RS485) и могут обмениваться данными со скоростью до 4,5 Мбит/с. Для связи можно использовать UART0 (выводы TXD0, RXD0, RST0 и CTS0), который поддерживает управление потоком. UART1 (вывод TXD1) поддерживает только сигнал передачи данных, поэтому он обычно используется для печати журнала событий.

Выводы SPI ESP8266 имеет два интерфейса SPI (SPI и HSPI), поддерживающих и ведомый (slave), и ведущий (master) режимы. Эти интерфейсы SPI также поддерживают следующие функции SPI:

  • 4 режима синхронизации передачи SPI;
  • до 80 МГц и тактовые частоты, полученные делением 80 МГц;
  • до 64 байт FIFO.

Выводы SDIO ESP8266 имеет защищенный цифровой интерфейс ввода/вывода (SDIO, Secure Digital Input/Output Interface), который используется для прямого подключения карт SD. Поддерживаются 4-битный 25 МГц SDIO v1.1 и 4-битный 50 МГц SDIO v2.0.

Выводы PWM На плате имеется 4 канала широтно-импульсной модуляции (PWM). Выход ШИМ может быть реализован программно и использован для управления двигателями и светодиодами. Частотный диапазон ШИМ регулируется от 1000 мкс до 10000 мкс, то есть от 100 Гц до 1 кГц.

Выводы управления используются, как ни странно, для управления ESP8266. Эти выводы включают в себя вывод включения микросхемы EN, вывод сброса RST и вывод пробуждения WAKE.

  • Вывод EN – микросхема ESP8266 включена, когда на вывод EN подается высокий логический уровень. При низком логическом уровне микросхема работает на минимальной мощности.
  • Вывод RST используется для сброса микросхемы ESP8266.
  • Вывод WAKE используется для вывода чипа из глубокого сна.

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

Теперь перейдем к интересным вещам!

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

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

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

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

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

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

Для начала нам нужно обновить менеджер плат с помощью пользовательского URL. Откройте Arduino IDE и выберите ФайлНастройки. Затем скопируйте приведенный ниже URL в текстовое поле Дополнительные ссылки для менеджера плат, расположенное в нижней части окна:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Рисунок 7 Установка платы ESP8266 в Arduino IDE с помощью json URL

Рисунок 7 – Установка платы ESP8266 в Arduino IDE с помощью json URL

Отлично. Затем перейдите к Менеджеру плат, выбрав ИнструментыПлатыМенеджер плат. Там, в дополнение к стандартным платам Arduino, должна быть пара новых записей. Отфильтруйте результаты поиска, введя esp8266. Нажмите на эту запись и выберите Установить.

Рисунок 8 Установка ядра ESP8266 в менеджере плат Arduino IDE

Рисунок 8 – Установка ядра ESP8266 в менеджере плат Arduino IDE

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

Пример Arduino: мигалка

Чтобы убедиться, что ядро ESP8266 Arduino и NodeMCU правильно настроены, мы загрузим самый простой скетч – The Blink!

Для этого теста мы будем использовать встроенный светодиод. Как упоминалось ранее в этом руководстве, вывод платы D0 подключен к встроенному синему светодиоду и программируется пользователем. Отлично!

Прежде чем мы перейдем к загрузке скетча и игре со светодиодом, мы должны убедиться, что в Arduino IDE выбрана правильная плата. Откройте Arduino IDE и выберите пункт NodeMCU 0.9 (ESP-12 Module) в меню ИнструментыПлата.

Рисунок 9 Выбор отладочного модуля NodeMCU в Arduino IDE

Рисунок 9 – Выбор отладочного модуля NodeMCU в Arduino IDE

Теперь подключите ESP8266 NodeMCU к компьютеру через USB-кабель micro-B. Как только плата будет подключена, ей должен быть назначен уникальный COM-порт. На компьютерах с Windows это будет что-то вроде COM#, а на компьютерах Mac/Linux он будет в виде /dev/tty.usbserial-XXXXXX. Выберите этот последовательный порт в меню Инструменты → Порт. Также выберите скорость загрузки: 115200

Рисунок 10 Выбор COM порта в Arduino IDE

Рисунок 10 – Выбор COM порта в Arduino IDE

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

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

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

void setup()
{
	pinMode(D0, OUTPUT);
}
void loop()
{
	digitalWrite(D0, HIGH);
	delay(500);
	digitalWrite(D0, LOW);
	delay(500);
}

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

Рисунок 11 Рабта тестового скетча Blink на ESP8266 NodeMCU

Рисунок 11 – Рабта тестового скетча Blink на ESP8266 NodeMCU

Теги

Arduino IDEESP8266NodeMCUWi-FiМикроконтроллер

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

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

В этой статье я хочу поделиться опытом того, что делать, когда в руки впервые попадают платки 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 OKrnConnection: keep-alivernCache-Control: private, no-storernrn
   <!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


Понравилась статья? Поделить с друзьями:
  • Logiq c5 premium инструкция на русском
  • Loid ролики для раздвижных дверей инструкция
  • Logiq 100 pro инструкция на русском
  • Logtag analyzer инструкция на русском
  • Logik 9 инструкция на русском контроллер компрессора