Inhoudsopgave:
- Stap 1: Wat is MQTT?
- Stap 2: MQTT Broker installeren op Raspberry Pi
- Stap 3: Verbind IOT Cricket met RaspberryPi via MQTT
- Stap 4: MQTT-berichten inspecteren
- Stap 5: Samenvatting
- Stap 6: Over ons
Video: Ultra-low Power WiFi-huisautomatiseringssysteem - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
In dit project laten we zien hoe je in een paar stappen een basis lokaal domoticasysteem kunt bouwen. We gaan een Raspberry Pi gebruiken die zal fungeren als een centraal wifi-apparaat. Terwijl we voor eindknooppunten IOT Cricket gaan gebruiken om wifi-apparaten op batterijen te maken, b.v. temperatuursensor en sluit deze aan op de RPi zonder een enkele regel code te schrijven.
Ons systeem zal gebaseerd zijn op het MQTT-communicatieprotocol, dat enorm wordt toegepast in de meeste domoticasystemen. Om het in te stellen kiezen we Mosquitto MQTT broker (server) en installeren het op Raspberry Pi (onze centrale hub).
IOT Cricket wordt ook geleverd met ondersteuning voor HTTP(S) en MQTT-protocollen. We configureren het om MQTT te gebruiken om rechtstreeks met onze RPi MQTT-makelaar te communiceren.
Dit project kan worden gerealiseerd door makers op alle vaardigheidsniveaus. Het kan wat elementair solderen vereisen, maar het vereist geen codering of programmering. Aan het einde van dit project krijgt u een goed idee hoe u eenvoudig uw eigen systeem kunt bouwen en snel kunt uitbreiden door uw eigen IOT-eindknooppunten aan het systeem toe te voegen.
Benodigdheden:
- Raspberry Pi (we gebruikten versie 3 voor dit project)
- IOT Cricket WiFi-module
- 2xAAA-batterijhouder
- 2xAAA-batterijen
Stap 1: Wat is MQTT?
Het MQTT-protocol biedt een lichtgewicht methode om berichten uit te voeren met behulp van een publish/subscribe-model. Dit maakt het geschikt voor Internet of Things-berichten, zoals sensoren met een laag vermogen of mobiele apparaten zoals telefoons, embedded computers of microcontrollers. (bron: mug.org)
We kunnen zoveel apparaten gebruiken als we willen om ons te abonneren op onderwerpen en te luisteren naar berichten die binnenkomen. Als sommige apparaten een bericht over dat onderwerp publiceren, ontvangen alle apparaten die op het onderwerp zijn geabonneerd dat bericht onmiddellijk. Het onderwerp kan elke willekeurige tekenreeks zijn, meestal aaneengeschakeld met / tekens om hiërarchische onderwerpen te bouwen. Het meest typische gebruik van MQTT is om één centrale server te hebben waarop apparaten zich kunnen abonneren en berichten kunnen publiceren. Het vergemakkelijkt alle communicatie tussen apparaten die op die server zijn aangesloten. In dit project zullen we RPi gebruiken om op te treden als onze centrale MQTT-makelaar en alle andere apparaten zullen berichten via deze makelaar verzenden. De beste manier om het te leren, is natuurlijk door het zelf te doen. Er zijn tal van bronnen beschikbaar op internet op MQTT. Voor dit project zou je echter in orde moeten zijn met een basisintroductie, die we hierboven hebben gegeven.
Stap 2: MQTT Broker installeren op Raspberry Pi
Voor dit project gebruiken we een open source Mosquitto MQTT-makelaar. Het is lichtgewicht en geschikt voor gebruik op alle apparaten, van low power single board computers tot volledige servers.
Voordat we beginnen met installeren, is het een goede gewoonte om eerst de systeemcomponenten bij te werken:
$ sudo apt-get update$ sudo apt-get upgrade
Installeer Mosquito-makelaar. Open een terminal en typ het volgende commando:
$ sudo apt-get install mug -y
Configureer Mosquito-makelaar. Configuratiebestand bewerken:
$ sudo vi /etc/mosquitto/mosquitto.conf
en voeg bovenaan de volgende regels toe:
port 1883allow_anonymous true
Start RPi opnieuw om wijzigingen toe te passen:
$ sudo opnieuw opstarten
Dat is het! Onze MQTT-makelaar is nu in gebruik!
OPMERKING: omwille van de eenvoud van dit project maken we geen accounts aan. Dus iedereen binnen ons lokale netwerk kan zonder inloggegevens verbinding maken met deze MQTT-makelaar. Als u gebruikersauthenticatie wilt toevoegen en het veiliger wilt maken, zijn er tal van tutorials op internet hoe u dit moet doen.
Nu moeten we alleen het IP-adres verkrijgen, zodat we berichten naar onze Mosquitto-makelaar kunnen sturen vanaf andere apparaten in het netwerk:
IP-adres verkrijgen:
$ hostnaam -I
uw_RPi_IP_adres (bijv. 192.168.1.10)
Stap 3: Verbind IOT Cricket met RaspberryPi via MQTT
In dit project gebruiken we de IOT Cricket WiFi-module voor een eenvoudige sensor die elke 30 seconden een temperatuur meldt aan ons systeem. Hij werkt op een batterij, zodat we hem overal in huis of in de tuin kunnen plakken. Later kunt u IOT Cricket gebruiken om verschillende op batterijen werkende sensoren, alarmen, knoppen en schakelaars te bouwen en deze ook direct aan te sluiten op onze RPi MQTT-makelaar.
Sluit in de eerste stap de batterijen aan op Cricket.
Cricket wordt geleverd met een ingebouwde temperatuursensor. We hoeven het alleen maar te configureren om de temperatuurwaarde naar onze MQTT-makelaar te sturen door het RPi IP-adres in te stellen. Open hiervoor het configuratiepaneel van Cricket (zie de stappen hier) en pas de volgende instellingen toe (zoals weergegeven in de onderstaande afbeelding, alstublieft pas het IP-adres in het vak "url" aan uw RPi aan)
Nu kunnen we de configuratiemodus verlaten. Het apparaat is klaar! Cricket stuurt al elke 30 seconden gegevens naar onze MQTT-makelaar.
Stap 4: MQTT-berichten inspecteren
Voor het bekijken/ontvangen van berichten die naar onze MQTT-makelaar zijn verzonden, kunnen we verschillende tools gebruiken.
De eenvoudigste is misschien een opdrachtregeltool mosquitto_sub. We kunnen het op elke computer in ons netwerk of op onze RPi installeren met deze opdracht:
$ sudo apt-get install mosquitto-clients -y
Nu kunnen we de volgende opdracht uitvoeren om te luisteren naar ALLE onderwerpen en berichten die via onze MQTT-makelaar zijn verzonden:
$ mosquitto_sub -v -h uw_RPi_IP_address -p 1883 -t '#'
… / 59A98F494C / device_name MyTemperatureDev / 59A98F494C / device_sn 59A98F494C / 59A98F494C / hwc_wake_up 3794 / 59A98F494C / hwc_wifi_enabled 3763 / 59A98F494C / hwc_message_sent 3664 / 59A98F494C / temp 26,0 / 59A98F494C / io1_wake_up 0 / 59A98F494C / rtc_wake_up 1 …
Het bovenstaande is een uitvoervoorbeeld van wat IOT Cricket naar onze makelaar stuurt. Onder de andere gegevens die we kunnen zien, is er een temperatuur:
/59A98F494C/temp 26.0
Het mooie van MQTT is dat we ons kunnen abonneren op alleen onderwerpen waarin we geïnteresseerd zijn. Als we alleen een temperatuur willen ontvangen, kunnen we ons abonneren op /59A98F494C/temp onderwerp door het volgende commando te gebruiken:
$ mosquitto_sub -h uw_RPi_IP_address -t '/59A98F494C/temp'
…26.126.527.227.6…
Stap 5: Samenvatting
We hebben in dit project essentiële hardware en software laten zien om te beginnen met het bouwen van energiezuinige, energiezuinige domoticasystemen op basis van wifi. MQTT is de essentie om op voort te bouwen voor meer geavanceerde systemen.
Het ecosysteem van software en services die kunnen worden geïntegreerd met MQTT is ENORM! Er zijn veel geweldige systemen zoals Home Assistant, Node RED, Grafana, etc. waarmee je een geweldige gebruikerservaring van je eigen systeem kunt bedenken. We kunnen niet alleen een eenvoudige afdruk van een temperatuur maken, maar we kunnen ook geweldige dashboards hebben die de gegevens visualiseren en uw apparaten beheren.
Nu we deze basissysteeminfrastructuur hebben, is de lucht onze limiet van wat andere wifi-apparaten we kunnen bouwen met IOT Cricket-modules en toevoegen aan ons domoticasysteem.
Bedankt dat je hier bent gekomen. We hopen dat je genoten hebt van deze tutorial!
Things On Edge-team
Stap 6: Over ons
Things On Edge is een bedrijf gevestigd in Cambridge, VK. We ontwerpen een Cricket Wi-Fi-module met een ultralaag batterijvermogen, zodat u verschillende elektronische apparaten letterlijk in enkele minuten kunt verbinden met smartphones of andere internetdiensten. Het vereist geen programmering en codering. Hiermee kunt u uw apparaten integreren in een enorm IOT-ecosysteemservices via MQTT en
Aanbevolen:
ESP8266 RGB LED STRIP WIFI-bediening - NODEMCU Als een IR-afstandsbediening voor ledstrip, bestuurd via wifi - RGB LED STRIP Smartphone-bediening: 4 stappen
ESP8266 RGB LED STRIP WIFI-bediening | NODEMCU Als een IR-afstandsbediening voor ledstrip, bestuurd via wifi | RGB LED STRIP Smartphone-bediening: Hallo allemaal, in deze tutorial zullen we leren hoe we nodemcu of esp8266 kunnen gebruiken als een IR-afstandsbediening om een RGB LED-strip te bedienen en Nodemcu zal worden bestuurd door smartphone via wifi. Dus in principe kun je de RGB LED STRIP bedienen met je smartphone
Ontwerp van een High Power PDB (Power Distribution Board) voor een Pixhawk: 5 stappen
Ontwerp van een High Power PDB (Power Distribution Board) voor een Pixhawk: een PCB om ze allemaal van stroom te voorzien! Momenteel zijn de meeste materialen die je nodig hebt om een drone te bouwen goedkoop verkrijgbaar op internet, dus het idee om een zelfontwikkelde PCB te maken is het helemaal niet waard, behalve een paar gevallen waarin je een rare en
Van Power Bar naar Power Bank: 7 stappen (met afbeeldingen)
Van Power Bar tot Power Bank: deze Instructable laat je zien hoe je mijn favoriete powerbar (Toblerone) kunt transformeren naar een powerbank. Mijn chocoladeconsumptie is enorm, daarom heb ik altijd pakjes chocoladerepen rondslingeren, wat me inspireert om iets creatiefs te doen. Dus ik eindigde met
Ultra TV-B-Gone: 5 stappen (met afbeeldingen)
Ultra TV-B-Gone: Deze TV-B-Gone gebruikt een 9V-batterij om zijn signaal door een matrix van 20 IR-LED's te sturen. Dit vergroot het werkbereik van het apparaat tot ongeveer 90ft (zichtlijn). Als je dit in een kamer van normale grootte gebruikt, ben je vrijwel gegarandeerd dat je de tv doodt, ongeacht
Ultra draagbare microvezel schermreiniger (laptop/notebook): 4 stappen
Ultra Portable Microfiber Screen Cleaner (laptop/notebook): Ik ben gewend om veel van mijn tools en dergelijke te verliezen, dus het idee kwam bij me op waarom ik geen Ultra Portable Microfiber Screen Cleaner voor een laptop zou maken die in mijn pc-kaartsleuf past. Dit idee kan worden toegepast op elke pc-kaartsleuf op elke laptop die dit slechts