Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bahaging Kailangan / Pagpupulong
- Hakbang 2: Pag-upload ng Code at Pagsubok
- Hakbang 3: OpenHAB Pagbabago
Video: Ang Temperatura ng HRV sa OpenHAB Sa pamamagitan ng ESP8266 (Halimbawa ng Serial Code!): 3 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:16
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
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
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:
Paano Mag-upload ng Program o Code Sa Arduino Pro Mini sa pamamagitan ng Paggamit ng CH340 UART Serial Converter Cable: 4 na Hakbang
Paano Mag-upload ng Program o Code Sa Arduino Pro Mini sa pamamagitan ng Paggamit ng CH340 UART Serial Converter Cable: Ang USB TTL Serial cables ay isang saklaw ng USB sa mga serial converter cable na nagbibigay ng pagkakakonekta sa pagitan ng USB at serial UART interface. Ang isang hanay ng mga kable ay magagamit na nag-aalok ng pagkakakonekta sa 5 volts, 3.3 volts o tinukoy ng mga antas ng signal ng wi
Kontrolin ang LED Board sa pamamagitan ng Telepono Gamit ang NodeMCU, ESP8266 at MAX7219: 8 Mga Hakbang
Kontrolin ang LED Board sa pamamagitan ng Telepono Gamit ang NodeMCU, ESP8266 at MAX7219: Gusto kong gumamit ng telepono upang makontrol ang LED board bilang isang turn signal. Kaya, ang ESP8266 ay kikilos bilang isang Access Point, microcontroller at isang server din. Ang web server ay magkakaroon ng isang simpleng webpage na may 3 mga pindutan: Lumiko sa Kaliwa, Lumiko KANAN, at Lumiko sa SOS. Ang tex
Encapsulate ang Hakbang Servo Motor Na May Serial Control Sa Pamamagitan ng Arduino Gamit ang isang 3D Printer - Pt4: 8 Hakbang
Pagsasaayos ng Hakbang Servo Motor Na May Serial Control Sa Pamamagitan ng Arduino Gamit ang isang 3D Printer - Pt4: Sa ikaapat na video na ito ng serye ng Motor Step, gagamitin namin ang natutunan namin dati na bumuo ng isang stepper servo motor na may kontrol sa pamamagitan ng serial komunikasyon at real feedback sa posisyon gamit ang isang resistive encoder na sinusubaybayan ng isang Arduino. Sa
Mga Arduino Smartphone Coms / Serial Monitor Sa Pamamagitan ng Bluetooth HC-05, HC-06: 4 Mga Hakbang (na may Mga Larawan)
Ang Arduino Smartphone Coms / Serial Monitor Sa pamamagitan ng Bluetooth HC-05, HC-06: Kapani-paniwalang kapaki-pakinabang kung nais mong subukan ang iyong sketch sa isang tunay na kapaligiran sa mundo, malayo sa iyong PC. Ang kinalabasan ay ang iyong smartphone na kumikilos pareho sa serial monitor ng Arduino sa iyong PC. Ang HC-05 at HC-06 Bluetooth modules ay magagamit
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c