Raspberry Pi har altid været sjov og nem at bygge projekter. Dens kraftige ARM-arkitektur og open source Linux-baserede operativsystem har hjulpet os meget med at få vores projekter online på ingen tid. I denne vejledning lærer vi en anden interessant måde at dele data (filer / fotos / videoer / lyd / tekst) mellem Raspberry Pi og vores mobiltelefon gennem en populær chatapplikation kaldet Telegram.
For dem der er nye i Telegram, er det en chatbaseret applikation tilgængelig i Play Store til Android (også tilgængelig til Iphone og Windows), der minder meget om Whatsapp. Det har over 100 millioner downloads (som 5-10-2017) i playbutikken, og folk hævder, at det er hurtigere og mere funktionelt end Whatsapp (krydsede fingre). Et specielt træk ved denne applikation er, at de understøtter bots. Dette betyder, at denne smartphoneapplikation ikke kun kan bruges af mennesker, men også af maskinen. I vores tilfælde vil maskinen være Raspberry Pi. Når du har trænet Raspberry Pi om, hvordan man fungerer som en bot, kan enhver (hvis du gør det offentlig) chatte med din Raspberry Pi som at chatte med enhver normal person og endda dele fotos Billeder dokumenter og lydfiler. Du kan endda træne det til at være din egen personlige assistent, lyder sejt, ikke? Lad os lære at bygge enHindbær pi telegram bot.
Nødvendige materialer:
- Enhver Raspberry Pi tilsluttet internettet
- En mobil, der kører Telegram Application.
Der er ikke meget hardware involveret i dette projekt, så slapp af på din stol med din Pi og følg nedenstående trin. Hvis du er ny hos Raspberry Pi, skal du følge vores artikel om Raspberry Pi Introduktion og andre Raspberry Pi-vejledninger.
Trin 1: Installation af Telegram på din mobil
Det første skridt ville være at installere Telegram på din mobil. Telegram er tilgængelig til Android, IOS og endda til Windows-platformen, så bare gå videre og download din Telegram-applikation. Ligesom alle applikationer vil der være en lille tilmeldingsprocedure for at begynde at bruge Telegram, fortsæt med det, indtil du når din startskærm.
Trin 2: Tal med Botfar
Det næste skridt ville være at anmode Botfaderen om at skabe os en ny Bot. I øverste højre hjørne af startskærmen vil der være et søgeikon, klik på det for at søge efter navnet "botfather". Botfather er en Bot i sig selv, den vil guide dig til at oprette en ny bot til dig. Klik på start og vælg / newbot som vist på billedet nedenfor. Nu vil boten bede om få detaljer som navnet på din Bot og brugernavnet på bot. Udfyld disse detaljer og husk brugernavnet, for vi har brug for det i fremtiden.
Trin 3: Få dit token for adgang
Jeg har navngivet bot som circuitdigest og brugernavnet som circuitdigestBot. Efter denne proces vil botfar give dig et token for adgang. Dette er som adgangskoden til din bot, folk kan styre programmere din bot ved hjælp af denne tokenøgle. Så hold det sikkert og del det ikke med nogen. Når du har modtaget denne tokenøgle, er det tid til at gå videre til Raspberry Pi.
Trin4: Telepot til installation af Telegram på Raspberry Pi
Brug af Telegram Bot i Raspberry Pi er muliggjort af pythonpakken kaldet Telepot. Vi skal installere denne pakke på Raspberry Pi ved hjælp af følgende kommandoer på Lx-terminalen
sudo apt-get install python-pip sudo pip installer telepot
Når Telepot er importeret til Raspberry, kan vi bruge denne pakke i vores python-program til at kommunikere med vores Telegram Bot.
Trin 5: Programmering af din Raspberry Pi
Den bot, vi lige har oprettet på Telegram, er ligesom en baby, den kan ikke gøre noget alene, medmindre vi lærer det, hvad og hvordan man gør tingene. Denne undervisning kan udføres gennem Raspberry Pi og Python-script. I denne vejledning har jeg programmeret boten til at udføre nogle grundlæggende handlinger som at sende en besked, foto, lyd og dokument. Så når du siger en bestemt kommando, vil den svare med en bestemt handling, er kommandoen og handlingen anført i nedenstående tabel
Kommando fra Telegram |
Svar fra Raspberry Pi |
/Hej |
Svar med en streng “Hej! CircuitDigest ” |
/tid |
Svar med den aktuelle tid |
/ logo |
Svar med et billede (logo for CircuitDigest) |
/fil |
Svar med en fil (der indeholder det aktuelle program) |
/ lyd |
Svar med en demo-lydfil |
Det komplette program til udførelse af ovenstående handlinger findes nederst på denne side. Men lige nedenfor har jeg forklaret de vigtige uddrag i programmet for at hjælpe dig med at forstå, hvordan programmet fungerer.
Det første trin er at importere alle bibliotekerne, her har vi naturligvis brug for teleportbiblioteket for at bruge Telegram-bot. Vi bruger også tidsbiblioteket til at læse den aktuelle tid for Raspberry pi. Derefter opretter vi et objekt nu, hvor værdien er gemt.
importtid, datetime import telepot fra telepot.loop import MessageLoop now = datetime.datetime.now ()
Det næste trin er at oprette en funktion til at tage handlinger baseret på indgående kommandoer fra Telegram-appen på Mobile. Her er funktionens navn handling. Det er inde i denne funktion, hvor boten kommer til liv. Vores bot kan ikke starte en samtale alene, den kan kun svare, hvis vi beder om noget. Så hver gang vi beder om noget, vil der være chat-id. Denne chat-id ligner en adresse, kun ved hjælp af denne chat-id kan en bot svare os. Så det første trin er at læse chat-id'et og den besked, det prøver at sige til os. Vi udskriver også den modtagne besked til fejlfindingsformål.
def handling (msg): chat_id = msg command = msg print 'Modtaget:% s'% kommando
Længere nede i funktionen sammenligner vi denne kommando med en foruddefineret tekst og udfører bestemte opgaver. Denne første kommando vil være / hej, som vi svarer “Hej! CircuitDigest ”
hvis kommando == '/ hi': telegram_bot.sendMessage (chat_id, str ("Hej! CircuitDigest"))
Den næste kommando vil være / tid , som vi svarer på det aktuelle tidspunkt. Vi har allerede tid og dato nu, her skal du blot opdele det baseret på time og minut og tilføje det som ved hjælp af str- funktionen.
elif kommando == '/ tid': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Den næste kommando er / logo , hvortil bot henter et billede fra en url og sender det til os. Et billede kan sendes enten fra en URL eller fra harddisken. Her har jeg lige brugt URL'en, der viser CircuitDigest-logoet.
elif-kommando == '/ logo': telegram_bot.sendPhoto (chat_id, foto = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Den næste kommando er / fil , som sender filen Aisha.py fra harddisken. Du kan sende enhver fil, du ønsker, ved at ændre adressekataloget
elif kommando == '/ fil': telegram_bot.sendDocument (chat_id, dokument = åben ('/ home / pi / Aisha.py'))
Den sidste kommando er / lyd . Dette kan sende enhver mp3-fil fra harddisken, jeg har lige brugt en lydfil kaldet test.mp3 som en demo her
elif kommando == '/ lyd': telegram_bot.sendAudio (chat_id, lyd = åben ('/ home / pi / test.mp3'))
Okay nu kommer det vigtigste trin, det er her, vi giver adgang til vores Telegram-bot til Python-scriptet. Her navngiver vi bot som telegram_bot og tildeler den tokenadressen, som blev givet af vores botfar i trin 3. I nedenstående linje har jeg fjernet de sidste par cifre i mit token som et spørgsmål om privatlivets fred. Vi bruger også udskriften for at få mig til at vise detaljerne om Bot på shell-skærmen, dette vil hjælpe os med at bemærke, at ting fungerer.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Håber du har forstået, hvordan programmet fungerer, lad os nu gå videre til næste trin.
Trin 6: Kørsel af programmet i din Raspberry Pi
Som tidligere nævnt findes det komplette program i slutningen af denne side, du kan også downloade det samme herfra. Når du har åbnet koden, skal du sørge for at ændre programmets tokenadresse til din tokenadresse.
Kør nu python-koden, og du skal se detaljerne om din bot i shell-vinduet sådan
Her er mit bot-brugernavn circuitdigestBot. Hvis du får dit bots navn her, betyder det, at alt går fint.
Når du først ser " op og køre " betyder det, at din bot er klar til handling og nu kan svare på dine kommandoer.
Trin 7: Nyd output
Nu er alt tilbage, at kontrollere, hvor god din bot reagerer på dit program. Søg efter dit botnavn i mit tilfælde er det “circuitdigestBot”. Søg efter brugernavn og ikke eller Botnavn, dit brugernavn skal ende med bot.
Når du har åbnet din bot, skal du klikke på start og skrive eventuelle kommandoer som / hi, / time, / file, / logo eller / audio, og du skal besvares i overensstemmelse hermed.
Du kan bruge shell-scriptet til at se, hvad dit script i øjeblikket reagerer på. Det komplette arbejde kan findes i videoen, der er vist i slutningen af denne side.
Trin 8: Giv mig en High Five
Håber du har forstået vejledningen og nu vil være i stand til at oprette denne Raspberry pi telegram bot og kommunikere med Raspberry Pi ved hjælp af Telegram App. Ak! Hvis du har problemer, så lad mig det vide gennem kommentarsektionen, og jeg vil prøve at vende tilbage til dig. Lad mig også vide, hvordan du kunne lide dette projekt, eller hvad du gerne vil have, at jeg byggede ved hjælp af dette i kommende projekter.
Også i vores næste tutorial. Vi får dette til at se køligere ud ved at ændre den måde, vi sender kommandoer på, og til noget mere relateret til hardware på Raspberry Pi.