Node mcu v3 подключение к arduino ide
За последние несколько лет модуль ESP8266 стал восходящей звездой среди проектов, связанных IoT или WiFi. Это чрезвычайно экономичный Wi-Fi модуль, который с небольшими дополнительными усилиями может быть запрограммирован для создания автономного веб-сервера.
Одной из важнейших функций, которую обеспечивает ESP8266, является способность не только подключаться к существующей Wi-Fi сети и работать как веб-сервер, но также создавать собственную сеть, позволяя другим устройствам подключаться к нему и получать доступ к веб-страницам.
Работа ESP8266 может осуществляться в трех разных режимах:
- Станция (STA)
- Точка доступа (AP)
- Комбинированный
Режим станции
Модуль ESP8266, который подключается к существующей WiFi сети (созданной беспроводным маршрутизатором), называется Станция (STA).
В режиме станции ESP8266 получает IP-адрес от беспроводного маршрутизатора, к которому он подключен. С этим IP-адресом он может настроить веб-сервер и доставлять веб-страницы на все подключенные устройства в существующей сети Wi-Fi .
Режим точка доступа
Модуль ESP8266, который создает свою собственную WiFi сеть и действует как концентратор (точно так же как маршрутизатор WiFi) для одной или нескольких станций, называется Точкой доступа (AP).
В отличие от WiFi-роутера, он не имеет подключения к проводной сети. Максимальное количество станций, которые могут подключиться к нему, ограничено пятью.
В режиме точка доступа ESP8266 создает новую WiFi сеть и устанавливает SSID (имя сети) и IP-адрес для нее. С помощью этого IP-адреса он может доставлять веб-страницы на все подключенные устройства в своей собственной сети.
Выводы ESP8266 NodeMCU
Ниже представлена распиновка чипа ESP8266 NodeMCU:
Схема подключения светодиодов к ESP8266 NodeMCU
Теперь, когда мы знаем основы работы веб-сервера и в каких режимах ESP8266 может создавать веб-сервер, пришло время подключить некоторые светодиоды к ESP8266 NodeMCU, которыми мы будем управлять через WiFi.
Начните с размещения NodeMCU на макетной плате, чтобы каждая сторона платы была на отдельной стороне. Затем подключите два светодиода к цифровым выводам D6 и D7 через токоограничивающие резисторы 220 Ом.
Концепция управления вещами с веб-сервера ESP8266
Итак, вы можете подумать: «Как я могу управлять вещами с веб-сервера, который просто обрабатывает и доставляет веб-страницы?» Для этого вам нужно понять, что происходит за кулисами.
А теперь давайте перейдем к самому интересному!
Как следует из заголовка, этот пример демонстрирует, как превратить ESP8266 в точку доступа (AP) и обслуживать веб-страницы для любого подключенного клиента. Для начала подключите ESP8266 NodeMCU к компьютеру и загрузите следующий код:
Доступ к веб-серверу в режиме AP
После подключения к сети AP NodeMCU откройте браузер и введите значение 192.168.1.1. NodeMCU должен отобразить веб-страницу с текущим состоянием светодиодов и две кнопки для управления ими. Если одновременно взглянуть на последовательный монитор, вы можете увидеть состояние выводов GPIO NodeMCU.
Теперь нажмите кнопку, чтобы включить LED1. Как только вы нажмете кнопку, ESP8266 получает запрос на URL-адрес /led1on. Затем он включит LED1 и отправит веб-страницу со статусом обновленного состояния светодиода. Он также отобразит в серийном мониторе состояние вывода GPIO.
Вы можете проверить кнопку LED2 и убедиться, что она работает аналогичным образом.
Теперь давайте внимательнее посмотрим на код, чтобы понять, как он работает.
Подробное объяснение кода
Поскольку мы устанавливаем ESP8266 NodeMCU в качестве точки доступа (AP), то модуль создаст WiFi сеть. Следовательно, нам нужно установить SSID, пароль, IP-адрес, маску IP-подсети и IP-шлюз.
Далее мы объявляем выводы GPIO NodeMCU к которым подключены светодиоды и их начальное состояние.
Функция Setup()
Далее мы настроили программную точку доступа для создания Wi-Fi сети, подтвердив SSID, пароль, IP-адрес, маску IP-подсети и IP-шлюз.
Аналогично, нам нужно указать еще 4 URL для обработки двух состояний обоих светодиодов.
Теперь, чтобы запустить наш сервер, мы вызываем begin() для объекта server.
Функция Loop()
Далее нам нужно создать функцию, которую мы прикрепили к корневому (/) URL с помощью server.on. В начале этой функции мы устанавливаем статус обоих светодиодов как LOW (начальное состояние светодиодов) и печатаем его в последовательный монитор.
Аналогично, нам нужно создать четыре функции для обработки запросов на включение / выключение светодиодов и страницу ошибки 404.
Отображение HTML веб-страницы
Функция SendHTML() отвечает за создание веб-страницы всякий раз, когда веб-сервер ESP8266 получает запрос от веб-клиента. Он просто объединяет HTML-код в большую строку и возвращается к функции server.send(), которую мы обсуждали ранее. Функция принимает состояние светодиодов в качестве параметра для динамической генерации HTML-контента.
Затем элемент <meta> viewport делает веб-страницу отзывчивой в любом веб-браузере. Тег title устанавливает заголовок страницы.
Стилизация веб-страницы
Далее у нас есть немного CSS кода для стилизации кнопок и внешнего вида веб-страницы. Мы выбрали шрифт Helvetica, определили содержимое, которое будет отображаться в виде встроенного блока, выровненного по центру.
Следующий код устанавливает цвет, шрифт body, теги H1, H3 и p.
Указываем некоторые стили кнопок со свойствами, такими как цвет, размер, поля и т. д. Кнопка ВКЛ и ВЫКЛ имеет другой цвет фона, а селектор active кнопок обеспечивает эффект нажатия кнопки.
Установка заголовка веб-страницы
Далее устанавливается заголовок веб-страницы. Вы можете изменить его на текст, подходящий для вашего приложения.
Отображение кнопок и соответствующего состояния
Для динамического создания кнопок и состояния светодиодов мы используем оператор if. Таким образом, в зависимости от состояния выводов GPIO, отображается кнопка ON / OFF.
Теперь давайте перейдем к нашему следующему примеру, который демонстрирует, как переключить ESP8266 в режим Station (STA) и обслуживать веб-страницы для любого подключенного клиента в существующей сети.
Прежде чем приступить к загрузке кода, необходимо внести некоторые изменения, чтобы он правильно работал. Вам необходимо изменить следующие две переменные с вашими сетевыми учетными данными, чтобы ESP8266 мог установить соединение с существующей сетью.
После того как вы внесете изменения, загрузите следующий код:
Доступ к веб-серверу в режиме STA
Затем откройте браузер и укажите IP-адрес, указанный на последовательном мониторе. NodeMCU должен обработать веб-страницу, показывающую текущее состояние светодиодов и две кнопки для управления ими. Если взглянуть на последовательный монитор, вы можете увидеть состояние выводов GPIO NodeMCU.
Вы можете проверить кнопку LED2 и убедиться, что она работает аналогичным образом.
Объяснение кода
Если вы сравните этот код с предыдущим кодом, то обнаружите, что единственное отличие состоит в том, что мы не устанавливаем программную точку доступа, а подключаемся к существующей сети с помощью функции WiFi.begin().
Пока ESP8266 пытается подключиться к сети, мы можем проверить состояние подключения с помощью функции WiFi.status().
- WL_CONNECTED : назначается при подключении к сети Wi-Fi
- WL_NO_SHIELD : назначается, когда нет shield Wi-Fi
- WL_IDLE_STATUS : временное состояние, назначаемое при вызове WiFi.begin (), и остается активным до тех пор, пока не истечет количество попыток (что приводит к WL_CONNECT_FAILED) или пока не установлено соединение (что приводит к WL_CONNECTED)
- WL_NO_SSID_AVAIL : назначается, когда нет доступных SSID
- WL_SCAN_COMPLETED : назначается, когда сканирование сетей завершено
- WL_CONNECT_FAILED : назначается при сбое подключения для всех попыток
- WL_CONNECTION_LOST : назначается при потере соединения
- WL_DISCONNECTED : назначается при отключении от сети
Как только ESP8266 подключится к сети, в последовательном мониторе будет напечатан IP-адрес, назначенный для ESP8266.
Интернет вещей (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
ESP8266 содержит встроенный приемопередатчик Wi-Fi 802.11b/g/n HT40, поэтому он может не только подключаться к сети Wi-Fi и взаимодействовать с интернетом, но и устанавливать собственную сеть, позволяя другим устройствам подключаться напрямую к нему. Это делает ESP8266 NodeMCU еще более универсальным.
Требования к питанию
Поскольку диапазон рабочего напряжения ESP8266 составляет от 3 В до 3,6 В, данная плата для поддержания постоянного напряжения на уровне 3,3 В поставляется с LDO стабилизатором напряжения. Он может надежно обеспечивать ток до 600 мА, чего должно быть более чем достаточно, поскольку ESP8266 во время радиочастотных передач потребляет до 80 мА. Выход стабилизатора также выводится на выводы на сторонах платы и обозначен как 3V3. Эти выводы можно использовать для подачи питания на внешние компоненты.
Требования к питанию
Питание к 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 используется для цифровой передачи звука.
Мультиплексируемые выводы ввода/вывода
В ESP8266 используется функция мультиплексирования выводов (несколько периферийных устройств мультиплексируются на один вывод GPIO). Это означает, что один вывод GPIO может действовать как PWM/UART/SPI.
Кнопки и светодиодный индикатор на плате
На плате ESP8266 NodeMCU находятся две кнопки. Одна из них, помеченная как RST, расположенная в верхнем левом углу, представляет собой кнопку сброса, которая, конечно же, используется для сброса микросхемы ESP8266. Другая кнопка, FLASH, в левом нижнем углу – это кнопка загрузки, используемая при обновлении прошивки.
Кнопки и индикаторы
На плате также имеется светодиодный индикатор, который программируется пользователем и подключен к выводу D0 платы.
Последовательная связь
На плате установлен контроллер USB-UART CP2102 от Silicon Labs, который преобразует USB сигнал в сигнал последовательного порта и позволяет компьютеру программировать и взаимодействовать с микросхемой ESP8266.
Последовательная связь
Если на вашем компьютере установлена старая версия драйвера CP2102, рекомендуем выполнить обновление прямо сейчас.
Распиновка ESP8266 NodeMCU
С внешним миром ESP8266 NodeMCU соединяют всего 30 выводов. Ниже показана распиновка отладочной платы.
Рисунок 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 в текстовое поле Дополнительные ссылки для менеджера плат, расположенное в нижней части окна:
Рисунок 7 – Установка платы ESP8266 в Arduino IDE с помощью json URL
Отлично. Затем перейдите к Менеджеру плат, выбрав Инструменты → Платы → Менеджер плат. Там, в дополнение к стандартным платам Arduino, должна быть пара новых записей. Отфильтруйте результаты поиска, введя esp8266. Нажмите на эту запись и выберите Установить.
Рисунок 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
Рисунок 10 – Выбор COM порта в Arduino IDE
Предупреждение
Уделите больше внимания выбору платы, выбору COM порта и скорости загрузки. В случае некорректных настроек при загрузке новых скетчей вы можете получить ошибку espcomm_upload_mem.
После выполнения всех настроек попробуйте пример скетча, приведенного ниже.
После загрузки кода светодиод начнет мигать. Возможно, чтобы ваш ESP8266 начал работать со скетчем, вам придется нажать кнопку RST.
NodeMCU — это платформа на основе модуля ESP8266. П лата предназначена для удобного управления различными схемами на расстоянии посредством передачи сигнала в локальную сеть или интернет через Wi-Fi. Возможности применения этой платы ограничивается лишь вашей фантазией. К примеру, на базе Node MCU можно создать «умный дом», настроив управление светом или вентиляцией через телефон, регистрацию показаний датчиков и многое другое.
Характеристики NodeMCU
На лицевой части платы разъем Micro USB, с помощью которого в контроллер заливают скетчи или подают питание от powerbank-а или компьютера.
Рядом с разъемом располагаются две кнопки: «Flash» и «Reset» . Кнопка «Flash» используется для отладки, а кнопка «Reset» для перезагрузки платы.
Больше всего места на плате занимает чип ESP8266 , на котором уставлен микропроцессор с тактовой частотой 80 МГц ( можно разогнать до 160 МГц) . Плата имеет 4 мегабайта Flash- памяти.
Для питания на плату можно подавать напряжение от 5 до 12 В, но рекомендуется от 10 В. Можно питать как от Micro USB, так и от контакта Vin (от 5В.). Также существуют дополнительные платы расширения для удобного питания модулей.
Плата для питания NodeMCU
Плата потребляет небольшое количество энергии. Это позволяет использовать ее с автономным питанием.
NodeMCU имеет 11 портов ввода-вывода общего назначения.
Некоторые из портов имеют дополнительные функции:
- D9, D10 — UART
- D1, D2 — I²C/TWI
- D5–D8 — SPI
- D1–D10 — выходы с ШИМ (PWM)
- A0 — аналоговый вход с АЦП.
Подключение NodeMCU
- заходим в раздел «инструменты» -> «плата» -> «менеджер плат», где выбираем «esp8266» и скачиваем последнюю версию,
- заходим в раздел «инструменты» -> «плата» и находим Node MCU,
- необходимо в том же разделе зайти в раздел «порт» и выбрать тот, в который подключена плата,
- установить в разделе инструменты: Upload speed (115200 bouad).
NodeMCU: мигающий светодиод
Видео NodeMCU: введение в интернет вещей:
Пины NodeMCU располагаются так:
Смотрите также:
Посты по урокам:
- Первый урок: Светодиод.
- Второй урок: Кнопка.
- Третий урок: Потенциометр.
- Четвертый урок: Сервопривод.
- Пятый урок: Трехцветный светодиод.
- Шестой урок: Пьезоэлемент.
- Седьмой урок: Фоторезистор.
- Восьмой урок: Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail.
- Девятый урок: Подключение датчика температуры и влажности DHT.
- Десятый урок: Подключение матричной клавиатуры.
Все посты сайта «Занимательная робототехника» по тегу Arduino.
Последние пару лет практически все прототипирование несложных IoT-устройств я делаю на NodeMCU, хотя зачастую она и великовата по размеру, и дороговата, и избыточна по функционалу. А все потому, что имела неудачный опыт с ESP-01, которая совершенно не поддавалась прошивке. Сейчас пришло время преодолеть этот барьер и освоить другие железки, от которых мне нужно следующее - Wi-Fi и пины для подключения периферии.
В этой статье разберем подключение к платформе Интернета вещей наиболее популярных плат с интерфейсом Wi-Fi. Их можно использовать, чтобы управлять своим устройством дистанционно или чтобы снимать показания с сенсоров через интернет.
Несколько представленных в статье модулей (ESP-01, ESP-07, ESP-12E, ESP-12F) и плат (Goouuu Mini-S1, WeMos D1 mini и NodeMCU V2) базируются на контроллере ESP8266, использование которого позволяет простым и дешевым способом добавить в своё устройство беспроводную связь через Wi-Fi.
Так выглядит модельный ряд модулей на базе чипа ESP8266.
Последняя плата из тех, о которых я расскажу (ESP32 WROOM DevKit v1), построена на контроллере семейства ESP32 - более продвинутой по своим возможностям версии ESP8266.
Все представленные модели можно программировать и загружать прошивки через Arduino IDE точно так же, как при работе с Arduino.
Настройка среды программирования Arduino IDE
По умолчанию среда IDE настроена только на AVR-платы. Для платформ, представленных ниже, необходимо добавить в менеджере плат дополнительную поддержку.
1) Открываем среду программирования Arduino IDE.
4) В пункте меню Tools (Инструменты) -> Board (Плата) выбираем Boards manager (Менеджер плат).
Находим в списке платформы на ESP8266 и нажимаем на кнопку Install (Установить).
6) Надпись INSTALLED сообщает, что дополнения успешно установлены.
7) Аналогичным образом устанавливаем дополнение для ESP32.
8) Теперь нам доступны к программированию платформы с модулем ESP8266 и ESP32.
Примечание - Также для работы с платами понадобится установить драйверы CH340 (WeMos и Goouuu) и CP2102 (для остальных). Их отсутствие повлияет на то, найдет ли Arduino IDE COM-порт, к которому подключена плата.
Код прошивки
Для прошивки всех используемых ниже модулей используем один и тот же код.
Установка Wi-Fi соединения
Подключение к объекту на платформе Rightech IoT Cloud по протоколу MQTT
Отправка рандомных значений по температуре ("base/state/temperature") и влажности ("base/state/humidity") каждые 5 секунд (PUB_DELAY)
Работоспособность кода будем проверять на платформе Rightech IoT Cloud, именно поэтому в качестве адреса MQTT-брокера указан dev.rightech.io. Идентификаторами клиентов служат идентификаторы объектов, созданных на платформе. Под каждую проверку я завела на платформе отдельный объект, именно поэтому во всех скринах кодов, которые будут далее представлены, отличается только строка <ric-mqtt-client-id>.
Прим. - Можно подключаться и к одному и тому же объекту, тогда можно использовать один и тот же код для прошивки всех плат без изменений, однако следите, чтобы в таком случае платы не подключались к одному и тому же объекту одновременно, иначе случится коллизия.
Модули на базе ESP8266
Для работы с модулями на базе ESP8266 есть два варианта:
Работа с AT командами (в стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART);
Wi-Fi модуль как самостоятельный контроллер (все представленные модули очень умные: внутри чипа прячется целый микроконтроллер, который можно программировать на языке C++ через Arduino IDE).
В статье будем рассматривать второй вариант - прошивка модулей в виде самостоятельного полноценного устройства. Здесь также есть два варианта прошивки с точки зрения железа:
Через плату Arduino;
Через USB-Serial адаптер.
1. ESP-01
ESP-01 - самый популярный модуль на ESP8266. PCB антенна обеспечивает дальность до 400 м на открытом пространстве.
Внешний вид
Питание
Родное напряжение модуля — 3,3 В. Его пины не толерантны к 5 В. Если вы подадите напряжение выше, чем 3,3 В на пин питания, коммуникации или ввода-вывода, модуль выйдет из строя.
Читайте также: