Перейти к содержимому

Облачные сервисы накопления и отображения данных

Добрый день, уважаемый читатель! Данная статья представляет собой маленький обзор трех облачных сервисов для накопления и обработки данных для ваших IoT устройств:

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

Если вы читали мои предыдущие статьи, посвященные прошивке на базе ESP-IDF, то, наверное, заметили, что прошивка “умеет” отправлять данные на все три сервиса одновременно. Возникает резонный вопрос – а зачем так много?!

Дело в том, что эти сервисы, хоть и выполняют одну и ту же “базовую задачу” – накопление данных и отображение их в виде графиков, обладают разными дополнительными возможностями и разными ограничениями. И их использование дает разные возможности, которые иногда очень удобно сочетать. Что-то удобнее использовать на компьютере, что-то – на смартфоне. Давайте и рассмотрим их отличия и особенности, на мой взгляд.

ПыСы: всё перечисленное в статье – не реклама, а лишь демонстрация возможностей и как их можно применить в своем “доме с зачатками разума”. Все права и названия принадлежат их владельцам.

 


Народный мониторинг

Сайт: https://narodmon.ru/

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

Этот сервис в первую очередь ориентирован на представление данных с привязкой к геолокации. Как напрямую и следует из названия, он в первую очередь ориентирован на мониторинг фактических параметров погоды множеством пользователей, однако только погодой его возможности не ограничиваются.

Из дополнительных возможностей сервиса ещё хотелось бы отметить возможность подключения к Алисе от Яндекса, хотя лично я этим не пользуюсь.

Передача данных на сервер

Передавать показания датчиков на сервер можно посредством протоколов TCP/UDP или HTTP(S) GET или POST, а также MQTT (для приборов с обратной связью) и HTTP(S) JSON для одновременной передачи данных сразу нескольких приборов и интеграции с другими системами мониторинга.

Просмотр графиков

Для того, чтобы посмотреть графики изменений того или иного значения с датчика, достаточно нажать на пиктограмму справа от значения (либо нажать на строчку с данными датчика в мобильном приложении):

Но так получится посмотреть только один-единственный график. Чтобы наложить несколько графиков друг на друга (например совместить температуру в доме с температурой на улице), придется сделать это через меню “Датчики”, отметив нужные датчики в списке, а затем нажав на ссылку “построение графика”:

Совмещенные графики с нескольких датчиков

Публичный доступ к данным

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

Но если вы открываете публичный доступ к вашим данным  – будьте готовы к постоянным закрытиям публикации со стороны сервиса из-за различных правил и ограничений, зачастую надуманных. Например: у меня постоянно отключают датчик скорости ветра, когда на улице долгое время штиль и “показания датчика не изменяются”. Бороться с техподдержкой в данном случае бесполезно – проще залезть на крышу и периодически дуть в анемометр. 

 

Уведомления

В настройках прибора есть возможность настроить уведомления на электронную почту при неактивности прибора в течение заданного времени (от 10 минут). Кроме этого, в профиле пользователя можно настроить уведомления разных типов на разные события в системе:

Обратная связь

Сервис поддерживает REST API для “обратного” управления вашими приборами или их настройки через сайт народного мониторинга. Передача команд происходит сразу после получения от прибора очередного пакета показаний датчиков в уже открытый сокет, что позволяет управлять приборами с “серыми” IP находящимися за роутерами (т.е. за NAT). Сам я этой возможностью не пользуюсь, однако в справочной системе сайта всё достаточно хорошо описано, я думаю, проблем возникнуть не должно.

Вывод данных на сторонние сайты

На сайте имеется ещё одно API – для получения накопленных данных с сервиса в ваше приложение или для на ваш сайт. Есть возможность легко добавить виджет народного мониторинга на любой сторонний сайт.

Приложения и виджеты для смартфонов

У сервиса имеется свое официальное приложение, которое, в том числе, позволяет добавить виджет на рабочий стол устройства для удобного отображения данных. Есть версии для Android и для iOS. То есть с отображением данных с прибора на экране проблем возникнуть не должно.

Ограничения

Базовый функционал сайта и доступ к API передачи и/или запроса данных является бесплатным для частного некоммерческого использования. В этом режиме вам доступен только один приватный прибор или веб-камеру. Дополнительные приборы нужно “заработать” тем или иным способом – привести нас сайт пользователей, заплатить и т.д. Но количество датчиков в приборе ограничено лишь максимальным размером пакета данных с показаниями датчиков, который на данный момент составляет 4 КБ. Если вы переводите данные прибора в публичный доступ – вам будет доступен ещё один прибор. Так же есть возможность увеличить лимиты за счет помощи проекту и донатов – за более подробной информацией обращайтесь к соответствующему разделу справки.

Данные обрабатываются и загружаются в базу не чаще 1 раз в минуту. При отправке показаний чаще чем 1 раз в минуту прибор попадает в бан до устранения проблемы его владельцем. Минимальный интервал записи показаний датчиков в историю (для построения графиков, выгрузки во внешние системы и CSV) составляет 5 минут и может быть уменьшен для партнеров и донаторов. Поэтому нет смысла отправлять на него показания чаще, чем один раз в 5 минут.

Срок хранения подробных показаний датчиков составляет 30 дней, среднечасовых значений – 1 год, среднесуточных – вечность. Если нужно хранить подробные показания дольше, то можно настроить их автоматическую выгрузку на Ваш Яндекс.Диск или Google Drive.

Лично для меня это достаточно существенные ограничения и я мало пользуюсь данным сервисом. Единственный мой прибор, отправляющий свои данные на этот сервис – метеостанция. Да и то только потому, что я хочу поделиться данными о фактической погоде со своими друзьями и соседями.

 


Thing Speak

Сайт: https://thingspeak.com/

Сервис компании Math Works, созданный для Интернета вещей, тесно связанный с продуктами Math Works (MATLAB). ThingSpeak — это служба аналитической платформы IoT, которая позволяет собирать, визуализировать и анализировать потоки данных в реальном времени в облаке. Вы можете отправлять данные в ThingSpeak со своих устройств, создавать мгновенные визуализации данных в реальном времени и отправлять оповещения с помощью веб-сервисов, таких как Twitter и Twilio. Благодаря аналитике MATLAB внутри ThingSpeak вы можете писать и выполнять код MATLAB для выполнения предварительной обработки, визуализации и анализа.

Сразу оговорюсь – я не использую возможности MATLAB, так как у меня возникли сложности в его использовании, вероятно из-за кириллицы в названиях. Ну не очень то и хотелось, как говориться. Поэтому эту часть функционала я описывать не буду.

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

В терминологии сайта каждый из приборов или устройств – это канал. Каждый канал может включать до 8 полей с данными. На бесплатном аккаунте вы можете создать до 4 каналов. Полученные данные можно выводить в виде настраиваемых графиков, гистограмм и виджетов-“приборов”.

Передача данных на сервер

ThingSpeak поддерживает достаточно большое количество способов передачи данных с устройства на сервис, самые популярные из них: HTTP(S) GET или POST, HTTP POST в JSON или CSV формате или через MQTT. Имеется “встроенная” интеграция ThingSpeak с для записи данных с устройств, подключенных к сети LoRa – The Things Network. Возможно есть что-то ещё…

Просмотр графиков

Просмотр накопленных данных в виде графиков и гистограмм реализован здесь в виде настраиваемых плиток-виджетов (см. скриншот выше). Настроек у виджетов достаточно много, вы можете настроить практически всё – интервалы отображения, цвета и форму линий, фильтрацию данных и т.д. и т.п.

Но обилие настроек порождает и проблему – для того чтобы “массово” поменять настройки (например просто изменить интервал времени) во всех плитках-виджетах, вам придется изрядно помучаться.

Наложить несколько графиков друг на друга в “штатном” интерфейсе никак нельзя. Для этого вам придется воспользоваться MATLAB и написать небольшой скрипт. Но сколько бы я не мучался – скрипт у меня так и не заработал. То есть на тестовых данных он работает, а на реальных – нет. То есть от слова “совсем нет”. Либо лыжи не едут, либо …

Публичный доступ к данным

По желанию вы можете открыть публичный доступ к данным, но не для отдельных датчиков, а для всего канала (прибора) целиком. И ещё раз настроить все те же плитки – виджеты уже на публичной вкладке. Настройки не переносятся с приватных виджетов. Ну вот кто так придумал???

К слову: можно и не открывать публичный доступ, а просто передать друзьям ключ доступа на чтение (если что-то пойдет не так – его можно сменить в любой момент).

Уведомления

Используйте Alerts API для отправки электронных писем на адрес вашей учетной записи на основе поступающих данных или для принудительной отправки электронной почты с устройства. Например, вы можете научить устройство отправлять вам оповещения, когда влажность почвы в вашей теплице падает или котёл отключился. Alerts REST API планирует отправку электронных писем, когда вы отправляете запрос на api.thingspeak.com/alerts/send. Письма отправляются не сразу, а через некоторое время после получения запроса.

Обратная связь

Для реализации управления удаленного управления устройствами на ThingSpeak реализовано приложение TalkBack. В отличие от народного мониторинга, здесь команды запрашивать должно и обязано само устройство. А для того, чтобы команды не пропали (в промежутках между запросами), реализована очередь по типу FIFO:

Команды можно отправлять либо через сайт, либо через соответствующее API, например с этого же или другого устройства.

Дополнительные приложения

Вообще ThingSpeak богат на дополнительные приложения, в меню Apps их насчитывается на текущий момент 8 штук.

Про приложения ничего сказать не могу, так как сам не пользуюсь. Мне ThingSpeak ценен другим – широким выбором приложений под Android, но об этом чуть ниже.

Вывод данных на сторонние сайты

Вывод данных “на строну” в ThingSpeak реализован несколькими способами. Во-первых можно запрашивать данные через REST API, используя ключ чтения данных. А во-вторых, можно легко и просто перенести заранее настроенные плитки-виджеты с публичной вкладки к себе на сайт (с приватной вкладки такое не прокатывает, увы). Например так:

Приложения и виджеты для смартфонов

Самое “вкусное” у данного сервиса, на мой взгляд, это обилие приложений для смартфонов под Android. Вы можете найти любое на свой вкус. Я давно уже пользуюсь ThingShow, оно позволяет создавать удобные и красивые виджеты на рабочий стол:

е хватает только настройки для размера шрифта названий плиток.

Ограничения

В бесплатном аккаунте вам доступно только 4 канала (читай – прибора) по 8 полей в каждом. Это достаточно немного, но ведь никто не мешает (пока) создать несколько учёток с разных адресов, так что это не особая проблема.

На частоту отправки ограничений вроде бы нет. НО! Накладывается лимит не более 3 000 000 сообщений в год, а это примерно 8 219 в сутки или примерно 5 сообщений в минуту. Сообщение определяется как запись до 8 полей данных в канал ThingSpeak. Каждое сообщение не может превышать 3000 байт. Это по всем 4 каналам, входящим в учетную запись (если у вас их 4). Так образом, можно считать, что отправка данных может осуществляться примерно 1 раз в минуту (с запасом). Вполне достаточно для бытовых приложений.

В бесплатном аккаунте имеется ограничение и на количество уведомлений на электронную почту – не более 800 суммарно по всем каналам. По другим расширениям и приложениями ничего сказать пока не могу, так как не пользовался.

Сроки хранения ваших данных ограничены не временем, а количество сообщений. Бесплатные пользователи ограничены 10 миллионами сообщений (примерно 3+ года при минимальном интервале обновления). Вы можете сами спрогнозировать сроки хранения исходя их вашей частоты отправки данных. Хотите хранить дольше – отправляйте данные реже, вот и всё правило.

 


Open monitoring

Сайт: http://open-monitoring.online/

Ещё один сервис от отечественного производителя. Про него я подробно писал ранее, если вы не читали, рекомендую ознакомиться.

Здесь же я также бегло пройдусь по основным характеристикам.

Передача данных на сервер

Передавать показания датчиков на сервер на текущий момент возможно только HTTP(S) GET запросом, других способов не предусмотрено. Да не очень-то и хотелось.

Просмотр графиков

На мой взгляд на этом сайте реализован самый интуитивно-понятный и простой способ отображения графиков и смены временных интервалов. Вам не нужно задумываться как наложить графики друг на друга, какие параметры усреднения выбрать для выбранного временного отрезка – сервис сам все сделает за вас. Плюс наглядные сценки для отображения текущего состояния рисовать можно:

Публичный доступ к данным

Публичный доступ в настройках контроллера вроде бы задекларирован, но это не работает. Просмотреть данные “чужого” контроллера все равно не выйдет. Равно как и вынести эти данные на какой-то сторонний сайт.

Уведомления

Сервис поддерживает несколько типов уведомлений, которые могут быть отправлены как самим сервером в случае проблем; так и устройством, с помощью специального API. При этом отправку уведомлений можно настроить на произвольный адрес, а не только на адрес учетной записи.

Обратная связь

Управление устройствами для open-monitoring.online предусмотрено только в платном аккаунте, но получить его не так-то просто: для этого вы должны приобрести не только аккаунт, но и солнечную электростанцию к нем в придачу. Что накладно. Но ладно.

Вывод данных на сторонние сайты

Как я уже упомянул чуть выше, увы, этого сделать не получится. А так хотелось рыбки поесть….

Приложения и виджеты для смартфонов

Опять failure… Ничего. Что ожидаемо ввиду отсутствия API для получения данных с сервиса и низкой его популярности.

Ограничения

Вот с ограничениями на open-monitoring.online всё хорошо. Точнее – их почти нет. Контроллеров (устройств, приборов) вы можете создать много – сколько точно не знаю, но я пока не достиг предела. И в каждом из них можно хранить до 30 полей с данными. Этого более чем достаточно для большинства применений.

За весь период использования данного сервиса потерь старых данных замечено не было. Следовательно либо сроки хранения очень большие, либо вообще нет ограничений на период хранения данных.

 

 


Итоги

Чем я пользуюсь? Если у вас много устройств (как к меня), то народный мониторинг вам не подходит ввиду достаточно жестких ограничений сервиса. Увы и ах. ThingSpeak удобен, но замучаешься настраивать графики и есть возможность потери данных в перспективе. Но зато удобно его использовать на смартфонах. OpenMon никак не приспособлен к смартфонам, однако на компьютерах он очень удобен для неподготовленных пользователей. Кроме того, он единственный позволяет безболезненно отправлять на него различную отладочную информацию: размер свободной памяти, rssi, время ответа ping-а и т.д.

Поэтому я в основном использую OpenMon, при необходимости отображения данных на смартфоне – добавляю ThingSpeak. Ну а народный мониторинг – только для публичной метеостанции (которая “по совместительству” является поставщиком данных для контроллеров теплицы и управления котлом).

На этом пока всё, благодарю за внимание. До встречи на сайте и на dzen-канале!


Пожалуйста, оцените статью:
[ 5 из 5, всего 1 оценок ]

3 комментария для “Облачные сервисы накопления и отображения данных”

  1. Владислав

    Да, в thingspeak матлаб не работает, если в названиях полей (field) есть русские буквы:
    Error using Две т
    Unrecognized table variable name ‘x’.
    Изменил названия на англ. и всё получилось. Причём в MATLAB Code можно писать русские названия (заголовок, оси) 😉

      1. Ссссанкции, однако.
        У меня все учетки с домена @yandex.ru заблокировали. Данные через них идут и отображаются, а в личный кабинет зайти нельзя
        А вот с домена @rambler.ru и @gmail.com пока живы

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

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