Raspberry Pi is altijd leuk en gemakkelijk te bouwen geweest. De krachtige ARM-architectuur en het open-source op Linux gebaseerde besturingssysteem hebben ons veel geholpen om onze projecten in een mum van tijd online te krijgen. In deze tutorial zullen we een andere interessante manier leren om gegevens (bestanden / foto's / video's / audio / tekst) te delen tussen Raspberry Pi en onze mobiele telefoon via een populaire chat-applicatie genaamd Telegram.
Voor degenen die nieuw zijn bij Telegram, het is een op chat gebaseerde applicatie die beschikbaar is in de Play Store voor Android (ook beschikbaar voor Iphone en Windows) die sterk lijkt op WhatsApp. Het heeft meer dan 100 miljoen downloads (zoals op 5-10-2017) in de Play Store en mensen beweren dat het sneller en functioneler is dan Whatsapp (vingers gekruist). Een bijzonder kenmerk van deze applicatie is dat ze bots ondersteunen. Dit betekent dat deze smartphone-applicatie niet alleen door mensen kan worden gebruikt, maar ook door een machine. In ons geval is de machine Raspberry Pi. Zodra je Raspberry Pi hebt getraind in hoe je als bot moet fungeren, kan iedereen (als je deze openbaar maakt) met je Raspberry Pi chatten zoals met een normaal persoon chatten en zelfs foto's, afbeeldingen, documenten en audiobestanden delen. Je kunt hem zelfs trainen om je eigen persoonlijke assistent te zijn, klinkt cool toch? Laten we leren hoe we eenFramboos pi telegram bot.
Vereiste materialen:
- Elke Raspberry Pi die is verbonden met internet
- Een mobiele Telegram-applicatie.
Er is niet veel hardware bij dit project betrokken, dus ontspan op je stoel met je Pi en volg de onderstaande stappen. Als je Raspberry Pi nieuw bent, volg dan ons Raspberry Pi-introductieartikel en andere Raspberry Pi-zelfstudies.
Stap 1: Telegram op uw mobiel installeren
De eerste stap zou zijn om Telegram op uw mobiel te installeren. Telegram is beschikbaar voor Android, IOS en zelfs voor Windows-platform, dus ga je gang en download je Telegram-applicatie. Net als bij alle applicaties is er een kleine aanmeldingsprocedure om Telegram te gaan gebruiken, ga ermee door totdat u uw startscherm bereikt.
Stap 2: Praat met Bot Father
De volgende stap zou zijn om de Botvader te vragen om een nieuwe Bot voor ons te maken. In de rechterbovenhoek van het startscherm staat een zoekpictogram, klik erop om naar de naam "botfather" te zoeken. Botfather is op zichzelf een bot, het zal je begeleiden om een nieuwe bot voor je te maken. Klik op start en selecteer / newbot zoals weergegeven in de onderstaande afbeelding. Nu zal de bot om enkele details vragen, zoals de naam van uw bot en de gebruikersnaam van de bot. Vul deze gegevens in en onthoud de gebruikersnaam, want we hebben deze in de toekomst nodig.
Stap 3: Uw token verkrijgen voor toegang
Ik heb bot genoemd als circuitdigest en de gebruikersnaam als circuitdigestBot. Na dit proces zal de botfather je een token geven voor toegang. Dit is net als het wachtwoord voor je bot, mensen kunnen het programma van je bot besturen met deze token key. Bewaar het dus veilig en deel het met niemand. Zodra je deze token-sleutel hebt ontvangen, is het tijd om door te gaan naar Raspberry Pi.
Stap 4: Telepot voor het installeren van Telegram op Raspberry Pi
Het gebruik van Telegram Bot in Raspberry Pi wordt mogelijk gemaakt door het python-pakket genaamd Telepot. We moeten dit pakket op Raspberry Pi installeren met behulp van de volgende opdrachten op de Lx-terminal
sudo apt-get install python-pip sudo pip install telepot
Zodra Telepot in Raspberry is geïmporteerd, kunnen we dit pakket in ons python-programma gebruiken om te communiceren met onze Telegram Bot.
Stap 5: Programmeer uw Raspberry Pi
De bot die we zojuist op Telegram hebben gemaakt, is net als een baby, hij kan alleen niets doen, tenzij we hem leren wat en hoe hij dingen moet doen. Deze les kan worden gedaan via Raspberry Pi en Python-script. In deze tutorial heb ik de bot geprogrammeerd om enkele basisacties uit te voeren, zoals het verzenden van een bericht, foto, audio en document. Dus als u een bepaald commando zegt, zal het reageren met een bepaalde actie. Het commando en de actie staan vermeld in de onderstaande tabel
Commando van Telegram |
Reactie door Raspberry Pi |
/Hoi |
Antwoordt met een string "Hallo! CircuitDigest " |
/tijd |
Antwoorden met de huidige tijd |
/logo |
Reacties met afbeelding (logo van CircuitDigest) |
/het dossier |
Antwoorden met een bestand (dat het huidige programma bevat) |
/ audio |
Antwoorden met een demo-audiobestand |
Het complete programma om bovenstaande acties uit te voeren staat onderaan deze pagina. Maar net hieronder heb ik de belangrijke fragmenten in het programma uitgelegd om u te helpen begrijpen hoe het programma werkt.
De eerste stap is om alle bibliotheken te importeren, hier hebben we uiteraard de teleportbibliotheek nodig om de Telegram-bot te gebruiken. We maken ook gebruik van de time, timedate-bibliotheek om de huidige tijd voor Raspberry pi te lezen. Vervolgens maken we nu een object waarin de waarde is opgeslagen.
importeer tijd, datetime importeer telepot van telepot.loop importeer MessageLoop nu = datetime.datetime.now ()
De volgende stap is het maken van een functie voor het ondernemen van acties op basis van inkomende opdrachten van de Telegram-app op mobiel. Hier is de naam van de functie actie. Het is binnen deze functie waar de bot tot leven komt. Onze bot kan zelf geen gesprek beginnen, hij kan alleen antwoorden als we iets vragen. Dus elke keer dat we iets vragen, zal er een chat-ID zijn. Deze chat-ID lijkt op een adres, alleen met behulp van deze chat-ID kan een bot terug naar ons reageren. Dus de eerste stap is om de chat-ID te lezen en het bericht dat het ons probeert te zeggen. We drukken het ontvangen bericht ook af voor foutopsporingsdoeleinden.
def actie (msg): chat_id = msg commando = msg print 'Ontvangen:% s'% commando
Verderop in de functie vergelijken we dit commando met een voorgedefinieerde tekst en voeren we bepaalde taken uit. Dit eerste commando zal / hi zijn waarop we antwoorden “Hallo! CircuitDigest "
if command == '/ hi': telegram_bot.sendMessage (chat_id, str ("Hallo! CircuitDigest"))
Het volgende commando is / time , waarop we de huidige tijd antwoorden. We hebben nu al de tijd en datum, hier splitst u deze eenvoudig op basis van uur en minuut en voegt u deze toe met behulp van de str- functie.
elif commando == '/ time': telegram_bot.sendMessage (chat_id, str (nu.uur) + str (":") + str (nu.minuut))
De volgende opdracht is / logo , waarnaar de bot een afbeelding van een url ophaalt en naar ons verzendt. Een afbeelding kan worden verzonden vanaf een URL of vanaf de harde schijf. Hier heb ik zojuist de URL gebruikt die het logo van CircuitDigest weergeeft.
elif commando == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
De volgende opdracht is / file , waarmee het bestand met de naam Aisha.py vanaf de harde schijf wordt verzonden. U kunt elk gewenst bestand verzenden door het adres van de directory te wijzigen
elif command == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Het laatste commando is / audio . Dit kan elk mp3-bestand van de harde schijf verzenden, ik heb zojuist een audiobestand genaamd test.mp3 als demo hier gebruikt
elif commando == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Oké, nu komt de belangrijkste stap, dit is waar we toegang geven tot onze Telegram-bot tot het Python-script. Hier noemen we bot als telegram_bot en kennen het het tokenadres toe dat door onze botfather in stap 3 is gegeven. In de regel hieronder heb ik de laatste paar cijfers van mijn token verwijderd uit privacyoverwegingen. We gebruiken ook de print om de details van de Bot op het shell-scherm weer te geven, dit zal ons helpen te zien dat dingen werken.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Ik hoop dat je hebt begrepen hoe het programma werkt, laten we nu naar de volgende stap gaan.
Stap 6: het programma uitvoeren in uw Raspberry Pi
Zoals eerder gezegd staat het volledige programma aan het einde van deze pagina, je kunt het hier ook downloaden. Nadat u de code heeft geopend, moet u het token-adres van het programma wijzigen in uw token-adres.
Voer nu de python-code uit en je zou de details van je bot als volgt in het shell-venster moeten zien
Hier is mijn bot-gebruikersnaam circuitdigestBot. Als je je botsnaam hier krijgt, betekent dit dat alles goed gaat.
Als je eenmaal ' up and running ' ziet, betekent dit dat je bot klaar is voor actie en nu op je commando's kan reageren.
Stap 7: Genieten van de output
Nu hoef je alleen nog te kijken hoe goed je bot reageert op je programma. Zoek naar je botnaam, in mijn geval is dit "circuitdigestBot". Zoek op gebruikersnaam en niet op Bot-naam, je gebruikersnaam moet eindigen op bot.
Zodra je je bot hebt geopend, klik je op start en typ je commando's zoals / hi, / time, / file, / logo of / audio in en je zou dienovereenkomstig moeten worden geantwoord.
U kunt het shellscript gebruiken om te zien waar uw script momenteel op reageert. De volledige werking is te vinden op de video aan het einde van deze pagina.
Stap 8: Geef me een High Five
Ik hoop dat je de tutorial hebt begrepen en nu deze Raspberry pi telegram-bot kunt maken en met Raspberry Pi kunt communiceren met de Telegram-app. Helaas! Als je problemen hebt, laat het me weten via het commentaargedeelte en ik zal proberen contact met je op te nemen. Laat me ook weten hoe je dit project leuk vond of wat je zou willen dat ik hiermee bouw in aankomende projecten.
Ook in onze volgende tutorial. We zullen dit er cooler laten uitzien door de manier te veranderen waarop we commando's verzenden en naar iets meer gerelateerd aan hardware op Raspberry Pi.