Სარჩევი:

NEST შენი ძველი თერმოსტატი: 4 ნაბიჯი (სურათებით)
NEST შენი ძველი თერმოსტატი: 4 ნაბიჯი (სურათებით)

ვიდეო: NEST შენი ძველი თერმოსტატი: 4 ნაბიჯი (სურათებით)

ვიდეო: NEST შენი ძველი თერმოსტატი: 4 ნაბიჯი (სურათებით)
ვიდეო: The Internet of Things by James Whittaker of Microsoft 2024, ივლისი
Anonim
Image
Image
როგორ მუშაობს თერმოსტატი
როგორ მუშაობს თერმოსტატი

ჩემს სახლში გათბობის სისტემა ალბათ ისეთივე ძველია, როგორც თავად სახლი. ის დაახლოებით 30 წლისაა, რაც მშობიარობის თვალსაზრისით კარგია, მაგრამ საკმაოდ გამყინვარების ხანაშია ჩარჩენილი რაც შეეხება ტექნოლოგიას. კომერციული გადაწყვეტილებების 2 ძირითადი პრობლემა არსებობს:

  • აკრძალული ფასები
  • პროდუქტი, როგორც მომსახურება

ჩვენ ყველას გვახსოვს რა დაემართა რევოლვს და მე არ ვარ დიდი სურვილი რომ ეს მოხდეს ჩემთან შუა ზამთარში. ამის გათვალისწინებით, მე წარმოგიდგენთ წარმოუდგენლად საეჭვო გარეგნულ, მაგრამ ფუნქციურ NEST-Alike კონტროლერს თქვენი ძველი თერმოსტატისთვის. არ ინერვიულო, მე ვგეგმავ ბევრად უკეთეს დანართს, რომელიც მალე დაემატება!

Მახასიათებლები:

  • უნარი გამოიყენოს არსებული თერმოსტატი (იმ შემთხვევაში, თუ მეუღლე წუწუნებს ამის შესახებ)
  • დისტანციური წვდომა
  • AWAY რეჟიმი
  • ოპტიმალური ტემპერატურის მაჩვენებელი
  • მუშაობს ალექსასთან

მალე (შეამოწმეთ აქ განახლებებისთვის)

  • Google მთავარი
  • Google კალენდარი
  • მრავალი სენსორი
  • რადიატორის კონტროლი
  • IFTT ინტეგრაცია
  • Tasker მხარდაჭერა
  • HTTP მოთხოვნები
  • ბევრად უკეთესი გარეკანი

ნაბიჯი 1: როგორ მუშაობს თერმოსტატი

როგორ მუშაობს თერმოსტატი
როგორ მუშაობს თერმოსტატი
როგორ მუშაობს თერმოსტატი
როგორ მუშაობს თერმოსტატი

თერმოსტატი სავარაუდოდ დაკავშირებულია მაღალ ძაბვასთან! ნუ ეცდებით არაფრის გაკეთებას, თუ არ დარწმუნდებით, რომ წრე გამორთულია. თქვენ შეგიძლიათ ზიანი მიაყენოთ საკუთარ თავს და ზიანი მიაყენოთ დაკავშირებულ აღჭურვილობას. განიხილეთ კვალიფიციური ელექტრიკოსის კონსულტაცია თქვენი უსაფრთხოების უზრუნველსაყოფად

Honeywell– ის თერმოსტატი არის კედელზე დამონტაჟებული ერთეული, რომელიც იკვებება ქსელის საშუალებით (Sonoff– ის საფუძვლები სჭირდება მინიმუმ 90V, ჩემს წრეს აქვს 230V). ყუთი უკავშირდება მთავარ საკონტროლო ერთეულს (რომელიც არის უფრო მოწინავე ყუთი) და ის აგზავნის სიგნალს, როდესაც ტემპერატურა დაცემულია მიზნობრივ დონეზე. მიუხედავად იმისა, რომ თქვენი ერთეული შეიძლება განსხვავებული იყოს, პრინციპი, სავარაუდოდ, ერთი და იგივეა. თუ თქვენ გაქვთ 3 მავთული და არ გაქვთ რადიო კავშირი კედელზე დამონტაჟებულ ერთეულს შორის-ეს არის სახელმძღვანელო თქვენთვის.

მე ვიცი, როგორ მუშაობს პრინციპში 3 მავთულის თერმოსტატი, რამაც ხელი არ შემიშალა დაუკრავენ დაუკრავენ 2 მავთულს შემთხვევით! მე მაქვს 3 მავთული დაკავშირებული ერთეულთან (მე -4 არის დედამიწა). ჩემი Honeywell თერმოსტატი არ არის უკაბელო, ამიტომ სიგნალის გადასართავად შემიძლია გამოვიყენო Sonoff Basic. დროა გავყოთ იგი და ვნახოთ როგორ იგზავნება სიგნალი ერთეულში. უფრო მჭიდრო შემოწმების შემდეგ ტერმინალი დაკავშირებულია შემდეგნაირად:

  1. (ლურჯი) - გრუნტი
  2. (ყვითელი) - სიგნალი, როდესაც მაღლა იწევს გათბობა ჩართულია
  3. არ გამოიყენება
  4. (წითელი) - ცოცხალი მავთული, რომელიც გამოიყენება სიგნალის მაღლა დასაწევად

ჩემი მიზნის მისაღწევად, მე უნდა შევამცირო ცოცხალი მავთული სიგნალის მავთულხლართებთან ერთად, როდესაც მინდა ჩემი გათბობა ჩართული იყოს. თუ თქვენ გაქვთ ანალოგიურად დაკავშირებული თერმოსტატი, თქვენ იღბლიანი ხართ, რადგან Sonoff Basic საკმარისი იქნება ხრიკის შესასრულებლად.

ნაბიჯი 2: მზადება Sonoff Basic Ready– ისთვის

Sonoff ძირითადი მზადყოფნის მიღება
Sonoff ძირითადი მზადყოფნის მიღება
Sonoff ძირითადი მზადყოფნის მიღება
Sonoff ძირითადი მზადყოფნის მიღება
Sonoff ძირითადი მზადყოფნის მიღება
Sonoff ძირითადი მზადყოფნის მიღება

სანამ მავთულხლართების დაკავშირებას დავიწყებთ, ჩვენ უნდა დავამატოთ ტემპერატურის სენსორი (DHT11) ნარევს. დარწმუნდით, რომ თქვენ გაქვთ Tasmota firmware თქვენს Sonoff მოწყობილობაზე (მე მაქვს შესანიშნავი მოციმციმე სახელმძღვანელო აქ) და თქვენი Tasmota ჩართული Sonoff არის კონფიგურირებული სწორად (ასევე უკვე დაფარული ჩემ მიერ). ახლა თქვენ მხოლოდ დაუკავშირდით DHT11 სენსორს Sonoff– თან და დააკონფიგურირებთ მას ტემპერატურის მოხსენებისთვის.

DHT11– ს მოყვება 3 სადენიანი სადენი: სიგნალი - GPIO14Vcc - 3.3VGND - GND

მე ხვრელი გავაღე, არ მაწუხებს როგორ გამოიყურება ახლა, ერთადერთი რაც მჭირდება არის კონცეფციის მტკიცებულება და დადასტურება. ჩემი 3D პრინტერის ჩამოსვლისთანავე გავაკეთებ ლამაზ და ბრწყინვალე გარსს. მე დამატებით ყურადღებას ვაქცევდი როგორ შევიერთებ Sonoff– ს, რადგან უნდა დავრწმუნდე, რომ ცოცხალი მავთული უკავშირდება სიგნალის მავთულს Sonoff მოწყობილობის მეორე ბოლოში. Honeywell– ის ერთეულს აქვს ჩამონტაჟებული დატვირთვის რეზისტორი (R), რომელიც ზღუდავს დენს. მიუხედავად იმისა, რომ წრე დაცულია 3A დაუკრავენ, ჭკვიანია შეავსოთ იგივე წინააღმდეგობა დამატებითი დაცვისთვის. მას შემდეგ, რაც მავთულები მზად მქონდა, დრო იყო მთავარი დენის გამორთვა და სონოფის უკან გაყვანა.

სონოფ ტასმოტა - ჰანიუელის თერმოსტატი

INPUT Live - მე -4 ტერმინალი პირდაპირ ეთერში

INPUT GND - პირველი ტერმინალი GND

OUTPUT სიგნალი - მე -2 ტერმინალური სიგნალი

მე ადრე აღვნიშნე, რომ მე არ ვაპირებ ამის ხაზგასმას. ცოლი დარწმუნდა და შემიძლია გავამახვილო ყურადღება ფუნქციონალურობაზე და ნებისმიერი ხარვეზის გასუფთავებაზე, რაც მოხდება. კარგი ის არის, რომ ორიგინალური თერმოსტატი კვლავ მუშაობს. თუ გამოვჩნდები, ის გადალახავს სონოფ ტასმოტას დაფუძნებულს. ეს უნდა იყოს დიდი სარეზერვო საშუალება ნებისმიერი მოულოდნელი მოვლენისთვის.

ნაბიჯი 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

გთხოვთ გაითვალისწინოთ, რომ ვიდეო შეიძლება შეიცავდეს ძველ NodeRed ცნობებს, მე მუდმივად ვმუშაობ დიზაინის გაუმჯობესებაზე. ეს არის მცირე ცვლილებები და სტატიის ფაილები განახლებულია

ინტერნეტში დამხვდა ეს დიზაინი. მშვენივრად გამოიყურება, თუმცა ახლო შემოწმებისას ვიჯეტი ნამდვილად არ შეეფერება NodeRED- ს. მას სჭირდება 5 დატვირთვის დაყენება, რაც არ არის ის, თუ როგორ მუშაობს კვანძის დიზაინი. გარკვეული დრო დამჭირდა იმის გასარკვევად, თუ როგორ გადავიტანე ყველა ეს ინფორმაცია ვიჯეტის განახლებისა და მისი ფუნქციონირების შესანარჩუნებლად. დარწმუნებული ვარ, რომ დროთა განმავლობაში უფრო მეტ დროს დავუთმობ დიზაინს, რათა შევძლო ყველა საჭირო განახლების გადატანა ერთი msg ობიექტის საშუალებით. ჯერჯერობით ის არის რაც არის.

ტემპერატურის ნაკადი

DHT11 იუწყება ყოველ X წამში უკან NodeRED სერვერზე. გავზარდე ეს სიხშირე ტასმოტას კონსოლის საშუალებით. უბრალოდ გაუშვით ბრძანება, რომ დააყენოთ სიხშირე წამში:

TelePeriod დააყენეთ ტელემეტრიის პერიოდი 10 -დან 3600 წამამდე

ეს კეთდება ძირითადად ტესტებისთვის, რადგან არ მსურს წუთი დაველოდო იმის დასადგენად, მუშაობდა თუ არა ჩემი შეცდომების გამოსწორება. სიხშირის მაღალი შენარჩუნება გამოიწვევს გათბობას უფრო ხშირად ხანმოკლე პერიოდის განმავლობაში, ასე რომ თავი შეიკავეთ 10 წმ -ზე დაყენების მიზნით, გარდა ტესტირების მიზნებისა. MQTT კვანძი ამოიღებს მონაცემებს:

sonoff/tele/SENSOR

და ინახავს ყველაზე სასარგებლო მონაცემებს შემდეგ ობიექტებში:

msgid.payload. DHT11. Temperature msg.payload. DHT11. Humidity

შეცდომების შეზღუდვის მიზნით, მე დავამატე გლუვი კვანძი საშუალო შედეგებს და განვაახლე ნაკადის ცვლადი: NodeRED:

ფუნქციის კვანძი - განაახლეთ 'TempAmbient'

flow.set ('TempAmbient', msg.payload. DHT11. Temperature); დაბრუნების msg;

ვიჯეტის განახლება

მე გადავწყვიტე, რომ 5 წამი არის კარგი განახლების მაჩვენებელი, ამიტომ მე ვაყენებ ყველა საჭირო მნიშვნელობას ამ სიხშირით. ერთადერთი გამონაკლისი არის სლაიდერი, რომელიც აშკარა მიზეზის გამო მყისიერად რეაგირებს.

თითოეული შესაბამისი კვანძი აგზავნის დატვირთვას დანიშნულ თემასთან ერთად ბუდის მსგავსი ვიჯეტში.

  • ფერი (გათბობა | გაგრილება*| off & hvac_state)
  • ფოთოლი (ჭეშმარიტი | მცდარი და აქვს ფოთოლი)
  • მოშორებით (ჭეშმარიტი | ყალბი და მოშორებით)
  • გარემოს ტემპერატურა (ნომერი და გარემოს ტემპერატურა)
  • სამიზნე ტემპერატურა (ნომერი და სამიზნე_ ტემპერატურა)

*არ გამოიყენება

NodeRED: ფუნქციის კვანძი - ვიჯეტის განახლება

ფერი

x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // ამბიციური

თუ (z = x) {

flow.set ("გათბობის სახელმწიფო", "გამორთული"); flow.set ("გათბობის გადამრთველი", "OFF"); } msg.payload = z; msg.topic = "გარემოს_ ტემპერატურა"; დაბრუნების მესიჯი;

ფოთოლი

x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ("ფოთოლი", ჭეშმარიტი); msg.payload = true; msg.topic = "აქვს_ ფოთოლი"; დაბრუნების მესიჯი; } else {flow.set ("ფოთოლი", ყალბი); msg.payload = false; msg.topic = "აქვს_ ფოთოლი"; დაბრუნების მესიჯი; }

ფერი გადაფარავს

x = flow.get ('მოშორებით'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "გამორთული"; დაბრუნების მესიჯი; }

msg.topic = "hvac_state";

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

დაბრუნების მესიჯი;

მოშორებით

x = flow.get ('მოშორებით'); if (x === true) {flow.set ('გათბობის გადამრთველი', "OFF"); flow.set ("გათბობის სახელმწიფო", "გამორთული"); }

msg.topic = "მოშორებით";

msg.payload = flow.get ('მოშორებით'); დაბრუნების მესიჯი;

სამიზნე ტემპ

if (msg.topic === "განახლება") {msg.topic = "სამიზნე_ტემპერატურა"; msg.payload = flow.get ('TempTarget'); დაბრუნების მესიჯი; }

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

flow.set ("მოშორებით", ყალბი); msg.topic = "სამიზნე_ ტემპერატურა"; flow.set ('TempTarget', msg.payload); }

თუ (msg.topic === "სლაიდერი") {

flow.set ("მოშორებით", ყალბი); msg.topic = "სამიზნე_ ტემპერატურა"; flow.set ('TempTarget', msg.payload); }

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

დაბრუნების მესიჯი;

როგორც ხედავთ, მე ავირჩიე ნაკადის ცვლადები, ასე რომ მე შემიძლია გავიხსენო მნიშვნელობა ნებისმიერ დროს. მე მაქვს გამართვის ნაკადი, რომელიც ძირითადად კითხულობს ყველა შენახულ მნიშვნელობას.

  • "TempAmbinet" - ინახავს მიმდინარე ტემპერატურას
  • "TempTarget" - ფლობს დროებითი სამიზნე მნიშვნელობას
  • "ფოთოლი" - საჭიროების შემთხვევაში აჩვენებს ფოთოლს
  • "მოშორებით" - აჩვენებს დაშორების სტატუსს საჭიროების შემთხვევაში
  • "HeatState" - ცვლის ეკრანის ფერს
  • "გათბობის გადამრთველი" - აკონტროლებს რელეს მდგომარეობას.

გამოწვევა იყო რეალურად დავრწმუნდეთ, რომ ინფორმაცია განახლებულია "განახლებისას" და სხვა საშუალებების (ალექსას და ა.შ.) მოთხოვნისას. სწორედ ამიტომ თქვენ იხილავთ სხვადასხვა პირობებს JavaScript– ში. ყოველ ჯერზე, როდესაც მნიშვნელობები განახლდება, იგზავნება ნაკადის ცვლადზე და ვიჯეტი განახლდება.

სლაიდერი

ტესტირების შედეგად დადგინდა, რომ საჭიროა სლაიდერის დამატებითი განახლება (სლაიდერი უბიძგებს სამიზნე ტემპერატურას). სლაიდერი აგზავნის დატვირთვას (ნომერს) ასოცირებული თემით „სლაიდერი“გადაადგილებისას. ამის გარდა, მსურს სლაიდერი მოხვდეს სწორ მდგომარეობაში, თუ რამდენიმე ვებ ინტერფეისია. ამისათვის, ყოველ 5 წამში მე უბრალოდ ვაახლებ სლაიდერის პოზიციას მიმდინარე სამიზნე ტემპერატურაზე.

NodeRED: ფუნქციის კვანძი - განახლების სლაიდერი '

msg.payload = flow.get ('TempTarget'); დაბრუნება msg;

სარელეო კონტროლი

სარელეო კონტროლერი მარტივია, მას სჭირდება (ამჟამად) ორი შეყვანა. Alexa's true | false და ურთიერთქმედება, რომელიც მოყვება განახლებას "გათბობის გადამრთველის" ნაკადის ცვლადზე. არ არის საჭირო მყისიერი მოქმედება, ასე რომ სიმარტივისთვის ის მუშაობს განახლების იმავე 5 წამიანი სიხშირით, როგორც დანარჩენი ნაკადი.

სარელეო დაკავშირებულია MQTT საშუალებით. კვანძი აქვეყნებს ON | OFF ბრძანებებს თემაზე:

sonoff/cmnd/POWER1

ფუნქციის კვანძი იღებს ჭეშმარიტ | ცრუ ალექსასგან და ასევე ცვლის შეყვანის მდგომარეობას "გათბობის შეცვლის" ნაკადის ცვლადის მიხედვით.

NodeRED: ფუნქციის კვანძი - საკონტროლო სარელეო '

if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; დაბრუნების მესიჯი; }

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

msg.payload = "ჩართული"; flow.set ('TempTarget', 21); დაბრუნების მესიჯი; } if (msg.topic === "განახლება") {msg.payload = flow.get ('გათბობის გადამრთველი'); } მესიჯის დაბრუნება;

Alexa ინტეგრაცია

ეს არის პირველი მოწყობილობა, რომელიც მე მქონდა "ავტომატური აღიარების" გამორთვისთვის. იმის ნაცვლად, რომ პასუხი ავტომატურად ვივარაუდოთ, მე შევქმენი ის, როგორც მინდა დაყენებული ტემპერატურის გამოკითხვის შესაძლებლობა. პრინციპში, msg.payload = true | false მიუთითებს თუ მოთხოვნა წარმატებულია, ხოლო დანარჩენი შაბლონები აკეთებენ დანარჩენს. თუ ახალი ხართ Alexa– სა და NodeRed– ში, აუცილებლად წაიკითხეთ ეს.

მე გადავწყვიტე ცალ -ცალკე გადავეცი აღიარებები (ვიცი, რომ ეს არ არის საუკეთესო გზა), რომ შევძლო ამ ყველაფრის ოდნავ უკეთ გაკონტროლება. სწორად თითოეული პასუხი უნდა მიეცეს ბრძანების ჯაჭვის ბოლოს. ჩემი რისკავს არ დააბრუნოს შეცდომები, თუ ეს მოხდება. გაითვალისწინეთ, რომ თანმიმდევრული რომ იყოს, მე მხოლოდ ცვლადებს ვაახლებ, ხოლო განახლების მარყუჟი, ახალ მნიშვნელობებს ვიჯეტს უბიძგებს.

NodeRED: ფუნქციის კვანძი - პროცესი Alexa პასუხები '

// როგორია თერმოსტატის სამიზნე ტემპერატურა </ i> msg.extra = {"temperatureReading": {"მნიშვნელობა": x}, "applianceResponseTimestamp": ახალი თარიღი (). toISOString ()}; msg.payload = true; დაბრუნების მესიჯი; } // დააყენეთ ტემპერატურა (არაუმეტეს 10 ან 30 -ზე მეტი) თუ (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = დიაპაზონი; } else {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } მესიჯის დაბრუნება; } // ჩართეთ ის თუ (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ("მოშორებით", ყალბი); flow.set ('TempTarget', 21); დაბრუნების მესიჯი; } // გამორთეთ თუ (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ("მოშორებით", ჭეშმარიტი); დაბრუნების მესიჯი;

ნაბიჯი 4: დასკვნა

დასკვნა
დასკვნა

თუ თქვენ გამოაშკარავებთ NodeRED საინფორმაციო დაფას WAN– ზე, მთელი გათბობის სისტემის კონტროლი შესაძლებელია დისტანციურად. მე გირჩევთ წაიკითხოთ შემდეგი სტატიები, რათა გაზარდოთ სიჩქარე NodeRED და NodeRED უსაფრთხოებით.

  • NodeRED დამწყებთათვის
  • NodeRED უსაფრთხოება

გარდა ამისა, თუ გსურთ მიიღოთ ინფორმაცია ამ პროექტის განახლებების შესახებ - გაითვალისწინეთ, რომ მიყევით თქვენს არჩევანზე არსებულ პლატფორმაზე:

  • ფეისბუქი კარგი
  • Twi tter
  • ინსტაგრამი
  • იყავი იუტუ

და თუ გაქვს სურვილი ყავა მიყიდო ან უფრო უწყვეტად დამეხმარო:

  • Paypal
  • პატრეონი

იმედი მაქვს მოგეწონათ პროექტი!

გირჩევთ: