MQTT - WeMos - SonOFF

msevland

Sentralstyre
Leker med ESP8266 (WeMos/SonOFF) og MQTT som protokoll. Denne blir benyttet i mye IoT utstyr, og peker seg ut som kanskje den rådende protokollen.
Se også @FrankD sin post om SonOff Th
Hva er MQTT? Kort fortalt er det en svært effektiv protokoll for overføring av data mellom maskiner (M2M). Den benytter også en Broker hvor alle data blir sendt inn, og hvor du kan abonnere på 'feeds' til ditt behov, noe som gjør den særdeles skalerbar. Dette er mye enklere enn http kommunikasjon som jeg har benyttet en del tidligere, samt at den er mye mer fleksibel i og med at du lett kan kombinere feeds og triggere fra en hel haug med enheter. Disse trenger ikke vite om hverandre, så lenge alle kjenner Brokeren. Alle enheter sender (pub) eller abonnerer (sub) på ting (feeds)
Flere av dere har helt sikkert værstasjoner / hjemmestyringssystemer og annet som trolig benytter MQTT uten at du vet det.
Jeg benytter Adafruit sin server i USA som 'Broker', men vurderer også å sette opp en enkel MQTT server selv med RasPi... vi får se. Hastigheten er uansett upåklagelig.
Rasket sammen noe i løpet av to kvelder...
Video1 viser hvordan jeg kan styre brytere via MQTT / PC / Mobil (ledlys)
Video2 viser hvordan jeg kan sende og lese temperatur til alle enheter (temp ds18b20)

Koden sender hver gang det kommer en endring (triggerbasert). Dersom eksempelvis temperaturen endrer seg hvert 3 sek, sendes oppdateringer så raskt. Tar det 10 min., sendes oppdateringer med det intervallet. Tror serveren har max to oppdateringer i sekundet :) Dette er mulig siden protokollen er så effektiv i motsetning til http kommunikasjon mot Thingspeak hvor grensen er max en endring hvert 15sek. for ikke å kvele serveren (selv om Thingspeak trolig kunne hatt kortere intervall enn dette... )

For en god intro til MQTT, se følgende videoer (lenker, ikke innserts :) )
Intro til MQTT
Omfattende gjennomgang av MQTT fra Adafruit
Haugevis med Videoer fra nettet
 
Sist redigert:
Spennende, har akkurat satt opp en wemos brikke med en LM35 sensor som kjører temperatur til Blynk for å se hvordan dette fungerer. Noen mulighet for at du kan dele litt kode @msevland? Skulle gjerne sett koden du bruker (uten "vital" info seff), så kan jeg gjøre om på den og se om jeg får LM35 til å snakke med brokeren :)
 
Titta litt på adafruit, mqtt server og "dashboard"
Veldig enkelt å kjapt å komme igang.

Men det jeg ikke fikk til var å lagre data historisk. Ser ut til at data
lagres på klient siden når man har dashbord oppe, eller er det noe jeg misforstår?

Har tidligere tenkt å bruke mqttsn hjemme, kjørte opp mosquitto men mangla
igjen historisk lagring. Ser ut til at man må lage noe sjøl mellom mqtt broker
og en data base.

Med det vesle antall sensorer jeg har blei det til at jeg laga dette uten å gå
veien om en standard protokoll.

Har sett noen enkle tut's og skisser på en klient mellom mqtt broker og data base
men ikke funnet noen gode ferdige løsninger. Men leiter fortsat tetter dette.
 
Topp