Სარჩევი:

უკაბელო MQTT საწოლის თავსაბურავის კონტროლი: 5 ნაბიჯი (სურათებით)
უკაბელო MQTT საწოლის თავსაბურავის კონტროლი: 5 ნაბიჯი (სურათებით)

ვიდეო: უკაბელო MQTT საწოლის თავსაბურავის კონტროლი: 5 ნაბიჯი (სურათებით)

ვიდეო: უკაბელო MQTT საწოლის თავსაბურავის კონტროლი: 5 ნაბიჯი (სურათებით)
ვიდეო: Zigbee დისტანციური მართვა ჭკვიანი სახლის Moes 4 ღილაკებისთვის. მიმოხილვა, ინტეგრაცია Home Assistant 2024, ივლისი
Anonim
უსადენო MQTT საწოლის თავსაბურავის კონტროლი
უსადენო MQTT საწოლის თავსაბურავის კონტროლი
უსადენო MQTT საწოლის თავსაბურავის კონტროლი
უსადენო MQTT საწოლის თავსაბურავის კონტროლი

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

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

თქვენ იღებთ იმას, რასაც იხდით

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

ისევ არავინ იყო დაინტერესებული ჩვენთვის შემცვლელების გაყიდვით. მერე დამარტყა!

დაელოდე სასწრაფოდ! მე არ ვაშენებ სახლის ავტომატიზაციას და კონტროლის სისტემას?!?

ნაბიჯი 1: აღმოჩენა

აღმოჩენა
აღმოჩენა
აღმოჩენა
აღმოჩენა

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

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

ნაბიჯი 2: დიზაინი

დიზაინი
დიზაინი
დიზაინი
დიზაინი
დიზაინი
დიზაინი
დიზაინი
დიზაინი

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

საწოლი იქნება კონტროლერის დენის წყარო და იმისათვის, რომ გავუმკლავდეთ მოწოდებულ 12 ვოლტს, ჩვენ დაგვჭირდება ცვლადი მამლის გადამყვანი. ძალიან იაფი არის დაკავშირებული ქვემოთ და მშვენივრად მუშაობს. 12V ხაზი და GND ხაზები აკავშირებს კონვერტორის შეყვანის მხარეს და რეგულირებადი 5 ვოლტიანი მხარე უკავშირდება NodeMCU- ს VCC- ს და სარელეო მოდულის VCC pin- ს. კონვერტორის მიწა (-) უკავშირდება GND ქინძისთავებს როგორც სარელეო მოდული, ასევე NodeMCU.

NodeMCU უკავშირდება IN1- ს D1 (GPIO5) და IN2 გამოყენებით D2 (GPIO4) გამოყენებით. საწოლზე აღმავალი სიგნალი უკავშირდება ჩვეულებრივ გახსნილ ხრახნიან ტერმინალს სარელეო 1 -ისთვის და ქვემოთ სიგნალის ხაზი უკავშირდება სარელეო 2 ჩვეულებრივ ღია ტერმინალის ბლოკის კონექტორს. თქვენ უნდა დააკავშიროთ 12 ვ მავთული, რომელიც დაკავშირებულია მამლის გადამყვანის შესასვლელ მხარეს, ასევე ტერმინალის ბლოკის სხვა კავშირთან ორივე რელე 1 და 2.

ნაწილები

  • 1 - NodeMCU
  • 1 - დუელის სარელეო მოდული მიმდინარე იზოლაციით
  • 1 - ცვლადი შეყვანის/გამოყვანის მამალი კონვერტორი
  • 1 - პურის დაფის PCB
  • 22 ლიანდაგიანი ხვეული სპილენძის ძირითადი მავთული
  • 2 - M3x 8 ხრახნი

ნაბიჯი 3: დანართი

დანართი
დანართი

დანართი შეგიძლიათ იხილოთ აქ:

მე შევიმუშავე უბრალო ჩამკეტი Tinkercad– ით, რომელიც საშუალებას აძლევს საწოლის კონტროლის კაბელს შევიდეს ყუთში ყუთში დაძაბულობის შემსუბუქებულ ფრჩხილებს შორის. აქ არის სათამაშოები სამაგრის შესაკრავად, რაც ხელს შეუწყობს საკაბელო მოცურებისგან, მაგრამ ჩემს შემთხვევაში მორგება ძალიან მყარი იყო და არ სჭირდებოდა. საფარი ჩამოკიდებულია 2 M3x 8 ხრახნით. მე გირჩევთ ატვირთოთ კოდი და შეამოწმოთ სისტემა ყუთში ჩასვლამდე.

მე გამოვიყენე ცხელი წებო დაფების დასაჭერად, მაგრამ ეს შეიძლება არ იყოს საჭირო.

ნაბიჯი 4: კოდი

კოდი შეგიძლიათ იხილოთ აქ:

შენიშვნა: ეს პროექტი იყენებს pubsubclient ბიბლიოთეკას, რომელიც შეიძლება დაემატოს ბიბლიოთეკის მენეჯერს Arduino IDE- ში

კოდი აქ არის საკმაოდ ძირითადი და შემუშავებულია Cover MQTT ტიპის საფუძველზე Home Assistant– ში. იდეა აქ მარტივია: როდესაც სახლის ზედა ასისტენტში დააჭირეთ ზევით ან ქვევით ღილაკს, შესაბამისი სარელეო იხურება მანამ, სანამ არ მიიღება გაჩერების ბრძანება ან სისტემა მიაღწევს აქტივაციის მაქსიმალურ დროს და ჩერდება.

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

ჩემს კოდში, ეს ვადა არის 20 წამი და მისი კორექტირება შესაძლებელია გლობალური ცვლადი ბლოკის კოდის ზედა ნაწილში.

უსაფრთხოების მეორე სიფრთხილე იყო ყოველთვის დარწმუნებულიყავი, რომ თუ ერთ რელეს ვააქტიურებ, მეორის განზრახ დეაქტივაციას ყოველთვის ეძახიან, თუნდაც ბოლო მდგომარეობა უკვე გამორთული იყოს. მე არ მინდა 12v- ის გაგზავნა ორივე სიგნალის ხაზზე, რადგან არ ვიცი, რას გააკეთებს ეს საწოლზე.

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

ნაბიჯი 5: ინტეგრაციის მაგალითი

მაგალითი ინტეგრაცია
მაგალითი ინტეგრაცია
მაგალითი ინტეგრაცია
მაგალითი ინტეგრაცია

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

HA– ში მაქვს covers.yaml ფაილი შემდეგი განმარტებით:

- პლატფორმა: mqtt

name: "Master Bed Headboard" command_topic: "master_bed_control/cmd" ხელმისაწვდომობა_თემა: "master_bed_control/ხელმისაწვდომობა" qos: 0 retain: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_ava ხაზგარეშე "ოპტიმისტური: ჭეშმარიტი

ეს მაძლევს ერთ ჩანაწერს ჩემს HA ინტერფეისში up/stop/down ღილაკით, რომელიც მითითებულია ზემოთ აღწერილი მოქმედებით.

გარდა ამისა, მე განვსაზღვრე ორი ღილაკი ჩემს Bedside Control Panel- ზე (Instructable / Blog Post) თავსაბურავის ასამაღლებლად და დასაწევად. პანელის ღილაკები განისაზღვრება როგორც MQTT სენსორები:

- პლატფორმა: mqtt

state_topic: "bedside_cp1/button5" სახელი: "Bedside CP1 Button 5" ხატი: mdi: წრე

- პლატფორმა: mqtt

state_topic: "bedside_cp1/button6" სახელი: "Bedside CP1 Button 6" ხატი: mdi: წრე

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

- id: '1548308650383'

მეტსახელი: MBR Bedside CP Button 5a გამოიწვევს: - unit_id: sensor.bedside_cp1_button_5 საწყისი: 'Off' პლატფორმიდან: მიუთითეთ: 'On' პირობით: action: - data: units_id: 'cover.master_bed_headboard' service: cover.open_cover - id: '1548308758911' მეტსახელი: MBR Bedside CP Button 5b გამოიწვევს: - ერთეულის_იდენტიფიკაცია: sensor.bedside_cp1_button_5 საიდან: 'On' პლატფორმაზე: მდგომარეობა: 'გამორთული' მდგომარეობა: მოქმედება: - მონაცემები: unit_id: 'cover.master_bed_headboard' სერვისი: cover.stop_cover - id: '1548308863495' მეტსახელი: MBR Bedside CP Button 6a გამოიწვევს: - unit_id: sensor.bedside_cp1_button_6 საწყისი: 'გამორთული' პლატფორმიდან: მდგომარეობა: 'ჩართული' პირობით: მოქმედება: - მონაცემები: ერთეული_იდი: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'მეტსახელი: MBR Bedside CP Button 6b გამოიწვევს: - unit_id: sensor.bedside_cp1_button_6: მონაცემები: unit_id: 'cover.master_bed_headboard' სერვისი: cover.stop_cover

გირჩევთ: