№8 ESP8266 и ThingSpeak. Часть 1: Передача данных, измеренных с помощью датчиков DHT22 и DHT11

ThingSpeak - это бесплатный облачный сервис для проектов, построенных на концепции "Интернет вещей". К основным возможностям ThingSpeak можно отнести: сбор данных в реальном времени, обработка данных и их визуализация. ThingSpeak API позволяет не только отправлять, хранить и получать доступ к данным, но и предоставляет различные статистические методы их обработки.

 

Основу платформы составляю каналы, в которые и посылаются данные для хранения и визуализации. Каждый канал включает в себя 8 полей для любого типа данных, 3 поля для местоположения (широта, долгота, высота), и 1 поле состояния. Как только вы зарегистрируете в ThingSpeak свой канал вы сразу сможете отправлять туда данные, обрабатывать их и получать к ним доступ вашими приложениями. Каналы поддерживают JSON, XML и CSV форматы данных. Данные отправляются в ThingSpeak HTTP POST запросом.

 В качестве примера размещения данных на сервисе ThingSpeak рассмотрим реализацию отправки значений температуры и влажности, измеренных модулем на базе микроконтроллера ESP8266 с помощью датчика температуры DHT22 или DHT11. Для выполнения задуманного нам необходимо выполнить несколько шагов.

Шаг 1 - Изготовление устройства мониторинга температуры и влажности.

С целью облегчения изготовления устройства мониторинга температуры и влажности (далее по тексту - "метеодатчик") можно использовать модули на базе микроконтроллера ESP8266: ESP-01 ... ESP-12 и платы на их основе. Я использовал не самую дешевую, но удобную, плату D1 mini от WEMOS Electronics, изготовленную с использованием модуля ESP-12F. 

D1mini

С описанием и схемой платы D1 mini можно ознакомиться на сайте производителя, пройдя по ссылке.

В качестве датчика  будем использовать датчик влажности и температуры DHT22 (AM2302). Датчик DHT11, имеющий худшие по сравлению с DHT22 метрологические характеристики,  в данном примере также можно использовать.

Соединив эти два компонента (плату на базе модуля ESP8266 и датчик влажности/температуры DHT22) согласно приведенной ниже схемы и запитав полученное устройство от источника питания (5В, 0.3А), получим метеодатчик, способный после занесения в него программного обеспечения измерять температуру и влажность, и передавать полученные данный на сервис ThingSpeak.

dht meteosensor shema 

Так это выглядит:

dht meteosensor

Если нет в наличии  D1 mini от WEMOS, то можно метеодатчик собрать по следующей схеме:

esp8266 dht

В схеме применены следующие элементы:

  • А1 - модуль ESP12F, на базе контроллера ESP8266$
  • U1- датчик DHT22 (или DHT11);
  • D1 - микросхема AMS1117ADJ;
  • R1 - резистор 200 Ом, 0.125Вт;
  • R2 - резистор 120 Ом, 0.125 Вт;
  • R3...R7 - резистор 4,7 кОм, 0.125 Вт;
  • С1 - конденсатор 0,47...1 мкФ;
  • С2 - конденсатор 47...100 мкФ, 15...25В;
  • С3 - конденсатор 0,47...1 мкФ;
  • С4 - конденсатор 22...47 мкФ, 15В;
  • X1 - разъем PLS-4 (для загрузки программного обеспечения);
  • X2 - разъем PLS2 (для установки перемычки при занесении программного обеспечения);
  • X3 - любой разъем для подачи питания.

Шаг 2 -  Регистрация на сервисе ThingSpeak и получение API KEY

У кого есть Аккаунт на этом сервисе, этот шаг пропускают. А остальные выполняют следующие действия:

  • Переходим по ссылке: https://thingspeak.com/users/sign_up.;
  • Жмем кнопку создания нового аккаунта Create Account;
  • Заполняем все поля формы регистрации и жмем кнопку Continue;
  • Проверяем электронную почту, указанную при регистрации, и для поддверждения своего электронного адреса жмем на ссылку в письме. Затем  Вам будет сообщено, что Аккаунт проверен;
  • Далее будет предложено ознакомится с условиями использования сервиса. Читаем условия и если Вас всё удовлетворяет - соглашаемся с ними;
  • Заходим теперь в свой аккаунт, переходим в раздел My Channels и жмем кнопку New channel для создания нового канала.

my channel

  • Заполняем форму: вводим имя и описание канала. В первых два поля вводим наименования: "Температура" и "Влажность"

kids room data channelОстальные поля можно оставить не заполнеными. Имя канала нужно для идентификации вашего канала среди многих других. Важной частью являются имена полей. Данное имя будет отображаться на графике. Нажимаем Save на странице ниже;

  • Переходим во вкладку API Keys. Там представлено два ключа. Первый (Write API Key) позволит Вам писать информацию в этот канал на сервисе ThingSpeak, второй (Read API Keys) позволит ознакомиться  с информацией. Копируем сгенерированный Write API Key, а также запоминаем ID канала в верхней части экрана;
  • Теперь можно протестировать соединение, вставив следующую строку в браузер: http://api.thingspeak.com/update?key=API_KEY&field1=0; В строке необходимо поменять значение API_KEY на свое. Этот запрос добавит данные '0' в только что созданный канал ‘field1′. Сервер ответит количеством точек данных.
    Следующим запросом можно проверить результат: http://api.thingspeak.com/channels/CHANNEL_ID/feed.json?key=API_KEY. API_KEY и CHANNEL_ID также нужно поменять на свои значения.

Шаг 3 - Загрузка кода в метеодатчик

Код для метеодатчика можно взять с разных источников, например из этих:

или использовать вариант, который находится в конце статьи.

Прежде чем загружать код в метеодатчик, его необходимо адаптировать, а именно в коде изменить следующее:

  • Имя Вашей WIFI сети;
  • Пароль к WIFI сети;
  • API Key ThingSpeak;
  • Параметры датчика (тип датчика и порт ESP8266 к которому датчик подключен).

После успешной загрузки кода в мониторе последовательного порта Вы увидите:

esp dht serial

А на канал сервиса ThingSpeak начнут поступать данные:

esp8266 dht ThingSpeak

Вложения:
Скачать этот файл (ESP8266_ThingsPeak_DHT.zip)ESP8266_ThingsPeak_DHT.zip[ ]20 Кб

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


Защитный код
Обновить

 

 

 

©2017 Sj Expnews - Joomla Templates.