สารบัญ:
- ขั้นตอนที่ 1: วัสดุที่ใช้แล้ว
- ขั้นตอนที่ 2: การวางโครงสร้าง
- ขั้นตอนที่ 3: การกำหนดค่า Raspberry Pi
- ขั้นตอนที่ 4: พร้อมที่จะทดสอบ
วีดีโอ: เครื่องป้อนสัตว์เลี้ยงด้วย RasPi และ Telegram Bot: 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ก่อนอื่น ฉันต้องชี้แจงว่านี่ไม่ใช่ Idea Mine ดั้งเดิม เพียงอัปเดตและปรับสคริปต์การเขียนโปรแกรมให้ทำงานกับโทรเลข ฉันพบมันใน Instructable ก่อนหน้า ดังนั้นเครดิตจึงเป็นผู้เขียนมันจริงๆ
คุณสามารถดูเวอร์ชันภาษาสเปนได้ในบล็อกส่วนตัวของฉัน:
คุณต้องสร้างวงจรขนาดเล็กที่กระตุ้นมอเตอร์แรงบิดสูง และเนื่องจากความรู้ด้านอิเล็กทรอนิกส์ของฉันมีน้อยมาก ฉันจึงต้องใช้เวลาสองสามวันในการเรียนรู้พื้นฐานด้วยการดูวิดีโอบน YouTube
สคริปต์อัตโนมัติดั้งเดิมเขียนด้วย Python และใช้การเชื่อมต่อ GMail เพื่อศึกษาคำสั่ง ฉันไม่เคยใช้ภาษาการเขียนโปรแกรมนี้ แต่ความจริงก็ไม่ได้แตกต่างจากที่อื่นมากนัก ฉันได้แก้ไขเล็กน้อยเพื่อให้ปรับตัวเข้ากับใหม่ได้ดีขึ้น ไลบรารี Python และกระบวนการอัตโนมัติพร้อมกับการกำหนดค่าระบบปฏิบัติการช่วยให้คุณสามารถกำหนดพารามิเตอร์ต่อไปนี้:
- โต้ตอบผ่านคำสั่งที่ส่งไปยัง Chat ที่ควบคุมผ่าน ChatBots
- จะช่วยให้ติดตามสถานะของอาหารที่จ่ายไป
- ควบคุมปริมาณอาหารที่จะจ่าย
- มีปุ่มสำหรับป้อนอาหารด้วยตนเอง
- ไม่อนุญาตให้ป้อนอาหารมากเกินไปโดยปิดการป้อนทุก 8 ชั่วโมง
- มี LCD แสดงสถานะที่แสดงข้อมูลเป็นวันที่และเวลาของแหล่งจ่ายไฟครั้งต่อไป SSID ที่เชื่อมต่อกับ WiFi และที่อยู่ IP ของอุปกรณ์
- ไม่บังคับ: แสดง Chuck Norris Random Jokes และ / หรือ Trivia of Numbers บางส่วนโดยใช้ APIS สาธารณะ (Ingenious โดยผู้เขียนต้นฉบับ)
- ระบบมีภูมิคุ้มกันที่จะรีสตาร์ทเนื่องจากไฟฟ้าดับในขณะที่บันทึกไฟล์สถานะ
- ระบบตรวจพบเมื่อมีการสูญเสียการเชื่อมต่อและพยายามเชื่อมต่อใหม่จนกว่าจะสำเร็จ
ขั้นตอนที่ 1: วัสดุที่ใช้แล้ว
- 1 Raperry Pi โดยเฉพาะอย่างยิ่งรุ่น 3 ที่รวมเข้ากับการ์ดไร้สายแล้ว คุณยังสามารถใช้รุ่น Pi 3 Zero ได้ ต้องใช้เวลาทำงานเพิ่มขึ้นเล็กน้อยเพราะคุณต้องบัดกรีหมุด แต่ฉันพบว่าช้ามากที่ทำได้ ใช้อย่างใดอย่างหนึ่งที่ประหยัดกว่า
- มอเตอร์ไฟฟ้าแรงบิดสูง 1 ตัว 37 มม. 3.5 รอบต่อนาที และ 12V
- 1 เบรคสำหรับมอเตอร์ 37 มม.
- หน้าจอ LCD 1 ตัวอักษรขนาด 20x4 บรรทัดพร้อมตัวควบคุม HD44780
- 1 เครื่องจ่ายธัญพืช Zevro รุ่น WM1001 เพลา-D ยาว 5 นิ้ว เส้นผ่านศูนย์กลาง 0.63 ซม. (จำเป็นต้องตัด D เพื่อติดเข้ากับเครื่องจ่าย)
- 1 ข้อต่อเพลาตั้งแต่ 1/4 "ถึง 6 มม. เพื่อเชื่อมต่อกับมอเตอร์
วัสดุก่อนหน้านี้ทั้งหมดยกเว้นสองอันสุดท้ายฉันไม่สามารถรับได้ในประเทศของฉัน (หรืออย่างน้อยฉันก็ไม่รู้ว่าจะหาได้ที่ไหน) อย่างไรก็ตาม แกนและข้อต่อน่าจะอยู่ในโรงเชื่อม แต่เป็นครั้งแรกที่ฉันทำอะไรบางอย่าง แบบนั้นฉันไม่รู้ว่ามันควรจะพอดีกับเครื่องยนต์อย่างไรฉันจึงถามหน้าของลิงก์ที่อธิบายข้างต้น ด้านล่างวัสดุที่ฉันสามารถซื้อได้ในร้านค้าในพื้นที่:
- 1 กล่องไม้ ผมใช้ กว้าง 20.3 ซม. × สูง 26.7 ซม. x ลึก 13 ซม. ตัวกล่องมีประตูเปิดไปทางขวามีรูขนาด 10 ซม. x 4 ซม. เพื่อวางจอ LCD (งานไม้จริง)
- 3 ปุ่มกด
- 1 Protoboard ขนาดเล็ก
- 1 LED 3.3 โวลต์ (สีไม่สำคัญ แต่สำหรับแรงดันไฟฟ้ามักจะเป็นสีแดง)
- 1 NPN PN2222 ทรานซิสเตอร์
- 1 ความต้านทาน 270 Ω
- 1 ความต้านทาน 10 KΩ
- 1 โพเทนชิออมิเตอร์ 10 KΩ
- 1 IN4003 ไดโอด (IN4001 หรือ IN4004 สามารถทำงานได้)
- อะแดปเตอร์ 12V 3A 1 ตัว
- อะแดปเตอร์ 1 5V 2A
- สกรู 4 ตัวพร้อมน๊อตปีกนก ขนาดตั้งแต่ 1.5 นิ้ว ถึง 2 นิ้ว (ขึ้นอยู่กับความหนาของไม้ที่ใช้ ใช้ยึดมอเตอร์กับกล่องไม้)
- สายจัมเปอร์หลากสี
- ท่อพับ 1 ชุด หรือชุด PVC เส้นผ่านศูนย์กลาง 4 นิ้ว จำนวน 1 ชุด ขึ้นอยู่กับความสูงที่จะวางกล่องไม้
- ข้อศอก PVC 1 อันที่ยึดติดกับเฝือกก่อนหน้า
- ที่หนีบท่อรถยนต์ 3 อัน (The World)
- สายเคเบิล UTP 4 ฟุต (เราต้องการคู่บิดเพื่อทำการเชื่อมต่อ)
- 1 USB WebCam ไม่จำเป็นต้องมีความละเอียดสูง
วัสดุเบ็ดเตล็ดบางอย่างที่สามารถหาได้ในร้านฮาร์ดแวร์หรืออาจมีอยู่แล้ว:เทปอุตสาหกรรม
- ช่างเชื่อมดีบุก
- ดีบุก
- เจาะ
- สว่าน 5/16
- สกรู S8 พร้อมตัวขยาย
ขั้นตอนที่ 2: การวางโครงสร้าง
แนวคิดหลักคือการเปลี่ยนที่จับจ่ายที่มาพร้อมกับ ZEVRO ด้วยก้าน D ซึ่งจะเชื่อมต่อกับมอเตอร์โดยใช้ตัวต่อ เครื่องจ่ายจะติดกับกล่องไม้และกล่องไม้กับผนัง เนื่องจากฉันไม่ค่อยรู้จักอุปกรณ์อิเล็กทรอนิกส์มากนัก ฉันจึงไม่ได้ใช้เพลท Bakelite ในการติดตั้งวงจร ดังนั้นฉันจึงใช้เขียงหั่นขนมเพื่อใส่ส่วนประกอบทั้งหมด ดังนั้นที่ด้านล่างของกล่องจึงยึดด้วยสกรู Rapberry Pi และเขียงหั่นขนมซึ่งมีกาวอยู่แล้ว ด้านหลังก็เลยไปแปะไว้ กล่องจะต้องมีสามปุ่มซึ่งจะมีหน้าที่ในการรีสตาร์ทตัวจับเวลาเปิดใช้งานตัวป้อนและปุ่มสุดท้ายจะเป็นขั้นตอนโดยตรงในการเปิดใช้งานมอเตอร์โดยไม่ต้องผ่านวงจร มอเตอร์จะถูกยึดไว้ภายในกล่องโดยใช้ขายึด ดังนั้นเฉพาะก้าน D ที่เชื่อมต่อกับเครื่องจ่ายเท่านั้นที่จะยื่นออกมาจากกล่อง ที่ด้านล่างของกล่องแก้ไขและปรับเว็บแคมเพื่อให้ในแต่ละจดหมายปรึกษาและยืนยัน ส่งรูปว่าจานเป็นอย่างไรบ้าง ไม่ให้อาหารเกิน เผื่อยังกินไม่หมดรอบที่แล้ว
จากด้านล่างของตัวจ่าย หลอดที่ลงไปที่จานวางและวางข้อศอก PVC ไว้บนฐาน ฉันวางเทป Industrial Tape เล็กๆ ในช่องทางออกเพื่อลดความเร็วของการไหลของอาหาร และทำฐานจ่ายสำหรับ ป้องกันไม่ให้อาหารฉีดพ่นได้ทุกที่ ในการยึดท่อกับผนัง ให้ใช้ตัวยึดโลหะที่คุณยึดกับผนังด้วยสกรูแกน S8
ที่ประตูกล่องให้จับแผ่นหน้าจอ LCD และใช้สาย UTP คู่บิดเกลียวเพื่อนำไปยัง Raspberry โดยตรง ที่ปลายอีกด้านของสายเคเบิลจะประกบปลายตัวเมียของจัมเปอร์เพื่อให้เชื่อมต่อได้ง่ายขึ้น พอร์ต GPIO ของ Raspberry นี่จะเป็นแผนภาพวงจร ฉันจะพยายามอธิบายด้วยสิ่งเล็กน้อยที่ฉันได้จากอิเล็กทรอนิคส์
มอเตอร์เชื่อมต่อโดยตรงกับขั้วบวกของหม้อแปลง 12 โวลต์ แต่สำหรับกระแสที่ไหลจะต้องผ่านวงจรในขั้วกลางของมอเตอร์สำหรับทรานซิสเตอร์นี้ N2222 จะใช้ โดยปกติแล้วทรานซิสเตอร์จะมี 3 ขา ซึ่งสอดคล้องกับตัวสะสม ฐาน และตัวปล่อย ขึ้นอยู่กับรุ่นของทรานซิสเตอร์ ตำแหน่งของขาเหล่านี้อาจแตกต่างกันไป ทรานซิสเตอร์นี้ทำให้ฟังก์ชันสวิตช์ นี่คือที่ที่เราเชื่อมต่อขั้วกลางของมอเตอร์กับตัวเก็บประจุของทรานซิสเตอร์ ขา # 19 ของแร็พเบอร์รี่เชื่อมต่อกับฐานโดยใช้ความต้านทาน 270Ω และตัวปล่อยจะเชื่อมต่อกับขั้วที่เป็นกลางของทรานซิสเตอร์ หม้อแปลง 12V พร้อมกับเสาดินหนึ่งของราสเบอร์รี่ ทรานซิสเตอร์จะปล่อยให้กระแสไหลระหว่างตัวสะสมและตัวปล่อยตราบใดที่ฐานถูกกระตุ้นด้วยแรงดันไฟฟ้าที่เพียงพอ ต่อมาเราจะตั้งโปรแกรม rapberry เพื่อให้ตามคำสั่งบางอย่างที่พอร์ต 19 จะปล่อย 3.3 โวลต์เพียงพอสำหรับวงจรเพื่อดำเนินการต่อและเปิดใช้งานมอเตอร์
สำหรับหน้าจอ LCD อีกส่วนหนึ่งของโปรโตบาร์ดถูกใช้ในวงจรอื่นที่คุณเชื่อมต่อโพเทนชิออมิเตอร์ 10KΩ ซึ่งปฏิเสธคอนทราสต์ของข้อความที่ปรากฏบน LCD ดังนั้นหากไม่มีสิ่งใดปรากฏบนหน้าจอ อาจเป็นเพราะโพเทนชิออมิเตอร์นั้นสมบูรณ์ ปิด; ในกรณีของฉัน ฉันปล่อยให้มันเปิดไว้จนสุดเพื่อให้มองเห็นข้อความได้ดีขึ้น ในที่สุดการเชื่อมต่อในเขียงหั่นขนมจะเป็นดังนี้
ขั้นตอนที่ 3: การกำหนดค่า Raspberry Pi
อย่างแรกเลย สิ่งสำคัญคือต้องสร้าง Telegram Bot ซึ่งระบบจะได้รับการจัดการ คุณจะต้องมีคีย์เพื่อแก้ไขสคริปต์ python ที่แนบมา โปรดอ่านขั้นตอนในเอกสารโทรเลข:
core.telegram.org/bots#3-how-do-i-create-a-bot
ในการกำหนดค่า rapberry ให้ใช้ Rapbian รุ่น Lite (เราไม่ต้องการอินเทอร์เฟซกราฟิก) และใช้การกำหนดค่าพื้นฐานที่แสดง raspbian เมื่อติดตั้งหรือใช้คำสั่ง raspi-config: ขยายพื้นที่เป็น 100% และเปิดใช้งาน SSH แต่โดยเฉพาะอย่างยิ่งสิ่งที่สำคัญที่สุดคือการเปลี่ยนรหัสผ่านและชื่อผู้ใช้เป็นผู้ใช้ pi ที่มาโดยค่าเริ่มต้น (มิฉะนั้น อย่างที่เกิดขึ้นกับฉัน พวกเขาสามารถถูกโจมตีโดยพอร์ต 22 หากมี IP สาธารณะที่ส่งถึงราสเบอร์รี่). นอกเหนือจากนั้นการกำหนดค่าเพื่อเชื่อมต่อกับเครือข่าย WiFi ของฉันโดยอัตโนมัติ (สมมติว่าเครือข่ายของฉันเรียกว่า "BlogSoriano" และรหัสผ่านของฉันคือ "$ecure123!") เราสร้างและบันทึกคีย์ในไฟล์การเชื่อมต่อไร้สายด้วยคำสั่งต่อไปนี้:
sudo wpa_passphrase "BlogSoriano" "$ecure123!" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf > /dev/null
สิ่งต่อไปคือการอัปเดตและติดตั้งระบบการติดตั้ง python "pip" ดังนั้นเราจะเข้าสู่ระบบในฐานะ root อัปเดตและติดตั้งแพ็คเกจที่จำเป็น:
sudo -i apt-get update apt-get ติดตั้ง build-essential python-dev python-smbus python-pip
ด้วยสิ่งนี้ เราสามารถเข้าถึงไลบรารีคลาส python ได้แล้ว สำหรับสคริปต์ที่เราจะใช้งาน เราจำเป็นต้องติดตั้งสิ่งต่อไปนี้:
pip ติดตั้ง RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces เทเลพอตไร้สาย cv2
เมื่อการติดตั้งการพึ่งพาเสร็จสิ้น เราจะใช้สคริปต์ที่แนบมากับขั้นตอนนี้ ฉันบันทึกไว้ในเส้นทาง /opt/petfeeder.py และสามารถสร้างไฟล์ได้โดยใช้คำสั่ง nano /opt/petfeeder.py และภายในไฟล์นี้ เราวางโค้ด หรือหากคุณมีประสบการณ์การใช้ Linux มากกว่านี้ คุณสามารถดาวน์โหลด wget ได้โดยตรง ในสคริปต์ จำเป็นต้องแก้ไขตัวแปร BOTKEY (ในบรรทัดที่ 36) และ SYSPASSWORD (ในบรรทัดที่ 23)
ฉันชี้แจงว่าฉันไม่ได้เขียนรหัสนี้เนื่องจากฉันไม่เคยตั้งโปรแกรมใน Python ฉันเพียงแก้ไขให้ทำงานกับไลบรารีใหม่และกับหน้าจอ LCD ขนาด 20x4 และใช้โทรเลขบอท
เมื่อเรามีสคริปต์แล้ว เราต้องเปลี่ยนค่าของตัวแปรด้วยคีย์สำหรับบอท สำหรับสิ่งนี้ จำเป็นต้องสร้าง Telegram Bot ใหม่ โดยจะเป็นการบันทึกไฟล์และออกเท่านั้น (ด้วย Ctrl + หรือบันทึกและ ctrl + x ออกจากตัวแก้ไข nano) เราแค่ต้องพิสูจน์การรีสตาร์ท สคริปต์เองช่วยบันทึกครั้งสุดท้ายที่ระบบไฟฟ้าถูกเปิดใช้งาน ดังนั้นเราจึงต้องทำให้สคริปต์ทำงานทุกครั้งที่ระบบปฏิบัติการเริ่มทำงาน ด้วยเหตุนี้ ฉันจึงพบวิธีแก้ปัญหาเฉพาะด้วยโปรแกรมที่เรียกว่า Supervisor ซึ่งติดตั้งจากที่เก็บ Debian:
หัวหน้างานติดตั้ง apt-get
และเมื่อติดตั้งแล้ว เราต้องสร้างไฟล์การกำหนดค่าใน /etc/supervisor/conf.d/petfeeder.conf เท่านั้น เช่นในกรณีก่อนหน้านี้ เราสามารถสร้างและบันทึกด้วย nano ไฟล์นี้จะมีดังต่อไปนี้:
[โปรแกรม:petfeederd]ไดเร็กทอรี=/opt command=python petfeeder.py autostart=true autorestart=true
เมื่อบันทึกไฟล์แล้ว เราก็สามารถใช้คำสั่ง Supervisorctl [start | หยุด | restart] petfeederd ในกรณีนี้ ยังไม่ได้เริ่มบริการ เราดำเนินการด้วยการเริ่ม:
Supervisorctl start petfeederd
ขั้นตอนที่ 4: พร้อมที่จะทดสอบ
และด้วยเหตุนี้ระบบจึงควรทำงาน หน้าจอ LCD ควรแสดงข้อมูลเกี่ยวกับเวลาที่ควรจะเป็นฟีดถัดไป หรือหากพร้อมที่จะป้อน ฉันควรพูดอย่างนั้น คุณต้องแสดงชื่อเครือข่ายไร้สายที่คุณเชื่อมต่อและที่อยู่ IP ที่ใช้ในกรณีที่เราต้องเชื่อมต่อผ่าน SSH ฉันแชร์วิดีโอเล็ก ๆ ที่ฉันทำ ฉันขอโทษสำหรับคุณภาพของมัน ฉันไม่ค่อยเก่งเรื่อง vlogs นี้
คุณควรจะสามารถค้นหาบอทของคุณบน Telegram และส่งหนึ่งในคำสั่งถัดไปหลังจากที่คุณ /อนุญาตการแชทของคุณ:
/feed: เริ่มกระบวนการให้อาหารตราบเท่าที่ผ่านช่วงเวลาที่กำหนดพารามิเตอร์แล้ว
/ when: ส่งคืนข้อมูลเกี่ยวกับการป้อนครั้งสุดท้ายเมื่อไรและรูปภาพของจานอาหาร
/photo: กลับรูปภาพของจานอาหาร.
/restart: เริ่มระบบใหม่ ตั้งค่าตัวแปรของฟีดล่าสุดเป็น 0 เพื่อให้ป้อนได้ทันที
/status มันแจ้งเกี่ยวกับสถานะการเชื่อมต่ออินเทอร์เน็ต: SSID ของ Wireless ที่เชื่อมต่อและที่อยู่ IP ที่ระบบมีภายในเครือข่าย
แนะนำ:
ติดตาม: ศูนย์สื่อขั้นสูงพร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): 3 ขั้นตอน
ติดตาม: Advanced Media Center พร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): บทความนี้เป็นบทความต่อจากบทความก่อนหน้าของฉันที่ประสบความสำเร็จค่อนข้างมากเกี่ยวกับการสร้างศูนย์สื่ออเนกประสงค์ โดยอ้างอิงจาก Raspberry PI ที่ได้รับความนิยมมากในตอนแรก แต่ ในภายหลัง เนื่องจากไม่มีเอาต์พุตที่สอดคล้องกับ HEVC, H.265 และ HDMI 2.2 จึงมีสวิตช์
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)
RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร
การใช้ Motion Sensor กับ RaspberryPi และ Telegram Bot: 4 ขั้นตอน
การใช้ Motion Sensor กับ RaspberryPi และ Telegram Bot: สวัสดีทุกคน ในโพสต์นี้ เราจะใช้ Raspberry Pi Telegram Bot พร้อมเซ็นเซอร์ PIR (การเคลื่อนไหว)
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): 25 ขั้นตอน (พร้อมรูปภาพ)
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): นี่คือบทแนะนำเกี่ยวกับวิธีการสร้าง Quadcopter โดยใช้มอเตอร์ NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS & วิทยุ 3DR ฉันพยายามอธิบายแต่ละขั้นตอนด้วยรูปภาพจำนวนหนึ่ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดตอบกลับ