Начало работы с облаком Arduino (Cloud IoT) с помощью NodeMCU ESP8266

В 2019 году платформа Arduino представила мировому сообществу свое облачное хранилище данных Arduino Cloud IoT, которое значительно упрощает хранение данных и представляет полный комплекс услуг в рамках концепции интернета вещей (IoT). Оно включает в себя аппаратные и программные средства, облачные сервисы и базу знаний. Данное облачное хранилище данных позволяет пользователям собирать, анализировать и строить виде графиков данные от датчиков, обработчиков событий и т.д.

Внешний вид проекта подключения NodeMCU ESP8266 к облаку Arduino

В данной статье мы рассмотрим подключение платы NodeMCU ESP8266 к облаку Arduino (Arduino Cloud IoT). В данное облако мы будем передавать данные, считываемые с датчика DHT11, также в этом облаке мы установим переключатель, с помощью которого мы будем управлять светодиодом, подключенным к NodeMCU.

Общие сведения об облачном хранилище Arduino

Платформа Arduino Cloud IoT позволяет пользователям писать коды своих программ, компилировать и загружать их в платы непосредственно из браузера, подключать устройства интернета вещей и использовать виртуальную приборную панель (dashboard) в режиме реального времени. Она автоматически формирует необходимый скетч при подключении к ней нового устройства. Платформа имеет следующие основные свойства.

Автоматически генерируемый код: платформа Arduino Cloud IoT автоматически генерирует скетч в соответствии с настройками, задаваемыми пользователем при подключении устройства к облаку и, таким образом, она устраняет барьеры для пользователей, которые не знакомы с программированием, и расширяет возможности разработчиков всех возрастов и опыта.

Поддержка технологии Plug & Play (подключи и играй): используя облачную платформу интернета вещей Arduino, вы можете писать код, компилировать и загружать его прямо из своего браузера, подключать устройства Интернета вещей и создавать информационные панели в режиме реального времени. Таким образом, у вас не будет необходимости использовать Arduino IDE для программирования оборудования.

Мобильная панель мониторинга "На ходу (‘On-the-go’ )": она позволяет пользователям получать доступ, проверять данные и управлять удаленным мониторингом датчиков из любого места с помощью доступных виджетов.

Интеграция с другими платформами: Arduino Cloud IoT может быть интегрирована с Amazon Alexa, Google Sheets, IFTTT и ZAPIER, что позволяет пользователям программировать и управлять устройствами с помощью голоса, электронных таблиц, баз данных и автоматизировать оповещения с помощью веб-хуков (webhooks). Платформа также позволяет разработчикам создавать собственные приложения с использованием API Интернета вещей Arduino с добавлением пользовательских веб-хуков в конечные точки для большей гибкости.

Обладая всеми этими функциями, облачный интернет вещей Arduino также имеет некоторые ограничения. Один из них заключается в том, что он работает только с определенными платами Arduino и модулями ESP. Все поддерживаемые платы перечислены ниже.

Платы Arduino:

  • Arduino NANO 33 IoT;
  • Arduino MKR Wi-Fi 1010;
  • Arduino MKR WAN 1310;
  • Arduino MKR WAN 1300;
  • Arduino MKR NB 1500;
  • Arduino MKR GSM 1400;
  • Arduino MKR1000;
  • Arduino Portenta H7 (M7 core);
  • Arduino Nano RP2040 Connect.

Модули ESP и другие платы:

  • ESP8266;
  • ESP32;
  • Pelion;
  • Generic LoRa.

При бесплатном использовании Arduino Cloud IoT вы можете добавлять в платформу только два устройства и при этом время компиляции для вас будет ограничено 200 секундами в день. Если вы хотите расширить возможности использования платформы, то вы можете выбрать один из платных тарифов, представленных на рисунке ниже.

Доступные тарифы на платформе Arduino Cloud IoT

Необходимые компоненты

  1. NodeMCU ESP8266 (купить на AliExpress).
  2. Датчик DHT11 (купить на AliExpress).
  3. Светодиод (5mm) (купить на AliExpress).

Схема проекта

Схема для передачи данных от датчика DHT11 в облако Arduino с помощью NodeMCU ESP8266 представлена на следующем рисунке.

Схема для передачи данных от датчика DHT11 в облако Arduino с помощью NodeMCU ESP8266Соединения в схеме очень просты. Датчик DHT11 получает питание через контакты 5V и GND платы NodeMCU ESP8266. Контакт данных датчика DHT11 подключен к контакту D0 платы, а положительный вывод светодиода – к контакту D7 платы.

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Внешний вид собранной конструкции проекта

Установка Arduino Cloud IoT

Для начала вам необходимо создать себе аккаунт (если у вас его еще нет) на платформе Arduino Cloud IoT. После этого выполните следующую последовательность шагов.

Шаг 1. После создания аккаунта добавьте в него новое устройство, а именно NodeMCU ESP8266. Для этого перейдите на вкладку "Devices" (устройства) и в ней нажмите "Add device".

Добавление нового устройства в Arduino Cloud IoT

Затем нажмите на "Set up a 3rd party device".

Добавление устройства сторонних производителей в Arduino Cloud IoT

На следующем шаге выберите используемую нами плату разработки. Для этого сначала в качестве типа устройства (device type) выберите ESP8266, а потом в выпадающем меню выберите NodeMCU1.0.

Выбор ESP8266 в Arduino Cloud IoT

Далее переименуйте устройство по своему усмотрению и нажмите на next. Появится всплывающее окно с идентификатором устройства (Device ID) и секретным ключом (Secret Key) для вашего устройства. Вы можете либо вручную сохранить эти данные в блокноте либо нажать на “download the PDF” чтобы сохранить их в формате PDF. Учтите, что если вы потеряете (забудете) секретный ключ (secret key), то его невозможно будет восстановить.

Получение идентификатора устройства и секретного ключа в Arduino Cloud IoT

После этого нажмите на CONTINUE чтобы добавить устройство.

Шаг 2. После добавления устройства необходимо создать предмет/вещь (Thing). Для этого перейдите на вкладку "Things" и в ней нажмите на ‘Create Thing’.

Создание нового предмета (Thing) в Arduino Cloud IoT

Теперь, на вкладке Things, у нас есть три опции, которые необходимо настроить – это Variables (переменные), Device (устройство) и Network (сеть). Но сначала свяжем наше устройство с нашим предметом (Thing). Это можно сделать нажав иконку связывания (выделена красным прямоугольником на рисунке ниже) в секции "Device". После этого откроется окно, в котором ранее созданное вами устройство (Device) должно быть доступно для выбора.

Иконка для связывания предмета с устройством в Arduino Cloud IoT

После того как устройство будет связано, нам необходимо будет добавить некоторые переменные, которые будут использоваться в коде программы. Для этого нажмите на кнопку "Add variable". После этого откроется окно, в котором вам необходимо заполнить информацию по переменной. В нашем проекте мы будем использовать три переменные, одна из которых будет использоваться для управления светодиодом, а две другие – для хранения значений температуры и влажности.

Сначала создадим переключатель светодиода (led_switch). Тип данных у его будет целый (int), его значение можно будет только считывать (read-only), опция обновления (update policy) для него будет включена. После этого нажмите на кнопку "Add variable" (добавить переменную).

Настройка параметров для переключателя светодиода в Arduino Cloud IoT

Аналогичным образом добавьте переменные для хранения значений температуры (‘temperature’) и влажности (‘humidity’). Тип данных для этих переменных будет float, их можно будет считывать и записывать (read & write), опция обновления для них также будет включена.

Настроенные нами переменные в Arduino Cloud IoT

На следующем шаге необходимо ввести данные для доступа к вашей сети Wi-Fi (ее имя и пароль к ней) и секретный ключ (secret key), который был выдан вам во время установки вашего устройства. Для этого нажмите на кнопку ‘Configure’ в разделе "Network Section". Введите необходимую информацию и нажмите на ‘Save.’

Ввод данных для доступа к сети WiFi в Arduino Cloud IoT

Шаг 3. После того как мы добавили устройство и переменные мы можем приступать к созданию информационной панели (dashboard). Для этого перейдите на вкладку ‘Dashboard’ и в ней нажмите на кнопку ‘Build Dashboard’.

Создание информационной панели в Arduino Cloud IoT

Для добавления виджетов на информационную панель (dashboard) нажмите на иконку с карандашом в верхнем левом углу, затем нажмите на кнопку ‘Add’, затем перейдите на "Things" и выберите предмет (Thing). После этого выберите все переменные и нажмите на "Add widgets" (добавить виджеты).

Добавление виджетов в Arduino Cloud IoT

В результате на экране вы должны получить следующую картину:

Добавленные виджеты для нашего проекта в Arduino Cloud IoT

Программирование NodeMCU ESP8266 для передачи данных в облако Arduino

После того как мы закончили с настройками платформы Arduino Cloud IoT следующим нашим шагом будет программирование платы NodeMCU ESP8266 для считывания данных с датчика DHT11 и передачи их в облако Arduino (Arduino Cloud). Чтобы сделать это перейдите на вкладку "Sketch".

Когда вы добавляете любую переменную в предметы (Things), скетч в облаке автоматически обновляется в соответствии с добавленными переменными. Большая часть кода программы (скетча) будет автоматически написана платформой, нам необходимо будет всего лишь добавить несколько строк для работы с датчиком DHT11. Полный код программы приведен в конце статьи.

Когда код программы будет готов, выберите плату (Board) и порт (Port) и нажмите кнопку загрузить (upload) в верхнем левом углу.

Загрузка программы в NodeMCU ESP8266 с помощью Arduino Cloud IoT

После этого вы сможете управлять светодиодом и мониторить данные с датчика DHT11 используя платформу (Arduino Cloud IoT).

Тестирование работы проекта

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
247 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *