Სარჩევი:

პოსტინო: მიაწოდა ფოსტალიონმა რამე?: 6 ნაბიჯი (სურათებით)
პოსტინო: მიაწოდა ფოსტალიონმა რამე?: 6 ნაბიჯი (სურათებით)

ვიდეო: პოსტინო: მიაწოდა ფოსტალიონმა რამე?: 6 ნაბიჯი (სურათებით)

ვიდეო: პოსტინო: მიაწოდა ფოსტალიონმა რამე?: 6 ნაბიჯი (სურათებით)
ვიდეო: Собственность_Рассказ_Слушать 2024, ნოემბერი
Anonim
პოსტინო: მიაწოდა ფოსტალიონმა რამე?
პოსტინო: მიაწოდა ფოსტალიონმა რამე?

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

შეზღუდვები იყო:

  • ბატარეაზე მომუშავე ბატარეის ცვლილებებს შორის გონივრული ვადით;
  • WiFi კომუნიკაცია;
  • შეამოწმეთ მხოლოდ დღეში ერთხელ იყო თუ არა წერილი;

მთავარი კითხვა იყო: რომელი სახის სენსორი შეესაბამება ჩემს მოთხოვნებს? სიახლოვის სენსორი ვერ იმუშავებს, რადგან შემოწმება უნდა გაკეთდეს მხოლოდ დღეში ერთხელ და არა რეალურ დროში; არც წონის სენსორი, რადგან ამას დაემატება სირთულე და მგრძნობელობის პრობლემები (ფურცელი შეიძლება იყოს ძალიან მსუბუქი). ჩემი არჩევანი დაეცა Time-of-Flight (მიკრო ლაზერი) სენსორზე. მას შემდეგ რაც დაკალიბრდით საფოსტო ყუთის ზომაზე, ყველაფერი, რაც შუაში იქნებოდა, გამოიწვევს სენსორს! 3 შეზღუდვის გათვალისწინებით, მე გადავწყვიტე გამოვიყენო ESP8266 (პროგრამული უზრუნველყოფის გაშვება და WiFi- თან დაკავშირება), VL6180 დროის გასვლის სენსორი გაზომვისთვის და DS3231 რეალურ დროში საათი, რომ ჩართო ყველა წრე დღეში ერთხელ: ასე იყო პოსტინო დაიბადა!

ნაბიჯი 1: ნაწილები და კომპონენტები

  • ESP8266-01 (ან ESP-12E NodeMCU)
  • VL6108 ფრენის დროის სენსორი
  • DS3231 რეალურ დროში საათი
  • IRLZ44 N არხი MosFET
  • BC547 ტრანზისტორი
  • რეზისტორები
  • CR123 ბატარეა

ნაბიჯი 2: სენსორი

სენსორი
სენსორი

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

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

სენსორი იძლევა 3 მოქმედი სკალირების ფაქტორს, რომელიც განსაზღვრავს გაზომვის მაქსიმალურ დიაპაზონს 20 -დან 60 სმ -მდე, განსხვავებული მგრძნობელობით. დიაპაზონის სკალირების ფაქტორის კონფიგურაციით, სენსორის პოტენციური მაქსიმალური დიაპაზონი შეიძლება გაიზარდოს დაბალი გარჩევადობის ფასად. სკალირების ფაქტორის 2 -ზე დაყენება უზრუნველყოფს 40 სმ -მდე დიაპაზონს 2 მმ გარჩევადობით, ხოლო სკალირების ფაქტორი 3 უზრუნველყოფს 60 სმ -მდე დიაპაზონს 3 მმ გარჩევადობით. თქვენ უნდა შეამოწმოთ 3 სასწორი თქვენი საფოსტო ყუთის ზომებით. რადგან ჩემი იყო 25 სმ (H) მე გამოვიყენე მასშტაბის ფაქტორი = 1.

ნაბიჯი 3: რეალურ დროში საათის პერსონალიზაცია

RTC– სთვის გამოვიყენე DS3231 გარღვევის დაფა, რომელიც მოიცავს EEPROM (ჩემი მიზნისთვის უსარგებლოა) და მონეტის ზომის ბატარეას. როდესაც გადავწყვიტე RTC– ს ჩართვა ძირითადი მოწყობილობის ბატარეის საშუალებით (3v CR123), მე ამოვიღე მონეტის ბატარეა; ენერგიის დაზოგვის მიზნით მე ასევე ამოვიღე EEPROM (მისი ქინძისთავების ფრთხილად მოჭრით) და ბორტზე მყოფი ლიდერი.

მონეტის ბატარეა არ იყო ჩემთვის გამოსადეგი, რადგან არ მჭირდებოდა რეალურ დროში თარიღის/საათის/წუთის/წამის შენარჩუნება, მაგრამ RTC– ს მხოლოდ 24 საათი უნდა დაეთვალა და შემდეგ განგაში აეყენებინა მოწყობილობაზე.

ნაბიჯი 4: სხვა სხვადასხვა ბორტზე

სხვა ყველაფერი ბორტზე
სხვა ყველაფერი ბორტზე
სხვა ყველაფერი ბორტზე
სხვა ყველაფერი ბორტზე

მოწყობილობის ჩართვა ხორციელდება ტრანზისტორით და MosFET წრით, რომელიც გამოწვეულია RTC სიგნალიზაციით. სიგნალიზაციის გადატვირთვის შემდეგ, წრე წყვეტს მოწყობილობას ენერგიას კიდევ 24 საათის განმავლობაში. როდესაც სიგნალი მიიღწევა, DS3231 ცვლის ქინძისთავს მაღლიდან დაბალზე: ნორმალურ პირობებში ტრანზისტორი გაჯერებულია და შორტებია MosFET- ის კარიბჭესთან. მას შემდეგ, რაც სიგნალიზაცია ტრანზისტორის ბაზას დაადგენს, ის იხსნება და MosFET- ს საშუალებას აძლევს დახუროს წრე და მისცეს ძალა დანარჩენ კომპონენტებს.

გარდა ამისა, მე დავამატე "ტესტი -1 მ" მხტუნავი. ამ გადართვის მიზანია - თუ გააქტიურებულია - შეცვალოს ციკლი დღეში ერთხელ წუთში ერთხელ, განლაგების ტესტების გასაშვებად. იმისათვის, რომ შეცვალოთ ინტერვალი ერთი დღიდან ერთ წუთამდე, თქვენ ჯერ უნდა დახუროთ ჯუმპერი „Test-C“დაახლოებით 15 წამის განმავლობაში, გვერდის ავლით საათის სიგნალიზაციის გააქტიურების პერიოდს და ჩართოთ მოწყობილობა. ტესტების დასრულების შემდეგ გახსენით მხტუნავები და გადატვირთეთ მოწყობილობა (ციკლის სიმძლავრე).

ნაბიჯი 5: სქემატური

სქემატური
სქემატური

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

ტესტების დროს მე გამოვიყენე (პრაქტიკული მიზეზების გამო) NodeMCU კონტროლერი, ამიტომ პროგრამული უზრუნველყოფა ზრუნავს ამაზე, CHIP variale- ის მითითებით "NodeMCU" ან "esp8266".

ესკიზი ახორციელებს WiFiManager ბიბლიოთეკას, რომელიც საშუალებას აძლევს მოწყობილობას დაუკავშირდეს მოქმედ WiFi AP– ს პირველივე გაშვებისას. ასეთ შემთხვევაში, მოწყობილობა გადადის AP რეჟიმში, რაც საშუალებას გაძლევთ დაუკავშირდეთ მას და აირჩიოთ სწორი WiFi ქსელი შესაერთებლად. ამის შემდეგ, ქსელის კონფიგურაცია ინახება EPROM– ში შემდგომი ციკლებისთვის.

ცვლადი REST_MSG შეიცავს http შეტყობინებას გასაგზავნად, როდესაც სენსორი აღმოაჩენს ობიექტს საფოსტო ყუთში. ჩემს შემთხვევაში, ის აგზავნის შეტყობინებას domotic REST სერვერზე, მაგრამ თქვენ შეგიძლიათ შეცვალოთ იგი როგორც გსურთ: Telegram BOT შეტყობინება, IFTTT WebHook ღონისძიება და ა.

დანარჩენი ესკიზი არის setup () ფუნქციაში, რადგან მარყუჟს არასოდეს მიაღწევენ. რამდენიმე ბიბლიოთეკისათვის საჭირო კონფიგურაციის შემდეგ, პროგრამული უზრუნველყოფა ადგენს საათის დროს 00:00:01 საათზე და მაღვიძარას დღეში ერთხელ (ან წუთში ერთხელ თუ "test-1M" ჯუმპერი გააქტიურებულია). შემდეგ ის იღებს ზომას, აგზავნის შეტყობინებას (თუკი რაიმე საგანი აღმოჩნდება საფოსტო ყუთში) და აღადგენს სიგნალიზაციის პინს, გამორთავს მოწყობილობას. ციკლის ბოლოს, მხოლოდ RTC ჩართულია, ითვლის 24 საათის განმავლობაში. Jumper Test-1M უკავშირდება ESP8266– ის RX პინს, რომელიც გამოიყენება როგორც GPIO-3 პარამეტრების საშუალებით: setMode (PIN, FUNCTION_3). ამის გამო, თქვენ არ შეგიძლიათ გამოიყენოთ სერიული მონიტორი ESP8266- ის გაშვებისას: "#define DEBUG" ხაზი (რომელიც ესკიზში იძლევა ყველა სერიულ ბეჭდვას) გამოიყენება მხოლოდ მაშინ, როდესაც NodeMCU დაინსტალირებულია ESP8266- ის ნაცვლად.

ESP8266 ამუშავებს I2C კომუნიკაციას RTC– სთან და სენსორთან მისი ქინძისთავებით GPIO-0 და GPIO-2, ინიციალიზებული მავთულის ბიბლიოთეკაში.

სრული კოდის გადმოწერა შესაძლებელია ამ ბმულიდან.

დამხმარე ტექნიკური კონკურსი
დამხმარე ტექნიკური კონკურსი
დამხმარე ტექნიკური კონკურსი
დამხმარე ტექნიკური კონკურსი

დამხმარე ტექნიკურ კონკურსში

გირჩევთ: