สารบัญ:

Raspberry Pi Slack Scroll Bot!: 10 ขั้นตอน
Raspberry Pi Slack Scroll Bot!: 10 ขั้นตอน

วีดีโอ: Raspberry Pi Slack Scroll Bot!: 10 ขั้นตอน

วีดีโอ: Raspberry Pi Slack Scroll Bot!: 10 ขั้นตอน
วีดีโอ: 10 RetroPie Setup Tips and Tutorial for the Raspberry Pi 4 2024, พฤศจิกายน
Anonim
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!

โปรเจ็กต์นี้รวม Raspberry Pi เข้ากับชุด Pimoroni Scroll Bot (แก้ไขด้วยปุ่ม), Slack และ IFTT สำหรับการแจ้งเตือนด้วยภาพและเสียงเมื่อวิดีโอ youtube ถูกโพสต์ในการสมัครรับข้อมูล!

การปรับเปลี่ยนปุ่มในชุดเป็นตัวเลือกเสริม เช่นเดียวกับผู้พูดเพื่อประกาศการมาถึงของวิดีโอใหม่

คุณยังสามารถใช้ตัวเลือกนี้เพื่อส่งข้อความไปยังบอทผ่าน slack โดยใส่ "bot" ไว้ข้างหน้าข้อความ เช่น "bot hello world" "บอทเคลียร์" จะล้างหน้าจอ

ขั้นตอนที่ 1: การประกอบสโครลบอท

ปฏิบัติตามคำแนะนำในการประกอบ Pimoroni Scroll Bot:

learn.pimoroni.com/tutorial/sandyj/assembl…

ขั้นตอนที่ 2: ติดตั้งแพ็คเกจและ Codebase

ติดตั้งแพ็คเกจเสียง:

sudo apt-get update & sudo apt-get upgrade -y

sudo apt-get ติดตั้ง mpg123

ติดตั้งแพ็คเกจหลาม:

pip ติดตั้ง flask

pip ติดตั้ง psutil pip ติดตั้ง slackclient

ทำตามบทช่วยสอนที่ Pimoroni's สำหรับการเริ่มต้นใช้งาน Scroll Hat:

learn.pimoroni.com/tutorial/sandyj/getting…

ซึ่งรวมถึงการดาวน์โหลดซอร์สโค้ดตัวอย่างและทรัพยากร:

curl https://get.pimoroni.com/scrollphathd | ทุบตี

เนื่องจากหน้าจอถูกติดตั้งกลับหัวในชุดหุ่นยนต์ คุณต้องยกเลิกการใส่รหัสเพื่อหมุนหน้าจอ 180:

$ sed -i 's/#scrollphathd.rotate(degrees=180)/scrollphathd.rotate(degrees=180)/g' /home/pi/Pimoroni/scrollphathd/examples/web-api.py

ขั้นตอนที่ 3: การกำหนดค่าอินสแตนซ์ Slack

การกำหนดค่าอินสแตนซ์ Slack
การกำหนดค่าอินสแตนซ์ Slack
การกำหนดค่าอินสแตนซ์ Slack
การกำหนดค่าอินสแตนซ์ Slack

เพื่อให้สคริปต์สื่อสารกับ Slack คุณจะต้องมีคีย์ API ของบอท

เริ่มต้นด้วยการเข้าสู่หน้าเว็บทีม Slack ของคุณ (https://my.slack.com/services/new/bot) และเลือกชื่อผู้ใช้สำหรับบอทของคุณ จากนั้นคัดลอกโทเค็น API ที่ให้มา

ขั้นตอนที่ 4: สร้าง Slack Channel และเชิญหุ่นยนต์ของคุณไปที่ Channel

สร้าง Slack Channel และเชิญหุ่นยนต์ของคุณเข้าสู่ Channel
สร้าง Slack Channel และเชิญหุ่นยนต์ของคุณเข้าสู่ Channel

คุณสามารถใช้ช่องสัญญาณหย่อนทั่วไป หรือหากต้องการ คุณสามารถสร้างช่องสัญญาณหย่อนแยกต่างหากได้

ในกรณีของฉัน ฉันใช้ #robot-claire-control

คุณต้องเชิญหุ่นยนต์ของคุณเข้าสู่ช่อง มิฉะนั้นจะไม่เห็นข้อความที่ส่ง

ขั้นตอนที่ 5: ดาวน์โหลดซอร์สโค้ด SlackPiBot & กำหนดค่า

ดาวน์โหลดซอร์สโค้ด slackPiBot จาก git:

โคลน git

อัปเดตบรรทัดที่ 29 ด้วยคีย์ API ของคุณ:

slack_client = SlackClient("xoxb-YOUR-API-KEY-HERE")

อัปเดตบรรทัดที่ 34 ด้วยชื่อหุ่นยนต์ของคุณ:

ถ้า user.get('name') == "robot-claire":

ขั้นตอนที่ 6: กำหนดค่า Crontabs ให้เริ่มทำงานโดยอัตโนมัติเมื่อบู๊ต:

การตั้งค่า crontabs ให้เริ่มทำงานโดยอัตโนมัติเมื่อบู๊ต:

crontab -e

เพิ่มสิ่งต่อไปนี้ที่ด้านล่างของ crontab ของคุณ:

@reboot python /home/pi/Pimoroni/scrollphathd/examples/web-api.py@reboot python /home/pi/slackPiBot/check_button.py @reboot python /home/pi/slackPiBot/forever.py /home/pi/ slackPiBot/slackPiBot.py >> /home/pi/slackPiBot/outputLog.txt 2>&1

ขั้นตอนที่ 7: ตัวเลือกเสริม: เพิ่มเอาต์พุตลำโพง USB

สำหรับโครงการนี้ ฉันใช้สปีกเกอร์โฟน USB จาก US Robotics ซึ่งมีจำหน่ายบน amazon หรือ ebay

หากใช้สิ่งที่คล้ายกัน คุณจะต้องเปลี่ยนอุปกรณ์เสียงเริ่มต้นของระบบโดยแก้ไขการกำหนดค่า alsa (/usr/share/alsa/alsa.conf) เปลี่ยนบรรทัดต่อไปนี้:

defaults.ctl.card 1defaults.pcm.card 1

1 เป็นดัชนีของอุปกรณ์ของคุณ หากต้องการค้นหา ID อุปกรณ์ของอุปกรณ์ USB ของคุณ ให้เรียกใช้ aplay -l และค้นหา ID การ์ด

ขั้นตอนที่ 8: ตัวเลือกเสริม: เพิ่มปุ่มแบบมีสายให้กับ Robot เพื่อล้างข้อความ

ทางเลือก: เพิ่มปุ่มแบบมีสายให้กับ Robot เพื่อล้างข้อความ
ทางเลือก: เพิ่มปุ่มแบบมีสายให้กับ Robot เพื่อล้างข้อความ
ทางเลือก: เพิ่มปุ่มแบบมีสายให้กับ Robot เพื่อล้างข้อความ
ทางเลือก: เพิ่มปุ่มแบบมีสายให้กับ Robot เพื่อล้างข้อความ

ขั้นตอนนี้เป็นทางเลือก แต่ขอแนะนำให้ล้างข้อความบนหน้าจอ

ฉันได้เพิ่มปุ่มกดสองปุ่มให้กับหุ่นยนต์ของฉัน แต่ในโครงการนี้ ฉันใช้ GPIO17 เท่านั้น

สคริปต์ check_button.py ที่ทำงานบนบูตโพล GPIO17 ทุกๆ สองสามมิลลิวินาที และหากกดค้าง จะส่ง HTTP POST ไปยังสคริปต์หน้าจอตัวอย่างเพื่อล้างหน้าจอ

ขั้นตอนที่ 9: ดึงมันทั้งหมดเข้าด้วยกันและส่งผลลัพธ์ไปยัง Pi

มี 4 สคริปต์ที่ทำงานร่วมกันสำหรับโครงการนี้:

/home/pi/Pimoroni/scrollphathd/examples/web-api.py/home/pi/slackPiBot/check_button.py/home/pi/slackPiBot/forever.py /home/pi/slackPiBot/slackPiBot.py

สคริปต์ web-api จัดทำโดย Pimoroni และเป็นเว็บแอปพลิเคชันที่เรียบง่ายในการควบคุมหน้าจอด้วยคำสั่ง POST

สคริปต์หลาม check_button สำรวจพิน GPIO และเมื่อกดปุ่ม จะส่ง HTTP POST ไปยังสคริปต์ web-api.py

สคริปต์ forever.py เริ่มต้นสคริปต์ slackPiBot.py เพื่อให้แน่ใจว่าหากมีข้อผิดพลาดที่ไม่ถูกตรวจจับหรือยกเลิกการเชื่อมต่อจาก slack สคริปต์จะเริ่มต้นใหม่เพื่อหลีกเลี่ยงข้อความที่ขาดหายไป

สคริปต์ slackPiBot.py เชื่อมต่อกับ slack และตรวจสอบช่องสำหรับข้อความที่ขึ้นต้นด้วย "bot" หรือโพสต์จาก IFTT หากมีข้อมูลตรงกัน ระบบจะส่ง HTTP POST ไปยังสคริปต์ web-api.py และแสดงบนหน้าจอ

ขั้นตอนที่ 10: ตัวเลือก: การรวม IFTT

ทางเลือก: การบูรณาการ IFTT
ทางเลือก: การบูรณาการ IFTT
ทางเลือก: การบูรณาการ IFTT
ทางเลือก: การบูรณาการ IFTT
ทางเลือก: การบูรณาการ IFTT
ทางเลือก: การบูรณาการ IFTT

โปรเจ็กต์นี้ออกแบบมาเพื่อเตือนเด็กๆ ของฉันเกี่ยวกับวิดีโอที่โพสต์โดยคนที่พวกเขาติดตามบน youtube เนื่องจากพวกเขายังเด็กเกินไปที่จะมี iPhone หรือ iPad เป็นของตัวเอง ฉันทำได้โดยการสร้างสูตร IFTT ที่ส่งการแจ้งเตือนไปยังช่องควบคุมหย่อนเมื่อโพสต์วิดีโอแล้ว

วิกิที่สอนได้ทำให้สิ่งนี้ดูซับซ้อนในขั้นตอนเดียว แต่ภาพหน้าจอด้านบนแสดงผลลัพธ์สุดท้าย

แนะนำ: