INHOUDSOPGAWE:

SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT: 3 stappe
SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT: 3 stappe

Video: SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT: 3 stappe

Video: SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT: 3 stappe
Video: Home Assistant, практика - автоматизация работы вытяжки в ванной 2024, November
Anonim
SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT
SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT
SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT
SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT

MQTT Basics:

** Ek gaan 'n Home Automation -reeks doen, ek sal die stappe doen wat ek geneem het om alles wat ek in die toekoms gedoen het, te leer. Hierdie instruksies is die basis vir die opstel van MQTT vir gebruik in my toekomstige instruksies. Die leerstellings in hierdie inhoud is egter van toepassing op enige projek wat u wil aanpak. **

Internet van dinge:

Die Internet of Things neem die wêreld oor, en veral in gemeenskappe soos ons eie hier by Instructables. Sedert ek by hierdie gemeenskap aangesluit het, is dit gegrond op mense wat bou

Toestelle wat aan die internet gekoppel is en beheer word. As u met Internet of Things werk, is dit moeilik om nie volgens die protokol MQTT te kom nie. Dit is 'n kommunikasieprotokol soos ander wat tans op die internet gebruik word, soos HTTP of FTP, maar die manier waarop dit werk is anders, wat dit ideaal maak vir Internet of Things -toepassings.

Wat is MQTT:

MQTT (Message Queuing Telemetry Transport is 'n ligte kommunikasieprotokol wat gebruik maak van 'n publiseer/inteken -argitektuur. HTTP, wat die meeste van die internet gebruik, is gebou op 'n versoek/antwoordstelsel. Dit beteken dat dit 'n versoek van 'n kliënt ontvang en stuur 'n antwoord op die kliënt. MQTT het ook 'n bediener ('n makelaar genoem) sowel as baie kliënte. In teenstelling met HTTP kan MQTT kliënte publiseer of inteken op spesifieke 'onderwerpe'. 'n gesentraliseerde punt, die makelaar. Elke knoop kan op 'n onderwerp op die makelaar publiseer, en enige nodus wat op die onderwerp ingeteken is, sal die boodskap ontvang. Kliënte kan ook op verskeie onderwerpe inteken en kan dan verskeie voorskrifte of opdaterings ontvang.

Die hele stelsel is gebeurtenisgedrewe en laat boodskappe van die makelaar toe om na elke kliënt wat ingeteken is, te stuur. Dus, eerder as HTTP, waar die kliënt die inligting versoek, word die kliënt direk na ontvangs van die makelaar gestuur. Daar is ook ingeboude dienste wat voorsiening maak vir verskillende voorsorgmaatreëls, soos QOS-spesifikasies. Met 'n QOS -spesifikasie kan 'n makelaar bepaal of 'n boodskap hoogstens een keer, ten minste een keer of presies een keer afgelewer moet word. Dit verseker dat data op die vereiste manier aan elke kliënt gelewer word. Kliënte kan ook versoek dat gepubliseerde boodskappe na hul onderwerp in die makelaar gebuffer word as hulle om een of ander rede daarvan ontkoppel word. Sodra dit weer aanlyn is, word die data na die kliënt gestuur.

'N Onderwerp is niks besonders nie; dit is slegs 'n verskeidenheid snare wat gekombineer en geskei word deur skuinsstrepe. Die formaat in die voorbeeld wat hieronder gebruik word, is die volgende: huis/slaapkamer/plafonlig. Elke skuinsstreep word agter 'n onderwerp geplaas om 'n subonderwerp aan te dui. 'N Boodskap kan dus tuis gepubliseer word, waar alle toestelle in die huis dit sal ontvang. Dit kan direk na die huis/slaapkamer gepubliseer word, waar alle toestelle in die slaapkamer die boodskap sal ontvang. En dit kan na die spesifieke toestel gaan, soos die eerste keer getoon huis/slaapkamer/plafonlig waar slegs die plafonlig in die slaapkamer die boodskap sal ontvang. Die manier waarop ons individuele toestelle soos hierdie tot by 'n hele ekosisteem kan abstraheer, is uiters handig, veral as dit by tuisautomatisering kom. Daar is verdere maniere om onderwerpe op te deel, en ek sal dit verder bespreek in die toekomstige instruksies waar die toepassing die meeste sin maak.

Voorrade

Slegs een van die volgende is nodig:

Ubuntu:

Windows Substelsel vir Linux: https://ubuntu.com/wsl (Slegs as u nie Linux/MacOS het nie)

MacOS: benodig 'n MacBook

Dit is nodig:

Mosquitto MQTT Broker - afgelaai met apt -get (dokumentasie:

Stap 1: Aanvanklike opstelling (afhangende van u bedryfstelsel)

MacOS/Linux:

Geen opstelling nodig nie, maak net u terminale oop en gaan oor na Mosquitto Setup!

Windows:

As u Windows gebruik, moet u die Windows -substelsel vir Linux installeer. Dit is 'n super maklik om te gebruik en uiters waardevolle hulpmiddel waarmee u 'n Ubuntu-terminaal binne Windows kan bestuur. U hoef Ubuntu nie te installeer en dubbel te begin nie, net om die ontwikkeling in die terminale te toets!

Installasie stappe:

1. Gaan na die Windows Store en soek na ubuntu

2. Laai die Windows Substelsel vir Linux af en installeer dit

3. Maak die toepassing oop en volg die instruksies om die opstelling te voltooi, en u is gereed om voort te gaan!

Stap 2: Mosquitto -opstelling:

Opstelling van muskiete
Opstelling van muskiete
Opstelling van muskiete
Opstelling van muskiete
Opstelling van muskiete
Opstelling van muskiete

Soos in die inleiding oor MQTT bespreek, benodig die protokol 'n makelaar (bediener). Hierdie makelaar is die basispunt vir alle gevestigde verbindings met elke kliënt. Al die boodskappe word deurgegee en in die ry in hierdie makelaar. Daar is baie opsies om uit te kies vir 'n makelaar, en u kan dit aanlyn vind, maar die een wat ons sal gebruik, is waarskynlik die algemeenste: Mosquitto.

Mosquitto is 'n Linux-gebaseerde MQTT-makelaar met baie funksies. Ek gaan nie nou in op die besonderhede van die funksionaliteit nie, maar 'n paar basiese vereistes waaraan dit voldoen, is verifikasie van gebruikers/wagwoord, en ondersteuning vir TLS -kodering wat almal nuttig is vir die ontwikkeling van Internet of Things -toestelle.

Stappe:

Al hierdie stappe moet in 'n terminale venster voltooi word.

1. Installeer Mosquitto- en MQTT -kliënte

sudo apt-get install mosquitto mosquitto-kliënte

2. Teken in op 'n onderwerp

mosquitto_sub -t "toets"

Wat dit doen, is 'n subskripsie op 'n onderwerp. Hierdie onderwerp word aangedui met "-t" en die onderwerpwaarde is "toets". Hierdie waarde na die '-t' kan alles wees wat u wil, behalwe vir 'n paar spesiale besprekings.

3. Maak 'n nuwe terminale venster oop en publiseer 'n boodskap oor die onderwerp "toets"

mosquitto_pub -t "toets" -m "Hallo wêreld met MQTT!"

Dit publiseer 'n boodskap oor die onderwerp 'toets', waardeur ons ander terminale instansie die boodskap aan die kant van die intekening kan ontvang. Die gepubliseerde boodskap word aangedui met 'n "-m" en die boodskapwaarde is "Hello World With MQTT". Hierdie boodskap, net soos die onderwerp, kan verander word na wat u wil!

4. Gaan na die eerste terminale venster om u resultate te sien! U moet 'n boodskap ontvang wat sê: "Hallo wêreld met MQTT". As u dit nie sien nie, maak seker dat u die regte onderwerp ingevoer het. As u dit suksesvol voltooi het, moet u daarmee voortgaan. Probeer verskillende onderwerpe, met subonderwerpe en verskillende boodskappe!

Stap 3: Maak klaar

Dis dit! As u alles voltooi het, verstaan u die basiese beginsels van hoe MQTT werk. Dit is 'n baie rudimentêre tutoriaal wat slegs die minimum van die MQTT -protokol toon. Toekomstige instruksies sal in meer diepte deurloop hoe die protokol in die praktyk werk met die Internet of Things, veral met ESP8266 -modules met Arduino. My eerste praktiese toepassing is die slim koffiemaker wat ek tans in my kamer het. As u wil leer hoe om 'n koffiemaker te maak wat met u selfoon en Alexa beheer kan word, volg my dan vir meer tutoriale.

Aanbeveel: