Inhoudsopgave:

SmartHome draadloze communicatie: de extreme basis van MQTT: 3 stappen
SmartHome draadloze communicatie: de extreme basis van MQTT: 3 stappen

Video: SmartHome draadloze communicatie: de extreme basis van MQTT: 3 stappen

Video: SmartHome draadloze communicatie: de extreme basis van MQTT: 3 stappen
Video: Сравнительное тестирование GU10 Zigbee лампочек, Tuya Smart, Ewelink, iHost, Home Assistant 2024, Juni-
Anonim
SmartHome draadloze communicatie: de extreme basis van MQTT
SmartHome draadloze communicatie: de extreme basis van MQTT
SmartHome draadloze communicatie: de extreme basis van MQTT
SmartHome draadloze communicatie: de extreme basis van MQTT

MQTT-basis:

**Ik ga een serie Domotica doen, ik zal de stappen doorlopen die ik heb genomen om alles te leren wat ik in de toekomst heb gedaan. Deze Instructable is de basis voor het instellen van MQTT voor gebruik in mijn toekomstige Instructables. De leringen in deze inhoud zijn echter van toepassing op elk project dat men zou willen aannemen.**

Internet van dingen:

Het internet der dingen neemt de wereld over, en vooral in gemeenschappen zoals de onze hier bij Instructables. Sinds ik lid ben geworden van deze community is het verankerd in het bouwen van mensen

Apparaten die zijn verbonden met en worden beheerd via internet. Bij het werken met Internet of Things is het moeilijk om niet aan het protocol MQTT te komen. Dit is een communicatieprotocol zoals andere dat tegenwoordig op internet wordt gebruikt, zoals HTTP of FTP, maar de manier waarop het werkt is anders, waardoor het ideaal is voor Internet of Things-toepassingen.

Wat is MQTT:

MQTT (Message Queuing Telemetry Transport is een lichtgewicht communicatieprotocol dat gebruik maakt van een architectuur voor publiceren/abonneren. HTTP, wat het grootste deel van het internet gebruikt, is gebouwd op een verzoek/antwoordsysteem. Dit betekent dat het een verzoek van een client ontvangt en een reactie op die klant. MQTT heeft ook een server (een broker genoemd) en veel klanten. In tegenstelling tot HTTP kunnen klanten met MQTT specifieke "onderwerpen" publiceren of zich erop abonneren. Dit zorgt voor een bredere communicatie via een centraal punt, de broker. Elk knooppunt kan publiceren naar een onderwerp op de broker, en elk knooppunt dat op dat onderwerp is geabonneerd, ontvangt het bericht. Klanten kunnen zich ook op meerdere onderwerpen abonneren en kunnen vervolgens meerdere richtlijnen of updates ontvangen.

Het hele systeem is gebeurtenisgestuurd en zorgt ervoor dat berichten van de broker naar elke geabonneerde klant kunnen worden gepusht. Dus in plaats van HTTP, waar de klant de informatie opvraagt, krijgt de klant de informatie direct van de makelaar na ontvangst. Er zijn ook services ingebouwd die verschillende beveiligingen mogelijk maken, zoals QOS-specificaties. Met een QOS-specificatie kan een makelaar bepalen of een bericht maximaal één keer, minimaal één keer of precies één keer moet worden afgeleverd. Dit zorgt ervoor dat gegevens op de gewenste manier aan elke klant worden geleverd. Klanten kunnen ook verzoeken dat gepubliceerde berichten naar hun onderwerp worden gebufferd in de broker voor het geval de verbinding om welke reden dan ook wordt verbroken. Zodra het weer online komt, worden die gegevens naar de klant gepusht.

Een onderwerp is niets bijzonders, het is gewoon een verscheidenheid aan strings die worden gecombineerd en gescheiden door schuine strepen. Het formaat in het onderstaande voorbeeld is het volgende: home/bedroom/ceiling_light. Elke schuine streep wordt na een onderwerp geplaatst om een subonderwerp aan te duiden. Er zou dus een bericht naar huis kunnen worden gepubliceerd, waar alle apparaten in huis het zullen ontvangen. Het kan rechtstreeks naar huis/slaapkamer worden gepubliceerd, waar alle apparaten in de slaapkamer het bericht zullen ontvangen. En het kan naar het specifieke apparaat gaan zoals eerst getoond huis/slaapkamer/plafondlamp waar alleen de plafondlamp in de slaapkamer het bericht ontvangt. De manier waarop we individuele apparaten zoals deze kunnen abstraheren tot een heel ecosysteem, is buitengewoon handig, vooral als het gaat om domotica. Er zijn nog meer manieren om onderwerpen op te splitsen, en ik zal daar in toekomstige Instructables verder op ingaan, waar de toepassing het meest logisch is.

Benodigdheden

Slechts een van de volgende is nodig:

Ubuntu:

Windows-subsysteem voor Linux: https://ubuntu.com/wsl (Alleen als je geen Linux/MacOS hebt)

MacOS: vereist een MacBook

Dit is vereist:

Mosquitto MQTT Broker - Gedownload met apt-get (Documentatie:

Stap 1: Eerste installatie (afhankelijk van uw besturingssysteem)

MacOS/Linux:

Geen installatie nodig, open gewoon uw terminal en ga naar Mosquitto Setup!

Ramen:

Als u Windows gebruikt, moet u het Windows-subsysteem voor Linux installeren. Dit is een super eenvoudig te gebruiken en uiterst waardevolle tool waarmee u een Ubuntu-terminal binnen Windows kunt uitvoeren. U hoeft Ubuntu niet te installeren en dual-boot alleen om de ontwikkeling in de terminal te testen!

Installatiestappen:

1. Ga naar de Windows Store en zoek naar ubuntu

2. Download en installeer het Windows-subsysteem voor Linux

3. Open de applicatie en volg de instructies om de installatie te voltooien en je bent klaar om verder te gaan!

Stap 2: Mosquito-installatie:

Muggenopstelling
Muggenopstelling
Muggenopstelling
Muggenopstelling
Muggenopstelling
Muggenopstelling

Dus zoals besproken in de inleiding over MQTT, vereist het protocol een broker (server). Deze makelaar is het basispunt voor alle tot stand gebrachte verbindingen met elke klant. Alle berichten worden doorgegeven en in de wachtrij geplaatst in deze makelaar. Er zijn veel opties om uit te kiezen voor een makelaar, en je kunt deze online vinden, maar degene die we zullen gebruiken is waarschijnlijk de meest voorkomende: Mosquitto.

Mosquitto is een op Linux gebaseerde MQTT-makelaar met heel veel functionaliteit. Ik zal nu niet ingaan op de details van die functionaliteit, maar een paar basisvereisten waaraan het voldoet, zijn gebruikers- / wachtwoordauthenticatie en ondersteuning voor TLS-codering, die allemaal nuttig zijn bij de ontwikkeling van Internet of Things-apparaten.

Stappen:

Al deze stappen moeten in een terminalvenster worden voltooid.

1. Installeer Mosquitto- en MQTT-clients

sudo apt-get install mosquitto mosquitto-clients

2. Abonneer je op een onderwerp

mosquitto_sub -t "test"

Wat dit doet, is zich abonneren op een onderwerp. Dit onderwerp wordt aangeduid met "-t" en de waarde van het onderwerp is "test". Deze waarde na de "-t" kan van alles zijn, behalve een paar speciale reserveringen.

3. Open een nieuw terminalvenster en publiceer een bericht naar het onderwerp "test"

mosquitto_pub -t "test" -m "Hallo wereld met MQTT!"

Dit publiceert een bericht naar het onderwerp "test", waardoor onze andere terminalinstantie het bericht aan de abonnementszijde kan ontvangen. Het gepubliceerde bericht wordt aangeduid met een "-m" en de berichtwaarde is "Hello World With MQTT". Dit bericht kan, net als het onderwerp, worden gewijzigd in wat je maar wilt!

4. Ga naar het eerste terminalvenster om uw resultaten te zien! U zou een bericht moeten ontvangen met de tekst "Hallo wereld met MQTT". Als je dit niet ziet, zorg er dan voor dat je het juiste onderwerp hebt getypt. Als je dit met succes hebt voltooid, blijf ermee spelen. Probeer verschillende onderwerpen, met subonderwerpen en verschillende berichten!

Stap 3: Sluit af

Dat is het! Als je alles eenmaal hebt voltooid, begrijp je de basis van hoe MQTT werkt. Dit is een zeer rudimentaire tutorial die alleen het absolute minimum van het MQTT-protocol laat zien. Future Instructables zal dieper ingaan op hoe het protocol in de praktijk werkt met het Internet of Things, met name met ESP8266-modules waarop Arduino wordt uitgevoerd. Mijn eerste praktische toepassing zal het slimme koffiezetapparaat zijn dat ik momenteel in mijn kamer heb. Als je wilt leren hoe je een koffiezetapparaat maakt dat zowel vanaf je telefoon als Alexa kan worden bediend, volg me dan voor meer tutorials.

Aanbevolen: