- Vereiste materialen:
- Schakelschema:
- Raspberry Python-programma:
- LED's aansturen met Raspberry Pi en Telegram-bot:
Telegram is een optimale applicatie om te combineren met Raspberry Pi voor al onze mobiele besturingsdoeleinden. Het heeft een zeer goede ondersteuning voor ontwikkelaars en er staan binnenkort veel functies gepland om de prestaties van Telegram Bots te verbeteren. In onze vorige tutorial hebben we geleerd hoe we een telegrambot voor raspberry pi kunnen opzetten en we hebben ook geleerd om ermee te chatten en afbeeldingen, documenten en audiobestanden te delen.
Nu gaan we door naar de volgende stap door te leren hoe we de GPIO-pinnen op Raspberry-pinnen kunnen besturen met Telegram, zodat we wat hardware-ondersteuning voor onze bot bieden. In deze tutorial zullen we vier LED's verbinden met Raspberry Pi GPIO-pinnen en ze schakelen met behulp van natuurlijke taal (chatten zoals) van Telegram. Klinkt interessant toch? Laten we beginnen.
Vereiste materialen:
- Vier LED's (elke kleur)
- Raspberry Pi (met internetverbinding)
- Breadboard
- Draden aansluiten
Vereisten:
Voordat u doorgaat met de zelfstudie, moet u ervoor zorgen dat uw Raspberry Pi is verbonden met internet en dat u python-programma's op uw Pi kunt uitvoeren. Lees ook de vorige tutorial om te weten hoe je de Telegram-bot instelt met Raspberry Pi Pi, aangezien ik aanneem dat je bekend bent met die dingen om door te gaan met het project.
Als je Raspberry Pi nieuw bent, volg dan ons Raspberry Pi-introductieartikel en andere Raspberry Pi-zelfstudies.
Schakelschema:
Het schakelschema voor het besturen van LED's met behulp van de Raspberry Pi en Telegram Android-app is niets meer dan vier LED's en enkele verbindingsdraden. We hebben de stroombegrenzende weerstanden niet nodig, aangezien de Raspberry Pi GPIO-pinnen werken op 3.3V TTL. Volg het onderstaande circuit en sluit uw LED aan.
De volgende tabel helpt u bij het bepalen van de pincode en het GPIO-nummer voor de aansluiting van vier leds.
Led-terminal |
Pincode |
GPIO-nummer |
Groene anode |
Speld 31 |
GPIO 6 |
Rode anode |
Pin 33 |
GPIO 13 |
Gele anode |
Pin 35 |
GPIO 19 |
Witte anode |
Speld 37 |
GPIO 26 |
Kathode van alle vier |
Pin 39 |
Grond |
Hieronder ziet u het schakelschema waarin vier LED's zijn aangesloten volgens de bovenstaande tabel:
Zodra uw verbindingen zijn gemaakt, zou uw hardware-installatie er als volgt uit moeten zien.
Raspberry Python-programma:
Zodra de hardware klaar is, kunnen we doorgaan met het Python-programma. In dit programma moeten we de gegevens (bericht) lezen die door de Telegram-bot zijn verzonden en de LED dienovereenkomstig schakelen. Om het natuurlijker te maken, in plaats van elke zin te controleren en die zin in ons programma hard te coderen, kunnen we op woorden controleren en dienovereenkomstig verder gaan.
Het programma controleert dus voornamelijk op twee woorden, ze staan aan en uit. Zodra een van deze twee woorden is gedetecteerd, zoekt het naar andere trefwoorden zoals wit, geel, groen en rood. De respectievelijke kleuren-LED wordt alleen omgeschakeld als het woord wordt gedetecteerd. We zullen ook een string bijwerken voor de gedetecteerde woorden om een bericht terug te sturen naar de telegrambot.
Het volledige programma vindt u onderaan deze pagina; hieronder heb ik het programma uitgelegd door het op te splitsen in kleine betekenisvolle rommel.
Om dit programma te laten werken, moeten we de telepot downloaden en importeren in onze Raspberry Pi. In onze vorige tutorial hebben we de teleport al gedownload in onze Raspberry Pi, dus nu moeten we het gewoon in ons programma importeren, samen met de GPIO-bibliotheek, zoals hieronder wordt weergegeven.
importeer RPi.GPIO als GPIO importeer telepot uit telepot.loop importeer MessageLoop
Met dit programma gaan we voor LED-verlichting controleren en de kleur van de LED's is wit, geel, rood en groen. Ze zijn verbonden met de pinnen weergegeven in het schakelschema; laten we de pinnamen voor deze LED's definiëren op basis van hun kleur, zodat we ze in het programma kunnen gebruiken.
wit = 26 geel = 19 rood = 13 groen = 6
De volgende stap zou zijn om al deze LED-pinnen als uitvoerpinnen te definiëren en ze te definiëren als standaard uitgeschakeld door de onderstaande regels te gebruiken.
#LED Wit GPIO.setup (wit, GPIO.OUT) GPIO.output (wit, 0) #Uit aanvankelijk #LED Geel GPIO.setup (geel, GPIO.OUT) GPIO.output (geel, 0) #Uit aanvankelijk #LED Rood GPIO.setup (rood, GPIO.OUT) GPIO.output (rood, 0) #Uit aanvankelijk #LED groen GPIO.setup (groen, GPIO.OUT) GPIO.output (groen, 0) #Uit aanvankelijk
Zoals we in onze vorige tutorial hebben geleerd, worden alle acties die door de Raspberry-bot moeten worden uitgevoerd, binnen de functie-actie gedefinieerd. Hier moeten we de bot laten luisteren naar het bericht dat vanaf mobiel wordt verzonden, het met enkele zoekwoorden vergelijken en dienovereenkomstig LED schakelen.
Voor elk bericht dat we vanaf mobiel verzenden, is er een chat-ID en een commando. Dit chat-ID is vereist door het programma om terug te kunnen sturen naar de afzender. Dus slaan we de chat-id en het bericht op zoals hieronder weergegeven.
chat_id = msg commando = msg
Nu, wat we vanaf de telefoon verzenden, wordt opgeslagen als een tekenreeks in de variabele opdracht . Dus alles wat we hoeven te doen is zoeken naar sleutelwoorden in deze variabele. Python heeft een commando om het hier gemakkelijk te maken. Als we bijvoorbeeld moeten controleren of het woord "aan" aanwezig is in de string die is opgeslagen in de commandovariabele , kunnen we eenvoudig de onderstaande regel gebruiken.
als 'aan' in opdracht:
Op dezelfde manier controleren we op alle trefwoorden. Zodra we een "aan" ontvangen, gaan we verder met het controleren voor welke kleur de gebruiker heeft genoemd. Dit wordt ook gedaan door dezelfde commando's door dezelfde trefwoorden te vergelijken. We werken ook een string met de naam bericht bij die als statusbericht aan de gebruiker kan worden beantwoord.
if 'on' in opdracht: message = "Ingeschakeld" if 'white' in opdracht: bericht = bericht + "wit" GPIO.output (wit, 1) if 'geel' in opdracht: bericht = bericht + "geel" GPIO.output (geel, 1) indien 'rood' in commando: bericht = bericht + "rood" GPIO.output (rood, 1) indien 'groen' in commando: bericht = bericht + "groen" GPIO.output (groen, 1) als 'alles' in opdracht: bericht = bericht + "alle" GPIO.output (wit, 1) GPIO.output (geel, 1) GPIO.output (rood, 1) GPIO.output (groen, 1) bericht = bericht + "light (s)" telegram_bot.sendMessage (chat_id, bericht)
Zoals hierboven weergegeven, zoeken we naar trefwoorden als 'groen', 'wit', 'rood', 'geel' en 'alles' en 'Aan' alleen die specifieke LED. Zodra de klus is geklaard, sturen we een bericht terug naar de gebruiker over wat er net is gebeurd. De Dezelfde methode kan worden gebruikt om de lichten uit te schakelen goed af.
if 'off' in commando: message = "Uitgeschakeld" if 'white' in commando: bericht = bericht + "wit" GPIO.output (wit, 0) if 'geel' in commando: bericht = bericht + "geel" GPIO.output (geel, 0) indien 'rood' in commando: bericht = bericht + "rood" GPIO.output (rood, 0) indien 'groen' in commando: bericht = bericht + "groen" GPIO.output (groen, 0) als 'alles' in opdracht: bericht = bericht + "alle" GPIO.output (wit, 0) GPIO.output (geel, 0) GPIO.output (rood, 0) GPIO.output (groen, 0) bericht = bericht + "light (s)" telegram_bot.sendMessage (chat_id, bericht)
LED's aansturen met Raspberry Pi en Telegram-bot:
Verbind je LED's en start je programma op Python. Zorg ervoor dat je het tokenadres voor je bot hebt gewijzigd. En begin met het typen van de gewenste commando's. Om bijvoorbeeld het rode en gele licht in te schakelen, kunt u een van de volgende opdrachten gebruiken.
1.Schakel rood en geel licht in
2.Schakel de rode en gele kleur rechts in
3. Op rood en geel
4.Vervolgens gezet op de gele en rode licht
Zoals je kunt zien, zoekt de bot alleen naar de trefwoorden en negeert hij de andere woorden in de zin, op deze manier kun je er op een natuurlijke manier tegen praten. De volledige werking van het project is te vinden op de video aan het einde van deze pagina.
Doe Maar! speel met je project en heb plezier. Je kunt het nu naar een heel nieuw niveau tillen. Met de combinatie van beide tutorials hebben we de kracht om elke hardware vanaf onze smartphone overal ter wereld te bedienen en ook invoer / resultaten van onze Raspberry Pi te krijgen in de vorm van een bericht, audio, afbeelding en zelfs als document. Als je de leds vervangt door relais en wisselstroomtoestellen, dan kan het een smartphonegestuurde domotica zijn. Dus gebruik je creativiteit en bouw je eigen coole projecten…
Ik hoop dat je het project leuk vond en het leuk vond om iets soortgelijks te bouwen. Laat het me weten als je problemen hebt via het commentaargedeelte en ik help je graag verder. Deel ook je gave idee met mij en laat ons zien wat we kunnen bouwen.