Obsah:

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

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

Video: [IoT] Telegram Bot s krokmi Arduino MKR WiFi 1010: 5
Video: Пишем Telegram Bot на Python / Создание ботов для начинающих за 30 минут 2024, Júl
Anonim
Image
Image
Čo potrebuješ
Čo potrebuješ

Tento projekt ukazuje, ako prepojiť Arduino s rozhraniami API Telegram Bot. Projekt je postavený na novej doske MKR WiFi 1010 vybavenej modulom ESP32 od spoločnosti U-BLOX.

V tejto fáze projekt nie je nič viac ako dôkaz koncepcie, len aby vám ukázal, čo by ste mohli robiť, takže na to potrebujete iba dosku Arduino.

Ale čo je to telegramový robot? Boti sú jednoducho telegramové účty spravované softvérom - nie ľuďmi - a často budú mať funkcie AI. Môžu robiť čokoľvek - učiť, hrať, hľadať, vysielať, pripomínať, spájať sa, integrovať s inými službami alebo dokonca odovzdávať príkazy internetu vecí. (kredity od Telegramu:

V našom prípade pošleme príkazy Arduinu na stavbu jednoduchého zariadenia IoT. Odpovie na jednoduché príkazy a tiež zapne/vypne vstavanú LED diódu. Nechám vašu predstavivosť urobiť viac … (predstavte si, že na I/O kolíky pripojíte jedno alebo viac relé a napríklad pomocou smartfónu zapnete/vypnete ohrievač alebo klimatizačný systém).

Krok 1: Čo potrebujete

Čo potrebuješ
Čo potrebuješ

Na tento projekt potrebujete:

  • Arduino MKR WiFi 1010 z obchodu Arduino:
  • Arduino IDE 1.8.5 alebo novší:
  • Mikro USB kábel na pripojenie Arduina k počítaču
  • Pripojenie na internet vyžaduje SSID a heslo. Lepšie je použiť vlastný domáci smerovač, aby ste sa presvedčili, že nie je zablokovaný.
  • Aplikácia Telegram je nainštalovaná vo vašom smartfóne bez ohľadu na značku. Tu nájdete aj počítačové a webové verzie!

Krok 2: Inštalácia IDE

Inštalácia IDE
Inštalácia IDE
Inštalácia IDE
Inštalácia IDE
Inštalácia IDE
Inštalácia IDE

Áno, viem, viem … väčšina z vás už má Arduino IDE nainštalované v počítači, ale tento návod je určený aj pre začiatočníkov. V prvom rade si teda stiahnite Arduino IDE 1.8.5 podľa vlastného výberu (súbor zip pre „správcovia“alebo súbor exe)

Odporúča sa verzia 1.8.5, netestoval som staré verzie a novú dosku použitú v projekte nebolo možné vôbec podporiť.

Teraz musíte nainštalovať nové dosky s ich ovládačmi:

  1. spustite IDE
  2. V ponuke Nástroje vyberte položku Dosky a potom v hornej časti zoznamu procesorov vyberte položku Správca dosiek.
  3. Posuňte sa v novom okne (pozri obrázok), kým nenájdete dosky Arduino SAMD, ktoré obsahujú novú MKR WiFi 1010.
  4. Kliknite na túto kartu alebo kliknite na položku Viac informácií na karte, vyberte najnovšiu verziu a nainštalujte ju.
  5. Počkajte na dokončenie inštalácie. Postará sa tiež o inštaláciu ovládačov
  6. Pre túto dosku tiež potrebujete novú knižnicu WiFi: zvoľte Sketch, Include Library a Manage Libraries. Vyhľadajte Wifinina a nainštalujte ho rovnako ako vyššie uvedený procesor.

Teraz pripojte svoju novú dosku Arduino a počkajte, kým systém Windows dokončí inštaláciu ovládača.

V ponuke Nástroje-> Doska nájdete nové dosky, zvoľte MKR WiFi 1010.

Pre tento projekt je potrebná ďalšia špeciálna knižnica, je to knižnica ESP8266 TelegramBot od Giancarla Bacchia. Knižnica bola mierne upravená tak, aby fungovala s touto doskou, takže je zahrnutá v priečinku náčrtu.

Vyberte správny port a otestujte dosku príkazom Get Board Info.

Blahoželáme, ste s IDE hotoví!

Krok 3: Vytvorenie telegramového robota

Vytvorenie telegramového robota
Vytvorenie telegramového robota
Vytvorenie telegramového robota
Vytvorenie telegramového robota
Vytvorenie telegramového robota
Vytvorenie telegramového robota

Vytvorenie nového telegramového robota je celkom jednoduché.

Otvorte aplikáciu Telegram a do vyhľadávacieho panela napíšte @BotFather a začnite s ním chatovať (obrázok1). BotFather je… Bot factory. Pomôže vám to vytvoriť nového robota a zmeniť jeho nastavenia.

Za príkazom /start uvidíte zoznam pomocníka (obrázok2).

  • Zadajte /newbot (obrázok3) Teraz zadajte názov svojho robota. Meno je zobrazené v kontaktných údajoch a inde.
  • BotFather vás požiada o užívateľské meno. Používateľské meno je krátky názov, ktorý sa má použiť v odkazoch na odkazy a telegram.me. Používateľské mená majú 5 až 32 znakov a nerozlišujú malé a veľké písmena, môžu však obsahovať iba znaky latinky, číslice a podčiarkovníky. Používateľské meno vášho robota musí končiť na „bot“, napr. „Tetris_bot“alebo „TetrisBot“.
  • Ak sú meno aj používateľské meno platné, dostanete dlhý reťazec znakov s názvom TOKEN. Toto je váš osobný „kľúč“, ktorý sa používa na komunikáciu so servermi Telegram. Skopírujte ho a zatiaľ vložte do textového súboru vo svojom počítači. Použijeme to neskôr v kóde Arduino. Ak o to prídete, nebojte sa, stačí znova otvoriť chat a zadaním /tokenu vygenerovať nový.

Všetky kroky sú popísané tu:

Rozšírené (voliteľné)

Znova otvorte chat a napíšte /pomoc

Kliknutím na (alebo zadajte) /setuserpic nahráte obrázok pre svojho robota. Kliknutím na (alebo zadaním) /setabouttext nastavíte sekciu Informácie o svojom robotovi: Ľudia uvidia tento text na stránke profilu robota a budú odoslané spolu s odkaz na vášho robota, keď ho s niekým zdieľajú.

Kliknutím na (alebo zadajte) /setdescription nastavíte popisnú sekciu pre svojho robota. Tento popis sa ľuďom zobrazí, keď otvoria chat s vašim robotom v bloku s názvom „Čo môže tento robot robiť?“.

Krok 4: Upravte, nahrajte a otestujte náčrt

Upravte, nahrajte a otestujte náčrt
Upravte, nahrajte a otestujte náčrt
Upravte, nahrajte a otestujte náčrt
Upravte, nahrajte a otestujte náčrt
Upravte, nahrajte a otestujte náčrt
Upravte, nahrajte a otestujte náčrt

Je čas nahrať softvér na dosku Arduino MKR WiFi 1010.

Stiahnite si priložené súbory, z nejakého dôvodu nemôžem nahrať súbor ZIP, preto vytvorte priečinok s názvom náčrtu a skopírujte do neho všetky 4 súbory. Nemeňte názvy, pokiaľ neviete, čo robíte.

Upraviť

Otvorte náčrt, potrebujeme vyplniť niekoľko informácií (obrázok1): vyplňte arduino_secrets.h pomocou svojich poverení pre wifi a telegram.

  • Vyhľadajte informácie o sieti WiFi a zadajte názov siete (SSID) a heslo.
  • Nájdite informácie o telegramovom robotovi a zadajte meno, používateľské meno a token poskytnuté @BotFather

Odovzdať

Uistite sa, že doska je v idee správna (obrázok2) a pripojená, potom skúste skompilovať kód. Ak kompilácia dopadne dobre, nahrajte ju na nástenku, bude to trvať iba niekoľko sekúnd.

V prípade problémov vyhľadajte preklep a skúste to znova.

Test

[DÔLEŽITÉ!] Náčrt odosiela protokoly do IDE. Procesor má natívny port USB (ako dosky Leonardo). Po zapnutí kód počká, kým sa nespustí sériový monitor. Nechajte ho teda pripojiť k počítaču a otvorte sériový monitor. Arduino sa najskôr pripojí k internetu, potom začne na serveri Telegram vyhľadávať nové správy (image3).

Teraz otvorte Telegram na vami preferovanom zariadení a do vyhľadávacieho poľa zadajte názov svojho robota (nie používateľské meno, ktoré končí na „bot“). Otvorte s ním chat.

Prvý príkaz na začatie rozhovoru s robotom je /start, naše Arduino odpovie uvítacou správou. Teraz napíšte pomoc (bez lomítka), odpovie vám zoznamom podporovaných príkazov, môžete ich vyskúšať všetky (obrázok4).

Test ste skončili, ak niečo nefunguje, skontrolujte informácie zadané v náčrte (meno, používateľské meno, token …)

Certifikáty Ak sa vyskytli chyby pri pripojení k telegramovému serveru (protokol: robot nie je pripojený):

  • Otvorte Nástroje-> Aktualizátor Wifi101/wifinina
  • Uistite sa, že je vaša doska pripojená, skontrolujte porty naľavo od nástroja na aktualizáciu, doska tam musí byť
  • Kliknite na položku Otvoriť skicu aktualizátora a nahrajte ju na nástenku
  • Po nahraní v aktualizátore vyberte najnovší firmvér pre vašu dosku a kliknite na aktualizovať firmvér
  • Po aktualizácii v časti Aktualizátor v časti Certifikáty SSL kliknite na položku Pridať doménu, v dialógovom okne napíšte telegram.org:443 a potom kliknite na tlačidlo OK.
  • Kliknite na položku Nahrať certifikáty do modulu wifi
  • Nahrajte tento náčrt na nástenku

Krok 5: Zlepšenia

Vylepšenia
Vylepšenia

Pri pohľade na kód je veľmi jednoduché implementovať nové príkazy a odpovedať používateľovi.

Nové príkazy: Pre každý nový príkaz môžete napísať podpoložku. Každý podriadený sa postará o dokončenie príkazu a (prípadne) vráti používateľovi informácie o stave.

Obmedzenie používateľov: Tento projekt je samozrejme iba demo. Každý užívateľ Telegramu sa môže pripojiť k vášmu domu a odosielať nechcené príkazy. Toto nechceš!

Pozrite sa na obrázok 1, ktorý zobrazuje 2 pripojených používateľov. Ako vidíte, každý používateľ má svoje vlastné ID užívateľa. S trochou práce na strane kódu môžete filtrovať (alebo vytvárať zoznam) iba pre autorizovaných používateľov. Stačí si preštudovať kód a pokúsiť sa zachytiť ID používateľa. Potom spustite príkazy iba od známych používateľov.

Hardvér: Na hardvérovej stránke je k vstupným/výstupným kolíkom Arduina možné pripojiť veľa senzorov a relé.

Buďte opatrní: doska použitá v tomto projekte je odolná voči 3,3 V !!! V prípade potreby použite menič úrovne napätia! Ďalšie informácie a tipy o tejto doske nájdete tu:

To je všetko, užite si to!

Odporúča: