Სარჩევი:

ბატარეის კარის სენსორი სახლის ავტომატიზაციის ინტეგრაციით, WiFi და ESP-NOW: 5 ნაბიჯი (სურათებით)
ბატარეის კარის სენსორი სახლის ავტომატიზაციის ინტეგრაციით, WiFi და ESP-NOW: 5 ნაბიჯი (სურათებით)

ვიდეო: ბატარეის კარის სენსორი სახლის ავტომატიზაციის ინტეგრაციით, WiFi და ESP-NOW: 5 ნაბიჯი (სურათებით)

ვიდეო: ბატარეის კარის სენსორი სახლის ავტომატიზაციის ინტეგრაციით, WiFi და ESP-NOW: 5 ნაბიჯი (სურათებით)
ვიდეო: ალუმინის მიკეცვადი კარი 2024, ნოემბერი
Anonim
Image
Image

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

Ჩემი მიზნები:

  • სენსორი, რომელიც აღმოაჩენს და აცნობებს კარის სწრაფად გახსნას (<5 წამი)
  • სენსორი, რომელიც განსაზღვრავს კარის დახურვას
  • სენსორი, რომელიც მუშაობს ბატარეაზე და მუშაობს რამდენიმე თვის განმავლობაში ბატარეაზე

აპარატურა და პროგრამული უზრუნველყოფა შთაგონებულია

  • კევინ დარრას ტრიბორდი (TPL5111 და TPS73733).
  • ეს ვიდეო

მე გავაკეთე სენსორი ჩემი წინა და უკანა კარისთვის. ერთადერთი განსხვავება არის led პოზიცია და გარე კვების ბლოკი (უკანა სენსორზე).

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

მარაგები

შევიძინე ალიექსპრესის ელექტრონული კომპონენტები, ძირითადი ნაწილები:

  • LiPo ბატარეა
  • TPS73733 LDO
  • TPL5111
  • ლერწმის გადამრთველი
  • P-channel mosfet: IRLML6401TRPBF
  • მაგნიტი
  • PCB ადაპტერის ფირფიტა SMD კომპონენტებისთვის და სხვა.

ნაბიჯი 1: აპარატურა - წრე

აპარატურა - წრიული
აპარატურა - წრიული
აპარატურა - წრიული
აპარატურა - წრიული
აპარატურა - წრიული
აპარატურა - წრიული

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

წრე მუშაობს შემდეგნაირად:

  • როდესაც კარი ღიაა, TPL5111 იღებს გასროლას DELAY/M_DRV პინზე და ააქტიურებს TPS73733 LDO- ს, რომელიც ამუშავებს ESP-01- ს. ამ ოპერაციისთვის, EN/ONE_SHOT უნდა დაიწიოს დაბლა, იხილეთ TPL5111– ის მონაცემთა ცხრილი.
  • პროგრამის ამოქმედების შემდეგ (იხ. ნაბიჯი პროგრამული უზრუნველყოფა), ESP-01 აგზავნის დასრულებულ სიგნალს TPL5111- ზე, რომელიც გამორთავს TPS73733- ს, რის შედეგადაც ძალიან დაბალი სიმძლავრის მდგომარეობაა TPL5111 და TPS73733.

მე ვიყენებ ლერწმის კონცენტრატორებს NO და NC კავშირებით. მე დავუკავშირე NC ტყვიის, რადგან ლერწმის გადამრთველმა უნდა დახუროს წრე მაგნიტის მოხსნისას (კარი ღიაა) და გახსნას როდესაც მაგნიტი ახლოსაა (კარი დაკეტილია).

უკანა სენსორისთვის დავამატე რამდენიმე კონდენსატორი და რეზისტორი, როდესაც აღმოვაჩინე არასტაბილურობა, თუმცა არასტაბილურობა გამოწვეული იყო პროგრამული უზრუნველყოფით (esp_now_init), როგორც მოგვიანებით აღმოვაჩინე.

ნაბიჯი 2: აპარატურა - დანართი

აპარატურა - დანართი
აპარატურა - დანართი
აპარატურა - დანართი
აპარატურა - დანართი
აპარატურა - დანართი
აპარატურა - დანართი

მე დავამუშავე დანართი Autodesk Fusion360– ში, შთაგონებული ამ ვიდეოს მიერ „შვეიცარიელი აქცენტის მქონე ბიჭის“მიერ.

სამი ნაწილის STL ფაილები:

  • ყუთი
  • სახურავი
  • მაგნიტის დამჭერი

გამოქვეყნებულია ჩემს Thingiverse გვერდზე.

ნაბიჯი 3: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

პროგრამა არის ჩემს Github– ში.

პროგრამის ნაკადი ნაჩვენებია სურათზე. იხილეთ ჩემი სხვა ინსტრუქცია იმის ახსნის შესახებ, თუ როგორ ვიყენებ ESP-NOW.

როდესაც მოდული ჩართულია, ის პირველ რიგში ცდილობს გაგზავნოს "გახსნილი" შეტყობინება ESP-NOW საშუალებით. თუ ეს არ გამოდგება, ის გადადის WiFi და MQTT კავშირზე.

აღმოვაჩინე, რომ ყოველ შემთხვევაში ჩემს კონფიგურაციაში, შეტყობინება "დახურული" წარმატებით არ გაგზავნილა ESP-NOW– ით, ამიტომ ეს ამოვიღე პროგრამიდან და გამოვიყენე მხოლოდ WiFi და MQTT.

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

პროგრამა ამოწმებს იღებს თუ არა დახურულ შეტყობინებას მიმღები მიმღების მიერ MQTT შეტყობინების მოსმენის გზით სწორ თემაზე.

ნაბიჯი 4: სახლის ავტომატიზაცია და Telegram

სახლის ავტომატიზაცია და დეპეშა
სახლის ავტომატიზაცია და დეპეშა
სახლის ავტომატიზაცია და დეპეშა
სახლის ავტომატიზაცია და დეპეშა
სახლის ავტომატიზაცია და დეპეშა
სახლის ავტომატიზაცია და დეპეშა

ჩემი კარის სენსორები დაუკავშირდნენ ჩემს Openhab Home Automation– ს ჩემს Raspberry Pi Zero– ზე.

ძირითადი პროგრამები:

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

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

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

როგორ გამოვიყენოთ Telegram მოქმედება Openhab– ში აღწერილია აქ.

ნაბიჯი 5: გაუმჯობესება და შემდგომი გაუმჯობესება

გაუმჯობესება და შემდგომი გაუმჯობესება
გაუმჯობესება და შემდგომი გაუმჯობესება
გაუმჯობესება და შემდგომი გაუმჯობესება
გაუმჯობესება და შემდგომი გაუმჯობესება

გასულ თვეებში მე გავაკეთე შემდეგი გაუმჯობესება.

გაუმკლავდეთ გრძელი კარის ღიობებს თვითგადამცემი პულსის სიგნალის საშუალებით

ზაფხულში, როდესაც სახლში ვართ, რამდენიმე საათით ღია კარის დატოვებას ვტოვებთ. გაშვებული ESP-01 WiFi კავშირით, ბატარეას დაუსაბუთებლად დაუშვებს. ამიტომაც ჩავრთე ჩართვის/გამორთვის გადამრთველი, რათა ამ სიტუაციებში შევძლო მოდულის გამორთვა.

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

ამიტომაც მინდოდა პროგრამის საშუალებით მოდულის გამორთვა შევძლო მას შემდეგ, რაც მოდული ჩართული იყო წინასწარ განსაზღვრული დროით (1 წუთი).

თუმცა, იქ, სადაც ESP-01- ის "შესრულებული" პულსი გამორთულია TPL5111 როდესაც კარი დაკეტილი იყო, აღმოვაჩინე, რომ TPL5111 არ იყო ჩართული "შესრულებული" პულსით, ხოლო DELAY/M_DRV პინი მაღალი იყო. ეს მაღალი სიგნალი DELAY/M_DRV პინზე გამოწვეული იყო ღია კარით და ბატარეის ძაბვასთან დაკავშირებული ლერწმის გადამრთველის NC კონტაქტით.

ამრიგად, სიგნალი DELAY/M_DRV პინზე არ უნდა იყოს უწყვეტად მაღალი, მაგრამ უნდა იყოს პულსირებული. TPL5111 მონაცემთა ცხრილში შეგიძლიათ ნახოთ, რომ ის უნდა იყოს პულსი> 20 ms. მე გავაკეთე ეს თვითმმართველობის გადართვის სიგნალი P- არხის mosfet- ის, კონდენსატორის და 10K და 300K რეზისტორის საშუალებით, იხილეთ ჩართული სქემა.

ის მუშაობს შემდეგნაირად:

  • თუ ლერწმის გადამრთველის NC კონტაქტი დახურულია, კარიბჭე დაბალია და Mosfet ჩართულია, რის შედეგადაც მაღალი სიგნალი ჩნდება DELAY/M_DRV პინზე, რომელიც ააქტიურებს მოდულს.
  • კონდენსატორი სწრაფად იტენება, რის შედეგადაც იზრდება კარიბჭეზე ძაბვა.
  • დაახლოებით 20 ms- ის შემდეგ, კარიბჭეზე ძაბვა არის ბატარეის ძაბვის 97% (300K/(300K+10K), რომელიც მაღალია და Mosfet გამორთულია, რის შედეგადაც ხდება დაბალი სიგნალი DELAY/M_DRV პინზე.
  • როდესაც DELAY/M_DRV pin დაბალია, ESP-01- ის გაკეთებული სიგნალი იწვევს მოდულის გამორთვას.

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

მნიშვნელოვანია გამოიყენოთ P- არხი Mosfet, რომელიც შესაფერისია აქ გამოყენებული ძაბვის დიაპაზონისთვის. Mosfet უნდა იყოს მთლიანად ჩართული VGS- ზე - 3.8V და მთლიანად გამორთული VGS- ზე -0.2 ვ. მე შევეცადე რამდენიმე Mosfets და აღმოვაჩინე, რომ IRLML6401TRPBF კარგად მუშაობს ამ მიზნისთვის 10K და 300K რეზისტორებთან ერთად. რა 1 uF კონდენსატორი მშვენივრად მუშაობს პულსის სიგრძეზე დაახლოებით 20 ms. უფრო დიდი კონდენსატორი იწვევს უფრო ხანგრძლივ პულსს, რაც არ არის აუცილებელი, რადგან TPL5111 გააქტიურებულია. მე გამოვიყენე ჩემი DSO150 ოსცილოსკოპი ძაბვების და პულსის სიგრძის შესამოწმებლად.

დაგეგმილი გაუმჯობესება: OTA განახლება

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

  • NodeRed– ის Openhab– ის საშუალებით ვაქვეყნებ შენახულ „განახლების“შეტყობინებას „განახლების თემას“.
  • თუ მოდული ჩართულია და დაკავშირებულია MQTT სერვერთან და გამოწერილია "განახლების თემა", ის მიიღებს განახლების შეტყობინებას.
  • განახლების შეტყობინება ხელს შეუშლის მოდულის გამორთვას და იწყებს HTTPUpdateServer- ს.
  • HTTPUpdateServer ვებსაიტის საშუალებით შეგიძლიათ განაახლოთ პროგრამული უზრუნველყოფა.
  • NodeRed– ის Openhab– ის საშუალებით ვაქვეყნებ დაცულ „ცარიელ“შეტყობინებას „განახლების თემას“.

დაგეგმილი გაუმჯობესება: ტექნიკის გამორთვა წინასწარ განსაზღვრული დროის შემდეგ

ახლანდელ სქემაში მე ვიყენებ 200K რეზისტორს TPL5111- ის DELAY/M_DRV- სა და GND- ს შორის. ეს ჩართავს მოდულს 2 საათზე მეტი ხნის განმავლობაში (იხ. TPL5111 მონაცემთა ცხრილის 7.5.3.). თუმცა, მე არ მინდა, რომ მოდული ამდენი ხნით იყოს ჩართული, რადგან ბატარეა შემდეგ იწურება. თუ პროგრამული უზრუნველყოფის გადაწყვეტა (იხ. ზემოთ) ვერ გამორთავს მოდულს, ან განახლების შეტყობინება უნებლიედ აყენებს მოდულს განახლების რეჟიმში, მოდული დიდხანს რჩება ჩართული.

ამიტომ უმჯობესია გამოვიყენოთ უფრო მცირე რეზისტორი TPL5111- ის DELAY/M_DRV- სა და GND- ს შორის, ასე რომ მოდული გამორთულია მოკლე დროის შემდეგ, მაგალითად 50K რეზისტორი რის შედეგადაც მიიღება დრო 7 წუთის განმავლობაში.

გირჩევთ: