Talaan ng mga Nilalaman:

NEST ang iyong Lumang Therostat: 4 Hakbang (na may Mga Larawan)
NEST ang iyong Lumang Therostat: 4 Hakbang (na may Mga Larawan)

Video: NEST ang iyong Lumang Therostat: 4 Hakbang (na may Mga Larawan)

Video: NEST ang iyong Lumang Therostat: 4 Hakbang (na may Mga Larawan)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Nobyembre
Anonim
Image
Image
Paano Gumagawa ang isang Thermostat
Paano Gumagawa ang isang Thermostat

Ang sistema ng pag-init sa aking bahay ay marahil kasing edad ng bahay mismo. Ito ay mga 30 taong gulang, na kung saan ay mabuti sa mga tuntunin ng mga taon ng bahay, ngunit medyo natigil sa panahon ng yelo hanggang sa pag-aalala ng teknolohiya. Mayroong 2 pangunahing mga problema sa mga solusyon sa komersyo:

  • ipinagbabawal ang pagpepresyo
  • produkto bilang serbisyo

Natatandaan nating lahat kung ano ang nangyari kay Revolv at hindi ako masyadong masigasig na mangyari ito sa akin sa kalagitnaan ng taglamig. Sa pag-iisip na iyon, ipinakita ko sa iyo ang hindi kapani-paniwalang kahina-hinala na hitsura ngunit gumagana na NEST-Alike controller para sa iyong lumang termostat. Huwag magalala, pinaplano ko ang isang mas mahusay na enclosure upang maidagdag sa lalong madaling panahon!

Mga Tampok:

  • kakayahang gumamit ng isang mayroon nang termostat (kung sakaling umungol ang asawa tungkol dito)
  • malayuang pag-access
  • AWAY mode
  • pinakamainam na tagapagpahiwatig ng temperatura
  • Nakikipagtulungan kay Alexa

Malapit na (suriin dito para sa mga update)

  • Google Home
  • Google Calendar
  • Maramihang Mga Sensor
  • Mga kontrol sa radiador
  • Mga pagsasama ng IFTT
  • Suporta ng Tasker
  • Mga Kahilingan sa
  • Ang isang mas mahusay na naghahanap ng enclosure

Hakbang 1: Paano Gumagawa ang isang Therostat

Paano Gumagawa ang isang Thermostat
Paano Gumagawa ang isang Thermostat
Paano Gumagawa ang isang Thermostat
Paano Gumagawa ang isang Thermostat

Ang termostat ay malamang na konektado sa HIGH VOLTAGE! Huwag subukang gumawa ng anuman maliban kung natiyak mong naka-off ang circuit. Maaari mong saktan ang iyong sarili at maging sanhi ng pinsala sa mga nakakonektang kagamitan. Isaalang-alang ang pagkonsulta sa isang kwalipikadong elektrisista upang matiyak ang iyong kaligtasan

Ang termostat ng Honeywell ay isang yunit na nakakabit sa dingding, pinapatakbo ng mga pangunahing aparato (Ang mga pangunahing kaalaman ng Sonoff ay nangangailangan ng min 90V, ang aking circuit ay mayroong 230V). Ang kahon ay konektado sa pangunahing yunit ng pagkontrol (na kung saan ay isang mas advanced na kahon) at nagpapadala ito ng signal kapag bumaba ang temperatura sa ibaba ng antas ng target. Habang maaaring magkakaiba ang iyong unit, malamang na pareho ang prinsipyo. Kung mayroon kang 3 wires at walang koneksyon sa radyo sa pagitan ng unit na naka-mount sa pader - ito ang tutorial para sa iyo.

Alam ko kung paano gumagana ang mga 3-wire termostat sa isang prinsipyo, na hindi huminto sa akin sa paghihip ng isang piyus sa pamamagitan ng pag-ikli ng 2 wires nang hindi sinasadya! Mayroon akong 3 wires na konektado sa yunit (na may ika-4 na mundo). Ang aking Honeywell termostat ay hindi wireless, kaya upang ilipat ang signal, maaari kong gamitin ang Sonoff Basic. Panahon na upang paghiwalayin ito at tingnan kung paano ipinadala ang signal sa unit. Sa mas malapit na pagsisiyasat, ang terminal ay konektado sa sumusunod na paraan:

  1. (asul) - Lupa
  2. (dilaw) - signal, kapag nakuha nang mataas ang pag-init ay nakabukas
  3. hindi ginagamit
  4. (pula) - ang live na wire na ginamit upang hilahin ang signal mataas

Upang makamit ang aking layunin, kailangan kong paikliin ang live na wire gamit ang signal wire kapag nais kong i-on ang aking pagpainit. Kung mayroon kang isang katulad na konektadong termostat, swerte ka dahil ang Sonoff Basic ay sapat na upang gawin ang trick.

Hakbang 2: Pagkuha ng Batayang Handa ng Sonoff

Pagkuha ng Batayang Handa ng Sonoff
Pagkuha ng Batayang Handa ng Sonoff
Pagkuha ng Batayang Handa ng Sonoff
Pagkuha ng Batayang Handa ng Sonoff
Pagkuha ng Batayang Handa ng Sonoff
Pagkuha ng Batayang Handa ng Sonoff

Bago namin simulang ikonekta ang mga wire, kailangan naming magdagdag ng isang sensor ng temperatura (DHT11) sa halo. Tiyaking mayroon kang Tasmota firmware na na-flash sa iyong Sonoff device (Mayroon akong mahusay na gabay na flashing dito) at ang iyong Sonasm na pinagana ng Tasmota ay na-configure nang tama (na sakop ko rin). Ngayon, ang iyong natitira lamang ay upang ikonekta ang sensor ng DHT11 sa Sonoff at i-configure ito para sa pag-uulat ng temperatura.

Ang DHT11 ay may 3 mga pin na naka-wire: Signal - GPIO14Vcc - 3.3VGND - GND

Lumusot ako ng butas, hindi ako nababagabag sa hitsura nito ngayon, ang kailangan ko lang ay ang patunay ng konsepto at ang pagpapatunay. Gumagawa ako ng isang maganda at makintab na enclosure sa sandaling dumating ang aking 3D printer. Nagbayad ako ng labis na pansin sa kung paano ko kawad ang Sonoff, dahil kailangan kong tiyakin na ang live na kawad ay kumokonekta sa signal wire sa kabilang dulo ng aparatong Sonoff. Ang unit ng Honeywell ay may load resistor (R) na itinayo sa loob kung saan nililimitahan ang kasalukuyang. Habang ang circuit ay protektado ng 3A fuse, matalino na tumugma sa parehong paglaban para sa labis na proteksyon. Kapag handa na ang mga wire, oras na upang i-flip ang pangunahing lakas at ibalik ang Sonoff.

Sonoff Tasmota - Honeywell termostat

INPUT Live - Ika-4 na terminal Live

INPUT GND - 1st terminal GND

OUTPUT Signal - 2nd terminal Signal

Nabanggit ko dati iyon sa ngayon, hindi ako mag-stress tungkol sa mga hitsura nito. Ang asawa ay kumbinsido at maaari akong tumuon sa pagpapaandar at pag-clear ng anumang mga bug na magaganap. Ang magandang bagay ay ang orihinal na termostat ay gumagana pa rin. Kung tatalakayin ko ito, malalampasan nito ang batay sa Sonoff Tasmota. Ito ay dapat maging isang mahusay na pag-backup para sa anumang hindi inaasahang mga kaganapan.

Hakbang 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Mangyaring tandaan na ang video ay maaaring maglaman ng mas matandang mga sanggunian sa NodeRed, patuloy kong ginagawa ang pagpapabuti ng disenyo. Ito ay maliliit na pagbabago at ang mga file ng artikulo ay pinapanatiling napapanahon

Natagpuan ko ang disenyo na ito sa online. Mukha itong mahusay, subalit sa pagsasara nang mabuti, ang widget ay hindi talaga angkop para sa NodeRED. Kailangan nito ng 5 mga kargamento upang maitakda, na kung saan ay hindi kung paano gumagana ang magkatulad na disenyo. Tumagal ako ng kaunting oras upang malaman ang pinakamahusay na paraan ng pagpasa sa lahat ng impormasyong iyon upang ma-update ang widget at panatilihin itong gumana. Sigurado ako sa oras na gugugol ko ng mas maraming oras sa disenyo upang maitulak ko ang lahat ng kinakailangang mga update sa isang solong msg object. Sa ngayon, ito ay kung ano ito.

Pag-agos ng temperatura

Iniulat ng DHT11 bawat X segundo pabalik sa NodeRED server. Nadagdagan ko ang dalas na ito sa pamamagitan ng console ng Tasmota. Patakbuhin lamang ang utos upang itakda ang dalas sa sec:

Itinakda ng TelePeriod ang panahon ng telemetry sa pagitan ng 10 at 3600 segundo

Ginagawa ito halos para sa mga pagsubok, dahil ayaw kong maghintay ng ilang minuto upang makita kung gumana ang aking mga pag-aayos ng bug. Ang pagpapanatili ng mataas na dalas ay magiging sanhi ng pag-iinit ng mas madalas para sa mas maikli na tagal ng panahon, kaya pigilin ang pagtatakda nito sa 10 sec para sa iba pang mga layunin sa pagsubok. Ang MQTT node ay hinihila ang data mula sa:

sonoff / tele / SENSOR

at pinapanatili ang pinaka-kapaki-pakinabang na data sa mga sumusunod na bagay:

msg.payload. DHT11. Katangian msg.payload. DHT11. Kahusayan

Upang limitahan ang mga error, idinagdag ko ang makinis na node upang average ang mga resulta at na-update ang variable ng daloy: NodeRED:

Function Node - I-update ang 'TempAmbient'

flow.set ('TempAmbient', msg.payload. DHT11. Temperatura); ibalik ang msg;

Pag-update ng Widget

Napagpasyahan kong ang 5 segundo ay isang magandang rate ng pag-refresh, samakatuwid pinipilit ko ang lahat ng kinakailangang halaga sa dalas na ito. Ang tanging pagbubukod ay ang slider, na sa halatang kadahilanan ay agad na tumutugon.

Ang bawat kaukulang node ay nagpapadala ng kargamento na may nakatalagang paksa sa widget na katulad ng pugad.

  • kulay (pag-init | paglamig * | off at hvac_state)
  • dahon (totoo | false & has_leaf)
  • ang layo (totoo | hindi totoo at malayo)
  • Ambient temp (numero at ambient_temperature)
  • Target na temp (numero at target_temperature)

*hindi ginagamit

NodeRED: Function Node - Pag-update ng Widget

kulay

x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // ambient

kung (z = x) {

flow.set ('heatingState', "off"); flow.set ('pagpainitSwitch', "OFF"); } msg.payload = z; msg.topic = "ambient_temperature"; ibalik ang msg;

dahon

x = flow.get ('TempAmbient'); kung (x> 17 && x <23) {flow.set ('leaf', true); msg.payload = totoo; msg.topic = "has_leaf"; ibalik ang msg; } iba pa {flow.set ('leaf', false); msg.payload = false; msg.topic = "has_leaf"; ibalik ang msg; }

Kulay ng labis na pag-override

x = flow.get ('away'); kung (x === true) {msg.topic = "hvac_state"; msg.payload = "off"; ibalik ang msg; }

msg.topic = "hvac_state";

msg.payload = flow.get ('heatingState');

ibalik ang msg;

Palayo na

x = flow.get ('away'); kung (x === true) {flow.set ('heatSwitch', "OFF"); flow.set ('heatingState', "off"); }

msg.topic = "malayo";

msg.payload = flow.get ('away'); ibalik ang msg;

Target na Temp

kung (msg.topic === "update") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); ibalik ang msg; }

kung (msg.command === "SetTargetTemperatureRequest") {

flow.set ('away', false); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

kung (msg.topic === "slider") {

flow.set ('away', false); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

kung (msg.command === "GetTemperatureReadingRequest") {}

ibalik ang msg;

Tulad ng nakikita mo, nag-opt out ako para sa mga variable ng daloy, upang maalala ko ang halaga sa anumang naibigay na oras. Mayroon akong daloy ng pag-debug na karaniwang binabasa ang lahat ng nakaimbak na mga halaga.

  • 'TempAmbinet' - nag-iimbak ng kasalukuyang temp
  • Ang 'TempTarget' - humahawak sa halaga ng target na temp
  • 'Dahon' - nagpapakita ng dahon kung kinakailangan
  • 'Malayo' - ipinapakita ang katayuan sa malayo kung kinakailangan
  • 'Pag-init ng Estado' - binabago ang kulay ng display
  • Ang 'pagpainitSwitch' - kinokontrol ang estado ng relay.

Ang hamon ay upang tiyakin na ang impormasyon ay na-update sa "pag-update" at kapag hiniling sa pamamagitan ng iba pang mga paraan (Alexa, atbp). Ito ang dahilan kung bakit makikita mo ang iba't ibang mga kundisyon sa JavaScript. Sa tuwing nai-update ang mga halaga, ipinadala sa variable ng daloy at ang widget ay na-refresh.

Slider

Inihayag ng pagsubok na kailangan ng isang karagdagang pag-update ng slider (itinutulak ng slider ang target na temperatura). Ipinapadala ng Slider ang payload (numero) kasama ang nauugnay na paksang slider) kapag inilipat ito. Sa itaas nito, nais kong makarating ang slider sa tamang posisyon kung maraming mga web interface ang nasa lugar. Upang gawin ito, bawat 5 sec na-update ko lang ang posisyon ng slider sa isang kasalukuyang target na temperatura.

NodeRED: Function Node - I-update ang slider '

msg.payload = flow.get ('TempTarget'); ibalik ang msg;

Control ng relay

Ang controller ng relay ay simple, tumatagal (sa ngayon) ng dalawang mga input. Ang totoo ni Alexa | false at ang pakikipag-ugnay na sumusunod sa isang pag-update sa variable na daloy ng "pagpalit ng Pag-init". Hindi na kailangan para sa isang instant na aksyon, kaya para sa pagiging simple, tumatakbo ito sa parehong dalas ng pag-update ng 5sec tulad ng natitirang daloy.

Ang relay ay konektado sa pamamagitan ng MQTT. Nag-post ang Node ng ON | OFF na mga utos sa paksa:

sonoff / cmnd / POWER1

Tumatanggap ang function node ng totoong | mali mula sa Alexa at binabago din ang estado ng pag-input ayon sa variable ng daloy ng 'heatSwitch'.

NodeRED: Function Node - Control Relay '

kung (msg.command === "TurnOffRequest") {msg.payload = "OFF"; ibalik ang msg; }

kung (msg.command === "TurnOnRequest") {

msg.payload = "NASA"; flow.set ('TempTarget', 21); ibalik ang msg; } kung (msg.topic === "update") {msg.payload = flow.get ('pagpainitSwitch'); } ibalik ang msg;

Pagsasama ng Alexa

Ito ang unang aparato na kinailangan kong i-off ang "awtomatikong kilalanin". Sa halip na awtomatikong ipagpalagay ang isang tugon ay nakabuo ako ng isa dahil nais ko ang kakayahang magtanong sa itinakdang temperatura. Sa prinsipyo, ang msg.payload = true | false ay nagpapahiwatig kung ang kahilingan ay matagumpay, at ang mga template na matatagpuan dito ay gawin ang natitira. Kung bago ka sa Alexa at NodeRed, tiyaking basahin ito.

Napagpasyahan kong ipasa ang magkakahiwalay na mga pagkilala (alam kong hindi ito ang pinakamahusay na paraan) upang makontrol ang lahat nang medyo mabuti. Wastong ang bawat tugon ay dapat ibigay sa pagtatapos ng chain ng utos. Ang akin ay nanganganib na hindi ibalik ang mga error kung mangyari ito. Tandaan, na maging pare-pareho, ina-update ko lang ang mga variable, habang ang pag-refresh ng loop, ay tinutulak ang mga bagong halaga sa widget.

NodeRED: Function Node - Iproseso ang Mga Tugon ng Alexa '

// Ano ang targetif na temperatura ng termostat (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperaturaReading": {"halaga": x}, "applianceResponseTimestamp": bagong Petsa (). toISOString ()}; msg.payload = totoo; ibalik ang msg; } // Itakda ang temperatura sa (hindi mas mababa sa 10 o higit pa sa 30) kung (msg.command === "SetTargetTemperatureRequest") {kung (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = saklaw; } iba pa {msg.extra = {targetTemperature: {halaga: msg.payload}}; msg.payload = totoo; } ibalik ang msg; } // I-on ito kung (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('away', false); flow.set ('TempTarget', 21); ibalik ang msg; } // Patayin ito kung (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('malayo', totoo); ibalik ang msg;

Hakbang 4: Konklusyon

Konklusyon
Konklusyon

Kung ilantad mo ang NodeRED dashboard sa WAN ang buong sistema ng pag-init ay maaaring makontrol nang malayuan. Inirerekumenda ko sa iyo na basahin ang mga sumusunod na artikulo upang makakuha ng mabilis sa seguridad ng NodeRED at NodeRED.

  • NodeRED para sa mga nagsisimula
  • NodeRED seguridad

Bilang karagdagan, kung nais mong magkaroon ng kaalaman tungkol sa mga pag-update sa proyektong ito - isaalang-alang ang pagsunod sa akin sa platform na iyong pinili:

  • Ok naman ang Facebo
  • Twi tter
  • Instagram
  • Ikaw ay magiging

At kung nais mong bilhin ako ng kape o suportahan ako sa isang mas tuloy-tuloy na paraan:

  • Paypal
  • Patreon

Inaasahan kong nasiyahan ka sa proyekto!

Inirerekumendang: