OBS DENNE TUTORIAL ER UNDER UDVIKLING OG BILLEDER SKAL OPDATERES SÅ DER ANVENDES SAMME RASPBERRY PI

TODO

RPI_zero_2W_ESP32_MING_stack

lav en bruger her: https://dashboard.balena-cloud.com

Lav fleet på balenaCloud (create new fleet) og vælg raspberry pi Zero w2 og hak wifi og ethernet af under network connection og indtast SSID og PASSWORD og tryk Flash knappen og så download balena etcher for at flashe Balena OS til Raspberry Pi (Zero W 2)

image

image

Gå til github linket og tryk deploy with balena knap og vælg eksisterende fleet på balenaCloud dashboard: https://github.com/mpous/ming

image

image

Derefter opdateres raspberry pi til at anvende ming stacken. på balenacloud kan man se de lokale IP adresser til de forskelige docker tjenester der køres og tilgå dem ved at angive adressen i en browsers URL felt. både brugernavn og password til tjenesterne er balena

image

Mosquitto MQTT broker lytter på port 1883 for MQtt besked publicationer.

InfluxDB lytter på port 8086 og giver en time series database til sensor data opbevaring.

NodeRed lytter på port 80 og anvendes med en nem grafisk interface til at parse, analysere, opbevare og viderestille sensor data beskeder.

Grafana lytter på port 8080 og tilbyder et datavisualiseringsmiljø til sensor data.

WiFi Connect lytter på port 80 i tilfælde af at der ikke er WiFi connectivity tilgængelig.

For at kunne modtage data fra MQTT skal der oprettes og konfigureres en MQTT IN node til det. Her angives IP adresse og portnummeret tilsvarende den som blev vist i balena cloud.

image

tilføj efterfølgende en debug node og forbind den til MQTT IN node. Og tryk derefter på deploy knappen:

image

Upload fileksemple fra micropython mappen i dette repository til ESP32 (forudsætter at der er et Educaboard med LMT84 tilsluttet) og opdater ssid password og mqtt_server variablerne så den kan logge på samme accespoint som raspberry pi og indsæt raspberry pi's ip addresse som mqtt_server. hvis ESP32 forbindes korrekt til netværket og mqtt brokeren på raspberry pi, kan man vælge debug ikonet og der bør man se data fra ESP32 som blev send over MQTT.

image

image

image

image

image

image

image

se dette link for mere info om influxdb opsætningen: https://gist.github.com/Paraphraser/c9db25d131dd4c09848ffb353b69038f

image

For at forbinde og lægge data i influxdb skal der oprettes en node til dette. Når man bruger Docker skal containernavnet influxdb angives som host: image Husk at tryk deploy når denne node er oprettet.

Efterfølgende kan man åbne en influxdb shell i Balena cloud: image

først skal man oprette en database ved at skrive:

$ influx
> CREATE DATABASE koji
> USE koji
> select * from temp

hvor koji i dette tilfælde er databasen navn. Navnet kan man selv vælge, og det bør være meningsfyldt for hvad databasen bruges til.

Fra influxdb shell kan man verificere at der kommer data i databasen, som her er fra en temperatursensor på en ESP32 der sende data til MQTT brokeren: image

Åben grafana i browser på den lokale IP adresse som kan findes i balena cloud og på port 8080 i mit tilfælde er addressen http://192.168.1.128:8080/ men din vil højest sansynligt være en anden. Første gang grafana anvendes skal man oprette bruger og password (jeg anvder admin admin til test men i produktion skal der angives et stærkt password!). for at konfigurere grafana til at vise data fra influxdb skal man i venstre menu vælge tandhjulet og data sources I URL feltet skrives influxdb:8086 som er Docker container navnet på influxdb instansen. Ligeledes skal man også angive navnet på influxdb databasen som blev oprettet tidligere, som i dette eksempel er koji image

For at få vist data i grafana skal man lave et dashboard. For at gøre dette vælges ikonet med 4 firkanter i menuen: image vælg add panel i øverste menu, og vælg derefter symbolet med en blyant/pen under query select og indsæt egen query: image

Man kan lave en query: image

En ekstra ting man bør være opmærksom på:

Når der bruges influxdb i en docker container: Hvis node-red og influxdb containers er på samme maskine kan man ikke tilgå dem genne localhost (fordi hosten af contianeren ikke kører influxdb selv). Man skal derimod tilgå den genmmen en reference til selve containerens navn. Eksempel: influxdb:8086 i stedet for localhost:8086