Სარჩევი:

ESP-01 მოძრაობის სენსორი ღრმა ძილით: 5 ნაბიჯი
ESP-01 მოძრაობის სენსორი ღრმა ძილით: 5 ნაბიჯი

ვიდეო: ESP-01 მოძრაობის სენსორი ღრმა ძილით: 5 ნაბიჯი

ვიდეო: ESP-01 მოძრაობის სენსორი ღრმა ძილით: 5 ნაბიჯი
ვიდეო: 35 საშინელი მოჩვენების ვიდეო: 2023 წლის მეგა კრებული [V1] 2024, ნოემბერი
Anonim
Image
Image

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

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

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

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

ESP-01 აკეთებს ღრმა ძილს, ისევე როგორც ნებისმიერ სხვა ESP8266 მოდულს, სანამ არ გჭირდებათ დროული ძილი. თუ გსურთ მოდული გაიღვიძოს გარკვეული დროის გასვლის შემდეგ, ESP-01 არ არის მოდული გამოსაყენებლად. მაგრამ ეს არ არის ის, რაც მინდოდა. გასული დრო უაზროა PIR– ის გამოყენებისას. მინდოდა, რომ ESP-01 გაეღვიძებინა მხოლოდ მაშინ, როდესაც იმოქმედებდა PIR- ის მიერ შეგრძნებული მოძრაობით. თუ საათის ან დღის განმავლობაში მოძრაობა არ იგრძნობა, ESP-01 რჩება ძილში ბატარეის მინიმალური ენერგიის გამოყენებით.

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

ძირითადად, ყველაფერი რაც ჩვენ გვჭირდება არის სიგნალის მიღება PIR– დან ESP-01 Reset pin– ის გასააქტიურებლად. პირველი სირთულე, რომლის გამოც თქვენ იფიქრებთ არის ის, რომ გადატვირთვა ხდება LOW სიგნალზე და PIR აგზავნის HIGH სიგნალს, როდესაც გააქტიურებულია. გადატვირთვა ასევე უნდა იყოს მაღალი ან მცურავი ჩატვირთვისას. მოკლედ რომ ვთქვათ, სხვადასხვა სქემის მცდელობის შემდეგ მე გადავწყვიტე გამოვიყენო NPN ტრანზისტორი გამწევი რეზისტორით, რომ ჩამტვირთავის დროს RESET pin იყოს მაღალი. PIR– დან გამოსავალი მინიმალურია, მაგრამ ის უზრუნველყოფს საკმარის საბაზო დენს ტრანზისტორის ჩართვისთვის.

როგორც ქვემოთ ნახავთ სქემის დიაგრამაში, ESP-01 იღვიძებდა ღრმა ძილისგან ყოველ ჯერზე, როდესაც PIR მოძრაობას გრძნობდა.

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

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

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

ნაბიჯი 1: ESP-01 ღრმა ძილის მოდული

ESP-01 ღრმა ძილის მოდული
ESP-01 ღრმა ძილის მოდული
ESP-01 ღრმა ძილის მოდული
ESP-01 ღრმა ძილის მოდული

ღრმა ძილის მოდული იყენებს ორ სამუშაო ძაბვას. ბატარეის პაკეტის შემთხვევითი 5v+ PIR– ისთვის და ასევე 3.3 ვოლტიანი მარეგულირებელი დაფა ESP-01– ისთვის. მე ასევე ჩართავს დიოდს წრედ, რათა თავიდან იქნას აცილებული დაზიანებული ნაწილები საპირისპირო ძაბვისგან. ეს იყენებს დამატებით ენერგიას და ამცირებს ბატარეის ძაბვას 0.7 ვოლტით. დიოდი შეიძლება დარჩეს მიკროსქემის გარეთ, თუ დარწმუნებული ხართ, რომ თქვენ არასოდეს შეატრიალებთ ბატარეის პაკეტს. მოხერხებულობის გამო დამატებულია გადამრთველიც.

ეს მოდული არის უმნიშვნელო განახლება ჩემს თავდაპირველ არაღრმა ძილის განლაგებაზე. არაღრმა ძილის კონფიგურაციაში, PIR პირდაპირ არის დაკავშირებული ESP-01– ის RX პინთან. მე ვიყენებ ESP-01– ის RX პინს, როგორც PIR– ის შეყვანის პინს რამდენიმე მიზეზის გამო. GPIO0 არ მუშაობდა, რადგან ჩატვირთვისას PIR გამომავალი PIN იქნებოდა დაბალი, რის გამოც ESP-01 შედიოდა ფლეშ რეჟიმში. მე არ გამოვიყენე GPIO2, რადგან მაშინ მე ვერ გამოვიყენებ ჩაშენებულ LED ვიზუალურ კვებას. RX და TX ქინძისთავები ხშირად აღწერილია როგორც დამატებითი IO ქინძისთავები, მაგრამ ჩემი გამოცდილება არის ის, რომ RX არის დამატებითი INPUT pin და TX არის დამატებითი OUTPUT pin.

ღრმა ძილის კონფიგურაციაში, RX კავშირი არ არის მკაცრად აუცილებელი. მე მას ვიყენებ მხოლოდ იმის მონიტორინგისთვის, რამდენ ხანს ხდება PIR- ის ჩართვა LED- ის ჩართვით, ხოლო შეყვანა მაღალია. როგორც უკვე აღვნიშნეთ, თუ თქვენ გაასუფთავებთ მარყუჟის ფუნქციას და იყენებთ მხოლოდ დაყენების რუტინას, მაშინ RX კავშირი არასაჭიროა.

აქ მოცემულია ESP-01 ღრმა ძილის მოდულის ნაწილების სია:

1 - 5 x 7 სმ PCB პროტოტიპის დაფა

1 - 2 პინიანი კონექტორი

2 - 1 x 3 ქალი თავით

1 - AMS1117 - 3.3 ძაბვის მარეგულირებელი მიკროსქემის დაფა

1 - 1 x 3 მარჯვენა კუთხე მამაკაცის სათაურის პინი

1 - 1 x 3 ქალის სოკეტის სათაურის პინი

1 - 1 x 4 ქალის სოკეტის სათაურის პინი

1 - 2 x 4 ქალი თავით

1 - 1uf კონდენსატორი

1 - HC -SR501 PIR მოძრაობის სენსორი

1 - 2N2222 ტრანზისტორი

1 - 10k რეზისტორი

1 - 4.7k რეზისტორი

1 - 1k რეზისტორი

1 - 1N4148 დიოდი

1 - შეცვლა SS12D00G4 SPDT

1 - ESP -01

1 - 4AA ბატარეის პაკეტი

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

ნაბიჯი 2: ESP-01 ღრმა ძილის კოდი

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

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

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

const char* ssid = "xxxxx"; // თქვენი WiFi SSIDconst char* password = "xxxxx"; // თქვენი WiFi პაროლის სიმებიანი გამომგზავნები_შესვლა = "xxxxx"; // თქვენი ელ.ფოსტის პროვაიდერის შესვლა String Senders_Password = "xxxxx"; // თქვენი ელ.ფოსტის პროვაიდერის პაროლი

To = "xxxxxx"; მდებარეობა = "xxxxxx"; // Gmail ზოგადად ურჩევნია იყოს იგივე, რაც Senders_Login და შეიძლება შეიცვალოს

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

მე ასევე დავამატე კოდი მარყუჟის ფუნქციაზე, რომ ESP-01 იყოს ჩართული, სანამ PIR ჯერ კიდევ გრძნობს მოძრაობას. მარყუჟის ფუნქციის ყველა კოდი შეიძლება ამოღებულ იქნას და ღრმა ძილისკენ ზარი გადატანილია დაყენების ფუნქციის ბოლომდე.

მე ვიყენებ მოციმციმე ფუნქციას აქტივობის ვიზუალური მაჩვენებლისათვის ESP-01 მოდულით.

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

თუ თქვენ აირჩევთ ერთზე მეტ ზუმერის მოდულს, უბრალოდ დაამატეთ http კლიენტის დამატებითი ზარები (გაიმეორეთ კოდის სამი ხაზი, მაგრამ შეცვალეთ გამოყენებული IP მისამართი და ასევე განსაზღვრეთ httpCode ცვლადი int ერთხელ!

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

ნაბიჯი 3: ESP-01 Buzzer მოდული

ESP-01 ბუზერის მოდული
ESP-01 ბუზერის მოდული
ESP-01 ბუზერის მოდული
ESP-01 ბუზერის მოდული
ESP-01 ბუზერის მოდული
ESP-01 ბუზერის მოდული

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

Buzzer მოდულები შეიძლება მოხერხებულად განთავსდეს მრავალ ადგილას, რომელიც აცნობებს მოძრაობის სენსორის გამომწვევ მოვლენას, არ აქვს მნიშვნელობა სად ხართ!

ზუზერი უკავშირდება USB კონექტორის 5 ვ-ს და არის კიდევ 3.3 ვ რეგულატორის დაფა, რომელიც უზრუნველყოფს ენერგიას ESP-01- ს.

ზარის მოდული იმუშავებს გამომავალი TX, GPIO0 ან GPIO2 გამოყენებით. ჩემს კონფიგურაციაში მე ვიყენებ GPIO0- ს. (მოდულის სურათზე მავთული დაკავშირებულია GPIO2– თან, მაგრამ მას შემდეგ გადავიყვანე.) მიუხედავად იმისა, რომ GPIO0 არ მუშაობდა ღრმა ძილის მოდულისთვის (როგორც INPUT), ის მშვენივრად მუშაობს ამ განლაგებით, როგორც OUTPUT. ჩექმაზე მიწაზე არ არის გაყვანილი, რაც პრობლემებს გამოიწვევს. მე ნამდვილად გამოვიყენე GPIO2, მაგრამ შემდეგ მე ვერ გამოვიყენე საბორტო LED ნებისმიერი გამოხმაურებისთვის, მაგრამ GPIO0– ის გამოყენებით OUTPUT– ით შემიძლია გამოვიყენო ბორტზე არსებული LED.

მე შევეცადე NPN ტრანზისტორი გამოვიყენო სიგნალის გამაძლიერებელზე, როდესაც ESP-01- მა დააყენა მაღალი სიგნალი GPIO0 პინზე, მაგრამ შედეგები საშინლად არათანმიმდევრული იყო. როგორც ჩანს, ზუზუნს სურდა ჟღერადობა ნებისმიერ დროს, თუნდაც ძალიან მცირე ენერგიით. ამის ნაცვლად მე გამოვიყენე N არხი MOSFET (2n7000) და შედეგი იყო შესანიშნავი. IO pin მართავს კარიბჭეს საჭიროებისამებრ.

მიუხედავად იმისა, რომ ჩვენ გვჭირდება მხოლოდ ორი ქინძისთავები USB კონექტორიდან Vcc (+) და Gnd (-), მე ვიყენებ 5 პინის სათაურს PCB დაფასთან დასაკავშირებლად დამატებითი სტაბილურობისთვის და გასაწოვად USB– ის მარეგულირებელთან შეერთებამდე. ჩემი 3.3 ვ მარეგულირებელი დაფა მოვიდა ქინძისთავებით წინასწარ დაყენებული და ჩემი აზრით, თავდაყირა. ასე რომ, მარეგულირებელი სათაურის ქინძისთავებში რომ ჩადოთ, ხედავთ, რომ მიკროსქემის დაფა იმალება, მაგრამ ამაზე უარესი, რეგულატორზე vcc და gnd უკუქცეულია vcc და gnd USB კონექტორზე. ასე რომ, მავთულები გადაკვეთენ ერთმანეთს.

ასევე გაითვალისწინეთ, რომ + აქტიური ზუზერის ენერგია მოდის USB 5V– დან. ასევე, 4 პინიანი ქალის სოკეტის სათაური მშვენივრად მუშაობს ზუზერის პინის განთავსებით.

ESP-01 Buzzer მოდულის ნაწილების სია:

1 - 5 x 7 PCB დაფა

1 - USB მინი კონექტორი პინის სათაურებით (7 პინი)

2 - 1 x 3 ქალი თავით

1 - AMS1117-3.3 v ძაბვის მარეგულირებელი დაფა

1 - 2 x 4 ქალი თავით

2 - 1 x 4 ქალი ბუდე სათაურები

1 - 2N7000 N არხის MOSFET

რეზისტორი 1 - 10 ohm

1 - 5 ვ აქტიური ბუზერი

ნაბიჯი 4: ESP-01 Buzzer მოდულის კოდი

ზუმერის მოდული მოქმედებს როგორც მარტივი ESP-01 ვებ სერვერი. ის პასუხობს უბრალო შეტყობინებით ძირეულ მოთხოვნას და როდესაც მიიღებს ხმაურის მოთხოვნას, ის გამოიწვევს ზუმერს. GPIO0 გამოიყენება GPIO pin ზარის სიგნალისთვის.

გაითვალისწინეთ, რომ ESP-01 კონფიგურებულია მყარი კოდირებული IP მისამართით. ეს აუცილებელია ისე, რომ ღრმა ძილის მოდული იყოს შერწყმული ზარის ზარის მისამართთან.

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

// თქვენი WiFi მარშრუტიზატორის SSID და პაროლი char* ssid = "xxxxxxx";

const char* პაროლი = "xxxxxxxx";

თუ თქვენ გაქვთ მრავალი ზარის მოდული, თითოეული უნდა იყოს დატვირთული თავისი უნიკალური IP მისამართით.

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

ვებ სერვერისთვის თქვენ უბრალოდ უნდა დაამატოთ ასეთი კოდის ხაზი:

server.on ("/buzz2", buzz2);

ნაბიჯი 5: საბოლოო აზრები

ეს არის ჩემი პირველი ინსტრუქცია, ასე რომ მე შეიძლება გამოვტოვო რამდენიმე პრაქტიკული რამ, რაც უნდა შემეტანა. AMS1117-3.3 მარეგულირებელი დაფა, რომელიც მე გამოვიყენე, მოიცავს პატარა led- ს, რომელიც ანათებს ჩართვისას. ღრმა ძილის მოდულისთვის არ მინდოდა, რომ ეს გამხდარიყო და ძალაუფლება ზედმეტად დამთავრებულიყო. ასე რომ, მე არ გავყიდე ის, რაც შემეძლო დაფაზე ლიდერის ერთ მხარეს და შემდეგ გამოვიყენე სასარგებლო დანა კვალის ხაზის გასაჭრელად. ეს უფრო ადვილი იყო, ვიდრე მეგონა და ხელს უშლის LED განათებას. მე ვერ დავადგინე რა არის ენერგიის მოხმარება, როდესაც ESP-01 ღრმა ძილშია, მაგრამ პასუხი შეიძლება რამდენიმე კვირაში მივიღო. ჩემმა კოლეგამ სენსორი გაუშვა (არა ღრმა ძილში) და აღმოაჩინა, რომ ბატარეები დაცლილი იყო (5AA) დაახლოებით ერთ კვირაში. მე ვფიქრობ, რომ ამ კონფიგურაციამ უნდა მისცეს ერთი თვე ან მეტი. ჩვენ ვნახავთ.

ღრმა ძილის მოდული ღირს $ 8 CDN ნაწილად (ბატარეები არ შედის!) და ზუმერის მოდული $ 5.

გირჩევთ: