Obsah:

[IoT] Telegram Bot s Arduino MKR WiFi 1010: 5 kroků
[IoT] Telegram Bot s Arduino MKR WiFi 1010: 5 kroků

Video: [IoT] Telegram Bot s Arduino MKR WiFi 1010: 5 kroků

Video: [IoT] Telegram Bot s Arduino MKR WiFi 1010: 5 kroků
Video: Telegram App Controlled Home Automation Using ESP32 | IOT 2024, Červenec
Anonim
Image
Image
Co potřebuješ
Co potřebuješ

Tento projekt ukazuje, jak propojit Arduino s API Telegram Bot. Projekt je postaven na nové desce MKR WiFi 1010 vybavené modulem ESP32 od U-BLOX.

V této fázi projekt není ničím jiným než důkazem konceptu, jen aby vám ukázal, s čím byste mohli dělat, takže k tomu potřebujete pouze desku Arduino.

Ale co je to telegramový robot? Boti jsou prostě telegramové účty provozované softwarem - ne lidmi - a často budou mít funkce AI. Mohou dělat cokoli - učit, hrát, hledat, vysílat, připomínat, připojovat se, integrovat s jinými službami nebo dokonce předávat příkazy internetu věcí. (kredity od Telegramu:

V našem případě předáme příkazy Arduinu vybudujícímu jednoduché zařízení IoT. Odpoví na jednoduché příkazy a také zapne/vypne vestavěné LED. Nechám vaši fantazii udělat více… (představte si, že připojíte jedno nebo více relé k I/O pinům a například zapnete/vypnete topení nebo klimatizační systém pomocí smartphonu).

Krok 1: Co potřebujete

Co potřebuješ
Co potřebuješ

Pro tento projekt potřebujete:

  • Arduino MKR WiFi 1010 z obchodu Arduino:
  • Arduino IDE 1.8.5 nebo vyšší:
  • Mikro USB kabel pro připojení Arduina k vašemu PC
  • Připojení k internetu vyžaduje SSID a heslo. Lepší je použít vlastní domácí router, abyste se ujistili, že není blokován.
  • Aplikace Telegram nainstalovaná ve vašem smartphonu, bez ohledu na značku. Zkontrolujte zde také verze pro PC a web!

Krok 2: Instalace IDE

Instalace IDE
Instalace IDE
Instalace IDE
Instalace IDE
Instalace IDE
Instalace IDE

Jo, já vím, já vím … většina z vás už má Arduino IDE nainstalované v PC, ale tento Instructables je určen i pro začátečníky. Nejprve si tedy stáhněte Arduino IDE 1.8.5 dle vašeho výběru (zip soubor pro 'non administrator' nebo exe soubor)

Doporučuje se verze 1.8.5, netestoval jsem staré verze a nová deska použitá v projektu nemohla být vůbec podporována.

Nyní musíte nainstalovat nové desky s jejich ovladači:

  1. spusťte IDE
  2. V nabídce Nástroje zvolte Desky a v horní části seznamu procesorů zvolte Správce desek.
  3. Procházejte novým oknem (viz obrázek), dokud nenajdete desky Arduino SAMD, které obsahují nový MKR WiFi 1010.
  4. Klikněte na tuto kartu nebo klikněte na Další informace na kartě, vyberte nejnovější verzi a nainstalujte.
  5. Počkejte na dokončení instalace. Postará se také o instalaci ovladačů
  6. Pro tuto desku potřebujete také novou knihovnu WiFi: vyberte Sketch, Include Library a Manage Libraries. Vyhledejte Wifinina a nainstalujte stejně jako výše uvedený procesor.

Nyní připojte novou desku Arduino a počkejte, až systém Windows dokončí instalaci ovladače.

V nabídce Nástroje-> Deska najdete nové desky, vyberte MKR WiFi 1010.

Pro tento projekt je zapotřebí další speciální knihovna, je to knihovna ESP8266TelegramBot od Giancarla Bacchia. Knihovna byla mírně upravena pro práci s touto deskou, takže je zahrnuta do složky skici.

Vyberte správný port a otestujte desku pomocí příkazu Získat informace o desce.

Gratulujeme, jste s IDE hotovi!

Krok 3: Vytvoření telegramového robota

Vytvoření telegramového robota
Vytvoření telegramového robota
Vytvoření telegramového robota
Vytvoření telegramového robota
Vytvoření telegramového robota
Vytvoření telegramového robota

Vytvoření nového telegramového robota je celkem jednoduché.

Otevřete aplikaci Telegram a do vyhledávacího pole zadejte @BotFather a začněte s ním chatovat (obrázek1). BotFather je… Bot továrna. Pomůže vám vytvořit nového robota a změnit jeho nastavení.

Po příkazu /start uvidíte seznam nápovědy (obrázek2).

  • Zadejte /newbot (image3) Nyní zadejte název svého robota. Jméno je zobrazeno v kontaktních údajích a jinde.
  • BotFather vás požádá o uživatelské jméno. Uživatelské jméno je krátký název, který se má použít v rámci odkazů a odkazů na telegram.me. Uživatelská jména mají 5–32 znaků a nerozlišují velká a malá písmena, ale mohou obsahovat pouze znaky latinky, číslice a podtržítka. Uživatelské jméno vašeho robota musí končit „botem“, např. „Tetris_bot“nebo „TetrisBot“.
  • Pokud je jméno i uživatelské jméno platné, obdržíte dlouhý řetězec znaků s názvem TOKEN. Toto je váš osobní klíč používaný ke komunikaci se servery Telegram. Zkopírujte jej a vložte do textového souboru v počítači. Použijeme to později v kódu Arduino. Pokud o něj přijdete, nebojte se, stačí znovu otevřít chat a zadáním /tokenu vygenerovat nový.

Všechny kroky jsou popsány zde:

Pokročilé (volitelně)

Znovu otevřete chat a napište /help

Kliknutím na (nebo zadejte) /setuserpic odešlete obrázek pro svého robota. Kliknutím na (nebo zadejte) /setabouttext nastavíte sekci O svém botovi: Lidé uvidí tento text na stránce profilu robota a bude odeslán společně s odkaz na vašeho robota, když ho s někým sdílí.

Kliknutím na (nebo zadejte) /setdescription nastavíte popisnou sekci svého robota. Lidé uvidí tento popis, když otevřou chat s vaším robotem, v bloku s názvem „Co může tento robot dělat?“.

Krok 4: Upravte, nahrajte a otestujte skicu

Upravte, nahrajte a otestujte skicu
Upravte, nahrajte a otestujte skicu
Upravte, nahrajte a otestujte skicu
Upravte, nahrajte a otestujte skicu
Upravte, nahrajte a otestujte skicu
Upravte, nahrajte a otestujte skicu

Je čas nahrát software na desku Arduino MKR WiFi 1010.

Stáhněte si připojené soubory, z nějakého důvodu nemohu nahrát ZIP, vytvořte tedy složku pojmenovanou jako skica a zkopírujte do ní všechny 4 soubory, neměňte prosím názvy, pokud nevíte, co děláte.

Upravit

Otevřete skicu, potřebujeme vyplnit některé informace (obrázek1): vyplňte arduino_secrets.h pomocí svých přihlašovacích údajů pro wifi a telegram.

  • Vyhledejte informace o síti WiFi a zadejte název sítě (SSID) a heslo.
  • Vyhledejte informace o telegramu Bot a zadejte jméno, uživatelské jméno a token poskytnuté @BotFather

nahrát

Ujistěte se, že je deska v ideu správná (image2) a připojena, pak zkuste zkompilovat kód. Pokud kompilace proběhne dobře, nahrajte ji na tabuli, bude to trvat jen několik sekund.

V případě problémů zkontrolujte překlep a zkuste to znovu.

Test

[DŮLEŽITÉ!] Skica odesílá protokoly do IDE. Procesor má nativní port USB (jako desky Leonardo). Po zapnutí bude kód čekat, dokud nebude spuštěn sériový monitor. Nechte jej tedy připojit k počítači a otevřete sériový monitor. Arduino se nejprve připojí k internetu, poté začne na serveru Telegram vyhledávat nové zprávy (image3).

Nyní otevřete Telegram na vámi preferovaném zařízení a do vyhledávacího pole zadejte název svého robota (nikoli uživatelské jméno, které končí na „bot“). Otevřete si s ním chat.

První příkaz k zahájení chatu s robotem je /start, naše Arduino odpoví uvítací zprávou. Nyní zadejte help (bez lomítka), odpoví seznamem podporovaných příkazů, můžete je vyzkoušet všechny (image4).

Jste hotovi s testem, pokud něco nefunguje, zkontrolujte informace zadané v náčrtu (jméno, uživatelské jméno, token …)

Certifikáty Pokud dochází k chybám při připojení k telegramovému serveru (protokol: robot není připojen):

  • Otevřete Nástroje-> Wifi101/wifinina aktualizátor
  • Ujistěte se, že je vaše deska připojena, zkontrolujte porty na levé straně nástroje pro aktualizaci, deska tam musí být
  • Klikněte na Otevřít skicu aktualizátoru a nahrajte ji na tabuli
  • Po nahrání vyberte v aktualizátoru nejnovější firmware pro vaši desku a klikněte na aktualizovat firmware
  • Po aktualizaci v části Aktualizátor v sekci SSL certifikáty klikněte na Přidat doménu, v dialogovém okně napište telegram.org:443 a poté stiskněte OK.
  • Klikněte na Nahrát certifikáty do modulu wifi
  • Nahrajte tento náčrt na tabuli

Krok 5: Vylepšení

Vylepšení
Vylepšení

Při pohledu na kód je velmi jednoduché implementovat nové příkazy a odpovědět uživateli.

Nové příkazy: Pro každý nový příkaz můžete napsat dílčí. Každý sub se postará o dokončení příkazu a (případně) vrátí stavové informace uživateli.

Omezení uživatelů: Tento projekt je samozřejmě pouze demo. Každý uživatel Telegramu se může připojit k vám domů a odesílat nechtěné příkazy. Tohle nechceš!

Podívejte se na obrázek1, ukazuje 2 připojené uživatele. Jak vidíte, každý uživatel má své vlastní ID uživatele. S trochou práce na straně kódu můžete filtrovat (nebo vytvořit seznam) pouze pro oprávněné uživatele. Prostudujte si kód a zkuste zachytit ID uživatele. Potom spouštějte příkazy pouze od známých uživatelů.

Hardware: Na straně hardwaru lze k I/O pinům Arduina připojit spoustu senzorů a relé.

Buďte opatrní: deska použitá v tomto projektu je odolná vůči 3,3 V !!! Pokud je to nutné, použijte měnič úrovně napětí! Další informace a tipy k této desce naleznete zde:

To je vše, užijte si to!

Doporučuje: