Talaan ng mga Nilalaman:

Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!): 3 Mga Hakbang
Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!): 3 Mga Hakbang

Video: Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!): 3 Mga Hakbang

Video: Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!): 3 Mga Hakbang
Video: REAL TALK: BAKIT WALANG TEMPERATURE GAUGE ANG MGA KOTSE? THE TRUTH 2024, Setyembre
Anonim
Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!)
Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!)
Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!)
Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!)
Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!)
Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!)

HRV - Wireless sa OpenHAB

Ang itinuturo na ito ay partikular para sa mga may sistema ng HRV (pagpainit ng bentilasyon ng muling pagpapabuhay) - kahit na ang mga bahagi ng circuit board, pagsasaayos ng openhab o Arduino code (tulad ng pagbabasa ng serial data ng TTL) ay maaaring maging madaling gamiting sa iyong sariling mga proyekto o maghatid ng mabuti para sa pag-aaral. Ipinapalagay na mayroon kang isang makatwirang kaalaman sa Arduino IDE at kung ano ang isang chip ng ESP8266.

Panimula

Ang mga sumusunod na balangkas kung paano bumuo ng isang ESP8266 na kumokonekta sa isang sistema ng HRV at nagpapadala ng mga temperatura sa bubong at bahay, temperatura ng control panel at bilis ng fan sa pamamagitan ng mga mensahe ng MQTT sa OpenHAB. Ito ay dinisenyo upang gumana sa isang board ng ESP8266-01 (bagaman dapat gumana sa anumang bersyon ng ESP8266 3.3V) Kung mayroon kang isang katulad na sistema ng uri ng HRV mula sa isang kahaliling vendor, kakailanganin mong matukoy kung ang data ay ipinadala bilang TTL serial at kung gayon, anong istraktura ang ipinadalang data bilang.

OpenHAB at Mosquitto

Partikular na nakasulat ang code ng ESP8266 upang gumana sa OpenHAB (open source home automation software) at isang broker ng MQTT tulad ng Mosquitto (isang pag-subscribe / pag-publish ng uri ng protokol sa pagmemensahe na magaan at mahusay para sa komunikasyon sa pagitan ng mga aparato) Huwag hayaang ang mga pangalan o tinatakot ka ng mga acronyms, talagang simple ang mga ito upang magamit sa sandaling makilala mo kung paano sila gumagana. Gumagamit ako ng OpenHAB sa isang NTC C. H. I. P (US $ 9 computer) subalit maraming tao ang gumagamit ng isang Raspberry Pi o katulad. Ipinapalagay ng tutorial na ito na naipatupad mo ang OpenHAB (kung kailangan mo ng tulong sa pag-set up ng OpenHAB, sundin ang mahusay na artikulong ito mula sa makeuseof web site) Kailangan mo ring i-download at i-install ang Mosquitto (MQTT broker) at kaugnay na pagbubuklod ng OpenHAB. Maaari mong mai-install ito sa ibang lugar sa iyong network, subalit ang karamihan sa mga tao ay mai-install lamang ito sa parehong makina tulad ng OpenHAB upang mapanatili itong simple.

Upang mai-install ang Mosquitto, sundin ang link na ito pagkatapos ay piliin ang uri ng aparato na iyong ginagamit at sundin ang mga tagubilin. Dahil ang C. H. I. P ay nagpapatakbo ng Debian (Jessie), maaari mong sundin ang mga tagubilin sa Raspberry Pi kung gumagamit ka ng C. H. I. P para sa iyong aparato sa Home Automation (tandaan din, pinakamahusay na mai-configure muli ang CHIP upang mag-boot mula sa CLI. Mayroong mga tagubilin para dito)

Kapag mayroon kang tumatakbo na OpenHAB at Mosquitto, kailangan mong ihanda ang Arduino IDE para sa ESP8266 at code. Una, kailangan mong idagdag ang "PubSubClient" library. Sa Arduino IDE, mula sa menu na pumunta sa Sketch, Isama ang Library, Pamahalaan ang Mga Library sa filter box para sa paghahanap, i-type ang PubSubClient pagkatapos ay i-highlight ang resulta ng paghahanap at i-click upang I-install (sa oras ng pagsulat, ang pinakabagong bersyon ay 2.6.0) Magagawa mo kailangan ding idagdag ang board ng ESP8266 sa Arduino IDE na maaaring gawin sa pamamagitan ng pagsunod sa mga tagubilin dito

Ano ang ibinibigay sa akin nito?

Tulad ng sinabi nang mas maaga, papayagan ka ng proyektong ito na tingnan ang iyong HRV control panel na bubong, bahay, temperatura ng control panel at bilis ng fan sa OpenHAB GUI (sa real time!) Ipinapakita ng mga imahe kung ano ang hitsura nito mula sa aking iPhone, kasama ang mga grap na iyong makukuha sa pamamagitan ng pagbabarena sa iba't ibang mga temperatura.

Upang makuha ang mga graph, kakailanganin mong i-install din at i-configure ang pagbubuklod ng RRD4J (ito ay tuwid na pasulong) Papayagan ka nitong mag-click sa alinman sa 'House' o 'Roof' at makakuha ng isang kasaysayan ng mga temperatura ng HRV para sa bawat nakaraan oras, araw o linggo (o mas mahaba, kung binago mo ang pagsasaayos upang umangkop) Ang mga imaheng ipinakita ay nasa celsius, at malinaw na ang taglamig nito sa southern hemisphere nang ginawa ko ito!

Bilang karagdagan, lumikha ako ng isang bukas na pagtingin sa OpenHAB na nagpapakita ng isang paghahambing sa pagitan ng temperatura sa Labas (na ibinigay ng Add-on na nagbubuklod ng Panahon, sa aking kaso gamit ang Wunderground) kumpara sa temperatura ng bubong at bahay sa pamamagitan ng pag-click sa pagpipiliang 'Control' (ipinapakita ng larawan ang grap na may plano sa bahay, bubong at labas ng temperatura). Plano ko sa paggamit ng data na ito sa mga patakaran upang i-on ang mga kagamitan sa pag-init tulad ng kinakailangan. Idagdag lamang ang item ng Panahon sa iyong URL ng Imahe sa sitemap file at isama ito sa parehong grap (hal: … item = houseTemp, roofTemp, WeatherTemp…)

Hakbang 1: Mga Bahaging Kailangan / Pagpupulong

Mga Bahaging Kailangan / Assembly
Mga Bahaging Kailangan / Assembly
Mga Bahaging Kailangan / Assembly
Mga Bahaging Kailangan / Assembly
Mga Bahaging Kailangan / Pagpupulong
Mga Bahaging Kailangan / Pagpupulong

Kakailanganin mo ang mga sumusunod na bahagi

  • Isang RJ11 splitter (hatiin nito ang signal mula sa controller sa bubong, sa control panel at sa ESP8266)
  • Ang ilang mga ribbon cable at isang RJ11 plug (upang mapatakbo ang mga wire mula sa splitter hanggang sa ESP8266)
  • ESP8266-01 (iba pang mga bersyon ng 3.3V ay dapat na gumana)
  • TTL converter level ng lohika (upang baguhin ang data mula sa 5V -> 3.3V)
  • AMS1117 3.3V boltahe regulator (o katulad, upang baguhin ang boltahe mula sa HRV 5V -> 3.3V sa kapangyarihan ESP8266)
  • 1N5817 schottky diode (para sa ilang kadahilanan na nakatulong ito na itigil ang pag-reset ng control panel ng HRV sa kapangyarihan ng ESP)
  • 10K ohm risistor (pullup risistor sa pagitan ng 3.3 Voltage Regulator at ESP CH_PD)
  • 10V 10uF capacitor (o katulad, upang makinis at ma-istabel ang papasok na lakas mula sa HRV)
  • 10V 1uF capacitor (o katulad, upang makinis at ma-istabel ang papalabas na lakas sa ESP)
  • Opsyonal na pindutan ng slide upang mai-program ang ESP (kung hindi man, kailangang hilahin nang manu-mano ang GPIO0 sa GND upang mai-program)
  • Isang FTDI adapter (upang mai-program ang ESP, i-convert ang USB sa serial)

Magtipun-tipon alinsunod sa Schematic

Ipinapakita ng imahe ng breadboard kung paano dapat tipunin ang mga bahagi. Tandaan na mayroong 6 na pin na bumaba sa ribbon cable mula sa HRV controller unit sa kisame:

Ang mga Pin 1 at 6 ay 5V VCC

Ang mga pin 2 at 5 ay GND

Ang Pins 3 at 4 ay Data.

Kailangan mo lamang gamitin ang mga pin 1, 2, 3 at 6 (1 at 6 na kapangyarihan ng VCC na ESP8266 at ang mataas na bahagi ng TTL logic converter, ang 2 ay isang pangkaraniwang batayan at ang 3 ay para sa pagbabasa ng serial data ng TTL)

Ang splitter na kailangan mo ay magiging isang RJ11 splitter lamang, siguraduhin na ito ay isang splitter kung saan ang mga pin ay tuwid sa pamamagitan ng (hal: pin 1 napupunta sa pin 1, pin 2 sa pin 2 at iba pa) Tandaan na ang labis na mga babaeng pin (bilang ipinapakita sa mga imahe) ay para sa pagkonekta ng isang FTDI para sa muling pagprogram ng ESP sa paglaon, at ang ipinapakitang switch ay inilalagay ito sa "programming" mode. Opsyonal ito, ngunit inirerekumenda (hal: kung binago mo ang iyong password sa WiFi habang ang WiFi AP at password ay masiksik na na-program sa code, na kakailanganin mong i-upload sa sandaling maitayo ang iyong ESP8266)

Hakbang 2: Pag-upload ng Code at Pagsubok

Pag-upload ng Code at Pagsubok
Pag-upload ng Code at Pagsubok
Pag-upload ng Code at Pagsubok
Pag-upload ng Code at Pagsubok
Pag-upload ng Code at Pagsubok
Pag-upload ng Code at Pagsubok
Pag-upload ng Code at Pagsubok
Pag-upload ng Code at Pagsubok

Mga Pagbabago ng Code

Kahaliling link sa pag-download sa Arduino code DITO

Buksan sa Arduino IDE, tiyaking naka-install ang board ng ESP pati na rin ang PubSubClient at napili mo ang board ng ESP8266 (Tools, Board, Generic ESP8266 Board) I-edit ang code at baguhin ang pangalan at password ng WiFi AP at ang IP address ng ang iyong MQTT broker (ito lamang ang mga bagay na dapat mong baguhin) tulad ng ipinakita sa ibaba. I-click ang pindutang 'I-verify' upang matiyak na magkakasama ito ok at matiyak na ang tamang COM port ay napili (Mga Tool, Port) at i-upload ang code sa iyong ESP8266. Mayroong maraming mga artikulo sa paligid kung paano ito gawin, hindi ko na muling ibubuhos ang gulong dito.

// Wifi

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

Pagsubok sa MQTT

Para sa pagsubok maaari mong iwanan ang iyong FTDI adapter na konektado at buksan ang Serial Monitor sa Arduino IDE, dapat mong makita ang mga mensahe na nagpi-print ng impormasyon ng temperatura sa console. Kung kailangan mong i-troubleshoot ang mga papasok na mensahe ng MQTT mula sa ESP8266 patungo sa iyong MQTT broker, pagkatapos sa server ng Mosquitto patakbuhin ang isa sa mga sumusunod na utos upang mag-subscribe sa mga papasok na mensahe:

mosquitto_sub -d -t openhab / hrv / status

Dapat mong makita ang papasok na mga mensahe na I-PUBLISH na nagmumula sa ESP8266 bawat 30 segundo o higit pa kasama ang bilang na "1" (nangangahulugang "Buhay ako") Kung nakikita mo ang patuloy na "0's" (o wala man lang) pagkatapos ay walang komunikasyon. Kapag nakita mo na ang papasok na numero 1, nangangahulugan ito na ang ESP8266 ay nakikipag-usap sa broker ng MQTT (hanapin ang "MQTT Last Will and Testament" para sa karagdagang impormasyon kung paano ito gumagana, o tingnan ang talagang magandang blog entry na ito)

Maaari mo na ngayong subaybayan ang temperatura at data ng bilis ng fan, mag-subscribe sa isa sa mga sumusunod. Gayunpaman, tandaan na ang code ay nagpapadala lamang ng data ng temperatura kung ang anumang data ay nagbago. Sinusubaybayan nito ang huling temperatura, data ng bilis ng fan atbp na ipinadala, kaya maaaring hindi mo makita ang impormasyong papasok kaagad.

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

Pahiwatig: mag-subscribe sa temperatura ng control panel sa itaas, pagkatapos ay itulak ang pindutan ng temperatura sa control panel mismo na dapat mong makita ang bagong setting ng temperatura na pumasok.

Kapag napunta ka sa paghihinang na ito, ang isang 3cm x 7cm PCB ay umaangkop nang maayos sa flush box sa likod ng HRV Control Panel. Inirerekumenda ko lamang na gawin ito kung ito ay isang plastic flush box dahil ang isang metal box ay maaaring makagambala sa mga signal ng Wifi o posibleng maikli ang mga koneksyon sa PCB board. Bilang kahalili, maaari kang mag-print ng isang plastic 3D case upang mai-mount ang board.

Hakbang 3: OpenHAB Pagbabago

Pag-configure ng OpenHAB

Ang mga kinakailangang pagbabago sa OpenHAB ay ang mga sumusunod:

file na 'item':

/ * HRVNumber hrvStatus "Katayuan ng HRV [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" Period ng Tsart "Numero ng bubongTemp" Roof [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / rooftemp: state: default] "} Number roofTemp_Chart_Period" Period ng Tsart "Numero ng 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] "} * /

file na 'sitemap':

Label ng Frame = "Temperatura ng HRV" {Text item = roofTemp {Frame {Switch item = roofTemp_Chart_Period label = "Period" mappings = [0 = "Hour", 1 = "Day", 2 = "Week"] Image url = "https:// localhost: 8080 / rrdchart-p.webp

Kasama ang mga karagdagang icon para sa OpenHAB (pag-right click at i-save ang mga imahe)

I-save ang mga file na ito sa folder ng.. / OpenHAB Home / webapps / mga imahe sa iyong OpenHAB server

Inirerekumendang: