Raspberry Pi hat immer Spaß gemacht und es war einfach, Projekte zu erstellen. Die leistungsstarke ARM-Architektur und das Open-Source-Linux-basierte Betriebssystem haben uns sehr dabei geholfen, unsere Projekte in kürzester Zeit online zu stellen. In diesem Tutorial lernen wir eine weitere interessante Möglichkeit, Daten (Dateien / Fotos / Videos / Audios / Text) zwischen Raspberry Pi und unserem Mobiltelefon über eine beliebte Chat-Anwendung namens Telegram auszutauschen.
Für diejenigen, die neu in Telegram sind, ist es eine Chat-basierte Anwendung, die im Play Store für Android (auch für Iphone und Windows verfügbar) verfügbar ist und Whatsapp sehr ähnlich ist. Es hat über 100 Millionen Downloads (wie am 5-10-2017) im Play Store und die Leute behaupten, es sei schneller und funktionaler als WhatsApp (Daumen drücken). Eine Besonderheit dieser Anwendung ist, dass sie Bots unterstützen. Dies bedeutet, dass diese Smartphone-Anwendung nicht nur von Menschen, sondern auch von Maschinen verwendet werden kann. In unserem Fall ist die Maschine Raspberry Pi. Sobald Sie Raspberry Pi darin geschult haben, wie man als Bot agiert, kann jeder (wenn Sie ihn öffentlich machen) mit Ihrem Raspberry Pi chatten, wie mit einer normalen Person chatten, und sogar Fotos, Bilder, Dokumente und Audiodateien teilen. Sie können es sogar zu Ihrem persönlichen Assistenten ausbilden, klingt cool, oder? Lass uns lernen, wie man eine bautHimbeer-Pi-Telegramm-Bot.
Erforderliche Materialien:
- Jeder Raspberry Pi, der mit dem Internet verbunden ist
- Ein Mobiltelefon, auf dem die Telegrammanwendung ausgeführt wird.
An diesem Projekt ist nicht viel Hardware beteiligt. Entspannen Sie sich also mit Ihrem Pi auf Ihrem Stuhl und befolgen Sie die folgenden Schritte. Wenn Sie Raspberry Pi noch nicht kennen, lesen Sie unseren Raspberry Pi-Einführungsartikel und andere Raspberry Pi-Tutorials.
Schritt 1: Installieren von Telegram auf Ihrem Handy
Der erste Schritt wäre die Installation von Telegram auf Ihrem Handy. Telegramm ist für Android, IOS und sogar für Windows verfügbar. Laden Sie einfach Ihre Telegrammanwendung herunter. Wie bei allen Anwendungen gibt es ein kleines Anmeldeverfahren, um die Verwendung von Telegramm zu starten. Fahren Sie damit fort, bis Sie Ihren Startbildschirm erreichen.
Schritt 2: Sprich mit Bot Vater
Der nächste Schritt wäre, den Bot-Vater zu bitten, uns einen neuen Bot zu erstellen. In der oberen rechten Ecke des Startbildschirms befindet sich ein Suchsymbol. Klicken Sie darauf, um nach dem Namen „Botfather“ zu suchen. Botfather ist ein Bot für sich. Er führt Sie dazu, einen neuen Bot für Sie zu erstellen. Klicken Sie auf Start und wählen Sie / newbot aus (siehe Abbildung unten). Jetzt fragt der Bot nach einigen Details wie dem Namen Ihres Bots und dem Benutzernamen des Bots. Füllen Sie diese Details aus und merken Sie sich den Benutzernamen, den wir in Zukunft benötigen werden.
Schritt 3: Holen Sie sich Ihr Token für den Zugriff
Ich habe bot als Circuitdigest und den Benutzernamen als CircuitdigestBot benannt. Nach diesem Vorgang gibt Ihnen der Botvater ein Token für den Zugriff. Dies ist wie das Passwort für Ihren Bot. Mit diesem Token-Schlüssel können Benutzer die Programmierung Ihres Bots steuern. Bewahren Sie es also sicher auf und teilen Sie es mit niemandem. Sobald Sie diesen Token-Schlüssel erhalten haben, ist es Zeit, mit Raspberry Pi fortzufahren.
Schritt 4: Telepot zur Installation von Telegram auf Raspberry Pi
Die Verwendung von Telegram Bot in Raspberry Pi wird durch das Python-Paket Telepot ermöglicht. Wir müssen dieses Paket auf Raspberry Pi installieren, indem wir die folgenden Befehle auf dem Lx-Terminal verwenden
sudo apt-get install python-pip sudo pip install telepot
Sobald Telepot in Raspberry importiert wurde, können wir dieses Paket in unserem Python-Programm verwenden, um mit unserem Telegramm-Bot zu kommunizieren.
Schritt 5: Programmieren Ihres Raspberry Pi
Der Bot, den wir gerade in Telegram erstellt haben, ist wie ein Baby. Er kann nichts alleine machen, wenn wir ihm nicht beibringen, was und wie man Dinge macht. Dieser Unterricht kann über Raspberry Pi und Python-Skript erfolgen. In diesem Tutorial habe ich den Bot so programmiert, dass er einige grundlegende Aktionen wie das Senden einer Nachricht, eines Fotos, eines Audios und eines Dokuments ausführt. Wenn Sie also einen bestimmten Befehl sagen, reagiert dieser mit einer bestimmten Aktion. Der Befehl und die Aktion sind in der folgenden Tabelle aufgeführt
Befehl vom Telegramm |
Antwort von Raspberry Pi |
/Hallo |
Antwortet mit einer Zeichenfolge „Hi! CircuitDigest ” |
/Zeit |
Antwortet mit der aktuellen Uhrzeit |
/Logo |
Antwortet mit einem Bild (Logo von CircuitDigest) |
/Datei |
Antwortet mit einer Datei (die das aktuelle Programm enthält) |
/Audio |
Antwortet mit einer Demo-Audiodatei |
Das vollständige Programm zum Ausführen der oben genannten Aktionen finden Sie unten auf dieser Seite. Aber unten habe ich die wichtigen Ausschnitte im Programm erklärt, damit Sie besser verstehen, wie das Programm funktioniert.
Der erste Schritt besteht darin, alle Bibliotheken zu importieren. Hier benötigen wir natürlich die Teleport-Bibliothek, um den Telegramm-Bot verwenden zu können. Wir verwenden auch die zeitgesteuerte Bibliothek, um die aktuelle Zeit für Raspberry pi zu lesen. Dann erstellen wir jetzt ein Objekt, in dem der Wert gespeichert ist.
import time, datetime import telepot aus telepot.loop import MessageLoop now = datetime.datetime.now ()
Der nächste Schritt besteht darin , eine Funktion zum Ausführen von Aktionen basierend auf eingehenden Befehlen von der Telegramm-App auf Mobilgeräten zu erstellen. Hier heißt die Funktion action. In dieser Funktion wird der Bot zum Leben erweckt. Unser Bot kann kein eigenes Gespräch initiieren, er kann nur antworten, wenn wir etwas fragen. Jedes Mal, wenn wir etwas fragen, wird eine Chat-ID angezeigt. Diese Chat-ID ähnelt einer Adresse. Nur mit dieser Chat-ID kann ein Bot uns antworten. Der erste Schritt besteht also darin, die Chat-ID und die Nachricht zu lesen, die sie uns zu sagen versucht. Wir drucken die empfangene Nachricht auch zum Debuggen.
def action (msg): chat_id = msg command = msg print 'Erhalten:% s'% Befehl
Weiter unten in der Funktion vergleichen wir diesen Befehl mit einem vordefinierten Text und führen bestimmte Aufgaben aus. Dieser erste Befehl ist / hi, auf den wir antworten: „Hi! CircuitDigest ”
if Befehl == '/ hi': telegram_bot.sendMessage (chat_id, str ("Hi! CircuitDigest"))
Der nächste Befehl ist / time , auf den wir die aktuelle Zeit beantworten. Wir haben jetzt bereits Uhrzeit und Datum. Teilen Sie diese einfach nach Stunde und Minute auf und fügen Sie sie mithilfe der str- Funktion hinzu.
elif Befehl == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Der nächste Befehl ist / logo , an den der Bot ein Bild von einer URL abruft und an uns sendet. Ein Bild kann entweder von einer URL oder von der Festplatte gesendet werden. Hier habe ich gerade die URL verwendet, die das Logo von CircuitDigest anzeigt.
elif command == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Der nächste Befehl ist / file , der die Datei mit dem Namen Aisha.py von der Festplatte sendet . Sie können jede gewünschte Datei senden, indem Sie die Adresse des Verzeichnisses ändern
elif command == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Der letzte Befehl ist / audio . Dies kann jede MP3-Datei von der Festplatte senden. Ich habe gerade eine Audiodatei namens test.mp3 als Demo hier verwendet
elif command == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Okay, jetzt kommt der wichtigste Schritt. Hier geben wir unserem Telegramm-Bot Zugriff auf das Python-Skript. Hier benennen wir bot als telegram_bot und weisen ihm die Token-Adresse zu, die unser Botvater in Schritt 3 angegeben hat. In der folgenden Zeile habe ich aus Datenschutzgründen die letzten Ziffern meines Tokens entfernt. Wir verwenden auch den Druck, mit dem ich die Details des Bots auf dem Shell-Bildschirm anzeigen kann. Dadurch können wir feststellen, dass die Dinge funktionieren.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Ich hoffe, Sie haben verstanden, wie das Programm funktioniert. Lassen Sie uns nun mit dem nächsten Schritt fortfahren.
Schritt 6: Ausführen des Programms in Ihrem Raspberry Pi
Wie bereits erwähnt, finden Sie das vollständige Programm am Ende dieser Seite. Sie können es auch hier herunterladen. Stellen Sie nach dem Öffnen des Codes sicher, dass Sie die Token-Adresse des Programms in Ihre Token-Adresse ändern.
Führen Sie nun den Python-Code aus und Sie sollten die Details Ihres Bots wie folgt im Shell-Fenster sehen
Hier ist mein Bot-Benutzername CircuitdigestBot. Wenn Sie hier Ihren Bots-Namen erhalten, bedeutet dies, dass alles gut läuft.
Sobald Sie "In Betrieb " sehen, bedeutet dies, dass Ihr Bot einsatzbereit ist und nun auf Ihre Befehle antworten kann.
Schritt 7: Genießen Sie die Ausgabe
Jetzt müssen Sie nur noch überprüfen, wie gut Ihr Bot auf Ihr Programm reagiert. Suchen Sie nach Ihrem Bot-Namen, in meinem Fall ist es "CircuitDigestBot". Suchen Sie nach Benutzername und nicht oder Bot-Name. Ihr Benutzername sollte mit bot enden.
Sobald Sie Ihren Bot geöffnet haben, klicken Sie auf Start und geben Sie Befehle wie / hi, / time, / file, / logo oder / audio ein. Sie sollten entsprechend geantwortet werden.
Mit dem Shell-Skript können Sie sehen, auf was Ihr Skript gerade reagiert. Die vollständige Arbeit finden Sie im Video am Ende dieser Seite.
Schritt 8: Gib mir eine High Five
Ich hoffe, Sie haben das Tutorial verstanden und können nun diesen Raspberry Pi-Telegramm-Bot erstellen und mit Raspberry Pi über die Telegramm-App kommunizieren. Ach! Wenn Sie irgendwelche Probleme haben, lassen Sie es mich über den Kommentarbereich wissen und ich werde versuchen, mich bei Ihnen zu melden. Lassen Sie mich auch wissen, wie Ihnen dieses Projekt gefallen hat oder was ich in kommenden Projekten damit bauen soll.
Auch in unserem nächsten Tutorial. Wir werden dies cooler aussehen lassen, indem wir die Art und Weise ändern, in der wir Befehle senden, und etwas, das mehr mit der Hardware auf Raspberry Pi zu tun hat.