Raspberry Pi je bil vedno zabaven in enostaven za gradnjo projektov. Njegova zmogljiva arhitektura ARM in odprtokodni operacijski sistem, ki temelji na Linuxu, nam je v veliko pomoč pri hitrem povezovanju naših projektov v spletu. V tej vadnici bomo izvedeli še en zanimiv način skupne rabe podatkov (datotek / fotografij / videoposnetkov / zvoka / besedila) med Raspberry Pi in našim mobilnim telefonom prek priljubljene aplikacije za klepet, imenovane Telegram.
Za tiste, ki so v Telegramu novi, je aplikacija, ki temelji na klepetu in je na voljo v trgovini Play za Android (na voljo tudi za Iphone in Windows), zelo podobna Whatsappu. V trgovini Play ima več kot 100 milijonov prenosov (kot 5. 10. 2017) in ljudje trdijo, da je hitrejši in bolj funkcionalen kot Whatsapp (s prekrižanimi prsti). Posebnost te aplikacije je, da podpira bote. To pomeni, da tega pametnega telefona ne morejo uporabljati samo ljudje, temveč tudi stroj. V našem primeru bo naprava Raspberry Pi. Ko enkrat naučite Raspberry Pi, kako ravnati kot bot, lahko kdor koli (če to objavite) klepeta z vašim Raspberry Pi, kot je klepet s katero koli normalno osebo, in celo deli fotografije Photos Documents in Audio files. Lahko ga celo izučite za svojega osebnega asistenta, se sliši kul, kajne? Naučimo se, kako zgraditi aRaspberry pi telegram bot.
Potrebni materiali:
- Vsaka Raspberry Pi, povezana z internetom
- Mobilna aplikacija s programom Telegram.
V tem projektu ni veliko strojne opreme, zato se sprostite na stolu s svojim Pi in sledite spodnjim korakom. Če ste novi v Raspberry Pi, potem sledite našemu uvodnemu članku o Raspberry Pi in drugih vajah za Raspberry Pi.
1. korak: Namestitev Telegrama na vaš mobilni telefon
Prvi korak bi bil namestitev Telegrama na vaš mobilni telefon. Telegram je na voljo za Android, IOS in celo za platformo Windows, zato nadaljujte in prenesite svojo aplikacijo Telegram. Tako kot pri vseh aplikacijah bo tudi za uporabo Telegrama uporabljen majhen postopek prijave, nadaljujte z njim, dokler ne pridete na začetni zaslon.
2. korak: Pogovorite se z Bot Father
Naslednji korak bi bil, da od očeta bota zahtevamo, da nam ustvari novega bota. V zgornjem desnem kotu začetnega zaslona je ikona za iskanje, kliknite nanjo in poiščite ime "botfather". Botfather je sam Bot, vodil vas bo, da ustvarite novega bota za vas. Kliknite na start in izberite / newbot, kot je prikazano na spodnji sliki. Zdaj bo bot zahteval nekaj podrobnosti, na primer ime vašega bota in uporabniško ime bota. Izpolnite te podatke in si zapomnite uporabniško ime, ker ga bomo potrebovali v prihodnosti.
Korak 3: Pridobivanje žetona za dostop
Bota sem imenoval kot circuitdigest, uporabniško ime pa kot circuitdigestBot. Po tem postopku vam botfather dal žeton za dostop. To je kot geslo za vašega bota, ljudje lahko nadzorujejo program vašega bota s pomočjo tega žetonskega ključa. Torej naj bo varno in ga ne delite z nikomer. Ko prejmete ta žetonski ključ, je čas, da preidete na Raspberry Pi.
Korak 4: Telepot za namestitev Telegrama na Raspberry Pi
Uporaba Telegram Bota v Raspberry Pi omogoča paket python, imenovan Telepot. Ta paket moramo namestiti na Raspberry Pi z uporabo naslednjih ukazov na terminalu Lx
sudo apt-get install python-pip sudo pip namestite telepot
Ko je Telepot uvožen v Raspberry, lahko ta paket v našem programu python uporabimo za komunikacijo z našim Telegram Botom.
5. korak: Programiranje Raspberry Pi
Bot, ki smo ga pravkar ustvarili v Telegramu, je prav tako kot dojenček, sam ne more storiti ničesar, razen če ga naučimo, kaj in kako delati. To poučevanje je mogoče izvesti s pomočjo Raspberry Pi in Python skripta. V tej vadnici sem bota programiral za izvajanje nekaterih osnovnih dejanj, kot so pošiljanje sporočila, fotografije, zvoka in dokumenta. Torej, ko izgovorite določen ukaz, se ta odzove z določenim dejanjem, ukaz in dejanje sta navedena v spodnji tabeli
Ukaz iz Telegrama |
Odgovor Raspberry Pi |
/ živjo |
Odgovori z nizom »Živjo! CircuitDigest " |
/ čas |
Odgovori s trenutnim časom |
/ logotip |
Odgovori s sliko (logotip CircuitDigest) |
/mapa |
Odgovori z datoteko (ki vsebuje trenutni program) |
/ avdio |
Odgovori z predstavitveno zvočno datoteko |
Celoten program, da bi zgoraj navedenih ukrepov je naveden na dnu te strani. Toda tik spodaj sem razložil pomembne delčke v programu, ki vam bodo pomagali razumeti, kako program deluje.
Prvi korak je uvoz vseh knjižnic, tu bomo očitno potrebovali knjižnico teleporta za uporabo bota Telegram. Za odčitavanje trenutnega časa za Raspberry pi uporabimo tudi knjižnico časa, časovnice. Nato ustvarimo objekt, v katerem je vrednost shranjena.
uvozni čas, datum-čas uvoz telepot iz telepot.loop uvoz MessageLoop zdaj = datetime.datetime.now ()
Naslednji korak je ustvariti funkcijo za izvajanje dejanj na podlagi dohodnih ukazov iz aplikacije Telegram v mobilni napravi. Tu je ime funkcije dejanje. V tej funkciji bot zaživi. Naš bot ne more sam začeti pogovora, lahko odgovori le, če nekaj vprašamo. Torej, vsakič, ko nekaj vprašamo, bo ID klepeta. Ta ID klepeta je nekaj podobnega naslovu, le z uporabo tega klepeta nam bot lahko odgovori. Prvi korak je torej prebrati ID klepeta in sporočilo, ki nam ga poskuša sporočiti. Prejeto sporočilo tudi natisnemo za namen odpravljanja napak.
def action (msg): chat_id = msg command = msg print 'Prejeto:% s'% ukaz
Nadalje znotraj funkcije primerjamo ta ukaz z vnaprej določenim besedilom in izvajamo določene naloge. Ta prvi ukaz bo / hi, na katerega bomo odgovorili: "Živijo! CircuitDigest "
če je ukaz == '/ hi': telegram_bot.sendMessage (chat_id, str ("Hi! CircuitDigest"))
Naslednji ukaz bo / time , na katerega odgovorimo trenutni čas. Čas in datum že imamo, tukaj ga preprosto razdelimo glede na uro in minuto in dodamo kot s funkcijo str .
ukaz elif == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Naslednji ukaz bo / logo , na katerega bot iz urla prinese sliko in nam jo pošlje. Sliko lahko pošljete z URL-ja ali s trdega diska. Tu sem pravkar uporabil URL, ki prikazuje logotip CircuitDigest.
ukaz elif == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Naslednji ukaz bo / file , ki bo s trdega diska poslal datoteko z imenom Aisha.py . Pošljete lahko katero koli datoteko, ki jo želite, tako da spremenite naslov imenika
ukaz elif == '/ datoteka': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Zadnji ukaz bo / audio . To lahko s trdega diska pošlje katero koli datoteko mp3, tukaj sem pravkar uporabil zvočno datoteko, imenovano test.mp3
ukaz elif == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
V redu, zdaj prihaja najpomembnejši korak, tu omogočamo dostop našega bota Telegram do skripta Python. Tu imenujemo bota kot telegram_bot in mu dodelimo naslov žetona, ki ga je dal naš botfather v koraku 3. V spodnji vrstici sem zaradi zasebnosti odstranil zadnjih nekaj številk svojega žetona. Za prikaz podrobnosti o Botu na zaslonu lupine uporabljamo tudi tisk, ki me dobi, tako bomo opazili, da stvari delujejo.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Upam, da ste razumeli, kako program deluje, pojdimo na naslednji korak.
6. korak: Zagon programa v Raspberry Pi
Kot že rečeno, je celoten program podan na koncu te strani, lahko pa ga tudi prenesete od tukaj. Ko odprete kodo, obvezno spremenite naslov programa v svoj žeton.
Zdaj zaženite kodo python in v oknu lupine bi morali videti podrobnosti vašega bota, kot je ta
Tukaj je moje uporabniško ime za bota circuitdigestBot. Če tukaj dobite ime svojega bota, to pomeni, da gre vse v redu.
Ko vidite, da je " pripravljen in zagnan ", to pomeni, da ste bot pripravljen na akcijo in lahko zdaj odgovarja na vaše ukaze.
7. korak: Uživanje v izhodu
Zdaj ostane samo še preveriti, kako dobro se bot odziva na vaš program. V mojem primeru poiščite ime svojega bota, ki je »circuitdigestBot«. Poiščite uporabniško ime in ne ali Bot name, vaše uporabniško ime naj se konča z bot.
Ko odprete bota, kliknite Start in vnesite poljubne ukaze, kot so / hi, / time, / file, / logotip ali / audio in na to boste morali odgovoriti.
S skriptom lupine lahko vidite, na kaj se trenutno skript odziva. Celotno delo najdete v videoposnetku na koncu te strani.
8. korak: Dajte mi petico
Upam, da ste razumeli vadnico in boste zdaj lahko ustvarili tega telegramskega bota Raspberry pi in komunicirali z Raspberry Pi z aplikacijo Telegram. Žal! Če imate kakršne koli težave, mi to sporočite v razdelku za komentarje in poskusil se bom obrniti na vas. Sporočite mi tudi, kako vam je bil ta projekt všeč ali kaj želite, da zgradim z uporabo tega v prihodnjih projektih.
Tudi v naši naslednji vadnici. Ta videz bomo naredili hladnejši, tako da bomo spremenili način pošiljanja ukazov in kaj bolj povezanega s strojno opremo na Raspberry Pi.