Например TDA7294

РадиоКот > Статьи

Об использовании облачного сервиса ThingSpeak для логгирования и визуализации данных

Автор: Сергей Безруков (aka Ser60), sergeilb60@mail.ru
Опубликовано 06.07.2017.
Создано при помощи КотоРед.

Вот уже второй раз в году я встретился с представителями этого сервиса, который мне настолько понравился, что я решил поделиться своим опытом о нём с сообществом. В первый раз компания Renesas организовала однодневный семинар по своей платформе Synergy и вылила на нас столько информации, что ThingSpeak сервис на её фоне как-то потерялся и я на него не обратил тогда должного внимания. Как оказалось, очень зря! В этот раз всё было намного проще на 3-часовом семинаре SparkFun, основанным на их демо-плате ESP8266 Thing Dev для приложений под эгидой Интернета Вещей (IoT). В добавок к этой плате они также подарили нам breakout платку сенсора температуры и атмосферного давления MPL3115A2 для получения данных для логгирования.

Плата основана на полулярном WiFi чипе ESP8266 и помимо него содержит USB-UART конвертер для программирования чипа и печатную антенну. Это также было моей первой встречей с Arduino IDE. Программирование модуля для соединения с WiFi точкой доступа и получение данных от датчика проблем не составили, тем более, что SpafkFun предоставляет библиотеку для последнего. Не буду здесь описывать процесс программирования платы, т.к. по этому поводу имеется достаточно информации в сети. Также не буду описывать Arduino скетч для работы с ESP8266 – он может быть найден по первой ссылке в Гугле. Все подобные скетчи, опубликованные разными авторами, по сути практически одинаковые. Исходный код используемого мной скетча, однако, прилагается. Я лишь немного косметически подправил «народный» скетч под свой вкус. Для обеспечения низкого среднего токо-потребления платы, она вводится в режим глубокого сна между посылкой данных с периодом 1 минута. Для этого на плату был установлен джампер (зелёный на снимке выше), который позволяет сигналу от RTC чипа, выведенному на один из его выводов, произвести reset чипа для его пробуждения. Надо-же такое придумать!

Итак, с получением данных проблем нет никаких. Вопрос теперь куда поместить эти данные и как их визуализировать. Вот тут-то и вступают в игру сервисы ThingSpeak, доступные на их сайте thingspeak.com. Прежде всего следует зарегистрироваться на сайте для получения аккаунта и создания своих каналов логгирования. Сервисы компании включают как платные, так и безплатные каналы. Отличие безплатных каналов от платных в основном в частоте записи в базы данных сайта, которая для безплатных ограничена снизу периодом в 15 сек. Каждый канал предоставляет логгирование до 8 потоков данных. Имеется возможность настройки приватного и публичного вида каналов, а также разнообразной обработки данных каналов, таких как усреднение и масштабирование. Можно также и читать данные из базы данных каналов используя, например, отметки времени, которыми получаемые данные снабжаются автоматически. Таким образом решается вопрос о размещении данных.

Касательно их визуализации, ThingSpeak предлагает разнообразные API для настройки визуализации. Ещё более продвинутые визуализации можно получить, используя разнообразные плагины и графические возможности, предоставляемые системой MatLab. При этом не требуется инсталлировать эту дорогую систему на собственном компьютере, т.к. все вычисления делаются в облаке. Достаточно написать на языке MatLab код как там обрабатывать Ваши данные и как их визуализировать. Для облегчения работы с системой на сайте ThingSpeak имеется обширная и толково написанная документация, снабжённая многочисленными примерами.

Но довольно слов. Как говорится, лучше один раз увидеть... Я использовал этот сервис для мониторинга параметров среды в доме на даче. Как это выглядит – показано ниже. Можете открыть прилагаемый в архиве файл cabin.html в своём браузере, чтобы увидеть данные, динамически обновляемые с периодом 1 мин. Компьютер при этом, естественно, должен быть подключён к Интернету. На каждом из графиков показаны последние 60 измерений. Это число, также как цвет графиков, подписи на осях и многое другое конфигурируемо. Для включения графика на свою веб-страницу достаточно разместить на ней IFRAME тэг, HTML код для которого предоставляется ThingSpeak после конфигурирования каналов в их графическом интерфейсе. Рекомендую посмотреть HTML код файла cabin.html, чтобы оценить наколько всё просто. Для получения показанной базовой визуализации система MatLab, а также другие плагины, не использовались. Код для получения карты установки сенсоров также предоставляется ThingSpeak. Нужно лишь ввести в настройки канала географические кординаты места. Не знаю, сколько я буду держать эту систему включённой, но до конца лета гарантирую.

Сенсор MPL3115A2 не измеряет относительную влажность воздуха. Для этого я использовал ещё один канал, контролируемый другим WiFi модулем – Adafruit Fеather Huzzah ESP8266. Модуль этот был давно приобретён, но руки всё не доходили попробовать. Теперь-же, после семинара SparkFun, я себя почувствовал готовым для подвигов на почве Arduino. Для измерения влажности использовался датчик HDC1080. Готовую библиотеку для него я искать не стал и написал в качестве тренировки свою (приложена в архиве). Её следует поместить в папку libraries в директории проектов системы. скетч для работы с модулем прилагается.

Измерения влажности также производятся с периодом 1 мин. Можно, конечено, было-бы подключить второй датчик к модулю SparkFun, или их датчик сюда, но мне хотелось попробовать модуль Adafruit в деле, а также чтение данных из двух каналов ThingSpeak. Поначалу я не погружал систему в глубокий сон для измерения средего и пикового токопотребления. Для измерений был задействован Power Debugger фирмы Atmel/Microchip, а также работающее с ним приложение Atmel Data Visualizer, свободно скачиваемое с вебсайта фирмы. На плате дебаггера имеется измеритель тока с семплированием на частоте 62.5 кгц (период 16 мкс).

Измерения производились каналом B, нормированным на токи до 1А. График токо-потребления модуля состоит из пиков, соответствующим периоду коммуникации с точкой WiFi доступа (около 100 мкс). Как следует из графика, пиковое токопотребление составляет около 340 мА, при среднем потреблении порядка 77 мА.

Потребление модуля SparkFun я не замерял, поверив имеющимся данным в сети. Согласно этим данным, оно примерно такого-же порядка без погружения ESP8266 в глубокий сон. Потребление модуля Adafruit во сне оказалось около 6 мА, если питать его через разъём USB. В этом случае львиная доля потребления приходится на стабилизатор 3.3В на борту платы и остальные элементы схемы. Такого-же уровня потребление и у модуля SparkFun. Однако, его можно снизить где-то до 80 мкА, отключив светодиод на плате. Не сомневаюсь, что подобного потребления можно добиться и от модуля Adafruit, запитав его непосредственно от литиевой батареи с отключением стабилизаторов напряжения.

 

 


Файлы:
Архив ZIP


Все вопросы в Форум.


ID: 2529

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

6 5 7
1
Подробно