MQTT/Google Home DoorBell გამოყენება ESP-01: 6 ნაბიჯი
MQTT/Google Home DoorBell გამოყენება ESP-01: 6 ნაბიჯი
Anonim
MQTT/Google Home DoorBell ESP-01– ის გამოყენებით
MQTT/Google Home DoorBell ESP-01– ის გამოყენებით

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

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

ამ ინსტრუქციულ მე ვაპირებ გაჩვენოთ, თუ როგორ უნდა დაამატოთ MQTT კლიენტი კარის ზარის არსებულ ზარზე, რომ დაუკავშირდეთ MQTT ბროკერს google home / pushbullet– ით, NodeRED– ის გამოყენებით. ეს პროექტი არ ცვლის კარზე ზარის ჩამრთველს და არც ზარს. ის კვლავ იყენებს რეგულარულ მექანიკურ ღილაკს კარის ზარისთვის.

ჩვენ დავამატებთ ESP-01 მოდულს არსებულ 16VAC კარების ზარის სისტემაში და დავამატებთ MQTT ფუნქციონირებას MQTT ბროკერთან შეტყობინების გასაგზავნად (როდესაც კარზე ზარის გადამრთველი დაჭერილია). MQTT ბროკერი გადასცემს შეტყობინებას NodeRED– ს. MQTT შეტყობინების მიღებისთანავე, NodeRED აგზავნიდა განცხადებას google- ის მრავალ მოწყობილობაზე და ასევე სურვილისამებრ აგზავნიდა შეტყობინებას მობილურ ტელეფონზე/ბრაუზერში pushbullet- ის საშუალებით.

მე გატაცებული ვარ წვრილმანი სახლის ავტომატიზაციით და ნელ -ნელა ვამატებ IOT ჩემს სახლს. Google home იყო ერთ -ერთი მთავარი ფუნქცია ჩემი სახლის ავტომატიზაციაში.

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

ჩვენს სახლში გვაქვს 4 google home mini განთავსებული სხვადასხვა ადგილას/ოთახებში და google- ის სახლების გამოყენებით კარების ზარის გამოცხადების მიზნით, ჩვენ დაუყოვნებლივ ვიცით სადმე სახლში, თუ ვინმემ ზარი დარეკა.

ჩემს სახლში, მე ვიყენებ RaspberryPi ZeroW– ს Mosquitto MQTT სერვერისა და NodeRED– ის მასპინძლობისთვის. იგი მუშაობს ერთ წელზე მეტია ყოველგვარი პრობლემის გარეშე.

წყაროები:

  • კარის ზარის გაყვანილობის დიაგრამები:
  • დააინსტალირეთ Mosquitto MQTT ბროკერი Raspberry Pi– ზე:
  • დააინსტალირეთ NodeRED Raspberry Pi– ზე:

ნაბიჯი 1: შექმენით წრე ინტერფეისის ESP-01 და Door Chime

შექმენით წრე ინტერფეისის ESP-01 და Door Chime
შექმენით წრე ინტერფეისის ESP-01 და Door Chime
შექმენით წრე ინტერფეისის ESP-01 და Door Chime
შექმენით წრე ინტერფეისის ESP-01 და Door Chime
შექმენით წრე ინტერფეისის ESP-01 და Door Chime
შექმენით წრე ინტერფეისის ESP-01 და Door Chime

პირველი ნაბიჯი იქნება სქემის შექმნა, რომელიც იქნება ინტერფეისი ESP-01 და Door Chime. კარის ტიპიური ზარი გააქტიურებულია, როდესაც არის 16VAC "TRANS (ყოფილი)" და "FRONT/REAR" პინებს შორის, როგორც ეს ნაჩვენებია ჩემს პირველ ფოტოში. კარის ზარის ღილაკზე დაჭერისას ძაბვა ვლინდება იმ ქინძისთავებზე.

წრე, რომელიც მე შევიმუშავე, არის ამ 16VAC სიგნალის შეგრძნება და მისი გარდაქმნა ციფრულ სიგნალზე დაახლოებით 3.3VDC. ეს არის ძირითადი ნახევრად ტალღის გასწორება, რომელიც ჩამოყალიბებულია D1 და C1- ით. ჩვენ არ გვჭირდება სრული ტალღის მაკორექტირებელი ამ სიტუაციაში, ვინაიდან ძალიან მცირე დატვირთვაა DC გამომავალზე, რაც ზოგავს უძრავ ქონებას დაფაზე. მე მინდა, რომ დაფა რაც შეიძლება ცოტა გავხადო ისე, რომ მოვათავსო ის ჩემს არსებულ ზარის შიგნით.

R1 და R2 ქმნის ძაბვის გამყოფს, რათა შეამციროს პიკური DC ძაბვა დაახლოებით 3.3 ვ -მდე.

R3, TR1 და R4 ქმნიან ინვერტორს ESP-01 GPIO-2– ის საპირისპირო ლოგიკის უზრუნველსაყოფად. ეს აუცილებელია იმისათვის, რომ უზრუნველყოთ ლოგიკა HIGH ჩატვირთვისას (ამწევი R4 და R5) ESP-01- დან ჩამტვირთავიდან. როდესაც კარზე ზარის ღილაკი დაჭერილია, ის ლოგიკას LOW GPIO-2. აჩვენებს. TR1 შეიძლება იყოს ნებისმიერი მცირე სიმძლავრის NPN ტრანზისტორი, ჩემს შემთხვევაში მე გამოვიყენე 2N3904.

V1 არის 3.3VDC ელექტრომომარაგება, რომელიც მე ავაშენე ძველი 5V მობილური ტელეფონის დამტენის გამოყენებით, AMS1117 3.3VDC მარეგულირებელთან ერთად, რომელსაც შემდეგ ნაბიჯში ვაჩვენებ.

ESP-01 სოკეტისთვის ვიყენებ 8 პინიან სტანდარტულ IC სოკეტს და ვჭრი პლასტმასის ხიდებს, რომლებიც ქმნიან უფსკრულს რიგებს შორის, შემდეგ კი ვწებ 2 რიგს ერთმანეთთან.

ნაბიჯი 2: 3.3VDC კვების წყარო ESP-01– ისთვის

3.3VDC კვების წყარო ESP-01– ისთვის
3.3VDC კვების წყარო ESP-01– ისთვის
3.3VDC კვების წყარო ESP-01– ისთვის
3.3VDC კვების წყარო ESP-01– ისთვის
3.3VDC კვების წყარო ESP-01– ისთვის
3.3VDC კვების წყარო ESP-01– ისთვის

ამ ეტაპზე, ჩვენ ავაშენებთ 3.3VDC კვების ბლოკს ESP-01– ისთვის. მე მაქვს რამდენიმე ძველი 500mA და 700mA 5VDC USB დამტენი ადაპტერი, რომელიც ხელახლა განვაცხადე ამ პროექტისათვის. ჩვენ ასევე გვჭირდება 3.3VDC რეგულატორი 5V ძაბვის 3.3V- მდე დასაწევად, ამისათვის მე ვიყენებ იაფფასიან წინასწარ აშენებულ AMS1117 რეგულატორის მოდულს, რომელიც ebay– დან შევიძინე. თქვენ შეგიძლიათ მოძებნოთ "3.3V AMS1117 მოდული" და იპოვოთ ის, რაც თქვენთვის მუშაობს.

ეს 3.3V მარეგულირებელი მოდული არის ძალიან პატარა, რომ მე შემიძლია რეალურად ჩავსვა ის ორიგინალ 5V USB დამტენის შიგთავსში, რაც მას უფრო უსაფრთხო გახდის პოტენციური მოკლე ჩართვისგან. მე ამოვიღე დამუხტვის მოდულიდან AC კედლის ღეროები და შევცვალე ის ორი კაბელით, რომელიც ჩემი არსებული ზარის უკან კედლიდან 120VAC- თან იქნება დაკავშირებული. მაგრამ არ ამოიღოთ კვანძები ამ საფეხურზე, სანამ არ გავაკეთებთ სატესტო მოქმედებას შემდეგ საფეხურზე.

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

იხილეთ ჩემი ერთ -ერთი ფოტო, რომ ნახოთ, რომ ჩემი ზარის უკან არის 120VAC გაყვანილობა და 16VAC ტრანსფორმატორი ზარისთვის.

3.3V მარეგულირებელიდან გამოსავალი უნდა დაუკავშირდეს ESP-01 ინტერფეისის დაფას წინა ნაბიჯის მიხედვით.

ნაბიჯი 3: ციმციმა ESP-01

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

თქვენ შეგიძლიათ ნახოთ ჩემი ესკიზი ჩემს github გვერდზე:

ესკიზში, მინიმუმ თქვენ უნდა შეცვალოთ შემდეგი ინფორმაცია, რომელიც ეხება თქვენს სახლის ქსელს/კონფიგურაციას:

#განსაზღვრეთ MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

ჩემს საშინაო ქსელში, მე მაქვს 2 განსხვავებული წვდომის წერტილი, რომელიც მაუწყებლობს 2 სხვადასხვა SSID- ს და ეს ესკიზი საშუალებას მოგვცემს დავტოვო დამატებითი SSID– თან დაკავშირება, თუკი დღევანდელ AP– სთან კავშირი დაიკარგება. თუ თქვენ გაქვთ მხოლოდ ერთი SSID, შეავსეთ ssid1 და ssid2 ერთი და იგივე მნიშვნელობით.

მას შემდეგ რაც შეცვალეთ, ატვირთეთ ესკიზი ESP-01– ში და შეაერთეთ ESP-01 ინტერფეისის დაფაზე.

ნაბიჯი 4: სატესტო გაშვება

სატესტო გაშვება
სატესტო გაშვება
სატესტო გაშვება
სატესტო გაშვება
სატესტო გაშვება
სატესტო გაშვება

პირველი საფეხურიდან ჩვენ ავაშენეთ ESP-01 ინტერფეისის დაფა, ხოლო მე –2 საფეხურიდან გვაქვს 3.3V დენის წყარო ESP-01 დაფისთვის. ჩვენ ახლა ვაერთებთ დენის წყაროს გამტარობას დაფაზე სქემის დიაგრამის მიხედვით, ნაჩვენებია როგორც V1.

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

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

mosquitto_sub -v -t '#'

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

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

stat/DoorBell/LWT ონლაინ რეჟიმში

ახლა გადი გარეთ და დარეკე კარზე და უნდა ნახო ეს შეტყობინება:

ტელე/კარის ზარი ჩართულია

თუ ხედავთ ამ შეტყობინებებს, თქვენი პროექტი წარმატებულია.

მე ასევე ჩავრთე რამდენიმე სასარგებლო MQTT თემა ესკიზში, რომლის გამოყენებაც შეგიძლიათ:

"stat/DoorBellInfo": ეს შეტყობინება იგზავნება ყოველ წუთს დროისა და სხვა ინფორმაციის უზრუნველსაყოფად.

"cmnd/DoorBellInfo": ESP-01 გამოგიგზავნით ინფორმაციას, თუ მიიღებს ამ თემას "1" მნიშვნელობით (ascii = 49) "cmnd/DoorBellCPUrestart": ESP-01 გადატვირთულია, თუ მიიღებს ამ თემას "1" ღირებულებით. '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01 გადატვირთულია თუ მიიღებს ამ თემას "1" ღირებულებით (ascii = 49)

"tele/FrontDoorBell": ESP-01 გამოგიგზავნით შეტყობინებებს ამ თემაში "ON" მნიშვნელობით, თუ კარზე ზარი არის დაჭერილი

ნაბიჯი 5: გამგეობისა და ელექტრომომარაგების ინტეგრირება ზარი

გამგეობისა და ელექტრომომარაგების ინტეგრირება ზარი
გამგეობისა და ელექტრომომარაგების ინტეგრირება ზარი
გამგეობისა და ელექტრომომარაგების ინტეგრირება ზარი
გამგეობისა და ელექტრომომარაგების ინტეგრირება ზარი
გამგეობისა და ელექტრომომარაგების ინტეგრირება ზარი
გამგეობისა და ელექტრომომარაგების ინტეგრირება ზარი

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

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

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

ნაბიჯი 6: საბოლოო შეხება

საბოლოო შეხება
საბოლოო შეხება

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

ჩემს პროექტში მე ვიყენებ Node-RED- ს, რომ მოვისმინო/გამოვწერო კარზე ზარის MQTT თემა და გამოვაცხადო Google- ის რამდენიმე სახლის დინამიკი. გარდა ამისა, მე ასევე დავუკავშირე ნაკადი pushbullet კვანძს, რომ გამოეგზავნა შეტყობინება ჩემს android ტელეფონზე, ასე რომ მე ვიცოდი თუ ვინმე ზარებს კარზე, თუნდაც სახლში არ ვიყო. Pushbullet– ის შეტყობინება არავისთვის იქნება სასარგებლო, მაგრამ რამდენჯერმე იყო ჩემთვის სასარგებლო, ვიდეოკამერასთან ერთად ჩემს წინა ვერანდაზე, მე ვხედავ ვინ მოვიდა მშობიარობის გასაუქმებლად (ისინი ჩვეულებრივ ზარს რეკავენ). მე არ შემიძლია დიდად დავეყრდნო კამერის მოძრაობის გამოვლენის მახასიათებელს სხვადასხვა ჩარევის გამო, განსაკუთრებით ხეების ჩრდილების მოძრაობის გამო.

სურათი ამ საფეხურზე გვიჩვენებს Node-RED ნაკადს ამის მისაღწევად. თქვენ ასევე შეგიძლიათ ჩასვათ ნაკადი ჩემი github გვერდიდან თქვენს Node-RED– ში:

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

Გაერთე…

გირჩევთ: