Inhaltsverzeichnis:
- Schritt 1: Scroll-Bot-Baugruppe
- Schritt 2: Pakete und Codebase installieren
- Schritt 3: Slack-Instanz konfigurieren
- Schritt 4: Erstellen Sie einen Slack-Channel und laden Sie Ihren Roboter zum Channel ein
- Schritt 5: SlackPiBot-Quellcode herunterladen und konfigurieren
- Schritt 6: Konfigurieren Sie Crontabs für den automatischen Start beim Booten:
- Schritt 7: Optional: Fügen Sie einen USB-Lautsprecherausgang hinzu
- Schritt 8: Optional: Fügen Sie dem Roboter kabelgebundene Tasten hinzu, um Nachrichten zu löschen
- Schritt 9: Alles zusammenziehen und Ausgabe an den Pi. senden
- Schritt 10: Optional: IFTT-Integration
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Dieses Projekt kombiniert einen Raspberry Pi mit einem Pimoroni Scroll Bot-Kit (mit Schaltflächen modifiziert), Slack und IFTT für visuelle und akustische Benachrichtigungen, wenn YouTube-Videos in einem Abonnement veröffentlicht werden!
Die Tastenmodifikationen am Kit sind optional, ebenso wie der Lautsprecher, um die Ankunft eines neuen Videos anzukündigen.
Sie können dies auch verwenden, um eine beliebige Nachricht durch Slack an den Bot zu senden, indem Sie der Nachricht "bot" voranstellen, z. B. "bot hallo world". "bot clear" löscht den Bildschirm.
Schritt 1: Scroll-Bot-Baugruppe
Befolgen Sie die Anweisungen zum Zusammenbau des Pimoroni Scroll Bot:
learn.pimoroni.com/tutorial/sandyj/assembly…
Schritt 2: Pakete und Codebase installieren
Audiopakete installieren:
sudo apt-get update & sudo apt-get upgrade -y
sudo apt-get install mpg123
Python-Pakete installieren:
pip install flasche
pip install psutil pip install slackclient
Folgen Sie dem Tutorial bei Pimoroni's für Erste Schritte mit Scroll Hat:
learn.pimoroni.com/tutorial/sandyj/getting…
Dazu gehört das Herunterladen des Beispielquellcodes und der Ressourcen:
Locken https://get.pimoroni.com/scrollphathd | bash
Da der Bildschirm im Roboterbausatz verkehrt herum montiert ist, müssen Sie den Code auskommentieren, um den Bildschirm um 180 zu drehen:
$ sed -i 's/#scrollphathd.rotate(degrees=180)/scrollphathd.rotate(degrees=180)/g' /home/pi/Pimoroni/scrollphathd/examples/web-api.py
Schritt 3: Slack-Instanz konfigurieren
Damit das Skript mit Slack kommunizieren kann, benötigst du einen Bot-API-Schlüssel.
Melden Sie sich zunächst bei Ihrer Slack-Team-Webseite (https://my.slack.com/services/new/bot) an, wählen Sie einen Benutzernamen für Ihren Bot und kopieren Sie dann das bereitgestellte API-Token.
Schritt 4: Erstellen Sie einen Slack-Channel und laden Sie Ihren Roboter zum Channel ein
Sie können den allgemeinen Slack-Channel verwenden oder, wenn Sie es vorziehen, einen separaten Slack-Channel erstellen.
In meinem Fall habe ich #robot-claire-control verwendet
Sie müssen Ihren Roboter in den Kanal einladen, sonst werden die gesendeten Nachrichten nicht angezeigt.
Schritt 5: SlackPiBot-Quellcode herunterladen und konfigurieren
Laden Sie den slackPiBot-Quellcode von git herunter:
git-Klon
Aktualisieren Sie Zeile 29 mit Ihrem API-Schlüssel:
slack_client = SlackClient("xoxb-IHRE-API-SCHLÜSSEL-HERE")
Aktualisieren Sie Zeile 34 mit Ihrem Roboternamen:
if user.get('name') == "Roboter-Claire":
Schritt 6: Konfigurieren Sie Crontabs für den automatischen Start beim Booten:
Crontabs so einrichten, dass sie beim Booten automatisch gestartet werden:
crontab -e
Fügen Sie am unteren Rand Ihrer Crontab Folgendes hinzu:
@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
Schritt 7: Optional: Fügen Sie einen USB-Lautsprecherausgang hinzu
Für dieses Projekt verwende ich eine USB-Freisprecheinrichtung von US Robotics - erhältlich bei Amazon oder ebay.
Wenn Sie etwas Ähnliches verwenden, müssen Sie das Standardsystem-Soundgerät ändern, indem Sie die alsa-Konfiguration bearbeiten (/usr/share/alsa/alsa.conf). Ändern Sie die folgenden Zeilen:
defaults.ctl.card 1defaults.pcm.card 1
1 ist der Index Ihres Geräts. Um die Geräte-ID Ihres USB-Geräts zu finden, führen Sie aplay -l aus und suchen Sie nach der Karten-ID.
Schritt 8: Optional: Fügen Sie dem Roboter kabelgebundene Tasten hinzu, um Nachrichten zu löschen
Dieser Schritt ist optional, wird jedoch dringend empfohlen, um Meldungen auf dem Bildschirm zu löschen.
Ich habe meinem Roboter zwei Drucktasten hinzugefügt, aber in diesem Projekt verwende ich nur GPIO17.
Das Skript check_button.py, das beim Booten ausgeführt wird, fragt den GPIO17 alle paar Millisekunden ab und sendet, wenn es gedrückt wird, einen HTTP-POST an das Beispielbildschirmskript, um den Bildschirm zu löschen.
Schritt 9: Alles zusammenziehen und Ausgabe an den Pi. senden
Es gibt 4 Skripte, die für dieses Projekt zusammenarbeiten:
/home/pi/Pimoroni/scrollphathd/examples/web-api.py/home/pi/slackPiBot/check_button.py/home/pi/slackPiBot/forever.py /home/pi/slackPiBot/slackPiBot.py
Das Web-API-Skript wird von Pimoroni bereitgestellt und ist eine einfache Webanwendung zur Steuerung des Bildschirms mit POST-Befehlen.
Das Python-Skript check_button fragt die GPIO-Pins ab und sendet, wenn die Schaltfläche gedrückt wird, einen HTTP-POST an das Skript web-api.py.
Das forever.py-Skript startet das slackPiBot.py-Skript, um sicherzustellen, dass das Skript neu gestartet wird, wenn es nicht erfasste Fehler gibt oder die Verbindung zu Slack getrennt wird, um zu vermeiden, dass Nachrichten verloren gehen.
Das Skript slackPiBot.py stellt eine Verbindung zu slack her und überwacht den Kanal auf Nachrichten, die mit "bot" beginnen, oder Posts von IFTT. Bei einer Übereinstimmung wird ein HTTP POST an das Skript web-api.py gesendet und auf dem Bildschirm angezeigt.
Schritt 10: Optional: IFTT-Integration
Dieses Projekt wurde entwickelt, um meine Kinder auf Videos aufmerksam zu machen, die von Leuten gepostet wurden, denen sie auf YouTube folgen, da sie zu jung sind, um ein eigenes iPhone oder iPad zu haben. Ich habe dies erreicht, indem ich IFTT-Rezepte erstellt habe, die eine Benachrichtigung an den Slack-Kontrollkanal senden, sobald ein Video gepostet wurde.
Das Instructables-Wiki macht dies in einem Schritt kompliziert, aber die obigen Screenshots zeigen das Endergebnis.