เครื่องให้อาหารแมวอัตโนมัติโดยใช้ Raspberry pi

เครื่องให้อาหารแมวอัตโนมัติโดยใช้ Raspberry pi

หลังจากความพยายามที่ล้มเหลวหลายครั้งในการเปลี่ยนตารางการให้อาหารแมว ที่กำลังหิวโหยในเวลาตี 3:00 น.  สิ่งนี้เท่ากับเจ้าเหมียวมากมายจนกระทั่งเราตื่น ฉันจำโพสต์ที่ฉันเห็นในบล็อกของ David Bryan เกี่ยวกับ Raspberry Pi ของเขาที่ควบคุมเครื่องป้อนอาหารแมวอัตโนมัติ ได้รับแรงบันดาลใจจากดาวิดฉันเลยตัดสินใจที่จะสร้างตึกของตัวเอง   และนี้คือสิ่งที่ฉันคิดขึ้นมาและสิ่งที่ฉันจะพูดถึงในโพสต์นี้

 

 

 

เป้าหมาย

วิธีอัตโนมัติในการให้อาหารแมวทั้งสอง ตามต้องการและตามกำหนดเวลา

 

ตัวป้อนอาหารนี้จะถูกเรียกใช้ทางอีเมลล์ โดยเฉพาะอย่างยิ่ง Gmail

ถูกต้อง เราจะตั้งค่าบัญชี Gmail ที่ Raspberry Pi ของเรา  จะตรวจสอบเมื่ออีเมลล์มาถึงในหัวข้อที่คาดไว้ตัวป้อนอาหารจะปล่อยออกมา

 

ฉันเลือกเส้นทางนี้เพื่อหลีกเลี่ยงความซับซ้อนของโครงการมากเกินไป การให้อาหารตามความต้องการของแมวนั้นง่ายเหมือนการส่งอีเมลในขณะที่การให้อาหารตามกำหนดเวลานั้นทำได้ง่ายเหมือนกับการสร้างแอปเพล็ต IFTTT ตราบใดที่แมวไม่เข้าใจบัญชีอีเมลและเรื่องลับนี่ควรเป็นทางออกที่ปฏิบัติได้

 

ข้อกำหนดเบื้องต้น

คุณควรเตรียม Raspberry Pi ที่พร้อมใช้งาน ฉันใช้ Raspberry Pi รุ่น B  (26 GPIO พิน), การ์ด SD ขนาด 8GB และ Raspbian distro (แนะนำเป็นอย่างยิ่ง) คู่มือนี้ค่อนข้างตรงไปตรงมาและทำให้ฉันพร้อมและทำงานในเวลาไม่นาน

 

แบ่งส่วน

ฉันตัดสินใจแบ่งโพสต์นี้ออกเป็นส่วนต่าง ๆ เพื่อให้อ่านได้:

  • ในส่วนนี้เราจะแนะนำสิ่งที่เรากำลังสร้างและสิ่งที่คุณจะต้องทำให้เสร็จ
  • ส่วนที่สอง จะครอบคลุมการเขียนโค้ดเพื่อเชื่อมต่อสอบถาม บัญชี Gmail ของคุณ เพื่อหาอีเมลล์หัวข้ออาหารแมว
  • ในขณะที่ ส่วนที่สาม จะมุ่งเน้นไปที่การเชื่อมต่อเซอร์โวมอเตอร์ของคุณกับ Raspberry Pi และเขียนโค้ดเพื่อให้มันหมุนและทำงาน
  • และสุดท้าย ส่วนที่สี่ จะกล่าวถึงแนวทางของฉันเมื่อติดตั้ง Pi และเซอร์โวมอเตอร์เข้ากับเครื่องจ่ายอาหาร

สิ่งที่คุณต้องการสำหรับเครื่องป้อนแมวอัตโนมัติ

  • เครื่องจ่ายอาหารธัญพืช / อาหารแห้ง เพื่อเก็บอาหารแมว แท่นวางนี้ มีพื้นที่ไม่เพียงพอสำหรับติดตั้งมอเตอร์ที่ด้านหลัง ฉันต้องการให้มอเตอร์ถูกซ่อนให้มากที่สุดเท่าที่จะเป็นไปได้ดังนั้นสิ่งนี้จึงทำให้ฉันสร้างที่ตั้งของตัวเองสำหรับเครื่องจ่ายนี้
  • เซอร์โวมอเตอร์หมุนเครื่องจ่าย ฉันใช้เซอร์โวมอเตอร์หมุนต่อเนื่องนี้  
  • อะแดปเตอร์ไฟ USB ขนาด 10 วัตต์ 5V  ให้กำลังแก่ Pi และมอเตอร์ มอเตอร์ใช้กระแสไฟฟ้าในปริมาณที่ดีดังนั้นเราต้องตรวจสอบให้แน่ใจว่าแหล่งจ่ายไฟสามารถรองรับได้ ฉันลงเอยด้วยการใช้เครื่องชาร์จ iPad ของฉัน
  • สายจัมเปอร์ 3x ชายต่อหญิง  เพื่อเชื่อมต่อมอเตอร์กับหมุด GPIO ของ Pi
  • WiFi Dongleเว้นแต่ว่าคุณจะเดินสายยากหรือมี Raspberry Pi รุ่นใหม่กว่าที่มาพร้อมกับ WiFi ในตัว (ดีสำหรับคุณ)

·        ฉันมีแมวสองตัวดังนั้นฉันจึงใช้อุปกรณ์พีวีซีที่สามารถแบ่งอาหารออกเป็นสองชาม  เหมาะสําหรับพีวีซีสองนิ้วคู่ข้อศอก 90 องศา   แต่ร้านค้าแถวบ้านขอฉันไม่มี  จึงตัดสินใจซื้อ แบบ Y คู่และปิดกั้นหลุมตรงกลางแท

·        ปุ่มหรืออุปกรณ์ยึดอื่น ๆ ราคาถูกและง่าย

·        แกนเกลียว Threaded Rod x 1 เพื่อยึดฐานของเซอร์โวมอเตอร์เข้ากับเครื่องจ่ายเพื่อป้องกันไม่ให้มันหมุน

·        น็อตหกเหลี่ยม 8-32 x4   เพื่อขันให้เข้าที่ กระชับคันโยก

 

ครื่องมือ

·     สว่านไฟฟ้าหากคุณวางแผนที่จะต่อท่อ Pi และ PVC เข้ากับเครื่องจ่ายโดยตรง

·     ตัวตัดบ็อกซ์ถ้าคุณใช้แท่งเกลียวเป็นสปริงเนื่องจากมีขนาดใหญ่เกินไปเล็กน้อยที่จะพอดีกับรูสำหรับยึดเซอร์โวมอเตอร์

·     เลือยตัดโลหะหากคุณจะใช้แกนเกลียวจากด้านบน มันค่อนข้างยาวเกินไปดังนั้นเราจะต้องย่อให้สั้นลง

 

[ไม่บังคับ] การสร้างแท่นวางแบบกำหนดเองสำหรับเครื่องจ่าย

แท่นวางที่มาพร้อมกับเครื่องจ่ายไม่มีพื้นที่ด้านหลังเพียงพอสำหรับติดตั้งเซอร์โวมอเตอร์

ฉันไม่ชอบที่เห็นเซอร์โวอยู่ข้างหน้า โดยเฉพาะอย่างยิ่งเมื่อฉันได้เรียนรู้เกี่ยวกับแมวและสายไฟ ดังนั้นฉันจึงสร้างสิ่งเหล่านั้นด้วยตนเอง

 

ฉันเลือกที่จะสร้างสิ่งนี้โดยใช้ท่อทองแดง (ต้องตรงกับธีม boho ของเรา) ใช้เวลาไม่นานในการค้นหาสิ่งที่เหมาะสมกับความต้องการของเราใน Pinterest เจ้าของโรงงานแห่งนี้ได้รับการออกแบบใหม่เพื่อเป็นที่วางตู้ทำอาหารแห้ง สี่เหลี่ยมเล็ก ๆ ที่อยู่ตรงกลางนั้นมีขนาดพอดีกับฐานของตู้จ่ายอย่างแน่นหนาจากนั้นท่อทองแดงจะถูกสร้างขึ้นรอบ ๆ

 

จะไม่พูดถึงเรื่องรายละเอียดเกี่ยวกับวิธีการสร้างมัน แต่นี้คือรายการเพิ่มเติมที่ต้องใช้

·     ท่อทองแดง 3/4 นิ้วรวมประมาณ 7 ถึง 10 ฟุต

·     ข้อศอกทองแดง 3/4 x 3/4 นิ้ว 90 องศา

·     ประเดิมทองแดงขนาด 3/4 3/4 นิ้ว

·     เครื่องตัดท่อทองแดง

·     J.B. เชื่อม สำหรับเชื่อมต่อท่อเข้าด้วยกัน

 

สรุปและขั้นตอนต่อไป

จนถึงตอนนี้เราได้พูดคุยเกี่ยวกับสิ่งที่คุณต้องเริ่มต้น ตรงไปที่ส่วนที่สองที่เราครอบคลุมการเขียนสคริปต์หลามเพื่ออ่านบัญชี Gmail ของคุณโดยใช้ห้องสมุด IMAPClient

 

นำหน้าเกม? ส่วนที่สามครอบคลุมการหมุนมอเตอร์เซอร์โวและส่วนที่สี่เป็นข้อมูลเกี่ยวกับการเชื่อมต่อ Pi และมอเตอร์เข้ากับเครื่องจ่าย

 

 

บทสรุปและการกระทำต่อไป

จนถึงตอนนี้เราได้พูดคุยเกี่ยวกับสิ่งที่คุณจะต้องเริ่มต้น ตรงไปที่ส่วนที่สองที่เราครอบคลุมการเขียนสคริปต์เพื่ออ่านบัญชี Gmail ของคุณโดยใช้ห้องสมุด IMAPClient    นำหน้าเกม? ส่วนที่สามครอบคลุมการหมุนมอเตอร์เซอร์โวและส่วนที่สี่เป็นข้อมูลเกี่ยวกับการเชื่อมต่อ Pi และมอเตอร์เข้ากับเครื่องจ่าย

 

 

ส่วนที่ 2

การอ่าน Gmail ด้วย Raspberry PI และ IMAPCLIENT

 

ในส่วนที่หนึ่งเราครอบคลุมพื้นฐานของสิ่งที่เรากำลังพยายามสร้างและสิ่งที่คุณต้องเริ่มต้น ในส่วนที่สองเราจะเล่นกับรหัส Python เพื่อโต้ตอบกับบัญชี Gmail ของเราโดยใช้ IMAPClient ต่อมาส่วนที่สามมุ่งเน้นไปที่เซอร์โวมอเตอร์ในขณะที่ส่วนที่สี่เชื่อมต่อทั้งหมดเข้ากับเครื่องจ่ายอาหาร

 

เป้าหมายของส่วนนี้คืออะไร?

 

ตั้งค่าบัญชี Gmail ของคุณด้วยการรับรองความถูกต้องแบบสองขั้นตอนเพื่อความปลอดภัยในการโต้ตอบผ่านรหัส

เขียนรหัสเพื่อสอบถามกล่องจดหมายของคุณเพื่อรับอีเมลและทำเครื่องหมายว่าอ่านเมื่อพบโดยใช้ห้องสมุด IMAPClient

เริ่มกันเลย !

 

การเตรียมบัญชี Gmail ของคุณด้วยการตรวจสอบสิทธิ์แบบ 2 ขั้นตอน

สิ่งนี้ไม่จำเป็นมากนัก แต่เป็นการรักษาความปลอดภัยที่ดี หากคุณไม่สนใจข้อมูลประจำตัวของคุณเป็นข้อความธรรมดาในรหัสของคุณ โปรดข้าม

เนื่องจากเรากำลังจะใช้อีเมลเป็นตัวกระตุ้นเราจะต้องมีวิธีการลงชื่อเข้าใช้บัญชี Gmail ของเราอย่างปลอดภัยจากรหัส คุณสามารถจัดเก็บข้อมูลรับรองของคุณเป็นข้อความธรรมดาภายในรหัสที่เราเขียน แต่ฉันขอแนะนำอย่างยิ่ง ให้ใช้การรับรองความถูกต้องสองขั้นตอนและรหัสผ่านสำหรับแอปของ Gmail แทน

 

ฉันสร้างบัญชี Gmail ใหม่เพื่อจุดประสงค์นี้

 

1.เข้าสู่บัญชี gmail ของคุณ

2.ไปยังหน้าลงชื่อเข้าใช้และความปลอดภัย

3.ในส่วนการลงชื่อเข้าใช้ Google ให้คลิกเมนูการยืนยันแบบ 2 ขั้นตอนจากนั้นทำตามคำแนะนำเพื่อเปิดใช้งานการยืนยันแบบ 2 ขั้นตอน

4.กลับไปที่หน้าลงชื่อเข้าใช้และความปลอดภัยใต้ปุ่มการยืนยันแบบ 2 ขั้นตอนคุณจะเห็นรหัสผ่านสำหรับแอป

5.สร้างรหัสผ่าน

หมายเหตุ: รหัสผ่านนี้จะเป็นตัวเลข 16 หลักโดยมีการเว้นวรรคคั่นทุก 4 หลัก (เช่น xxxx xxxx xxxx xxxx) โปรดรวมช่องว่าง

รหัสผ่านที่คุณสร้างขึ้นสามารถใช้เพื่อเข้าสู่บัญชี Gmail ของคุณ เราไม่ต้องการมันในวินาทีนี้ แต่เราจะใช้มันเพื่อสแกนหาอีเมลที่ต้องการให้เราเลี้ยงแมว

 

การเขียนรหัสเพื่ออ่าน Gmail ของคุณ

ตอนนี้เรามีบัญชี Gmail ที่พร้อมจะเขย่าแล้วให้เขียนโค้ดเพื่อซักถาม เรากำลังจะใช้ห้องสมุดหลาม IMAPClient เพื่อจุดประสงค์นี้และเราจะรวมการเรียกไปยังไคลเอนต์นี้ในคลาส Python ของเรา

 

เขียนโค้ดเพื่ออ่าน Gmail ของคุณ

ตอนนี้ที่เราได้มีบัญชี Gmail เขียนรหัสบางอย่างเพื่อสอบถามเกี่ยวกับมัน ทำแบบนี้เราจะใช้ห้องสมุด imagelienpython และห่อโทรศัพท์ไปยังลูกค้าในชั้นเรียน python ของเราเอง

ตอนนี้ติดตั้ง IMAP ลูกค้าจาก terminal sudo pip install imapclient

สร้าง gmailwrapper.py บท

ตอนนี้เรามาสร้างชั้นเรียนบรรจุภัณฑ์ nano GmailWrapper.py  Gmail gmailwrapper.py เชื้อสาย อยู่ในระหว่าง gmailwrapper.py เพิ่มรหัสต่อไปนี้ในสคริปต์

 

                          

บันทึกและออกจากเครื่องมือแก้ไข CTRL+Xthen Y, then Enter.

 

การยืนยัน GmailWrapper.py Class Class

มาทดสอบกันก่อน  สคริปต์ของเราจะเข้าสู่บัญชี Gmail ค้นหาอีเมลล์ที่มีหัวเรื่องเฉพาะจากนั้นทำเครื่องหมายว่าอ่านแล้ว ก่อนเรียกใช้รหัสให้ส่งอีเมลล์ด้วยตัวคุณเองฟีดหัวเรื่องอาหารแมว 

 

เราจะใช้ Python interpreter เพื่อทำการทดสอบ ในเทอร์มินัลของคุณตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเรกทอรีเดียวกันกับคลาส GmailWrapper.py ที่เราเพิ่งสร้างขึ้นจากนั้น:

                             

 

หากทุกอย่างเป็นไปตามแผนที่วางไว้ อีเมลล์ของคุณควรถูกทำเครื่องหมายเป็นอ่านแล้ว ค่อนข้างเรียบร้อย!

 

 

บทสรุปและขั้นตอนต่อไป

ส่วนหนึ่งกำหนดเป้าหมายและเค้าโครง ขณะนี้มีส่วนที่สองที่ปิดแล้วเรามีความสามารถในการแยกแยะว่ามีอีเมลอยู่หรือไม่ ด้วยพลังนี้เราสามารถกระตุ้นเหตุการณ์บางอย่างเช่นการหมุนเซอร์โวมอเตอร์ นั่นคือสิ่งที่เรากำลังจะทำในส่วนที่สามฉันจะพบคุณที่นั่น

 

โปรดติดตาม ส่วนที่ 3 และ 4 ในบทความหน้า

ขอบคุณข้อมูลจาก : storiknow.com

แสดงความคิดเห็นได้เฉพาะ สมาชิก เท่านั้น