Innholdsfortegnelse:

SmartHome trådløs kommunikasjon: det ekstreme grunnleggende om MQTT: 3 trinn
SmartHome trådløs kommunikasjon: det ekstreme grunnleggende om MQTT: 3 trinn

Video: SmartHome trådløs kommunikasjon: det ekstreme grunnleggende om MQTT: 3 trinn

Video: SmartHome trådløs kommunikasjon: det ekstreme grunnleggende om MQTT: 3 trinn
Video: Faglig frokost: programmering i skolen - hvordan går det egentlig? 2024, November
Anonim
SmartHome trådløs kommunikasjon: det ekstreme grunnleggende om MQTT
SmartHome trådløs kommunikasjon: det ekstreme grunnleggende om MQTT
SmartHome trådløs kommunikasjon: det ekstreme grunnleggende om MQTT
SmartHome trådløs kommunikasjon: det ekstreme grunnleggende om MQTT

Grunnleggende om MQTT:

** Jeg skal lage en hjemmeautomatiseringsserie, jeg skal gå igjennom trinnene jeg tok for å lære alt jeg har gjort i fremtiden. Denne instruksjonsboken er grunnlinjen for hvordan jeg konfigurerer MQTT for bruk i mine fremtidige instrukser. Læren i dette innholdet vil imidlertid gjelde for ethvert prosjekt man ønsker å ta på seg. **

Internett av ting:

Tingenes internett tar over verden, og spesielt i lokalsamfunn som vårt eget her på Instructables. Helt siden jeg ble med i dette fellesskapet, har det blitt forankret i å bygge mennesker

Enheter koblet til og kontrollert over internett. Når du jobber med Internet of Things er det vanskelig å ikke følge protokollen MQTT. Dette er en kommunikasjonsprotokoll som andre som brukes på Internett i dag, for eksempel HTTP eller FTP, men måten den fungerer på er forskjellig, noe som gjør den ideell for Internet of Things -applikasjoner.

Hva er MQTT:

MQTT (Message Queuing Telemetry Transport er en lett kommunikasjonsprotokoll som bruker en publish/subscribe -arkitektur. HTTP, som er det meste av Internett bruker, er bygget på et forespørsels-/responssystem. Dette betyr at den får en forespørsel fra en klient og sender et svar på den klienten. MQTT har også en server (kalt en megler) samt mange klienter. I motsetning til HTTP tillater MQTT at klienter kan publisere eller abonnere på spesifikke "emner". Det dette gir mulighet for er bredere kommunikasjon gjennom et sentralisert punkt, megleren. Hver node kan publisere til et emne på megleren, og enhver node som abonnerer på dette emnet vil motta meldingen. Klienter kan også abonnere på flere emner og kan deretter motta flere direktiver eller oppdateringer.

Hele systemet er hendelsesdrevet og gjør det mulig å sende meldinger fra megleren til hver abonnentklient. Så i stedet for HTTP, hvor klienten ber om informasjonen, blir klienten sendt informasjonen direkte fra megleren ved mottak. Det er også innebygde tjenester som gir mulighet for ulike sikkerhetstiltak, for eksempel QOS-spesifikasjoner. En QOS -spesifikasjon gjør det mulig for en megler å avgjøre om en melding må leveres maksimalt en gang, minst en gang eller nøyaktig en gang. Dette sikrer at data blir levert på den nødvendige måten til hver klient. Klienter kan også be om at publiserte meldinger til emnet deres blir bufret i megleren i tilfelle de kobles fra det av en eller annen grunn. Når den kommer tilbake på nettet, blir disse dataene sendt til klienten.

Et emne er ikke noe spesielt, det er bare en rekke strenger som kombineres og skilles med skråstreker. Formatet i eksemplet som skal brukes nedenfor er følgende: home/bedroom/ceiling_light. Hver skråstrek er plassert etter et emne for å betegne et delemne. Så en melding kan bli publisert til hjemmet, der alle enheter i huset vil motta den. Den kan publiseres direkte til hjemmet/soverommet, der alle enheter på soverommet vil motta meldingen. Og den kan gå ned til den spesifikke enheten som først vist hjemme/soverom/tak_lys der bare taklampen på soverommet vil motta meldingen. Måten vi kan abstrahere individuelle enheter som dette helt opp til et helt økosystem er ekstremt praktisk, spesielt når det gjelder hjemmeautomatisering. Det er flere måter å dele emner ned på, og jeg vil gå nærmere inn på dem i fremtiden Instructables hvor applikasjonen gir mest mening.

Rekvisita

Bare ett av følgende er nødvendig:

Ubuntu:

Windows delsystem for Linux: https://ubuntu.com/wsl (bare hvis du ikke har Linux/MacOS)

MacOS: Krever en MacBook

Dette kreves:

Mosquitto MQTT Broker - Lastet ned ved hjelp av apt -get (Dokumentasjon:

Trinn 1: Første oppsett (avhengig av operativsystemet)

MacOS/Linux:

Ingen oppsett nødvendig, bare åpne opp terminalen og hopp over til Mosquitto Setup!

Windows:

Hvis du bruker Windows, må du installere Windows -delsystemet for Linux. Dette er et superenkelt brukervennlig og ekstremt verdifullt verktøy som lar deg kjøre en Ubuntu-terminal i Windows. Du trenger ikke installere og dual boot Ubuntu bare for å teste utviklingen i terminalen!

Installasjonstrinn:

1. Gå til Windows Store og søk etter ubuntu

2. Last ned og installer Windows -delsystemet for Linux

3. Åpne programmet og følg instruksjonene for å fullføre oppsettet, og du er klar til å fortsette!

Trinn 2: Myggoppsett:

Myggoppsett
Myggoppsett
Myggoppsett
Myggoppsett
Myggoppsett
Myggoppsett

Så som diskutert i innledningen om MQTT, krever protokollen en megler (server). Denne megleren er utgangspunktet for alle etablerte forbindelser til hver klient. Alle meldingene sendes gjennom og står i kø i denne megleren. Det er mange alternativer å velge mellom for en megler, og du kan finne disse på nettet, men den vi skal bruke er sannsynligvis den vanligste: Mosquitto.

Mosquitto er en Linux-basert MQTT-megler med massevis av funksjonalitet. Jeg vil ikke gå nærmere inn på detaljene i denne funksjonaliteten akkurat nå, men noen få grunnleggende krav den oppfyller er bruker-/passordgodkjenning, og TLS -krypteringsstøtte som alle er nyttige i utviklingen av Internet of Things -enheter.

Trinn:

Alle disse trinnene bør fullføres i et terminalvindu.

1. Installer Mosquitto- og MQTT -klienter

sudo apt-get install mosquitto mygg-klienter

2. Abonner på et emne

mosquitto_sub -t "test"

Hva dette gjør er å abonnere på et emne. Dette emnet er markert med "-t" og emneverdien er "test". Denne verdien etter "-t" kan være alt du vil spare for noen spesielle reservasjoner.

3. Åpne et nytt terminalvindu og publiser en melding til emnet "test"

mosquitto_pub -t "test" -m "Hei verden med MQTT!"

Dette publiserer en melding til emnet "test", slik at vår andre terminalforekomst kan motta meldingen på abonnementsiden. Den publiserte meldingen er markert med et "-m" og meldingsverdien er "Hello World With MQTT". Denne meldingen, akkurat som emnet, kan endres til hva du vil!

4. Gå til det første terminalvinduet for å se resultatene! Du bør motta en melding som sier "Hello World With MQTT" vises. Hvis du ikke ser dette, må du kontrollere at du skrev inn riktig emne. Hvis du har fullført dette, må du fortsette å leke med det. Prøv forskjellige emner, med underemner og forskjellige meldinger!

Trinn 3: Slutt opp

Det er det! Når du har fullført alt, forstår du det grunnleggende om hvordan MQTT fungerer. Dette er en veldig rudimentær opplæring som bare viser det minste minimum av MQTT -protokollen. Fremtidige instrukser vil gå grundigere gjennom hvordan protokollen fungerer i praksis med tingenes internett, spesielt med ESP8266 -moduler som kjører Arduino. Min første praktiske applikasjon vil være den smarte kaffetrakteren jeg har på rommet mitt. Hvis du vil lære å lage en kaffetrakter som kan styres fra både telefonen og Alexa, må du følge meg for flere opplæringsprogrammer.

Anbefalt: