Распиновка NodeMcu V3 на ESP8266 и подключение к Arduino IDE

Вопросы и ответы

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

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

Чтобы устройство было распознано в 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

Обновление прошивки 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.

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

People Made This Project!

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

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

Платформы разработки для 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»? Тогда этот вариант для вас! Обратите внимание, что этот метод подходит только для статей, опубликованных более двух месяцев назад.

Подключение 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 имеет более гибкие и более мощные конструкции.

Читайте также: Микрокомпьютер Raspberry Pi 3 Model B: распиновка и характеристики

Оцените статью
Блог про Arduino