Სარჩევი:

ნაგვის სისტემა: 7 ნაბიჯი
ნაგვის სისტემა: 7 ნაბიჯი

ვიდეო: ნაგვის სისტემა: 7 ნაბიჯი

ვიდეო: ნაგვის სისტემა: 7 ნაბიჯი
ვიდეო: ბიოლოგია, VII კლასი - სასიცოცხლო თვისებები. უჯრედი ორგანიზმის საშენი მასალა #ტელესკოლა 2024, ნოემბერი
Anonim
ნაგვის სისტემა
ნაგვის სისტემა

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

მარაგები

ულტრაბგერითი სენსორი (HC-SR04)

ჟოლო Pi (ჩვენ გამოვიყენეთ Pi 4 მოდელი B)

პურის დაფა

ჯუმბერის კაბელები

რამოდენიმე რეზისტორი (3 x 1k ohm)

ნაბიჯი 1: დაკავშირება HC-SR04

დაკავშირება HC-SR04
დაკავშირება HC-SR04

ვინაიდან ჩვენ ვიყენებთ Raspberry Pi- ს, ჩვენ უნდა გამოვიყენოთ ძაბვის გამყოფი, რომ დაარეგულიროს ძაბვა, რომელიც მიდის Pi- ს GPIO ქინძისთავებში, რადგან ისინი მხოლოდ 3.3v- ს უშვებენ. HC-SR04 იყენებს 5V– ს, მაგრამ Pi– სთან დაკავშირებისას საჭიროა მისი შემცირება 3.3V– მდე. შეაერთეთ შესაბამისად 5V და დაფქვილი ქინძისთავები და თქვენი პროგრამის მიხედვით მიამაგრეთ ექოს და გამშვები ქინძისთავები საპატიო ქინძისთავებს. ჩვენს პროგრამაში ჩვენ გამოვიყენეთ პინი 23 და 24 შესაბამისად ექოსთვის და ტრიგერისთვის.

ნაბიჯი 2: Mosquitto და Paho MQTT

სანამ დავიწყებთ პითონზე პროგრამირებას, რათა ულტრაბგერითი სენსორი Pi– სთან მუშაობდეს, ჩვენ უნდა დავაინსტალიროთ ეს პროგრამები, რათა ულტრაბგერითი სენსორი დაუკავშირდეს ჩვენს პროგრამირების პროგრამულ უზრუნველყოფას Node-RED. Mosquitto არის MQTT ბროკერი, რომლის გამოყენებაც შეგიძლიათ Pi– ზე, ხოლო Paho MQTT არის ბიბლიოთეკა, რომელიც საშუალებას გაძლევთ დაშიფროთ Python– ში, რათა მიიღოთ სენსორი MQTT ბროკერთან. ორივე მათგანის დასაყენებლად თქვენ უნდა ჩაწეროთ ეს ბრძანებები თქვენს Pi ტერმინალზე

sudo apt განახლება

sudo apt install -y mosquitto mosquitto კლიენტები

sudo apt-get დააინსტალირეთ python3-pip

sudo pip3 დააინსტალირეთ paho-mqtt

ნაბიჯი 3: პითონის პროგრამა ულტრაბგერითი სენსორისთვის

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

ნაბიჯი 4: კვანძი-წითელი

კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი

ზოგიერთი კვანძი არ არის წინასწარ დაინსტალირებული პროგრამაში, ასე რომ თქვენ შეიძლება დაგჭირდეთ მისი დაყენება პალიტრებიდან. ის, რაც თქვენ უნდა დააინსტალიროთ არის node-red-dashboard და node-red-node-sqlite.

ეს არის ის, სადაც ჩვენ ვიწყებთ ჩვენი პროგრამირების პროგრამული უზრუნველყოფის და სენსორის გამოყენებას. პირველი კვანძი, რომელიც დაგჭირდებათ არის MQTT-in Node და ეს საშუალებას გვაძლევს გამოვიყენოთ ჩვენი სენსორი პროგრამის ზემოდან გაგზავნით ამ პროგრამულ უზრუნველყოფაზე მონაცემების გასაგზავნად. დიაპაზონის კვანძი, რომელიც ჩვენ გამოვიყენეთ, გადაატრიალებს ჩვენს მიერ მიღებულ მნიშვნელობებს (ანუ 5 სმ სავსეა პროგრამიდან, ასე რომ ჩვენ მას 100%-ით ვტრიალებთ). დიაპაზონის კვანძის შემდეგ გვაქვს 2 ფუნქციური კვანძი, ერთი შეტყობინების საჩვენებლად ჩვენს დაფაზე და ერთი ვიზუალურად რომ ნაგავი სავსეა. თანდართულია ფუნქციის კვანძების პროგრამა.

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

ნაბიჯი 5: მონაცემების ჩაწერა

შესვლის მონაცემები
შესვლის მონაცემები
შესვლის მონაცემები
შესვლის მონაცემები
შესვლის მონაცემები
შესვლის მონაცემები

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

ნაბიჯები მონაცემების შესაქმნელად და შესასვლელად მიდის შემდეგნაირად:

1. მონაცემთა ბაზის შექმნა

2. ჩაწერეთ მონაცემები

3. გაიყვანეთ მონაცემები საჩვენებლად ჩვენს დაფაზე

4. მონაცემების გასუფთავება და წაშლა

SQL– ის მუშაობის პრინციპია ის, რომ თქვენ უნდა შექმნათ თემის შესრულება, რომელიც არის ცხრილის შექმნა, ჩასმა, შერჩევა და წაშლა. დროის ნიშნულის კვანძების გამოყენებით ჩვენ შეგვიძლია განვახორციელოთ თემები sqlite კვანძზე, რომელიც ასრულებს თითოეულ ამ ფუნქციას (შექმნა, ჩასმა, შერჩევა და წაშლა). ჩვენ მხოლოდ ერთხელ უნდა შევქმნათ მონაცემთა ბაზა და მას შემდეგ რაც შევძლებთ მონაცემების შეყვანას. მას შემდეგ რაც შეიქმნება მონაცემთა ბაზა, ჩვენ შეგვიძლია მონაცემების შესვლა და ჩვენ კვლავ გამოვიყენეთ მომხმარებლის შეყვანა შესასვლელად, როდესაც სატვირთო მანქანა მოვიდა. ჩვენ გავაკეთეთ ისე, რომ თქვენ ვერ შეძლებთ მონაცემების შეყვანას, სანამ სატვირთო მანქანა არ მოვა ნებადართული, რომელიც არის 5 ტანსაცმელი 80% სიმძლავრით (ითვლება სავსე). ჩვენ ასევე კვლავ გამოვიყენეთ დიაპაზონის კვანძი, რომ გავაფართოვოთ 500 0-100%-მდე. ამის შემდეგ ჩვენ გვაქვს შესაძლებლობა წაშალოთ ყველა მონაცემი მონაცემთა ბაზიდან, თუ გვსურს. UI ცხრილის კვანძი არის კვანძი, რომელიც მოგვცემს საშუალებას ვნახოთ ცხრილი ლამაზად ფორმატირებული ჩვენს დაფაზე.

ნაბიჯი 6: განლაგება

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

ნაბიჯი 7: დასკვნა

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

გირჩევთ: