на главную
Карта сайта
English version
Вы читаете:

Сервис ThingSpeak

Разное
6 лет назад

Хранение в ThingSpeak информации о температуре и влажности


Приведено краткое описание применения сервиса ThingSpeak (https://thingspeak. com/) для накопления и отображения собранной информации. В качестве её источника использован датчик температуры и влажности DHT11. Подключение к Интернету по Wi-Fi реализовано с помощью модуля ESP-01.

В радиолюбительской практике нередко приходится собирать, сохранять и в последующем просматривать и обрабатывать разнообразную информацию, поступающую с различных датчиков. Один из вариантов решения этой задачи - оснащение каждого датчика или их группы своим микроконтроллером с выходом в Интернет. Эти устройства должны отсылать собранную информацию на Web-сервер, где она заносится в базу данных. Сервер должен иметь интерфейс, позволяющий просматривать, а возможно, и обрабатывать сохранённую информацию.

При самостоятельной реализации такой системы Web-сервер должен поддерживать PHP и иметь сервер баз данных, что далеко не всегда доступно на бесплатных сервисах. К тому же нужно обладать определёнными навыками web-программирования.

Задача существенно упрощается, если воспользоваться бесплатным сервисом ThingSpeak (URL: https://www.mathworks.com/ help/thingspeak/). Это платформа для Интернета вещей (IoT), позволяющая собирать и хранить информацию в облаке. Она обеспечивает интерфейс, дающий возможность анализировать и визуализировать информацию в MATLAB.

Основа платформы ThingSpeak - каналы, в которые пользователи посылают информацию для хранения и визуализации. Каждый канал содержит, кроме имени и описания, восемь полей для информации любого типа, три поля для географических координат (широта, долгота, высота), поле для ссылки на сайт, где используется хранящаяся информация, ссылку на канал в YouTube.

Зарегистрировав канал в ThingSpeak, туда сразу же можно отправлять информацию, обрабатывать её и получать к ней доступ. Каналы могут работать с информацией в форматах JSON, XMLи CSV.

Зарегистрироваться в сервисе и проверить его работу очень легко. Для этого на странице сервиса https:// thingspeak.com/ нажмите на экранную кнопку Get Started For Free. Чтобы зарегистрироваться и создать новый канал, достаточно указать его имя и определить используемые поля. Например, для описываемого ниже устройства - два поля для сбора информации о влажности и температуре (рис. 1). Сервис присвоит каналу уникальный идентификатор Channel ID.

Регистрация в сервисе

Рис. 1. Регистрация в сервисе

 

Проверить работу созданного канала можно, записав в него информацию GET-запросом с помощью любого интернет-браузера. Для этого потребуется использовать ключ API key - длинный буквенно-цифровой код, который можно найти на вкладке API Keys канала. Обратите внимание, ключи API key для записи и чтения различны.

Отошлите в канал первую пару значений, например, 173 и 121. Для этого в адресной строке браузера наберите:

https://api.thi ngspeak.com/update

§ . json?api_key=c9cso.......155HZ&§fi eldl=173&fi el d2=121

 

Примечание.Здесь и далее знак § в начале строки означает, что эта строка - продолжение предыдущей. В компьютер эти строки нужно вводить слитно, а знак § удалить.

Потом отошлите следующую пару значений, например, 123 и 321:

https://api .thi ngspeak.com/update

§. json?api_key=c9cso.......155HZ&§fieldl=12 3&fi el d2=321

На каждый запрос сервер даст развёрнутый (JSON) ответ, где будут указаны Channel ID, значения всех полей, дата и время. Если .json в запросе отсутствует, ответ будет лаконичным - только число записанных значений.

Если теперь зайти в личный кабинет сервиса ThingSpeak, то на вкладке Private View можно увидеть графическое представление загруженной информации (рис. 2). При необходимости канал можно открыть для просмотра ограниченному числу пользователей или всем желающим. Для этого следует произвести соответствующие изменения на вкладке Sharing. Сохранить собранную информацию в файле или загрузить поля канала из файла можно на вкладке Data Import/Export.

Вкладка Private View. Графическое представление загруженной информации

Рис. 2. Вкладка Private View. Графическое представление загруженной информации

 

В качестве контроллера устройства измерения температуры и влажности использован готовый модуль ESP-01 (рис. 3). Как сказано в его описании, модуль "представляет собой высокоэффективный, высокоинтегрированный комплекс для создания беспроводных систем на одном кристалле. Он может быть использован как полное и самодостаточное беспроводное сетевое решение или как связку с Wi-Fi какого-либо иного самостоятельного решения".

Модуль ESP-01

Рис. 3. Модуль ESP-01

 

На плате модуля установлены микроконтроллер ESP8266EX [1], микросхема памяти, кварцевый резонатор на 26 МГц, два светодиода и печатная антенна. В микроконтроллере есть всё, что нужно для организации беспроводной связи - от антенного коммутатора до цифровых интерфейсов.

На интерфейсный разъём модуля ESP-01 (простейшего в семействе ESP) выведены цепи питания, в том числе сигнал его включения Ch_PD, линии последовательного порта микроконтроллера UTXD и URXD и линии ввода-вывода общего назначения GPIO0, GPIO2 и GPIO16. В старших моделях модулей семейства ESP на разъём выведено значительно больше интерфейсных линий.

На плате модуля ESP-01 установлены два контрольных светодиода. Красный, расположенный ближе к краю платы, сигнализирует о наличии напряжения питания. Синий светодиод соединён с линией UTXD.

Модули поставляются запрограммированными и позволяют работать с ними через последовательный интерфейс с помощью АТ-команд. В описываемом устройстве этот режим не используется. В модуль загружается программа, созданная в среде Arduino IDE. Рассказ об особенностях такого способа работы с модулем выходит за рамки статьи, найти описание программирования ESP-01 в Arduino IDE можно в Интернете, например в [2].

В качестве примера практической реализации устройства-поставщика информации для канала ThingSpeak рассмотрим модуль ESP-01 с подключённым к нему датчиком влажности и температуры DhT 11. Принципиальная схема этого устройства показана на рис. 4.

Принципиальная схема устройства

Рис. 4. Принципиальная схема устройства

 

Датчик DHT11, подключаемый к разъёму XS2, обладает не очень высокими параметрами, но довольно интересен в плане использования в самодельных устройствах [3]. Он имеет простой интерфейс и алгоритм работы. Информация выдаётся 40-разрядной кодовой последовательностью по линии DATA [4]. Для нормальной работы эта линия соединена с плюсом питания резистором R1. Она также соединена с выводом GPIO2 микроконтроллера ESP8266EX модуля ESP-01, подключённого к разъёму XS1.

Питающее напряжение 3,7...5 В подают на разъём XP1 от зарядного устройства для сотового телефона или от литиевого аккумулятора. Далее с помощью интегрального стабилизатора напряжения AMS1117-3.3 (DA1) его понижают до 3,3 В, необходимых для питания модуля ESP-01 и датчика DHT11. Учтите, пиковый ток потребления модуля ESP-01 может достигать 300 мА.

Устройство собрано на макетной плате, на которой установлены разъёмы ХP1 и ХP2 и остальные детали. Её внешний вид показан на рис. 5. Здесь установлены и дополнительные детали (кнопки, съёмные перемычки, разъём), необходимые для программирования модуля ECP-01, но не показанные на схеме рис. 4. Схему их подключения можно найти в [5]. Для присоединения к разъёму XP1 блока питания с разъёмом miniUSB я использовал готовую плату-переходник.

Макетная плата

Рис. 5. Макетная плата

 

Программа (скетч) для модуля ESP-01 разработана в среде Arduino iDe (URL: https://www. arduino.cc). Для работы с модулями ESP эту среду необходимо подготовить, как описано в [2]: обеспечить поддержку модулей с микроконтроллером ESP8266 (ESP8266 Community), выбрать Generic ESP8266 Module и задать СОМ-порт для связи компьютера с модулем.
 
Сервер ThingSpeak содержит несколько примеров реализации "поставщиков информации" на различных платформах (Arduino, Rasberry PI, ESP8266 и др.) За основу скетча DHT_to_Thing Speak.ino взят пример, демонстрирующий регистрацию мощности сигнала Wi-Fi. В разработанном скетче DHT_to_Thing Speak.ino использована библиотека для работы с датчиком DHT11 (URL:https://github.com/adafruit/DHT-sensor-library).
 
Алгоритм работы скетча следующий. После включения питания происходят настройка датчика DHT11, инициализация последовательного канала передачи информации и установка соединения с сетью Wi-Fi. В скетче должны быть указаны параметры используемой сети - константы ssid и password.
 
В основном цикле скетча loop() происходит периодическое считывание показаний датчика DHT11 - влажности и температуры (процедура gettempera-ture()). Для контроля считанная информация выводится в последовательный порт микроконтроллера. Затем на сервер api.thingspeak.com посылается запрос, содержащий информацию для записи в поля field 1 и field2 канала сервиса ThingSpeak, имеющий идентификатор, значение которого указано константой channelID (ей должно быть присвоено значение идентификатора канала, созданного для решаемой задачи). Для записи в канал в запросе будет использован уникальный API key, хранящийся в строковой переменной writeAPIKey. Затем будет выдержана пауза до следующего опроса датчика, длительность которой задана константой postingInterval.

Порядок работы с устройством следующий. Прежде всего, зарегистрируйтесь в сервисе ThingSpeak и создайте новый канал с двумя полями для накопления информации. Запомните или запишите на бумаге полученные Channel ID и API key для записи данных. Они потребуются для корректировки скетча.

Загрузите в Arduino IDE приложенный к статье скетч. Замените указанные в нём значения констант channelID и writeAPIKey своими. Укажите ssid и password своей сети Wi-Fi. Само-со-бой, Интернет должен быть доступен.

Скомпилируйте скетч и загрузите результат в модуль ESP-01. После этого установите модуль в устройство и подайте питание. Следите за синим светодиодом модуля. Он должен мигать с заданной в скетче периодичностью. Это означает, что информация выводится в последовательный порт.

Откройте в браузере созданный в ThingSpeak канал и наблюдайте переданную устройством информацию о температуре и влажности (рис. 6).

Переданная устройством информация о температуре и влажности

Рис. 6. Переданная устройством информация о температуре и влажности

 

Сервис ThingSpeak предоставляет удобные средства для сбора, накопления и визуализации информации даже в бесплатной версии. Это позволяет довольно просто строить различные IoT-устройства. Даже описанный простой прибор может найти практическое применение в "умном доме".

Программа микроконтроллера имеется здесь.

Литература

1. ESP8266EX Datasheet. - URL: https:// www.espressif.com/sites/default/files/doc umentation/0a-esp8266ex_datasheet_en.

pdf (23.05.2018).

2. ESP8266. Работа в Arduino IDE. Часть 2 (лето 2016). - URL: http://ucheba33.ru/?p= 491 (23.05.2018).

3. Пахомов А. Комнатная метеостанция на Arduino Pro mini. - Радио, 2015, № 12, с. 43, 44.

4. Temperature and humidity module DHT 11 Product Manual. - URL: https://static. chipdip.ru/lib/185/DOC001185323.pdf (23.05.2018).

5. Макетирование и программирование платы ESP-01 с помощью Arduino IDE. - URL: http://radioprog.ru/post/213 (24.05.2018).

Автор: А. Пахомов, г. Владимир