Вся идея Интернета вещей (IoT) заключается в том, чтобы иметь множество небольших устройств, которые собирают данные и контролируют окружающую среду вокруг них, и все это при подключении. Кроме того, с возможностью возврата небольших объемов данных в облако. Одним из примеров является домашняя автоматизация, в которой у вас может быть свой сервер на Raspberry Pi для сбора всех данных и выполнения расчетов или принятия решений.
Эти библиотеки помогут вам в развитии Интернета вещей.
В зависимости от того, чего вы хотите, у вас будут разные требования к развертыванию Интернета вещей. Если вы хотите использовать его для автоматизации своего дома, вам очень мало сойдет с рук, чтобы заставить его работать. После поддержки вашего конкретного оборудования вам нужно будет подумать о протоколах, которые вы будете использовать.
Вам понадобится сервер, который собирает, анализирует и представляет ваши данные для более сложных проектов. Что ж, у вас есть для этого целые услуги в рамках обширных облачных сервисов, конечно, по цене. Существуют решения, которые вы можете создавать и разрабатывать самостоятельно, независимо от вашего облачного провайдера. Что вам нужно для поддержки, так это протоколы.
Эти протоколы обрабатывают сообщения по модели публикации-подписки, что делает ее очень эффективной для небольших пакетов сообщений. Именно то, что должны делать ваши решения IoT. Если вы транслируете потоковое видео, мы говорим о разных сервисах.
MQTT — вам нужно это для отправки данных с микроконтроллеров на серверы. Вы можете запустить свой собственный сервер с помощью Mosquitto, брокера сообщений с открытым исходным кодом. Вы можете установить это на что угодно, от одноплатного компьютера до облачного сервера.
SMQ — это безопасная версия MQTT.
Для работы с радио вам понадобится что-то, что требует очень низкого энергопотребления. Чтобы решить эту проблему, вы можете использовать проприетарный протокол LoRa, принадлежащий Semtech. Для этого существует множество плат и шлюзов. Обратите внимание, что вы также можете использовать Wi-Fi, но убедитесь, что ваше устройство поддерживает его, и учитывайте требуемую мощность.
Вот несколько ссылок на библиотеки, использующие LoRa/LoRaWAN:
Альтернативой LoRa с открытым исходным кодом является DASH7; здесь вы можете найти оборудование и другую информацию, а также комплекты средств разработки от WizziLab.
Все больше последователей используют платы и библиотеки SigFox для маломощных глобальных сетей. Обратите внимание, что это влечет за собой сеть, аналогичную сети оператора мобильной связи, и прямой контакт с облаком.
Для каждого из протоколов вам потребуются библиотеки. Обычно вы получаете документацию по приобретенному вами оборудованию. Однако вы можете узнать об этом больше, прежде чем делать какие-либо покупки. Существуют также библиотеки для серверной части, поэтому имейте в виду, что вы хотите знать, можно ли использовать облачный сервис. В самом деле, вы хотите убедиться, что ваш проект можно запускать БЕЗ подключения к облаку. Для автоматизации теплицы может не потребоваться управление ею через Интернет.
У LoRa есть свой альянс, где вы можете покопаться в его спецификациях и прочем. Вы можете найти библиотеку для узла на https://github.com/Lora-net/LoRaMac-node. Это стандарт, предназначенный для использования сети, аналогичной сетям мобильной сотовой связи, которые мы все ненавидим. Однако вы можете настроить свой собственный шлюз и подключить его к локальному серверу.
DASH7 — это также альянс, ориентированный больше на промышленные приложения. Вы все еще можете использовать его для своих домашних проектов, поскольку он полностью открыт. По адресу https://github.com/MOSAIC-LoPoW/dash7-ap-open-source-stack есть хорошая библиотека.. Используйте его, чтобы запустить узел, который обслуживает несколько домашних устройств. Если вы так склонны, есть также поддержка Python: https://github.com/MOSAIC-LoPoW/pyd7a !
MQTT — один из наиболее часто используемых протоколов в пространстве Интернета вещей. Он исходит из проприетарного протокола, выпущенного как бесплатное программное обеспечение. Здесь вы можете найти много информации. Клиентская библиотека для использования на ESP32 и ESP8266 доступна и активна на GitHub: https://github.com/plapointe6/EspMQTTClient
Наибольшую поддержку SMQ оказывает Relatimelogic, калифорнийская компания, которая оказывает много консультационных услуг. Они размещают несколько репозиториев на GitHub: https://github.com/RealTimeLogic/SMQ/. Вы можете клонировать это и скомпилировать в своей собственной системе. Они также предоставляют IDE и компилятор в виде виртуального устройства (файл OVF!), Так что вы можете делать все свое кодирование на этой виртуальной машине.
SigFox управляет собственной сетью, к которой вы можете подключиться. У них есть библиотека Arduino на сайте Arduino: https://www.arduino.cc/en/Reference/SigFox
Как упоминалось ранее, вам нужно сначала выбрать свое оборудование, а затем найти библиотеки, подходящие для вашего оборудования.
Когда вы серьезно относитесь к этому, вы можете захотеть связать все это с каким-то облаком. Вот несколько предложений.
Thingsboard предлагает облачный сервис, в котором вы можете размещать все свои сервисы и данные. Профессиональная версия начинается с 10 долларов в месяц, но вы можете установить версию сообщества на Ubuntu, CentOS и другие. Экземпляры Docker также доступны на их веб-сайте. Вы также можете клонировать исходный код с GitHub.
DeviceHive имеет серверы, клиентские библиотеки и множество примеров проектов на своей странице GitHub.
Mainflux являются членами Linux Foundation, не меньше! Итак, здесь о них нужно упомянуть. Ознакомьтесь с их предложениями с полностью открытым исходным кодом! Это консалтинговая фирма, поэтому ее веб-страница выглядит профессионально и содержит много контента.
Если вы веб-разработчик, помните основную платформу для работы с Node.js. Используйте его для создания логики и обработки. https://nodered.org/.
Прежде чем начинать проект IoT, подумайте об общей системе; Собираетесь ли вы управлять чем-то маленьким в собственном доме или саду, или вы стремитесь все выше и выше. Есть много способов подключить ваше самополивающееся растение к облачному сервису, но это то, что вы ищете?