Daftar Isi:

Raspberry Pi Slack Scroll Bot!: 10 Langkah
Raspberry Pi Slack Scroll Bot!: 10 Langkah

Video: Raspberry Pi Slack Scroll Bot!: 10 Langkah

Video: Raspberry Pi Slack Scroll Bot!: 10 Langkah
Video: 10 RetroPie Setup Tips and Tutorial for the Raspberry Pi 4 2024, November
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!

Proyek ini menggabungkan Raspberry Pi dengan kit Pimoroni Scroll Bot (dimodifikasi dengan tombol), Slack, dan IFTT untuk pemberitahuan visual dan suara saat video youtube diposting ke langganan!

Modifikasi tombol pada kit bersifat opsional, begitu juga speaker untuk mengumumkan kedatangan video baru.

Anda juga dapat menggunakan ini untuk mengirim pesan apa pun ke bot melalui slack dengan menambahkan "bot" di depan pesan, seperti "bot hello world". "bot clear" akan menghapus layar.

Langkah 1: Gulir Majelis Bot

Selesaikan instruksi untuk merakit Pimoroni Scroll Bot:

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

Langkah 2: Instal Paket dan Basis Kode

Instal Paket Audio:

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

sudo apt-get install mpg123

Instal paket python:

labu pemasangan pip

pip install psutil pip install slackclient

Ikuti tutorial di Pimoroni's untuk Memulai dengan Scroll Hat:

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

yang mencakup mengunduh contoh kode sumber dan sumber daya:

curl https://get.pimoroni.com/scrollphathd | pesta

Karena layar dipasang terbalik di kit robot, Anda perlu menghapus komentar kode untuk memutar layar 180:

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

Langkah 3: Mengonfigurasi Instans Slack

Mengonfigurasi Instans Slack
Mengonfigurasi Instans Slack
Mengonfigurasi Instans Slack
Mengonfigurasi Instans Slack

Agar skrip dapat berkomunikasi dengan Slack, Anda memerlukan Kunci API bot.

Mulailah dengan masuk ke halaman web tim Slack Anda (https://my.slack.com/services/new/bot) dan pilih nama pengguna untuk bot Anda, lalu salin token API yang disediakan.

Langkah 4: Buat Saluran Slack, dan Undang Robot Anda ke Saluran

Buat Saluran Slack, dan Undang Robot Anda ke Saluran
Buat Saluran Slack, dan Undang Robot Anda ke Saluran

Anda dapat menggunakan saluran slack umum, atau jika mau, Anda dapat membuat saluran slack terpisah.

Dalam kasus saya, saya menggunakan #robot-claire-control

Anda harus mengundang robot Anda ke dalam saluran, atau ia tidak akan melihat pesan yang dikirim.

Langkah 5: Unduh Kode Sumber & Konfigurasi SlackPiBot

Unduh kode sumber slackPiBot dari git:

git clone

Perbarui baris 29 dengan Kunci API Anda:

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

Perbarui baris 34 dengan nama robot Anda:

if user.get('name') == "robot-claire":

Langkah 6: Konfigurasikan Crontab untuk Memulai Secara Otomatis saat Boot:

Menyiapkan crontab untuk memulai secara otomatis saat boot:

crontab -e

Tambahkan yang berikut ini ke bagian bawah crontab Anda:

@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

Langkah 7: Opsional: Tambahkan Output Speaker USB

Untuk proyek ini, saya menggunakan speakerphone USB dari US Robotics - tersedia di amazon atau ebay.

Jika menggunakan sesuatu yang serupa, Anda perlu mengubah perangkat suara sistem default dengan mengedit konfigurasi alsa (/usr/share/alsa/alsa.conf). Ubah baris berikut:

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

1 menjadi indeks perangkat Anda. Untuk menemukan ID perangkat perangkat USB Anda, jalankan aplay -l dan cari ID kartu.

Langkah 8: Opsional: Tambahkan Tombol Berkabel ke Robot untuk Menghapus Pesan

Opsional: Tambahkan Tombol Berkabel ke Robot untuk Menghapus Pesan
Opsional: Tambahkan Tombol Berkabel ke Robot untuk Menghapus Pesan
Opsional: Tambahkan Tombol Berkabel ke Robot untuk Menghapus Pesan
Opsional: Tambahkan Tombol Berkabel ke Robot untuk Menghapus Pesan

Langkah ini opsional tetapi sangat disarankan untuk menghapus pesan di layar.

Saya telah menambahkan dua tombol tekan ke robot saya, tetapi dalam proyek ini saya hanya menggunakan GPIO17.

Skrip check_button.py yang berjalan saat boot polling GPIO17 setiap beberapa milidetik dan jika ditekan mengirimkan HTTP POST ke skrip layar sampel untuk menghapus layar.

Langkah 9: Menarik Semuanya Bersama-sama dan Mengirim Output ke Pi

Ada 4 skrip yang bekerja sama untuk proyek ini:

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

Skrip web-api disediakan oleh Pimoroni dan merupakan aplikasi web sederhana untuk mengontrol layar dengan perintah POST.

Skrip python check_button polling pin GPIO dan ketika tombol ditekan mengirimkan HTTP POST ke skrip web-api.py.

Skrip selamanya.py memulai skrip slackPiBot.py untuk memastikan bahwa jika ada kesalahan yang tidak tertangkap atau terputus dari slack, skrip dimulai ulang untuk menghindari kehilangan pesan apa pun.

Skrip slackPiBot.py terhubung ke slack dan memantau saluran untuk pesan yang dimulai dengan "bot" atau posting dari IFTT. Jika ada kecocokan, itu akan mengirim HTTP POST ke skrip web-api.py dan ditampilkan di layar.

Langkah 10: Opsional: Integrasi IFTT

Opsional: Integrasi IFTT
Opsional: Integrasi IFTT
Opsional: Integrasi IFTT
Opsional: Integrasi IFTT
Opsional: Integrasi IFTT
Opsional: Integrasi IFTT

Proyek ini dirancang untuk mengingatkan anak-anak saya tentang video yang diposting oleh orang-orang yang mereka ikuti di youtube, karena mereka terlalu muda untuk memiliki iPhone atau iPad mereka sendiri. Saya menyelesaikan ini dengan membuat resep IFTT yang mengirim pemberitahuan ke saluran kontrol kendur setelah video diposting.

Wiki yang dapat diinstruksikan membuat ini rumit untuk dilihat dalam satu langkah, tetapi tangkapan layar di atas menunjukkan hasil akhirnya.

Direkomendasikan: