Deze bibliotheken helpen u bij uw IoT-ontwikkeling.
U hebt meer nodig dan bibliotheken voor een IoT-systeem
Afhankelijk van wat u wenst, stelt u verschillende eisen aan uw IoT-implementatie. Als je het wilt gebruiken om je huis te automatiseren, kom je weg met heel weinig om het draaiende te krijgen. Nadat u uw specifieke hardware heeft ondersteund, moet u nadenken over de protocollen die u gaat gebruiken.
Voor meer geavanceerde projecten heeft u een server nodig die uw gegevens verzamelt, analyseert en presenteert. Nou, daar heb je binnen de uitgebreide clouddiensten hele diensten voor, tegen een prijs natuurlijk. Er zijn oplossingen die u zelf kunt maken en ontwerpen, onafhankelijk van uw cloudprovider. Wat u moet ondersteunen, zijn protocollen.
Deze protocollen verwerken berichten volgens een publish-subscribe-model, waardoor het zeer efficiënt is voor kleine pakketjes berichten. Precies wat uw IoT-oplossingen moeten doen. Als je video streamt, hebben we het over verschillende diensten.
MQTT - U hebt dit nodig om uw gegevens van uw microcontrollers naar servers te verzenden. U kunt uw eigen server starten met Mosquitto, een open-source berichtenmakelaar. Je kunt dit op alles zetten, van een computer met één bord tot een cloudserver.
SMQ - Dit is een beveiligde versie van MQTT.
Voor het omgaan met radio heb je iets nodig dat extreem weinig stroom nodig heeft. Om dit op te lossen, kunt u het gepatenteerde LoRa-protocol gebruiken dat eigendom is van Semtech. Er zijn veel borden en gateways om dit te bereiken. Merk op dat je ook wifi kunt gebruiken, maar zorg ervoor dat je apparaat dit ondersteunt en houd rekening met de stroom die het vereist.
Hier zijn enkele links naar bibliotheken die LoRa/LoRaWAN gebruiken:
- https://github.com/dragino/arduino-lmic
- https://github.com/IOT-MCU/LoRa-Radio-Node-v1.0
Een open-source alternatief voor LoRa is DASH7; u kunt hier hardware- en andere informatie vinden, en ontwikkelkits van WizziLab.
Meer volgers gebruiken de SigFox-borden en -bibliotheken voor low-power wide-area netwerken. Merk op dat dit een netwerk met zich meebrengt dat lijkt op een mobiele operator en direct contact met de cloud.
Protocolbibliotheken
Voor elk van de protocollen heb je bibliotheken nodig. Gewoonlijk krijgt u documentatie van de hardware die u koopt. Misschien wilt u er echter meer over lezen voordat u iets koopt. Er zijn ook bibliotheken voor de serverkant, dus houd er rekening mee dat je wilt weten of het mogelijk is om een cloudservice te gebruiken. U wilt er namelijk zeker van zijn dat het mogelijk is om uw project ZONDER een cloudverbinding uit te voeren. Voor het automatiseren van uw kas hoeft u deze mogelijk niet via internet te bedienen.
LoRA-bibliotheken
LoRa heeft zijn eigen alliantie, waar je de specificaties en andere dingen kunt doorzoeken. Je kunt een bibliotheek voor een node vinden op https://github.com/Lora-net/LoRaMac-knooppunt. Dit is een standaard die bedoeld is om een netwerk te gebruiken dat vergelijkbaar is met de mobiele mobiele netwerken die we allemaal graag haten. U kunt echter uw eigen gateway instellen en deze verbinden met een lokale server.
DASH7-bibliotheken
DASH7 is ook een alliantie, meer gericht op industriële toepassingen. Je kunt het nog steeds gebruiken voor je thuisprojecten, omdat het volledig open source is. Er is een goede bibliotheek op https://github.com/MOSAIC-LoPoW/dash7-ap-open-source-stack. Gebruik het om een node te laten draaien die thuis een paar apparaten afhandelt. Als je zo gebogen bent, is er ook ondersteuning voor Python: https://github.com/MOSAIC-LoPoW/pyd7a!
MQTT-bibliotheken
MQTT is een van de meest gebruikte protocollen in de IoT-ruimte. Het komt van een eigen protocol dat is vrijgegeven als gratis software. Hier vind je veel informatie. Een clientbibliotheek voor gebruik op de ESP32 en ESP8266 is beschikbaar en actief op GitHub: https://github.com/plapointe6/EspMQTTClient
SMQ-bibliotheken
SMQ heeft de meeste ondersteuning van Relatimelogic, een in Californië gevestigd bedrijf dat veel advies geeft. Ze hosten verschillende repositories op GitHub: https://github.com/RealTimeLogic/SMQ/. Je kunt dit klonen en op je eigen systeem compileren. Ze bieden ook een IDE en compiler als een virtueel apparaat (OVF-bestand)!) zodat u al uw codering in die VM kunt doen.
SigFox
SigFox beheert zijn eigen netwerk waarmee u verbinding kunt maken. Ze hebben een Arduino-bibliotheek op de Arduino-site: https://www.arduino.cc/en/Referentie/SigFox
Hardwarebibliotheken
Zoals eerder vermeld, moet u eerst uw hardware kiezen en vervolgens de bibliotheken vinden die bij uw hardware passen.
Kaders
Als je het serieus neemt, wil je misschien alles verbinden met een of andere cloud. Hier zijn een paar suggesties.
Dingenbord
Thingsboard biedt een cloudservice waar je al je services en data kunt hosten. De professionele editie begint bij $ 10 per maand, maar je kunt de community-editie installeren op Ubuntu, CentOS en meer. Docker-instanties zijn ook beschikbaar op hun website. Je kunt de bron ook klonen vanuit GitHub.
ApparaatHive
DeviceHive heeft servers, clientbibliotheken en veel voorbeeldprojecten op hun GitHub-pagina.
MainFlux
Mainflux is niet minder lid van de Linux Foundation! Dus ze hebben hier een vermelding nodig. Bekijk hun volledig open-source aanbod! Het is een adviesbureau, dus de webpagina ziet er professioneel uit en heeft veel inhoud.
Knooppunt-RED
Als u een webontwikkelaar bent, onthoud dan het belangrijkste raamwerk voor het werken in Node.js. Gebruik het om de logica en verwerking te creëren. https://nodered.org/
Conclusie
Neem voordat je aan een IoT-project begint even de tijd om na te denken over het totale systeem; Ga je iets kleins regelen in je eigen huis of tuin, of mik je hoger en verder. Er zijn veel manieren om uw zelfbewaterende plant aan te sluiten op een cloudservice, maar is dat wat u zoekt??