A Raspberry Pi mindig is szórakoztató és könnyen építhető projekt volt. Erőteljes ARM architektúrája és nyílt forráskódú Linux alapú operációs rendszere sokat segített abban, hogy projektjeink pillanatok alatt online legyenek. Ebben az oktatóanyagban megismerhetünk egy másik érdekes módot az adatok (fájlok / fényképek / videók / audió / szöveg) megosztására a Raspberry Pi és a mobiltelefonunk között a Telegram nevű népszerű chat alkalmazás segítségével.
Azok számára, akik újak a Telegramban, ez egy csevegésen alapuló alkalmazás, amely a Play Áruházban elérhető az Android számára (Iphone és Windows esetén is elérhető), amely nagyon hasonlít a Whatsapp-ra. Több mint 100 millió letöltéssel rendelkezik (mint 2017. október 5-én) a Play Áruházban, és az emberek azt állítják, hogy gyorsabb és működőképesebb, mint a Whatsapp (keresztbe tett ujjak). Az alkalmazás egyik különlegessége, hogy támogatják a botokat. Ez azt jelenti, hogy ezt az okos telefonos alkalmazást nemcsak az emberek, hanem a gépek is használhatják. Esetünkben a gép Raspberry Pi lesz. Miután kiképezte a Raspberry Pi-t arra, hogyan viselkedjen botként, bárki (ha nyilvánosságra hozza) beszélgethet a Raspberry Pi-vel, mint bármely normális emberrel, és akár megoszthatja a Photos Pictures Documents és az Audio fájlokat. Akár saját személyi asszisztensévé is képezheted, jól hangzik, igaz? Tanuljuk meg, hogyan kell aMálna pi távirat bot.
Szükséges anyagok:
- Bármely Raspberry Pi csatlakozik az internethez
- Telegram alkalmazás futó mobil.
Nem sok hardver vesz részt ebben a projektben, ezért lazítson a széken a Pi-vel, és kövesse az alábbi lépéseket. Ha még nem ismeri a Raspberry Pi alkalmazást, kövesse a Raspberry Pi bemutatkozó cikkünket és más Raspberry Pi oktatóanyagokat.
1. lépés: Telepítse a táviratot a mobiljára
Az első lépés a Telegram telepítése a mobilra. A Telegram elérhető Androidra, IOS-ra és akár Windows platformra is, ezért csak töltse le a Telegram alkalmazást. Csakúgy, mint az összes alkalmazásban, lesz egy kis regisztrációs eljárás is a Telegram használatának megkezdéséhez, folytassa vele, amíg el nem éri a kezdőképernyőt.
2. lépés: Beszéljen Bot atyával
A következő lépés az lenne, hogy felkérjük a botatyát, hogy hozzon létre nekünk egy új botot. A kezdőképernyő jobb felső sarkában lesz egy keresési ikon, rákattintva keresse meg a „botfather” nevet. A Botfather önmagában egy Bot, ez fogja vezetni Önt egy új bot létrehozásához. Kattintson a Start gombra, és válassza az / newbot parancsot az alábbi képen látható módon. Most a bot néhány olyan információt fog kérni, mint a bot neve és a bot felhasználói neve. Töltse ki ezeket a részleteket, és ne feledje a felhasználónévet, amelyre a jövőben szükségünk lesz.
3. lépés: A token megszerzése a hozzáféréshez
A botot circuitdigestnek, a felhasználónév pedig circuitdigestBot-nak neveztem el. Ezt követően a botfather Tokent ad a hozzáféréshez. Ez olyan, mint a botjának jelszava, az emberek ezzel a tokenkulccsal vezérelhetik a botot. Tartsa biztonságban, és ne ossza meg senkivel. Miután megkapta ezt a token kulcsot, itt az ideje, hogy folytassa a Raspberry Pi programmal.
4. lépés: Telepot a távirat telepítéséhez a Raspberry Pi-re
A Telegram Bot használatát a Raspberry Pi-ben a Telepot nevű python csomag teszi lehetővé. Telepítenünk kell ezt a csomagot a Raspberry Pi-re az alábbi parancsok használatával az Lx terminálon
sudo apt-get install python-pip sudo pip telepítse a telepot
Miután a Telepot be lett importálva a Raspberry-ba, használhatjuk ezt a csomagot a python programunkban a Telegram Bot-nal való kommunikációhoz.
5. lépés: A Raspberry Pi programozása
Az a bot, amelyet most a Telegram-on hoztunk létre, olyan, mint egy csecsemő, önmagában nem tehet semmit, hacsak nem tanítjuk meg neki, hogy mit és hogyan kell csinálni. Ez a tanítás elvégezhető a Raspberry Pi és a Python szkripteken keresztül. Ebben az oktatóanyagban programoztam a botot néhány alapvető művelet végrehajtására, mint például üzenetküldés, Fotó, Hang és Dokumentum. Tehát, amikor egy adott parancsot mond, az egy adott művelettel válaszol, a parancs és a művelet az alábbi táblázatban található
Parancs a távirattól |
Raspberry Pi válasza |
/Szia |
Egy húrral válaszol: „Szia! CircuitDigest ” |
/idő |
Az aktuális idővel válaszol |
/ logó |
Képpel válaszol (a CircuitDigest logója) |
/ fájl |
Válaszok egy fájlra (amely az aktuális programot tartalmazza) |
/hang |
Válaszok egy demo audio fájlra |
A fenti műveletek végrehajtásának teljes programja az oldal alján található. De csak alább ismertettem a program fontos részeit, amelyek segítenek megérteni a program működését.
Az első lépés az összes könyvtár importálása, itt nyilvánvalóan szükségünk lesz a teleport könyvtárra a Telegram bot használatához. Használjuk az idő, időzítés könyvtárat is, hogy leolvassuk a Raspberry pi aktuális idejét. Ezután létrehozunk egy objektumot, amelyben az érték tárolva van.
importálás ideje, datetime import telepot telepot.loop importálás MessageLoop most = datetime.datetime.now ()
A következő lépés egy olyan funkció létrehozása, amellyel a Telegram alkalmazásból érkező bejövő parancsok alapján végezhetők műveletek a mobilon. Itt a függvény neve: action. Ebben a funkcióban él a bot életre. Botunk nem képes önállóan kezdeményezni a beszélgetést, csak akkor tud válaszolni, ha kérdezünk valamit. Tehát minden alkalommal, amikor kérdezünk valamit, csevegési azonosító lesz. Ez a csevegési azonosító valami hasonló egy címhez, csak ennek a csevegési azonosítónak a használatával válaszolhat nekünk egy bot. Az első lépés tehát a csevegési azonosító és az üzenet elolvasása, amelyet megpróbál nekünk elmondani. A kapott üzenetet hibakeresés céljából is kinyomtatjuk.
def action (msg): chat_id = msg command = msg print 'Fogadott:% s'% parancs
A függvény belsejében ezt a parancsot egy előre definiált szöveggel hasonlítjuk össze, és bizonyos feladatokat hajtunk végre. Ez az első parancs lesz / hi , amire válaszolunk: „Szia! CircuitDigest ”
if parancs == '/ hi': telegram_bot.sendMessage (chat_id, str ("Szia! CircuitDigest"))
A következő parancs a / time lesz, amire válaszoljuk az aktuális időt. Most már megvan az idő és a dátum, itt egyszerűen ossza fel óra és perc alapján, és adja hozzá az str függvényként.
elif parancs == '/ time': távirat_bot.sendMessage (chat_id, str (most.óra) + str (":") + str (now.minute))
A következő parancs a / logo lesz, amelyre a bot lekér egy képet egy URL-ből, és elküldi nekünk. Kép küldhető URL-ből vagy a merevlemezről. Itt használtam az URL-t, amely a CircuitDigest logóját jeleníti meg.
elif command == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
A következő parancs a / file lesz, amely elküldi az Aisha.py nevű fájlt a merevlemezről. Bármely fájlt elküldhet a könyvtár címének megváltoztatásával
elif command == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Az utolsó parancs a / audio lesz. Ezzel bármilyen mp3 fájlt el lehet küldeni a merevlemezről, itt csak egy demót használtam a test.mp3 nevű audiofájlból
elif parancs == '/ audio': távirat_bot.sendAudio (chat_id, audio = nyitott ('/ home / pi / test.mp3'))
Oké, most következik a legfontosabb lépés, itt adunk hozzáférést a Telegram botunkhoz a Python szkripthez. Itt nevezzük meg a botot telegram_bot néven, és hozzárendeljük azt a token címet, amelyet botapánk adott a 3. lépésben. Az alábbi sorban a magánélet érdekében eltávolítottam a tokenem utolsó néhány számjegyét. Azt is használjuk, hogy a get me megjelenítse a Bot részleteit a shell képernyőn, ez segít észrevenni a dolgokat.
telegram_bot = telepot. Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') nyomtatás (telegram_bot.getMe ())
Remélem, megértette a program működését, most lépjünk a következő lépésre.
6. lépés: A program futtatása Raspberry Pi-jén
Mint korábban említettük, a teljes program az oldal végén található, innen is letöltheti ugyanazt. Miután megnyitotta a kódot, ne felejtse el megváltoztatni a program token címét token címére.
Most futtassa a python kódot, és látnia kell a bot részleteit a shell ablakban, mint ez
Itt a bot felhasználónevem a circuitdigestBot. Ha itt kapja meg a bot nevét, az azt jelenti, hogy minden rendben megy.
Ha látja, hogy „ fut és fut ”, ez azt jelenti, hogy a bot készen áll a cselekvésre, és most válaszolhat a parancsokra.
7. lépés: Élvezze a kimenetet
Most már csak annyi van hátra, hogy ellenőrizzük, hogy a bot hogyan reagál a programjára. Keresse meg a bot nevét, az én esetemben ez az „circuitdigestBot”. Keressen felhasználónevet és nem, vagy Bot nevet, a felhasználónevének a bot végével kell végződnie.
Miután megnyitotta a botot, kattintson a Start gombra, és írja be a / hi, / time, / file, / logo vagy / audio parancsokat, és ennek megfelelően kell válaszolnia.
A shell parancsfájl segítségével megnézheti, mire reagál a szkript. A teljes munka megtalálható az oldal végén található videóban.
8. lépés: Adj nekem egy ötösöt
Remélem, megértette az oktatóanyagot, és most képes lesz létrehozni ezt a Raspberry pi távirat botot, és kommunikálhat a Raspberry Pi-vel a Telegram App segítségével. Jaj! Ha bármilyen problémája merülne fel, tudassa velem a megjegyzés részben, és megpróbálok veled kapcsolatba lépni. Hadd tudasd velem, hogy tetszett neked ez a projekt, vagy mit szeretnél építeni, felhasználva ezt a következő projektek során.
Továbbá, a következő bemutatónkban. Hűvösebbé tesszük ezt a megjelenést, ha megváltoztatjuk a parancsok küldésének módját és a Raspberry Pi hardverével kapcsolatos dolgokat.