Innholdsfortegnelse:

HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!): 3 trinn
HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!): 3 trinn

Video: HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!): 3 trinn

Video: HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!): 3 trinn
Video: Tour a Smart Home GeenStar Gut rehab with OA Awesome Wall (Corrected) 2024, November
Anonim
HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!)
HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!)
HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!)
HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!)
HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!)
HRV -temperatur til OpenHAB Via ESP8266 (seriekodeksempel!)

HRV - Trådløst til OpenHAB

Denne instruksjonen er spesielt for de som har et HRV -system (varme -resirkulasjonsventilasjon) - selv om deler av kretskortet, openhab -konfigurasjon eller Arduino -kode (for eksempel å lese TTL -seriedata) kan være nyttige for dine egne prosjekter eller tjene godt for læring. Det forutsetter at du har rimelig kunnskap om Arduino IDE og hva en ESP8266 -brikke er.

Introduksjon

Følgende skisserer hvordan du bygger en ESP8266 som kobles til et HRV -system og sender tak- og hustemperaturer, kontrollpaneltemperatur og viftehastighet via MQTT -meldinger til OpenHAB. Dette er designet for å fungere med et ESP8266-01-kort (selv om det skal fungere med alle ESP8266 3.3V-versjoner) Hvis du har et lignende HRV-type system fra en alternativ leverandør, må du avgjøre om data sendes som TTL-seriell, og i så fall, hvilken struktur dataene sendes som.

OpenHAB og Mosquitto

ESP8266 -koden har blitt skrevet spesielt for å jobbe med OpenHAB (åpen kildekode hjemmeautomatiseringsprogramvare) og en MQTT -megler som Mosquitto (en meldingsabonnement/publiser type protokoll som er lett og flott for kommunikasjon mellom enheter) Ikke la navnene eller akronymer skremmer deg, de er egentlig ganske enkle å bruke når du blir kjent med hvordan de fungerer. Jeg bruker OpenHAB på en NTC C. H. I. P (9 dollar datamaskin), men mange bruker en Raspberry Pi eller lignende. Denne opplæringen forutsetter at du har implementert OpenHAB (hvis du trenger hjelp til å konfigurere OpenHAB, følg denne utmerkede artikkelen fra webområdet makeuseof) Du må også laste ned og installere Mosquitto (MQTT -megler) og tilhørende OpenHAB -binding. Du kan installere dette andre steder på nettverket ditt, men de fleste installerer dette bare på samme maskin som OpenHAB for å holde det enkelt.

For å installere Mosquitto, følg denne lenken, velg deretter typen enhet du bruker og følg instruksjonene. Fordi C. H. I. P kjører Debian (Jessie), kan du følge Raspberry Pi -instruksjonene hvis du bruker C. H. I. P for din hjemmeautomatiseringsenhet (vær også oppmerksom på at det er best å omkonfigurere CHIP for oppstart fra CLI. Det er instruksjoner for dette her)

Når du har OpenHAB og Mosquitto i gang, må du forberede Arduino IDE for ESP8266 og kode. Først må du legge til "PubSubClient" -biblioteket. I Arduino IDE, fra menyen, gå til Skisse, Inkluder bibliotek, Administrer biblioteker Skriv inn PubSubClient i filtersøkfeltet, merk deretter søkeresultatet og klikk for å installere (i skrivende stund er den siste versjonen 2.6.0) Du vil må også legge til ESP8266 -kortet i Arduino IDE, som kan gjøres ved å følge instruksjonene her

Hva gir dette meg?

Som nevnt tidligere vil dette prosjektet tillate deg å se taket, huset, kontrollpanelets temperatur og viftehastighet i OpenHAB GUI (i sanntid!) På bildene på HRV -kontrollpanelet. Bildene viser hvordan det ser ut fra min iPhone, pluss grafene du vil komme ved å bore ned i de forskjellige temperaturene.

For å få grafene må du også installere og konfigurere RRD4J -bindingen (dette er veldig rett frem) Dette lar deg klikke på enten "Hus" eller "Tak" og få en historie med HRV -temperaturer for hver tidligere time, dag eller uke (eller lengre, hvis du endrer konfigurasjonen slik at den passer) Bildene som vises er i celsius, og det er klart vinteren på den sørlige halvkule da jeg lagde dette!

I tillegg opprettet jeg en OpenHAB-visning som viser en sammenligning mellom utetemperatur (levert av Weather binding-tillegget, i mitt tilfelle ved bruk av Wunderground) mot taket og husets temperaturer ved å klikke på alternativet "Kontroll" (bildet viser grafen med hus, tak og utetemperatur plottet). Jeg planlegger å bruke disse dataene i regler for å slå på varmeapparater etter behov. Bare legg til Vær -elementet i Bilde -URL -en i nettstedskartfilen og inkluder dette på den samme grafen (f.eks.:… items = houseTemp, roofTemp, weatherTemp…)

Trinn 1: Nødvendige deler / montering

Nødvendige deler / montering
Nødvendige deler / montering
Nødvendige deler / montering
Nødvendige deler / montering
Nødvendige deler / montering
Nødvendige deler / montering

Du trenger følgende deler

  • En RJ11 -splitter (dette deler signalet fra kontrolleren i taket, til kontrollpanelet og ESP8266)
  • Noen båndkabler og en RJ11 -plugg (for å føre ledninger fra splitter til ESP8266)
  • ESP8266-01 (andre 3.3V-versjoner bør fungere)
  • TTL logisk nivåomformer (for å endre data fra 5V -> 3,3V)
  • AMS1117 3.3V spenningsregulator (eller lignende, for å endre spenning fra HRV 5V -> 3.3V til strøm ESP8266)
  • 1N5817 schottky -diode (av en eller annen grunn bidro dette til å stoppe HRV -kontrollpanelet ved å tilbakestille ESP -strømmen)
  • 10K ohm motstand (pullup motstand mellom 3,3 spenningsregulator og ESP CH_PD)
  • 10V 10uF kondensator (eller lignende, for å jevne ut og stabelisere innkommende strøm fra HRV)
  • 10V 1uF kondensator (eller lignende, for å jevne ut og stabelisere utgående strøm til ESP)
  • Valgfri skyveknapp for å programmere ESP (ellers må du trekke GPIO0 til GND manuelt for å programmere)
  • En FTDI -adapter (for å programmere ESP, konverterer USB til seriell)

Monter i henhold til skjemaet

Brettbrettbildet viser hvordan delene skal settes sammen. Vær oppmerksom på at det er 6 pinner som kommer ned i båndkabelen fra HRV -kontrollerenheten i taket:

Pins 1 og 6 er 5V VCC

Pins 2 og 5 er GND

Pins 3 og 4 er Data.

Du trenger bare å bruke pinnene 1, 2, 3 og 6 (1 og 6 VCC driver ESP8266 og den høye siden av TTL -logikkomformeren, 2 er en felles grunn og 3 er for å lese TTL -seriedata)

Splitteren du trenger vil bare være en RJ11 splitter, bare sørg for at det er en splitter der pinnene er rett igjennom (f.eks. Pin 1 går til pin 1, pin 2 til pin 2 og så videre) Vær oppmerksom på at de ekstra hunnpinnene (som vist på bildene) er for tilkobling av en FTDI for omprogrammering av ESP senere, og bryteren som vises setter den i "programmerings" -modus. Disse er valgfrie, men anbefalte (f.eks. Hvis du endrer WiFi -passordet ettersom WiFi AP og passord er hardt programmert i koden, som du må laste opp når ESP8266 er bygget)

Trinn 2: Last opp kode og testing

Laster opp kode og tester
Laster opp kode og tester
Laster opp kode og tester
Laster opp kode og tester
Laster opp kode og tester
Laster opp kode og tester
Laster opp kode og tester
Laster opp kode og tester

Kodeendringer

Alternativ nedlastingskobling til Arduino -kode HER

Åpne i Arduino IDE, kontroller at ESP -kortet er installert så vel som PubSubClient og at du har valgt ESP8266 -kortet (Tools, Board, Generic ESP8266 Board) Rediger koden og endre WiFi AP -navn og passord og IP -adressen til din MQTT -megler (dette er de eneste tingene du trenger å endre) som vist nedenfor. Klikk på "Bekreft" -knappen for å sikre at den kompileres ok, og kontroller at den riktige COM -porten er valgt (Verktøy, port) og last opp koden til ESP8266. Det er mange artikler rundt om hvordan du gjør dette, jeg vil ikke finne opp hjulet på nytt her.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (192, 168, 222, 254);

MQTT -testing

For testing kan du la FTDI -adapteren være tilkoblet og åpne Serial Monitor i Arduino IDE. Du bør se meldinger som skriver ut temperaturinformasjonen i konsollen. Hvis du trenger å feilsøke innkommende MQTT -meldinger fra ESP8266 til din MQTT -megler, kan du kjøre en av følgende kommandoer på Mosquitto -serveren for å abonnere på de innkommende meldingene:

mosquitto_sub -d -t openhab/hrv/status

Du bør se innkommende PUBLISH -meldinger som kommer inn fra ESP8266 hvert 30. sekund med tallet "1" (som betyr "Jeg lever") Hvis du ser konstante "0 -er" (eller ingenting i det hele tatt) så er det ingen kommunikasjon. Når du ser tallet 1 komme inn, betyr det at ESP8266 kommuniserer med MQTT -megleren (søk "MQTT Last Will and Testament" for mer informasjon om hvordan dette fungerer, eller se denne virkelig gode blogginnlegget)

Du kan nå spore temperatur- og viftehastighetsdata, abonnere på ett av følgende. Vær imidlertid oppmerksom på at koden bare sender temperaturdataene hvis noen data er endret. Den holder styr på den siste temperaturen, viftehastigheten osv. Dataene som ble sendt, så du kan ikke se informasjon komme inn umiddelbart.

mosquitto_sub -d -t openhab/hrv/rooftemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

Tips: abonner på kontrollpaneltemperaturen ovenfor, og trykk deretter på temperaturknappen på selve kontrollpanelet. Du bør se den nye temperaturinnstillingen komme inn.

Når du kommer til å lodde dette, passer en 3 cm x 7 cm PCB fint i skylleboksen bak HRV -kontrollpanelet. Jeg anbefaler bare å gjøre dette hvis det er en skylleboks av plast, da en metallboks kan forstyrre Wifi -signaler eller muligens koble ut tilkoblinger på kretskortet. Alternativt kan du skrive ut et plastikk 3D -etui for å montere brettet i.

Trinn 3: OpenHAB -endringer

OpenHAB -konfigurasjon

OpenHAB -endringer som kreves er som følger:

'items' fil:

/* HRVNumber hrvStatus "HRV Status [MAP (status.map):%d]" (gHRV) {mqtt = "<[mqttbroker: openhab/hrv/status: state: default]"} Number houseTemp "House [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/housetemp: state: default] "} Number houseTemp_Chart_Period" Chart Period "Number roofTemp" Tak [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/rooftemp: state: default] "} Number roofTemp_Chart_Period" Chart Period "Number controlTemp" Control [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/controltemp: state: default] "} String fanSpeed" Fan Speed [%s] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/fanspeed: state: default] "}*/

'nettstedskart' -fil:

Rammeetikett = "HRV Temperatur" {Tekst element = roofTemp {Ramme {Bytt element = roofTemp_Chart_Period label = "Periode" mappings = [0 = "Time", 1 = "Day", 2 = "Week"] Bilde url = "https:// localhost: 8080/rrdchart-p.webp

Ekstra ikoner for OpenHAB er inkludert (høyreklikk og lagre bilder)

Lagre disse filene i mappen.. / OpenHAB Home / webapps / images på OpenHAB -serveren

Anbefalt: