Სარჩევი:

შინაური ცხოველების მიმწოდებელი მანქანა RasPi და Telegram Bot– ით: 4 ნაბიჯი (სურათებით)
შინაური ცხოველების მიმწოდებელი მანქანა RasPi და Telegram Bot– ით: 4 ნაბიჯი (სურათებით)

ვიდეო: შინაური ცხოველების მიმწოდებელი მანქანა RasPi და Telegram Bot– ით: 4 ნაბიჯი (სურათებით)

ვიდეო: შინაური ცხოველების მიმწოდებელი მანქანა RasPi და Telegram Bot– ით: 4 ნაბიჯი (სურათებით)
ვიდეო: ლუკა, შინაური ცხოველები და ფერმის მანქანა თეზო , luka, shinauri cxovelebi da fermis manqana tezo 2024, ივლისი
Anonim
შინაური ცხოველების მიმწოდებელი მანქანა RasPi და Telegram Bot– ით
შინაური ცხოველების მიმწოდებელი მანქანა RasPi და Telegram Bot– ით
შინაური ცხოველების მიმწოდებელი მანქანა RasPi და Telegram Bot– ით
შინაური ცხოველების მიმწოდებელი მანქანა RasPi და Telegram Bot– ით

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

ამის ესპანური ვერსია შეგიძლიათ ნახოთ ჩემს პირად ბლოგში:

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

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

  • ურთიერთქმედება ჩატში გაგზავნილი ბრძანებების საშუალებით, რომელსაც აკონტროლებს ChatBots.
  • ეს საშუალებას გაძლევთ თვალყური ადევნოთ საკვების სტატუსს.
  • აკონტროლებს რა რაოდენობის საკვების დარიგებას აპირებს.
  • მას აქვს ღილაკები, რომლებიც საშუალებას გაძლევთ ხელით იკვებოთ.
  • ის არ იძლევა ჭარბი კვებას კვების გამორთვით 8 საათიანი ინტერვალით.
  • მას აქვს სტატუსის LCD, რომელიც აჩვენებს მონაცემებს, როგორც მომდევნო დროის თარიღსა და დროს მომდევნო დენის წყაროსთვის, SSID რომელსაც იგი უკავშირდება WiFi- ს და მოწყობილობის IP მისამართს.
  • სურვილისამებრ: აჩვენებს ჩაკ ნორისის შემთხვევით ხუმრობებს და / ან ნომრების წვრილმანებს საჯარო APIS წყვილის გამოყენებით (ორიგინალური ავტორის მიერ გენიალური).
  • სისტემა დაუცველია გადატვირთვისგან დენის გათიშვის გამო, რადგან ის ინახავს სტატუსის ფაილს.
  • სისტემა ამოიცნობს კავშირის დაკარგვის დროს და ცდილობს ხელახლა დაკავშირებას, სანამ ის წარმატებული არ იქნება.

ნაბიჯი 1: გამოყენებული მასალები

  • 1 Raperry Pi, სასურველია ვერსია 3, რომელიც უკვე ინტეგრირებულია უკაბელო ბარათთან, ასევე შეგიძლიათ გამოიყენოთ Pi 3 Zero ვერსია, ამას ცოტა მეტი შრომა სჭირდება, რადგან ქინძისთავები უნდა შეაერთოთ, მაგრამ ძალიან გვიან აღმოვაჩინე, რომ მას შეეძლო გამოიყენეთ ერთ -ერთი მათგანი, რომელიც უფრო ეკონომიურია.
  • 1 მაღალი ბრუნვის ელექტროძრავა, 37 მმ, 3.5 rpm და 12V.
  • 1 ხალიჩა 37 მმ ძრავისთვის.
  • 1 პერსონაჟიანი LCD ეკრანი 20x4 სტრიქონით HD44780 კონტროლით.
  • 1 მარცვლეულის დისპენსერი Zevro მოდელი WM1001 shaft-D 5 დუიმი სიგრძის, 0.63 სმ დიამეტრის (D დაჭრილი აუცილებელია მის მიმაგრებაზე დისპენსერთან)
  • 1 ლილვის შემკვრელი 1/4 დიუმიდან 6 მმ -მდე ძრავასთან შესაერთებლად.

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

  • 1 ხის ყუთი, ვიყენებ 20,3 სმ სიგანის × 26,7 სმ სიმაღლის x 13 სმ სიღრმის. ყუთს აქვს კარი, რომელიც იხსნება მარჯვნივ 10 სმ x 4 სმ ხვრელით LCD ეკრანის დასაყენებლად (ადგილობრივი სადურგლო სამუშაოები)
  • 3 დააჭირეთ ღილაკს
  • 1 მცირე პროტობორდი
  • 1 LED 3.3 ვოლტის (არ აქვს მნიშვნელობა ფერი, მაგრამ ძაბვისთვის ისინი ჩვეულებრივ წითელია)
  • 1 NPN PN2222 ტრანზისტორი
  • 1 წინააღმდეგობა 270 Ω
  • 1 წინააღმდეგობა 10 KΩ
  • 1 პოტენციმეტრი 10 KΩ
  • 1 IN4003 დიოდი (შეიძლება მუშაობდეს IN4001 ან IN4004)
  • 1 12V 3A ადაპტერი
  • 1 5V 2A ადაპტერი
  • 4 ხრახნიანი ფრთის თხილით 1.5 ინჩიდან 2 ინჩამდე (დამოკიდებულია გამოყენებული ხის სისქეზე, ისინი უნდა დააფიქსირონ ძრავის სამაგრს ხის ყუთზე)
  • კაბელები Jumper strands სხვადასხვა ფერის
  • 1 დასაკეცი მილი ან PVC კომპლექტი 4 ინჩი დიამეტრით, ეს დამოკიდებულია სიმაღლეზე, რომელზეც ხის ყუთი განთავსდება.
  • 1 PVC იდაყვი, რომელიც მიმაგრებულია წინა მსახიობზე.
  • 3 დამჭერი მანქანის მილებისთვის (მსოფლიო)
  • UTP კაბელის 4 ფეხი (ჩვენ გვჭირდება გადაბმული წყვილი კავშირების დასამყარებლად)
  • 1 USB ვებკამერა, არ არის აუცილებელი იყოს მაღალი გარჩევადობის.

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

  • კალის შემდუღებელი
  • Ქილა
  • საბურღი
  • საბურღი 5/16
  • S8 ხრახნები გაფართოებებით

ნაბიჯი 2: სტრუქტურის განთავსება

სტრუქტურის განთავსება
სტრუქტურის განთავსება
სტრუქტურის განთავსება
სტრუქტურის განთავსება
სტრუქტურის განთავსება
სტრუქტურის განთავსება

მთავარი იდეა არის ZEVRO– ში შემავალი გამანაწილებელი სახელურის ჩანაცვლება D ღეროთი, რომელიც შემდგომში დაუკავშირდება ძრავას კუპერის საშუალებით. დისპენსერი მიმაგრებულია ხის ყუთზე და ხის ყუთი კედელზე. ვინაიდან მე არ ვიცი ბევრი ელექტრონიკა, მე არ გამომიყენებია არც ერთი ბაკელიტის ფირფიტა მიკროსქემის დასაყენებლად, ამიტომ მე გამოვიყენე პურის დაფა ყველა კომპონენტის დასამაგრებლად, ასე რომ ყუთის ბოლოში მიმაგრებულია ხრახნები Rapberry Pi და breadboard რომელსაც უკვე ჰქონდა წებოვანი უკანა მხარეს, ასე რომ მე უბრალოდ წავედი მის ჩასასმელად. ყუთში უნდა იყოს სამი ღილაკი, რომელსაც ექნება ტაიმერის გადატვირთვის ფუნქცია, ააქტიურებს მიმწოდებელს და ეს უკანასკნელი იქნება პირდაპირი ნაბიჯი ძრავის ჩართვისთვის წრედის გავლის გარეშე. ძრავა ინახება ყუთში ფრჩხილის საშუალებით, ასე რომ მხოლოდ ჯოხი D, რომელიც უკავშირდება დისპენსერს, ამოვა ყუთიდან, ყუთის ბოლოში დააფიქსირეთ და დაარეგულირეთ ვებკამერა ისე, რომ თითოეულ ფოსტაზე კონსულტაციასა და დადასტურებას I გამოაგზავნა ფოტო, თუ როგორ არის თეფში, რომ არ იკვებოს იმ შემთხვევაში, თუ მათ არ დაასრულეს საკვების ბოლო რაუნდი.

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

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

ძრავა უშუალოდ უკავშირდება 12 ვოლტიანი ტრანსფორმატორის პოზიტიურ ბოძს, მაგრამ იმისთვის რომ დენი გადიოდეს ის უნდა გაიაროს წრეში ძრავის ნეიტრალურ პოლუსში, ამ ტრანზისტორი N2222 გამოიყენება. ტრანზისტორებს ჩვეულებრივ აქვთ 3 ფეხი, რომელიც შეესაბამება კოლექტორს, ფუძესა და გამცემს, ტრანზისტორის მოდელის მიხედვით ამ ფეხის მდებარეობა შეიძლება განსხვავდებოდეს; ეს ტრანზისტორი ხდის გადართვის ფუნქციას. ეს არის ადგილი, სადაც ჩვენ ვაკავშირებთ ძრავის ნეიტრალურ ბოძს ტრანზისტორის კოლექტორთან, ჟოლოს პინი # 19 უკავშირდება ფუძეს 270Ω წინააღმდეგობის საშუალებით და გამცემი უკავშირდება ტრანზისტორის ნეიტრალურ ტერმინალს. 12V ტრანსფორმატორი ჟოლოს დედამიწის ერთ პოლუსთან ერთად; ტრანზისტორი გაუშვებს დინებას კოლექტორსა და გამცემს შორის, სანამ ბაზა სტიმულირდება საკმარისი ძაბვით; მოგვიანებით ჩვენ დავპროგრამებთ ჟოლოს ისე, რომ გარკვეული შეკვეთების თანახმად პორტი 19 გამოსცემს 3.3 ვოლტს, რაც საკმარისია იმისთვის, რომ წრე გააგრძელოს და გაააქტიუროს ძრავა.

LCD ეკრანისთვის პროტობარდის სხვა ნაწილი გამოიყენება სხვა წრეში, სადაც აერთებთ 10KΩ პოტენომეტრს, რომელიც უარყოფს LCD– ზე გამოტანილი ტექსტის კონტრასტს, ასე რომ, თუ ეკრანზე არაფერი გამოჩნდება, ეს ალბათ იმიტომ ხდება, რომ პოტენომეტრი სრულიად დაიხურა; ჩემს შემთხვევაში მე მას სრულიად ღიად ვტოვებ ისე, რომ ტექსტი უკეთესად ვიზუალიზებული იყოს. ბოლოს კავშირები breadboard იქნება შემდეგი.

ნაბიჯი 3: Raspberry Pi კონფიგურაცია

უპირველეს ყოვლისა, მნიშვნელოვანია შექმნათ Telegram Bot, რომ სისტემა იქნება მართული, თქვენ დაგჭირდებათ გასაღები თანდართული პითონის სკრიპტის შესაცვლელად. გთხოვთ წაიკითხოთ დეპეშის დოკუმენტაციის ნაბიჯები:

core.telegram.org/bots#3-how-do-i-create-a-bot

ჟოლოს კონფიგურაციისთვის გამოიყენეთ Rapbian– ის Lite ვერსია (ჩვენ არ გვჭირდება გრაფიკული ინტერფეისი) და გამოიყენეთ ძირითადი კონფიგურაცია, რომელიც აჩვენებს raspbian– ს დაინსტალირების შემდეგ ან raspi-config ბრძანების გამოყენებით: გააფართოვეთ სივრცე 100% –მდე და ჩართეთ SSH მაგრამ განსაკუთრებით ყველაზე მნიშვნელოვანი ის არის, რომ პაროლი და მომხმარებლის სახელი შეიცვალოს მომხმარებლის პი, რომელიც ნაგულისხმევია (წინააღმდეგ შემთხვევაში, როგორც მე მომივიდა, მათ შეუძლიათ განიცადონ თავდასხმა 22 -ე პორტზე, თუ მათ აქვთ საჯარო IP ჟოლოს მისამართი) რა გარდა ამისა, კონფიგურაცია ავტომატურად დაკავშირება ჩემს WiFi ქსელთან (დავუშვათ, ჩემს ქსელს ეწოდება "BlogSoriano" და ჩემი პაროლი არის "$ ecure123!") ჩვენ ვქმნით და ვინახავთ გასაღებს უკაბელო კავშირების ფაილში შემდეგი ბრძანებით:

sudo wpa_passphrase "BlogSoriano" "$ ecure123!" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf>/dev/null

შემდეგი არის პითონის ინსტალაციის სისტემის "პიპის" განახლება და დაინსტალირება, ასე რომ ჩვენ შევალთ როგორც root, განვაახლებთ და დავაყენებთ საჭირო პაკეტებს:

sudo -i apt-get update apt-get install install-essential python-dev python-smbus python-pip

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

pip დააინსტალირეთ RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces უკაბელო ტელეპოტი cv2

დამოკიდებულებების ინსტალაციის დასრულების შემდეგ, ჩვენ გამოვიყენებთ სკრიპტს, რომელიც ერთვის ამ ნაბიჯს, მე ვინახავ მას გზაში /opt/petfeeder.py და ფაილის შექმნა შესაძლებელია ბრძანების გამოყენებით nano /opt/petfeeder.py და ამ ფაილის შიგნით ჩვენ ვათავსებთ კოდს ან, თუ თქვენ გაქვთ მეტი Linux გამოცდილება, შეგიძლიათ გადმოწეროთ პირდაპირ wget– ით. სკრიპტში მნიშვნელოვანია ცვლადების შეცვლა BOTKEY (სტრიქონი 36) და SYSPASSWORD (სტრიქონი 23).

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

მას შემდეგ რაც გვაქვს სკრიპტი, ჩვენ უნდა შევცვალოთ ცვლადების მნიშვნელობები ბოტის გასაღებით; ამისათვის აუცილებელია ახალი Telegram Bot- ის შექმნა, რომლითაც ის მხოლოდ ფაილის შენახვა და გასვლა იქნება (Ctrl + ან შენახვა და ctrl + x ტოვებს რედაქტორს ნანო), ჩვენ უბრალოდ უნდა ვიყოთ მტკიცებულება გადატვირთვის შესახებ; სკრიპტი თავისთავად ინახავს ბოლო დროს ენერგოსისტემის გააქტიურებას, ასე რომ ჩვენ მხოლოდ უნდა გავააქტიუროთ სკრიპტი ოპერაციული სისტემის დაწყებისთანავე, ამისათვის მე ვიპოვე ძალიან კონკრეტული გამოსავალი პროგრამით, რომელსაც ეწოდება ზედამხედველი, რომელიც დაინსტალირებულია დებიანის საცავებიდან:

apt-get ინსტალაციის ზედამხედველი

და დაინსტალირების შემდეგ, ჩვენ მხოლოდ უნდა შევქმნათ კონფიგურაციის ფაილი /etc/supervisor/conf.d/petfeeder.conf– ში, როგორც წინა შემთხვევაში შეგვიძლია შევქმნათ და შევინახოთ ნანოთი, ამ ფაილს ექნება შემდეგი:

[პროგრამა: petfeederd] დირექტორია =/opt command = python petfeeder.py autostart = true autorestart = true

ფაილის შენახვის შემდეგ შეგვიძლია გამოვიყენოთ ბრძანება supervisorctl [დაწყება | გაჩერება | გადატვირთვა] petfeederd, რადგან ამ შემთხვევაში სერვისი არ დაწყებულა, ჩვენ მას ვასრულებთ დაწყებით:

ზედამხედველობა დაიწყება petfeederd

ნაბიჯი 4: მზად არის შესამოწმებლად

Image
Image
მზად არის შესამოწმებლად
მზად არის შესამოწმებლად
მზად არის შესამოწმებლად
მზად არის შესამოწმებლად
მზად არის შესამოწმებლად
მზად არის შესამოწმებლად

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

თქვენ უნდა შეგეძლოთ მოძებნოთ თქვენი ბოტი Telegram– ზე და გაგზავნოთ ერთი შემდეგი ბრძანება მას შემდეგ, რაც თქვენ /ავტორიზაციას გაუწევთ თქვენს ჩატს:

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

/როდის: ის აბრუნებს ინფორმაციას იმის შესახებ, თუ როდის იყო ბოლო კვება და საჭმლის ფირფიტის სურათი.

/ფოტო: დააბრუნეთ საჭმლის ფირფიტის სურათი.

/გადატვირთვა: გადატვირთეთ სისტემა, დააყენეთ ბოლო არხის ცვლადი 0 -ზე, რათა დაუყოვნებლივ იკვებოთ.

/სტატუსი იგი აცნობებს ინტერნეტ კავშირის სტატუსის შესახებ: დაკავშირებული უკაბელო ქსელის SSID და IP მისამართი, რომელიც სისტემას აქვს ქსელში.

გირჩევთ: