Облачные сервисы для управления ардуино. Публичные облачные сервера для IoT устройств

Замечательная штука – ESP8266. Довольно мощный процессор, много памяти, встроенный WiFi контроллер. ESP32, конечно, еще лучше, но и стоит заметно дороже. Но речь сейчас не о них. Точнее не совсем о них. На ESP очень легко соорудить практически любую домашнюю автоматику, причем с удаленным контролем и управлением со смартфона или компьютера. Пример такого устройства есть на этом сайте . Одна проблема – для работы с таким устройством не только из домашней сети, а и из любой точки планеты (где есть доступ к интернету, разумеется), потребуется некий сервер – посредник, который будет принимать сообщения от устройства и передавать их Вам, и наоборот. Конечно, есть варианты и прямой связи, но я их не буду здесь рассматривать ввиду сложности реализации или дороговизны.

Приведенный в этот статье список не претендует на полноту и уж тем более на уникальность, просто я попытался проанализировать и структурировать возможности тех или иных бесплатных сервисов. В первую очередь для себя, но если это окажется полезным кому-либо еще – пользуйтесь на здоровье. Когда я искал публичный MQTT сервер для себя, то перерыл массу интернет ресурсов. Искал в первую очередь на esp8266.ru , но увы, там половина сервисов либо уже не рабочие, либо не подходят лично мне по тем или иным параметрам. Все, что здесь написано – в первую очередь мой личный опыт, Ваш опыт работы с данными сервисами может быть совсем другим. Если Вы знаете какие-либо еще подобные сервисы – напишите в комментариях или на почту (почта и другие контакты находятся в верхнем правом углу шапки сайта), и я постараюсь проверить и дополнить список.

MQTT брокеры

Протокол MQTT – это пожалуй самое первое, на что натыкаешься в поисковиках, когда ищешь способ удаленного управления различными “умными штуками”. Не могу поручиться, что это самый простой протокол (мне просто не с чем сравнивать особо, я как-то сразу на нем и остановился), но лично у меня он не вызвал никаких сложностей. Примеров – очень много. Готовых библиотек для Arduino IDE – тоже не одна, как говорится “выбирай на вкус”. Мобильных приложений – достаточно, чтобы выбрать и для смартфона, и для контрольной панели, сделанной из древнего планшета. Так что это, наверное, самый популярный вариант для реализации удаленного управления. Облачных серверов тоже достаточно много, называются они MQTT брокерами. Принцип работы протокола и серверов я здесь рассматривать не буду, этой информации вполне достаточно и на других сайтах.

CloudMQTT.com

Начинал я с этого сервиса. Просто потому, что почти все примеры работы с MQTT протоколом основаны именно на нем. Сервис достаточно удобный и простой, все интуитивно понятно. В 2018 году сервис допускал на бесплатном тарифном плане подключение до 10 устройств, что меня вполне устраивало. Однако к концу 2018 владельцы сервиса пересмотрели свою политику и на бесплатном тарифном плане “Cute Cat” теперь доступно только 5 подключений. Лично для меня это очень мало. У меня одновременно могут подключены три “управляющих” устройства – два смартфона и планшет, и для собственно ESP остается только два подключения. А различной “автоматики” у меня уже достаточно много, и планируется еще. Конечно, можно наплодить несколько экземпляров брокеров внутри одной учетной записи, хотя и на них в последнее время ввели ограничения. Но в таком случае три контрольных устройства все равно “отожрут” три подключения для каждого экземпляра, а уж настраивать такое хозяйство – и врагу не пожелаешь. Самый дешевый платный тарифный план “Humble Hedgehog” стоит на момент написания статьи 5$ в месяц. Нет, меня одно довольно известное земноводное душит платить такие деньги каждый месяц . Да и возможностей при этом не так уж и шикарно – 25 подключений. Поэтому пришлось искать другие варианты.

Плюсы : удобно и просто

Минусы : только 5 подключений на бесплатном тарифном плане

flespi.io

Довольно долго я пользовался брокером mqtt.flespi.io . Привлек он меня тем, что на момент, когда я начал с ним работать, он допускал аж 100 конкурирующих подключений одновременно и огромные объемы передаваемых и сохраняемых сообщений. Шикарно! Однако сервис не так удобен, как CloudMQTT. Контрольная панель не очень удобна (хотя и совершенствуется), настройка прав доступа не понятна на первый взгляд, авторизация и устройств, и смартфонов по токенам с ограниченным сроком действия. Некоторых нужных мне функций нет, либо я не нашел как пользоваться. Например, как удалить сохраненные (retained) сообщения из базы – я так и не нашел. Строго говоря, это далеко не только MQTT брокер, так что возможно я просто не понял всех его возможностей. Иногда на разных смартфонах перестает обновляться информация в некоторых топиках. Пару раз из-за ошибок в прошивке и постоянных обращениях устройства к серверу сервис полностью блокировал учетную запись на несколько часов. Но все это можно было бы простить за такие возможности. Но увы, и здесь желание заработать взяло верх – с 2019 года на бесплатном тарифе введено ограничение в 10 подключений. В этом нет ничего предосудительного, но я не готов еще платить за хобби такие деньги, да еще за услуги довольно сомнительного качества. В общем, будем искать такой же, но с перламутровыми пуговицами…

Плюсы : раньше было до 100 подключений

Минусы : не удобен, сложен в настройке доступов, retained из панели не удалить

HiveMQ Public Broker

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

Плюсы

Минусы

Eclipse MQTT

Еще один публичный брокер без авторизации. Как и написано на сайте, этот брокер предназначен в первую очередь для тестирования и не предназначен для хранения и передачи конфиденциальной информации. Для подключения к серверу нужно использовать следующие параметры: сервер iot.eclipse.org, порт 1883; для TLS v1.2, v1.1 или v1.0 – порт 8883. Доступно подключение и по WebSockets. В общем, то же самое что и HiveMQ, только в боковой проекции…

Плюсы : бесплатный, без ограничений по подключениям

Минусы : подходит только для тестирования и метеостанций без удаленного управления

mosquitto.org

И еще один публичный брокер без авторизации. Можно не повторяться, все то же самое, что и у HiveMQ и Eclipse MQTT. Обратите внимание – то, что все эти серверы поддерживают шифрование TLS отнюдь не означает, что Ваши данные защищены. Защищен канал передачи между устройством и сервером, но сами данные находятся в открытом доступе.

Плюсы : бесплатный, без ограничений по подключениям

Минусы : подходит только для тестирования и метеостанций без удаленного управления

IBM Cloud (Bluemix)

Это не mqtt брокер, это целая платформа “Internet of Things Platform”. Но в ее составе есть и mqtt брокер. На бесплатном тарифном плане “Lite” допускается аж до 500 зарегистрированных устройств, и по 200 МБ информации на каждую метрику. Вполне шикарно не только для дома, но и для коммерческих устройств. Но, как всегда, не без “НО”. Во-первых, с этой платформой очень сложно разобраться. Документация есть, но ее очень много. Нет – ОЧЕНЬ много! Я потратил не один час, чтобы более – менее понять, как настроить подключение. Во-вторых, платформа позволяет публиковать топики строго в определенном формате: “iot-2/evt/ event_id /fmt/ format_string “ . Точно также с командами: “iot-2/cmd/ command_id /fmt/ format_string “. И все – никаких вольностей – то есть только номер сообщения и само сообщение. А вот форматов передаваемых сообщений уже больше – “json”, “xml”, “txt”, и “csv”. Возможно кому-то такой подход покажется очень правильным и удобным, но меня он не привлек. Да и сложно все устрено – возможностей, судя по всему, очень много, но с этим всем придется вначале разбираться.

Плюсы : очень большие лимиты по подключениям

Минусы : очень сложный для новичка, ограничения по топикам

mqtt.dioty.co

Это уже полностью бесплатный брокер. Пока. На странице параметров подключения написано следующее: “Этот MQTT-брокер в настоящее время работает в бета-версии. На этом этапе бета-тестирования мы не будем взимать плату, если вы превысите лимит в 50000 сообщений в месяц. Однако мы оставляем за собой право временно приостановить действие вашей учетной записи в случае, если вы влияете на обслуживание других пользователей. В этом случае мы всегда будем связываться с вами по электронной почте, чтобы попытаться понять ваши конкретные потребности и то, как мы можем их удовлетворить.”. 50000 сообщений в месяц – это примерно 70 сообщений в час, что не так уж и много, если учесть что одно устройство может публиковать за сеанс отправки данных с датчиков до 50 сообщений. Брокер поддерживает авторизацию и TLS-подключение. Регистрация привязана к учетной записи Google. Есть небольшое ограничение – все Ваши топики должны начинаться с адреса электронной почты, через которую вы зарегистрировались в сервисе, например так: “/[email protected]/…/…/…”. Но это проблема более-менее существенна только при настройке MQTT клиентов на смартфоне (больше текста набирать), да и то не всегда. На мой взгляд, этот сервис вполне заслуживает внимания. Работу с ним я не проверял, только зарегистрировался.

Плюсы : полностью бесплатен

Минусы : требуется определенный префикс для топиков, ограничение примерно 70 сообщений в час

Solace.Cloud (PubSub+)

Это не столько MQTT брокер, сколько целая IoT платформа. На бесплатном тарифном плане допускается до 50 подключений, до 1 GB передаваемых данных в месяц, до 4 GB хранимых данных (retianed сообщений). Неплохо. Но имеет даже в free версии очень много настроек – в нем сложно разобраться “с наскоку”. Именно поэтому в свое время я и не стал им пользоваться. Возможно, придет время, разберусь и настрою.

Плюсы : до 50 подключений

Минусы : довольно сложен в освоении

myqtthub.com

По всей видимости эстонский брокер. На бесплатном тарифном плане допускает: до 100 пользователей, но до 50 подключений; 10MB хранимых данных; до 50 подписок на подключение, максимум 250 подписок (причем не ясно, подписка “home/#” – это одна подписка или много?); 300 сообщений в минуту, но не более 800 в час и не более 10000 в день. Если исходить из регулярных (каждые пять минут) публикаций, то получается не более 34 сообщений за раз. Есть и еще ограничения – боле подробнее смотрите на главной странице сервиса . Ограничения, впрочем, выглядят вполне реальными для домашнего использования. Не пробовал…

Плюсы : до 50 подключений

Минусы : ограничения по количеству сообщений

mqtt.by

Простой в использовании белорусский брокер. Про ограничения не сказано нечего. Поддерживает авторизацию, но есть возможность сделать некоторые топики публичными, то есть открыть для всех остальных пользователей сервиса. Но нет поддержки безопасного соединения (TLS), это может быть критично для некоторых приложений. Каждый публикуемый топик должен начинаться с префикса “/user/имя_пользователя”, что несколько усложняет настройку мобильных mqtt клиентов, но не существенно. Из плюсов – на сервере есть общедоступные топики с датой и временем, что очень удобно для контрольной панели на основе планшета, которая работает 24 часа в сутки – заодно и часики еще одни (сто двенадцатые 🙂). В общем, вполне себе нормальный брокер, лишь бы работал стабильно.

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

Минусы : нет SSL/TLS шифрования подключений

mqtt.4api.ru

Российский бесплатный брокер – “мы предоставляем доступ к бесплатному mqtt серверу для всех желающих”. Авторизация и регистрация на сервисе через социальные сети. Появился, судя по всему, не очень давно. Хотя сам сайт имеет SSL сертификат, в параметрах подключения указаны данные только для “Без SSL”, видимо SSL подключение для устройств не доступно. Еще на странице подключения написано следующее: “Мы не рекомендуем использовать данный сервер для жизненно важных проектов”. Панель управления обладает весьма скромным функционалом, поэтому нужно пользоваться сторонним ПО

Плюсы : без каких либо ограничений

Минусы : нет SSL/TLS шифрования подключений, бедный функционал панели управления

Другие сервисы

Одним MQTT сыт не будешь. MQTT прост и удобен, но позволяет просматривать информацию “здесь и сейчас”, без истории изменений во времени. Для просмотра графиков имеются другие сервисы, наладить работы с которыми также не представляет особого труда. Некоторые из них представлены ниже.

ThingSpeak

ThingSpeak доступен как бесплатный сервис для некоммерческих небольших проектов (<3 миллиона сообщений в год или ~ 8 200 сообщений в день). Сервис позволяет накапливать получаемые данные в своих хранилищах, после чего их можно удобно просматривать в виде графиков. В том числе и на сторонних сайтах, .

Из особенностей сервиса – он имеет интеграцию с MatLab Analytics, но я сколько не пытался настроить скрипты MatLab, так у меня ничего и не вышло. Ну, не очень-то и хотелось. В бесплатном аккаунте сервис позволяет создавать до четырех каналов, в каждом из каналов можно хранить до 8 полей с различными данными. Еще в бесплатном аккаунте существует еще одно ограничение – нельзя публиковать данные чаще одного раза в 15 секунд (рекомендуется пауза в 20 секунд), это как бы “защита” от превышения лимита 8 200 сообщений в день. В принципе, все мои “публикаторы” легко вписываются в данный лимит, мне хватает. Пользуюсь сервисом довольно давно, достаточно удобен и прост, если не считать MatLab. Есть несколько программы – клиентов для android, но гораздо меньше, чем для MQTT.

Плюсы : простое использование на ESP, удобный сайт

Минусы : много ограничений на бесплатном аккаунте

open-monitoring.online

Этот сервис в чем-то аналогичен ThingSpeak – на него можно точно также отправлять данные и затем просматривать в виде таблиц, графиков и гистограмм. Интерфейс попроще, чем у ThingSpeak, но и настраивать его гораздо проще.

Изначально этот сервис был создан, как я понимаю, для мониторинга параметров персональных солнечных электростанций, но вполне подходит и для других целей. Сервис доступен всем и бесплатно, без существенных ограничений на текущий момент. Единственное ограничение, которое я пока обнаружил – отправка на сервер группы значений для одного контроллера не может быть чаще одного раза в минуту. Но на количество значений для каждого контроллера и на количество контроллеров ограничений вроде бы нет. Отправка данных на сервер осуществляется простым get-запросом, реализация на ArduinoIDE у меня заняла не более часа. В отличие от ThingSpeak сохраненные данные можно просматривать на одном графике (с наложением), а также настраивать некий dashboard для вывода последних значений. Так же можно просматривать сохраненные значения в виде простой таблицы.

Плюсы : простое использование на ESP, удобный интерфейс, почти нет ограничений

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

beebotte

На главной странице этого сервиса написано следующее: “подключение всего и вся в режиме реального времени с использованием богатого API, поддерживающего REST, WebSockets и MQTT”. Лично я этот сервис пока не использовал. Судя по тому что я понял из описания, это дикая смесь mqtt брокера и thingspeak.com. В бесплатном режиме количество каналов и ресурсов не ограничено, но ограничено количество сообщений: 0.05 Million per day | 1.5 Million per month. Для хранимых сообщений лимиты еще меньше: 5 000 per day | 150 000 per month. Кроме того, сообщения хранятся только максимум три месяца, после чего удаляются. То есть погоду за весь год не посмотришь. Про мобильный клиент для смартфона мне пока ничего не известно. Зарегистрировался. Буду пробовать. Выводы делать пока рано.

Blynk

Активно продвигаемый сервис для удаленного управления “умными устройствами”. Я бы даже сказал, агрессивно – во все форумы пишут, где надо и где не надо. В целом, на мой лично взгляд, эта платформа не для любителей, а скорее для бизнеса. На “бесплатном режиме” дается очень мало ресурсов, разве что помигать светодиодиком или включить одно реле. В общем я один раз попробовал – и забросил, сразу ресурсы и кончились. Слишком жадные.

Плюсы : не нашел

Минусы : жадюги, мобильный клиент только один

Пока на этом все. Если Вы знаете другие способы управления ESP удаленно (обязательно с “мобилы”) – пожалуйста, напишите мне . Обсудим и, возможно, дополним статью.

Вспоминая в прежние времена, когда библиотека Wire все еще была «сырой», платформа Arduino была просто микроконтроллером с некоторой обвязкой. Теперь у нас есть одноплатные компьютеры и дешевые микроконтроллеры со встроенным Wi-Fi вроде ESP32. Тем не менее, всегда есть потребность сделать программирование и разработку встраиваемых систем более доступной и более широко поддерживаемой среди сотен устройств, доступных сегодня.



Так, недавно на конференции Embedded Linux Conference основатель Arduino Массимо Банци (Massimo Banzi) объявил о начале того, что будет ответом Arduino на облачную концепцию – онлайн среду разработки и обширную экосистему подключенных устройств. Все это носит название Arduino Create и представляет собой онлайн IDE, которая позволяет любому разработчику создавать проекты встраиваемых систем и управлять ими удаленно.


Как было продемонстрировано в презентации Массимо, основная идея Arduino Create заключается в том, чтобы вывести подключаемые устройства в Интернет и обеспечить удаленное программирование и прошивку «по воздуху». Поскольку это экосистема Arduino, то для того, чтобы сделать это возможным, было задействовано большое количество библиотек, доступных для сотен различных платформ. В настоящее время поддерживается большое количество плат, включая Raspberry Pi, BeagleBone и несколько плат Intel IoT.


Основное внимание в этой разработке является платформенной независимости и почти полностью сосредоточено на простоте использования и функциональной совместимости. Это заметное изменение относительно экосистемы Arduino, которая была, например, пять лет назад, когда платы Arduino в большинстве своем основывались на микроконтроллерах ATmega328p. Несколько лет спустя уже можно было программировать и записывать скетчи Arduino в микроконтроллеры ATtiny85. С тех пор многое изменилось. У нас теперь есть Raspberry Pi, компания Intel успела засветиться на рынке Интернета вещей, в конце концов, у нас есть миллион плат на базе процессоров и систем-на-кристалле (SoC) для смартфонов.


В то время как другие компании и организации уже внесли свой вклад в онлайн-среду для Raspberry Pi и других одноплатных компьютеров, то что представил Массимо Банци наконец-то явилось долгожданным и значимым изменением со стороны организации Arduino.


Для тех, кто хочет посмотреть выступление Массимо Банци, предоставляется видео.

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

Модуль ESP8266 будет сконфигурирован как клиент для подключения к точке доступа WiFi. Точка доступа должна обладать выходом в интернет. Библиотека RemoteXY обеспечит регистрацию устройства на облачном сервере.

Мобильное приложение будет подключаться к облачному серверу, а не к устройству напрямую. Таким образом устройство будет доступно из любой точки сети интернет.

Примечание: В данный момент подключение через облачный сервер проходит этап тестирования. По этому возможны перебои в работе сервера.

Шаг 1. Создайте проект графического интерфейса

Шаг 5. Настройте ESP8266

Модуль ESP8266 нуждается в настройке. Возможно ваш модуль уже имеет необходимые настройки по умолчанию, но лучше это проверить.

Что необходимо проверить:

  • Модуль имеет прошивку с поддержкой AT команд версии не ниже v0.40;
  • Модуль настроен на скорость работы 115200.

Шаг 6. Подключите ESP8266 к Arduino Uno

Подключите ESP8266 к Arduino Uno по схеме приведенной ниже. Обратите внимание, что контакты RX-TX соединяются перекрестием.

Так как уровни сигналов модуля ESP8266 составляют 3.3В а у Arduino они 5В, необходимо использовать резистивный делитель напряжения для преобразования уровня сигнала.


Шаг 7. Загрузите скетч в Arduino.

Скетч загружается в Arduino обычным способом. Однако из за того что модуль ESP8266 подключен к контактам 0 и 1, программирование становится невозможным. Компилятор будет показывать ошибку.

Перед программированием отсоедините провода идущие к ESP8266 от контактов 0 и 1. Произведите программирование. Затем верните контакты на место. Нажмите кнопку сброса Arduino.

Примечание: Первый признак того, что программирование прошло успешно, это мерцание синего светодиода на модуле ESP8266 сразу после сброса. Мерцание синего светодиода означает обмен данными между Arduino и ESP8266. В эти полсекунды Arduino производит настройку ESP8266 для подключения к точке доступа. Через некоторое время светодиод снова моргнет, что означает попытку зарегистрироваться на облачном сервере RemoteXY.

Шаг 8. Подключитесь с мобильного приложения.

Проверьте питание ESP8266

Так же возможно, что вашей ESP8266 не хватает мощности источника питания. Некоторые платы Arduino имеют слабый стабилизатор напряжения 3.3 В, который не способен выдавать 200-300 мА в пиковых режимах. В этом случае в Serial Monitor вы так же увидите обрыв последовательности команд.

Я много думал о том, чтобы найти недорогое решение для подключения и управления Arduino через интернету без использования какого-либо Ethernet экрана или даже любого модуля WI-FI. После исследования я обнаружил, что единственный способ взаимодействия с микроконтроллером Arduino - это его последовательный порт (serial port), поэтому я создал простое оконное приложение C# в качестве хаба (HUB) для работы с последовательным портом для отправки и приема данных на плату.

Это HUB-приложение уже подключено к Интернету через ваш персональный компьютер и помогает отправлять и получать данные между микроконтроллером и облачной базой данных, помимо хранения самих данных в онлайн-базе MySQL.

Прежде всего мне пришлось начать с небольшого примера, который позволяет мне протестировать применение идеи. В этом примере я не подключил какой-либо датчик, я использовал только встроенный светодиод на Arduino, чтобы я мог включать и выключать светодиодный индикатор на выводе 13, отправив буквы «I» и «O» на последовательный порт.

Int input; //Будет хранить входящий символ из последовательного порта. int led = 13; // Pin 13 // функция настройки запускается один раз, когда вы нажимаете кнопку сброса или включаете питание int state; void setup() { // инициализировать цифровой вывод LED_BUILTIN в качестве выхода. Serial.begin(9600); pinMode(led, OUTPUT); // Установите контакт 13 как цифровой выход Serial.flush(); } // функция цикла работает снова и снова всегда void loop() { // String input = ""; // while (Serial.available() > 0) // { // input += (char) Serial.read(); // delay(5); // } state = digitalRead(led); if (Serial.available()) { input = Serial.read(); if (input == "I") { //digitalWrite(led, !digitalRead(led)); digitalWrite(led, HIGH); Serial.println(1); delay(1000); } else if (input == "O") { digitalWrite(led, LOW); Serial.println(0); delay(1000); } else if (input == "T") { analogRead(led); Serial.println(0); delay(1000); } } }

Шаг 2. Создание онлайн-базы данных

Для хранения данных мы должны использовать "онлайн-посредник", который послужит мостом между платой Arduino и нашим HUB-приложением. Поэтому мы выбрали бесплатный хостинг Баз Данных, который будет работать в направлении сохранения данных, полученных от платы Arduino и отправленных команд на неё.

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

В качестве хостинга можно выбрать сайт freemysqlhosting.net. Онлайн PHP MyAdmin можно найти по ссылке - phpmyadmin.co . Больше информации можно также найти на сайте phpmyadmin.net.

Шаг 3. Создание C# хаба

На этом шаге мы создадим хаб, который можно рассматривать как входной фильтр на ПК, чтобы сначала передать данные, проходящие через него, затем отправить их на плату Arduino через последовательный порт и наоборот.

Интерфейс этого хаба очень прост, он содержит только два текстовых поля, которые показывают статус каждой "транзакции", передает данные хаба (отправка и получение).

Примечание. Хаб должен быть всегда запущен, когда вы хотите работать со своей платой Arduino через интернет.

Шаг 4. Создаем web-интерфейс

Наконец-то мы дошли до самой крутой части урока.

Я создал веб-приложение на основе технологии Asp.net C# с адаптивным интерфейсом, которое может работать на любом устройстве, это веб-приложение имеет дело только с онлайн-базой данных и не знает, что на другой стороне есть какая-то плата.

С помощью этого интерфейса вы можете классифицировать свои электронные компоненты, подключенные к Arduino. Щелкая мышью, включая и выключая их, вы просто храните данные онлайн.

Пример

Нажав зеленую кнопку (ON) в разделе «Гостиная» (Hall - выше на рисунке), вы отправляете указание через Интернет включить свет в гостиной вашего дома. Таким образом, хаб, который может находиться на другой стороне мира, принимает указание и обрабатывает его с помощью электронной цепи основанной на Arduino в вашем доме.

Protected void BtnHallOn_Click(object sender, EventArgs e) { AddTempOrders("I"); // sending letter "I" to Arduino to open Hall light }

Шаг 5. Скачиваем проект

Пришло время попробовать всё самому и сделать свой собственный проект.

Надеюсь, вам всё это пригодится. Желаю вам отличных проектов!

В прошлом году компания Microsoft анонсировала облачный бэкенд для управления умными приборами и интегрированной электроникой. Azure IoT Hub позволяет с минимумом программирования настраивать взаимодействие между устройствами и встраивать его в свои проекты на основе Azure. Чтобы посмотреть, как это работает, мы разберем простую задачу - отправку в облако показаний датчика, подключенного к контроллеру Arduino.

Итак, перед нами простейший прибор. Он состоит из контроллера, небольшой макетной платы, фоторезистора (датчика света) и стабилизирующего резистора. В качестве контроллера используется Genuino MKR1000 со встроенным Wi-Fi - если хочешь такой же, то он обойдется в 35 долларов. Питается плата от micro-USB.


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



Девайс шлет данные в IoT Hub, где, пройдя через сервис Stream Analytics, они попадают в базу данных и обрабатываются при помощи Power BI. Со всеми этими вещами мы разберемся чуть позже, а пока давай начнем с основ.

INFO

В конце статьи есть исходники получившегося проекта. Не забудь посмотреть их, если планируешь сделать что-то похожее.

IoT Hub официально переводится на русский как «Центр интернета вещей». Он может как получать данные с устройств, так и отправлять им сообщения или команды.

Кроме IoT Hub, взаимодействовать с устройствами может и еще один сервис под названием Event Hub («концентратор событий»). Он отличается большей пропускной способностью, но шлет сообщения только в одном направлении - от устройства в облако. IoT Hub поддерживает такие протоколы, как MQTT, MQTT через WebSocket, AMQP, AMQP через WebSocket и HTTP. Event Hub поддерживает AMQP, AMQP через WebSocket и HTTP. Подробнее о разнице между хабами и о том, как использовать их вместе, можешь прочитать на сайте Microsoft. Мы же изучим IoT Hub (он поинтереснее).