Turinys:

HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!): 3 žingsniai
HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!): 3 žingsniai

Video: HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!): 3 žingsniai

Video: HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!): 3 žingsniai
Video: 🔥 Всё-всё-всё про лямбда-зонды! Зачем нужен этот хитрый кислородный датчик? 2024, Lapkritis
Anonim
HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!)
HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!)
HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!)
HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!)
HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!)
HRV temperatūra iki „OpenHAB“per ESP8266 (serijos kodo pavyzdys!)

HRV - belaidis ryšys su „OpenHAB“

Ši instrukcija skirta tiems, kurie turi HRV (šildymo recirkuliacinės ventiliacijos) sistemą - nors plokštės dalys, „Openhab“konfigūracija ar „Arduino“kodas (pvz., TTL serijos duomenų skaitymas) gali būti naudingi jūsų pačių projektams arba gali būti naudingi mokantis. Manoma, kad turite pagrįstų žinių apie „Arduino IDE“ir tai, kas yra ESP8266 lustas.

Įvadas

Toliau aprašoma, kaip sukurti ESP8266, kuris jungiasi prie HRV sistemos ir siunčia stogo ir namo temperatūrą, valdymo skydelio temperatūrą ir ventiliatoriaus greitį per MQTT pranešimus į „OpenHAB“. Tai skirta dirbti su ESP8266-01 plokšte (nors turėtų veikti su bet kokia ESP8266 3.3V versija) Jei turite panašaus HRV tipo sistemą iš alternatyvaus tiekėjo, turėsite nustatyti, ar duomenys siunčiami kaip TTL serijos, ir jei taip, kokios struktūros duomenys siunčiami.

„OpenHAB“ir „Mosquitto“

ESP8266 kodas buvo parašytas specialiai darbui su „OpenHAB“(atviro kodo namų automatizavimo programine įranga) ir MQTT brokeriu, pvz., „Mosquitto“(pranešimų prenumeratos/paskelbimo tipo protokolas, kuris yra lengvas ir puikiai tinka bendravimui tarp įrenginių). akronimai jus gąsdina, juos tikrai paprasta naudoti, kai tik sužinosite, kaip jie veikia. Aš naudoju „OpenHAB“NTC C. H. I. P (9 USD kompiuteris), tačiau daugelis žmonių naudoja „Raspberry Pi“ar panašų. Šioje pamokoje daroma prielaida, kad įdiegėte „OpenHAB“(jei jums reikia pagalbos nustatant „OpenHAB“, vadovaukitės šiuo puikiu straipsniu iš svetainės „makeuseof“). Taip pat turite atsisiųsti ir įdiegti „Mosquitto“(MQTT broker) ir susijusį „OpenHAB“įrišimą. Tai galite įdiegti kitur savo tinkle, tačiau dauguma žmonių tai tiesiog įdiegia toje pačioje mašinoje, kurioje yra „OpenHAB“, kad būtų paprasta.

Norėdami įdiegti „Mosquitto“, vadovaukitės šia nuoroda, tada pasirinkite naudojamo įrenginio tipą ir vadovaukitės instrukcijomis. Kadangi „C. H. I. P“naudoja „Debian“(Jessie), galite sekti „Raspberry Pi“instrukcijas, jei naudojate „C. H. I. P“savo namų automatikos įrenginiui (taip pat atkreipkite dėmesį, geriausia iš naujo sukonfigūruoti „CHIP“, kad būtų paleista iš CLI. Čia pateikiamos instrukcijos)

Kai paleisite „OpenHAB“ir „Mosquitto“, turite paruošti „Arduino IDE“ESP8266 ir kodui. Pirmiausia turite pridėti biblioteką „PubSubClient“. „Arduino IDE“meniu eikite į „Eskizas“, „Įtraukti biblioteką“, „Tvarkyti bibliotekas“. Filtro paieškos laukelyje įveskite „PubSubClient“, tada pažymėkite paieškos rezultatą ir spustelėkite „Įdiegti“(rašymo metu naujausia versija yra 2.6.0). taip pat prie „Arduino IDE“reikia pridėti ESP8266 plokštę, kurią galima padaryti vykdant čia pateiktas instrukcijas

Ką man tai duoda?

Kaip minėta anksčiau, šis projektas leis jums peržiūrėti savo HRV valdymo skydelio stogą, namą, valdymo skydelio temperatūrą ir ventiliatoriaus greitį „OpenHAB“grafinėje sąsajoje (realiu laiku!) Vaizdai rodo, kaip tai atrodo iš mano „iPhone“, ir grafikai gręžiasi į skirtingas temperatūras.

Norėdami gauti grafikus, taip pat turėsite įdiegti ir sukonfigūruoti įrišimą RRD4J (tai labai paprasta). Tai leis jums spustelėti „Namas“arba „Stogas“ir gauti kiekvienos praeities HRV temperatūros istoriją valanda, diena ar savaitė (arba ilgiau, jei pakeisite konfigūraciją, kad tiktų) Rodomi vaizdai pateikti Celsijaus laipsniu, ir aišku, kad žiema pietiniame pusrutulyje, kai tai padariau!

Be to, sukūriau „OpenHAB“rodinį, kuriame rodomas išorinės temperatūros palyginimas (pateikiamas „Weather bind“priedo, mano atveju naudojant „Wunderground“), palyginti su stogo ir namo temperatūra, spustelėjus parinktį „Control“(paveikslėlyje parodyta grafika su namas, stogas ir lauko temperatūra). Aš planuoju naudoti šiuos duomenis taisyklėse, kad prireikus įjungčiau šildymo prietaisus. Tiesiog pridėkite „Weather“elementą prie savo vaizdo URL svetainės schemos faile ir įtraukite jį į tą pačią diagramą (pvz.:… items = houseTemp, roofTemp, weatherTemp…)

1 žingsnis: reikalingos dalys / surinkimas

Reikalingos dalys / surinkimas
Reikalingos dalys / surinkimas
Reikalingos dalys / surinkimas
Reikalingos dalys / surinkimas
Reikalingos dalys / surinkimas
Reikalingos dalys / surinkimas

Jums reikės šių dalių

  • RJ11 skirstytuvas (tai padalija signalą iš valdiklio stoge, į valdymo skydelį ir ESP8266)
  • Kai kurie juostiniai kabeliai ir RJ11 kištukas (laidams nuo skirstytuvo iki ESP8266 paleisti)
  • ESP8266-01 (kitos 3.3V versijos turėtų veikti)
  • TTL loginio lygio keitiklis (norint pakeisti duomenis iš 5V -> 3.3V)
  • AMS1117 3.3V įtampos reguliatorius (arba panašus, norint pakeisti įtampą iš HRV 5V -> 3.3V į maitinimą ESP8266)
  • 1N5817 schottky diodas (dėl tam tikrų priežasčių tai padėjo sustabdyti HRV valdymo pulto atstatymą įjungus ESP)
  • 10K omų rezistorius (traukiamasis rezistorius tarp 3,3 įtampos reguliatoriaus ir ESP CH_PD)
  • 10V 10uF kondensatorius (arba panašus, kad išlygintų ir stabilizuotų gaunamą HRV energiją)
  • 10 V 1uF kondensatorius (arba panašus, siekiant išlyginti ir stabilizuoti išeinančią energiją ESP)
  • Pasirinktinis skaidrių mygtukas ESP programavimui (priešingu atveju, norint programuoti, rankiniu būdu reikia traukti GPIO0 į GND)
  • FTDI adapteris (norint programuoti ESP, USB konvertuojamas į nuoseklųjį)

Surinkite pagal schemą

Duonos lentos paveikslėlyje parodyta, kaip reikia surinkti dalis. Atkreipkite dėmesį, kad iš lubų HRV valdiklio juostos kabelio nuleidžiami 6 kaiščiai:

1 ir 6 kaiščiai yra 5 V VCC

2 ir 5 kaiščiai yra GND

3 ir 4 kaiščiai yra duomenys.

Jums reikia naudoti tik 1, 2, 3 ir 6 kaiščius (1 ir 6 VCC maitina ESP8266 ir aukštą TTL loginio keitiklio pusę, 2 yra bendras pagrindas, o 3 - TTL serijos duomenims skaityti)

Jums reikalingas skirstytuvas bus tik RJ11 skirstytuvas, tik įsitikinkite, kad jis yra skirstytuvas toje vietoje, kur smeigtukai yra tiesūs (pvz.: 1 kaištis eina į 1 kaištį, 2 kaištis prie 2 kaiščio ir pan.) parodyta paveikslėliuose) yra skirti FTDI prijungimui, kad vėliau būtų galima perprogramuoti ESP, o parodytas jungiklis perjungia jį į „programavimo“režimą. Tai neprivaloma, tačiau rekomenduojama (pvz.: Jei pakeisite „WiFi“slaptažodį, nes „WiFi AP“ir slaptažodis yra užprogramuoti kodu, kurį turėsite įkelti, kai ESP8266 bus sukurtas)

2 veiksmas: kodo įkėlimas ir bandymas

Įkėlimo kodas ir testavimas
Įkėlimo kodas ir testavimas
Įkėlimo kodas ir testavimas
Įkėlimo kodas ir testavimas
Įkėlimo kodas ir testavimas
Įkėlimo kodas ir testavimas
Įkėlimo kodas ir testavimas
Įkėlimo kodas ir testavimas

Kodo pakeitimai

Alternatyvi atsisiuntimo nuoroda į „Arduino“kodą ČIA

Atidarykite „Arduino IDE“, įsitikinkite, kad įdiegta ESP plokštė, taip pat „PubSubClient“ir kad pasirinkote ESP8266 plokštę (Įrankiai, lenta, bendroji ESP8266 plokštė) Redaguokite kodą ir pakeiskite „WiFi“AP pavadinimą ir slaptažodį bei IP adresą savo MQTT brokerį (tai yra vieninteliai dalykai, kuriuos turėtumėte pakeisti), kaip parodyta žemiau. Spustelėkite mygtuką „Patvirtinti“, kad įsitikintumėte, jog jis sukompiliuotas gerai, tada įsitikinkite, kad pasirinktas teisingas COM prievadas (Įrankiai, prievadas) ir įkelkite kodą į savo ESP8266. Yra daug straipsnių apie tai, kaip tai padaryti, aš čia neišradinėsiu dviračio.

// Bevielis internetas

const char* ssid = "tavo_wifi_sid_čia"; const char* password = "tavo_wifi_paslaugos_čia"; // „MQTT Broker“IPAddress MQTT_SERVER (192, 168, 222, 254);

MQTT testavimas

Norėdami patikrinti, galite palikti prijungtą FTDI adapterį ir atidaryti „Arduino IDE“serijos monitorių, konsolėje turėtumėte matyti pranešimus, spausdinančius temperatūros informaciją. Jei jums reikia šalinti gaunamų MQTT pranešimų iš ESP8266 į jūsų MQTT tarpininką, tada „Mosquitto“serveryje vykdykite vieną iš šių komandų, norėdami užsiprenumeruoti gaunamus pranešimus:

mosquitto_sub -d -t openhab/hrv/status

Turėtumėte matyti įeinančius PUBLISH pranešimus, gaunamus iš ESP8266 maždaug kas 30 sekundžių su skaičiumi „1“(reiškia „aš gyvas“). Jei matote pastovius „0“(arba visai nieko), tada nėra jokio ryšio. Kai pamatysite artėjantį skaičių 1, tai reiškia, kad ESP8266 bendrauja su MQTT brokeriu (daugiau informacijos apie tai, kaip tai veikia, ieškokite „MQTT Paskutinė valia ir testamentas“arba peržiūrėkite šį tikrai gerą tinklaraščio įrašą)

Dabar galite stebėti temperatūros ir ventiliatoriaus greičio duomenis, užsiprenumeruokite vieną iš šių. Tačiau atminkite, kad kodas siunčia temperatūros duomenis tik tuo atveju, jei pasikeitė duomenys. Jis stebi paskutinę išsiųstą temperatūrą, ventiliatoriaus greitį ir tt duomenis, todėl gali būti, kad nematote iš karto gaunamos informacijos.

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

Patarimas: užsiprenumeruokite aukščiau esančią valdymo skydelio temperatūrą, tada paspauskite temperatūros mygtuką pačiame valdymo skydelyje, kad pamatytumėte naują temperatūros nustatymą.

Kai ketinate tai lituoti, 3 cm x 7 cm PCB puikiai tinka vandens nuleidimo dėžutėje už HRV valdymo skydelio. Aš rekomenduočiau tai daryti tik tuo atveju, jei tai yra plastikinė praplovimo dėžutė, nes metalinė dėžutė gali trikdyti „Wifi“signalus arba galbūt sutrumpinti jungtis PCB plokštėje. Arba galite atsispausdinti plastikinį 3D dėklą, kad pritvirtintumėte plokštę.

3 žingsnis: „OpenHAB“pakeitimai

„OpenHAB“konfigūracija

Reikalingi „OpenHAB“pakeitimai:

elementų failas:

/* 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" Diagramos laikotarpis "Number roofTemp" Stogas [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/rooftemp: state: default] "} Number roofTemp_Chart_Period" Diagramos laikotarpis "Number controlTemp" Control [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/controltemp: state: default] "} Styginių ventiliatoriaus greitis" Ventiliatoriaus greitis [%s] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/fanspeed: state: default] "}*/

„sitemap“failas:

Frame label = "HRV Temperature" {Text item = roofTemp {Frame {Switch item = roofTemp_Chart_Period label = "Period" mappings = [0 = "Valanda", 1 = "Diena", 2 = "Savaitė"] Vaizdo URL = "https:// localhost: 8080/rrdchart-p.webp

Įtrauktos papildomos „OpenHAB“piktogramos (dešiniuoju pelės mygtuku spustelėkite ir išsaugokite vaizdus)

Išsaugokite šiuos failus savo OpenHAB serverio aplanke.. / OpenHAB Home / webapps / images

Rekomenduojamas: