Inhaltsverzeichnis:

[IoT] Telegram Bot mit Arduino MKR WiFi 1010 - Gunook
[IoT] Telegram Bot mit Arduino MKR WiFi 1010 - Gunook

Video: [IoT] Telegram Bot mit Arduino MKR WiFi 1010 - Gunook

Video: [IoT] Telegram Bot mit Arduino MKR WiFi 1010 - Gunook
Video: Employee Attendance Monitoring System using Face Recognition 2024, Juli
Anonim
Image
Image
Was du brauchst
Was du brauchst

Dieses Projekt zeigt, wie man Arduino mit den Telegram Bot APIs verbindet. Das Projekt basiert auf dem neuen MKR WiFi 1010 Board, das mit einem ESP32-Modul von U-BLOX ausgestattet ist.

In dieser Phase ist das Projekt nicht mehr als ein Proof of Concept, nur um Ihnen zu zeigen, was Sie damit machen können. Dafür benötigen Sie also nur das Arduino-Board.

Aber was ist ein Telegram-Bot? Nun, Bots sind einfach Telegram-Konten, die von Software betrieben werden – nicht von Menschen – und sie haben oft KI-Funktionen. Sie können alles tun – lehren, spielen, suchen, senden, erinnern, verbinden, in andere Dienste integrieren oder sogar Befehle an das Internet der Dinge weitergeben. (Credits von Telegram:

In unserem Fall übergeben wir Befehle an Arduino, um ein einfaches IoT-Gerät zu erstellen. Es antwortet auf einfache Befehle und schaltet auch die eingebaute LED ein / aus. Ich lasse Ihrer Fantasie freien Lauf… (stellen Sie sich vor, Sie verbinden ein oder mehrere Relais mit den I/O-Pins und schalten zum Beispiel eine Heizung oder die Klimaanlage mit Ihrem Smartphone ein/aus).

Schritt 1: Was Sie brauchen

Was du brauchst
Was du brauchst

Für dieses Projekt benötigen Sie:

  • Arduino MKR WiFi 1010 aus dem Arduino-Shop:
  • Arduino IDE 1.8.5 oder höher:
  • Ein Micro-USB-Kabel zum Anschluss von Arduino an Ihren PC
  • Eine Internetverbindung erfordert die SSID und das Passwort. Es ist besser, wenn Sie Ihren eigenen Heimrouter verwenden, um sicherzustellen, dass er nicht blockiert wird.
  • Telegramm-App auf Ihrem Smartphone installiert, unabhängig von der Marke. Überprüfen Sie hier auch die PC- und Web-Versionen!

Schritt 2: Installation der IDE

Installation der IDE
Installation der IDE
Installation der IDE
Installation der IDE
Installation der IDE
Installation der IDE

Ja, ich weiß, ich weiß… die meisten von Ihnen haben bereits die Arduino IDE auf dem PC installiert, aber diese Instructables ist auch für Anfänger gedacht. Laden Sie also zuerst die Arduino IDE 1.8.5 Ihrer Wahl herunter (Zip-Datei für 'Nicht-Administratoren' oder exe-Datei)

Die Version 1.8.5 wird empfohlen, alte Versionen habe ich nicht getestet und das im Projekt verwendete neue Board konnte überhaupt nicht unterstützt werden.

Jetzt müssen Sie die neuen Boards mit ihren Treibern installieren:

  1. Starten Sie die IDE
  2. Wählen Sie im Menü Tools die Option Boards, und wählen Sie dann oben in der Prozessorliste die Option Boards manager.
  3. Scrollen Sie durch das neue Fenster (siehe Bild), bis Sie die Arduino SAMD-Boards finden, die das neue MKR WiFi 1010 enthalten.
  4. Klicken Sie auf diese Registerkarte oder klicken Sie in der Registerkarte auf Weitere Informationen, wählen Sie die neueste Version aus und installieren Sie sie.
  5. Warten Sie, bis die Installation abgeschlossen ist. Es kümmert sich auch um die Treiberinstallation
  6. Sie benötigen auch eine neue WiFi-Bibliothek für dieses Board: Wählen Sie Sketch, Include Library und Manage Libraries. Suchen Sie nach Wifinina und installieren Sie es wie mit dem obigen Prozessor.

Schließen Sie nun Ihr neues Arduino-Board an und warten Sie, bis Windows die Treiberinstallation abgeschlossen hat.

Im Menü Tools->Board finden Sie die neuen Boards, wählen Sie das MKR WiFi 1010.

Für dieses Projekt wird eine weitere spezielle Bibliothek benötigt, die ESP8266TelegramBot-Bibliothek von Giancarlo Bacchio. Die Bibliothek wurde leicht modifiziert, um mit diesem Board zu arbeiten, sodass sie im Ordner der Skizze enthalten ist.

Wählen Sie den richtigen Com-Port und testen Sie das Board mit dem Befehl Get Board Info.

Glückwunsch, Sie sind mit der IDE fertig!

Schritt 3: Erstellen des Telegramm-Bots

Erstellen des Telegramm-Bots
Erstellen des Telegramm-Bots
Erstellen des Telegramm-Bots
Erstellen des Telegramm-Bots
Erstellen des Telegramm-Bots
Erstellen des Telegramm-Bots

Einen neuen Telegram Bot zu erstellen ist ganz einfach.

Öffnen Sie die Telegram-App und geben Sie in die Suchleiste @BotFather ein und starten Sie einen Chat mit ihm (Bild1). BotFather ist die… Bot-Fabrik. Es hilft Ihnen, einen neuen Bot zu erstellen und seine Einstellungen zu ändern.

Nach dem /start-Befehl sehen Sie die Hilfeliste (image2).

  • Geben Sie /newbot (image3) ein. Geben Sie nun den Namen Ihres Bots ein. Der Name wird in den Kontaktdaten und an anderer Stelle angezeigt.
  • BotFather wird Sie nach einem Benutzernamen fragen. Der Benutzername ist ein Kurzname, der in Erwähnungen und telegram.me-Links verwendet wird. Benutzernamen sind 5-32 Zeichen lang und unterscheiden zwischen Groß- und Kleinschreibung, dürfen jedoch nur lateinische Zeichen, Zahlen und Unterstriche enthalten. Der Benutzername Ihres Bots muss auf „bot“enden, z. „tetris_bot“oder „TetrisBot“.
  • Wenn sowohl der Name als auch der Benutzername gültig sind, erhalten Sie eine lange Zeichenfolge namens TOKEN. Dies ist Ihr persönlicher "Schlüssel", der verwendet wird, um mit Telegram-Servern zu kommunizieren. Kopieren Sie ihn und fügen Sie ihn vorerst in eine Textdatei auf Ihrem PC ein. Wir werden es später im Arduino-Code verwenden. Wenn Sie es verlieren, machen Sie sich keine Sorgen, öffnen Sie einfach den Chat erneut und geben Sie /token ein, um einen neuen zu generieren.

Alle Schritte sind hier beschrieben:

Erweitert (optional)

Öffnen Sie den Chat erneut und geben Sie /help. ein

Klicken Sie auf (oder geben Sie) /setuserpic ein, um ein Bild für Ihren Bot hochzuladen einen Link zu Ihrem Bot, wenn er ihn mit jemandem teilt.

Klicken Sie auf (oder geben Sie) /setdescription ein, um einen Beschreibungsabschnitt für Ihren Bot festzulegen. Personen sehen diese Beschreibung, wenn sie einen Chat mit Ihrem Bot öffnen, in einem Block mit dem Titel "Was kann dieser Bot tun?".

Schritt 4: Ändern, Hochladen und Testen der Skizze

Skizze ändern, hochladen und testen
Skizze ändern, hochladen und testen
Skizze ändern, hochladen und testen
Skizze ändern, hochladen und testen
Skizze ändern, hochladen und testen
Skizze ändern, hochladen und testen

Es ist Zeit, die Software auf das Arduino MKR WiFi 1010 Board hochzuladen.

Laden Sie die angehängten Dateien herunter, aus irgendeinem Grund kann ich keine ZIP-Datei hochladen. Erstellen Sie also einen Ordner mit dem Namen Skizze und kopieren Sie alle 4 Dateien darin. Bitte ändern Sie die Namen nicht, es sei denn, Sie wissen, was Sie tun.

Ändern

Öffnen Sie die Skizze, wir müssen einige Informationen ausfüllen (Bild1): Füllen Sie die arduino_secrets.h mit Ihren WLAN- und Telegrammanmeldeinformationen.

  • Suchen Sie die WLAN-Netzwerkinformationen und geben Sie Ihren Netzwerknamen (SSID) und Ihr Passwort ein.
  • Suchen Sie die Telegramm-Bot-Informationen und geben Sie den von @BotFather bereitgestellten Namen, Benutzernamen und Token ein

Hochladen

Stellen Sie sicher, dass das Board in der ide korrekt ist (image2) und angeschlossen ist, und versuchen Sie dann, den Code zu kompilieren. Wenn die Zusammenstellung gut läuft, laden Sie sie auf das Board hoch, es dauert nur wenige Sekunden.

Bei Problemen auf Tippfehler prüfen und erneut versuchen.

Prüfen

[WICHTIG!] Der Sketch sendet Protokolle an die IDE. Der Prozessor verfügt über einen nativen USB-Port (wie Leonardo-Boards). Nach dem Einschalten wartet der Code, bis der serielle Monitor ausgeführt wird. Lassen Sie es also an den PC angeschlossen und öffnen Sie den seriellen Monitor. Arduino stellt zuerst eine Verbindung zum Internet her und beginnt dann, den Telegrammserver nach neuen Nachrichten abzufragen (image3).

Öffnen Sie nun Telegram auf Ihrem bevorzugten Gerät und geben Sie in das Suchfeld den Namen Ihres Bots ein (nicht den Benutzernamen, der auf 'bot' endet). Öffne einen Chat damit.

Der erste Befehl, um einen Chat mit einem Bot zu starten, ist /start, unser Arduino antwortet mit einer Willkommensnachricht. Geben Sie nun help (ohne Schrägstrich) ein, es antwortet mit einer Liste der unterstützten Befehle, Sie können sie alle ausprobieren (image4).

Sie sind mit dem Test fertig, wenn etwas nicht funktioniert, überprüfen Sie die in der Skizze eingegebenen Informationen (Name, Benutzername, Token…)

ZertifikateBei Fehlern bei der Verbindung zum Telegrammserver (Protokoll: Bot nicht verbunden):

  • Öffnen Sie Extras->Wifi101/wifinina-Updater
  • Stellen Sie sicher, dass Ihr Board angeschlossen ist, überprüfen Sie die Anschlüsse auf der linken Seite des Updater-Tools, das Board muss dort sein
  • Klicken Sie auf Updater-Skizze öffnen und laden Sie sie auf das Board hoch
  • Wählen Sie nach dem Hochladen im Updater die neueste Firmware für Ihr Board aus und klicken Sie auf Firmware aktualisieren
  • Klicken Sie nach dem Update im Updater, Abschnitt SSL-Zertifikate, auf Domain hinzufügen, schreiben Sie im Dialog telegram.org:443 und drücken Sie OK.
  • Klicken Sie auf Zertifikate in das WLAN-Modul hochladen
  • Lade diese Skizze auf das Board

Schritt 5: Verbesserungen

Verbesserungen
Verbesserungen

Wenn man sich den Code ansieht, ist es sehr einfach, neue Befehle zu implementieren und dem Benutzer zu antworten.

Neue Befehle: Sie können für jeden neuen Befehl ein Sub schreiben. Jedes Sub kümmert sich um die Ausführung des Befehls und gibt (eventuell) eine Statusinformation an den Benutzer zurück.

Benutzereinschränkung: Dieses Projekt ist natürlich nur eine Demo. Jeder Telegram-Benutzer kann sich mit Ihrem Zuhause verbinden und unerwünschte Befehle senden. Sie wollen das nicht!.

Sehen Sie sich das Bild 1 an, es zeigt 2 verbundene Benutzer. Wie Sie sehen, hat jeder Benutzer seine eigene Benutzer-ID. Mit ein wenig Arbeit auf der Codeseite können Sie nur für autorisierte Benutzer filtern (oder eine Liste erstellen). Studieren Sie einfach den Code und versuchen Sie, die Benutzer-ID abzufangen. Führen Sie dann nur Befehle von bekannten Benutzern aus.

Hardware: Hardwareseitig können viele Sensoren und Relais an die I/O-Pins von Arduino angeschlossen werden.

Seien Sie vorsichtig: Die in diesem Projekt verwendete Platine ist 3,3 V tolerant !!! Verwenden Sie bei Bedarf einen Voltage Level Shifter! Weitere Informationen und Tipps zu diesem Board finden Sie hier:

Das ist alles, viel Spaß!

Empfohlen: