
IoT-Ep2 | Отправление данных датчика в облако Thingspeak
В данной иструкции, мы будем рассматривать платформу Thingspeak - одна из популярных платформ Интернета вещей (IoT Platform). Платформа Thingspeak позволяет хранение и управления данными ИВ. Вы можете посмотреть демо-видео или инструкцию ниже.
Содержание
- Введение
- Платформа Thingspeak
- Настройка Thingspeak и поля для хранения данных датчиков
- Установка библиотеки Thingspeak для программирования на Arduino IDE
- Подключение и программированя NodeMCU
- Графики на Thingspeak
- Заключение
- Дополнительные источники
1. Введение
В настоящее время непрерывно увеличивается количество приложений и устройств Интернета вещей (ИВ). Параллельно также предлагается строить и развивать системы и платформы управления устройствами, чтобы эффективно управлять большими объемами информации (Big Data) и большим количеством подключенных устройств.
В этой статье мы узнаем:
- Thingspeak: как создавать канал и поля для хранения данных.
- Как утановить библиотеку Thingspeak для Arduino IDE.
- Как программировать NodeMCU (ESP8266) для отправки данных датчика DHT22 (температуры и влажности) в Thingspeak.
2. Платформа Thingspeak
Платформа Интернета вещей позволяет устройствам ИВ подключать и хранить данные датчиков, кроме того, платформа позволяет разрабатывать аналитические программы, которые обрабатывают собранные данные, а также отправляют управляющие сообщения на основе запрограммированной логики.
ThingSpeak – это платформа ИВ, которая предоставляет услуги, позволяющие собирать, визуализировать и анализировать потоки данных в реальном времени в облаке. Благодаря интеграции MATLAB в Thingspeak мы можем писать код для выполнения предварительной обработки, анализа или построения графиков данных. Кроме того, на Thingspeak мы также можем установить дополнительную логику сигнализации или отправлять сообщения пользователям, когда происходит ненормальное изменение полученных данных датчика.
На Рисунке 1 изображена простая схема подключение устройство к Thingspeak.
Рисунок 1. Схема подключения Thingspeak
По данной схеме мы можем понять следующим образом:
- NodeMCU <–> WiFi Router <–> Internet <–> Thingspeak
Модуль NodeMCU подключается к Интернету через точку доступа WiFi, и после этого модуль NodeMCU может отправить пакеты данных к Thingspeak. В данной инструкции, мы будем отправлять данные температуры и влажности в облако.
3. Настройка Thingspeak и поля для хранения данных датчиков
Сначало, нам нужно создать аккаунт на сайте thingspeak.com для использования сервисов. После входа в Thingspeak, мы нажимаем Channels, чтобы перейти к странице создания канала, или вы можете перейти в меню Channels –> My Channels (Рисунок 2).
Рисунок 2. Thingspeak
Затем, мы нажимаем New Channel для создания канала хранения данных (Рисунок 3).
Рисунок 3. Создание канала на Thingspeak
Мы начнем с создания нового канала и заполним основную информацию, такую как имя канала, описание и имя для полей (Рис. 4). Поля здесь представляют собой поля данных, полученные от нашего устройства. Здесь Field 1 предназначено для Температуры, а Field 2 — для Влажности. После заполнения основной информации прокручиваем вниз и нажимаем Save Channel, чтобы сохранить и инициализировать канал.
Рисунок 4. Создание канала и поля канала на Thingspeak
После создания канала мы видим, что генерируются 2 графика, соответствующего температуре и влажности, которые мы установили для 2 полей данных (Рис. 5). Нам потребуются API Keys и Channel ID, чтобы иметь возможность записывать и читать данные из канала. Мы нажимаем API Keys для посмротра ключей
Рисунок 5. Канал даных Thingspeak
Чтобы записать данные в канал, нам нужно использовать Write API Key (Рис. 6).
Рисунок 6. API Keys для записи и чтения данных
4. Установка библиотеки Thingspeak для программированя на Arduino IDE
Для упрощения работы по программирования NodeMCU, мы можем использовать библиотеку, разработанную MathWorks для Arduino. На программе Arduino IDE, мы переходим к диспетчеру библиотеки через Sketch –> Inlude Library –> Library Manager, затем поищем Thingspeak. Мы увидим библиотеку Thingspeak, разработанную MathWorks, далее нажимаем Install для установки библиотеки (Рисунок 7).
Рисунок 7. Установка библиотеки Thingspeak
5. Подключение и программирования NodeMCU
Как было сказано в начале поста, мы будем использовать NodeMCU и датчик DHT22. Мы можем подключить DHT22 с модулем NodeMCU по схеме на Рисунке 8.
Рисунок 8. Схема соединения NodeMCU с DHT22
Кроме того, библиотека датчика DHT тоже используется в данном проекте. Если DHT Sensor Library не была установлена, то мы можем перейти к диспетчеру библиотек через Sketch –> Inlude Library –> Library Manager, затем поищем DHT Sensor (Рисунок 9).
Рисунок 9. Установка библиотеки DHT Sensor
Вы можете найти пример кода здесь - WriteMultipleFieldsSecure. После открытия кода в Arduino IDE, мы редактируем данные в файле secrets.h. В данном файле, нам необходимо редактировать:
- SECRET_SSID - название WiFi подключения.
- SECRET_PASS - пароль WiFi.
- SECRET_CH_ID - идентификатор канала (Рис. 5).
- SECRET_WRITE_APIKEY - API для записи данных (Рис. 6).
Рисунок 10. Редактирования данных подключения
После завершения редактирования, мы можем нажать Verify для компиляция программы, или Upload для загрузки прогамммы в NodeMCU. Затем мы тоже можем открыть мониторинг порта Serial Monitor для просмотра данных, распечанных в экране с использованием Serial.print (Рис. 11).
Рисунок 11. Мониторинг порта -- Serial Monitor
6. Графики на Thingspeak
Вернувшись на экран Thingspeak с вкладкой Private View, мы увидим 2 графика изменения данных, соответствующих измеренным данным с датчика DHT22.
Рисунок 12. Графики отображения данных датчика DHT22
7. Заключение
В этой статье мы узнали, как отправлять данные температуры и влажности с датчика DHT22 на платформу Thingspeak с помощью модуля NodeMCU WiFi. Кроме того, на Thingspeak мы также можем настраивать отображение графиков данных и писать скрипты в Matlab для анализа данных.
8. Дополнительные источники
- Пример скетча: https://github.com/itcomnetworks/IoT-Series
- Thingspeak: https://thingspeak.com/
- thingspeak-arduino: https://github.com/mathworks/thingspeak-arduino
- ESP8266/Arduino: https://github.com/esp8266/Arduino
- DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library