- Nødvendige materialer:
- Kredsløbsdiagram:
- Raspberry Python-program:
- Styring af lysdioder med Raspberry Pi og Telegram bot:
Telegram er en optimal applikation, der kan kombineres med Raspberry Pi til alle vores mobile kontrolformål. Det har meget god udviklersupport, og der planlægges snart frigivet mange funktioner for at forbedre Telegram Bots ydeevne. I vores tidligere vejledning lærte vi, hvordan vi kan oprette en telegram-bot til hindbær pi og lærte også at skulle snakke med den og dele billeder, dokumenter og lydfiler.
Nu fortsætter vi til næste trin ved at lære, hvordan vi kan styre GPIO-stifterne på Raspberry Pins ved hjælp af Telegram, så vi leverer hardware-support til vores bot. I denne vejledning forbinder vi fire lysdioder til Raspberry Pi GPIO-ben og skifter dem ved hjælp af naturligt sprog (chatter som) fra Telegram. Lyder interessant, ikke? Lad os komme i gang.
Nødvendige materialer:
- Fire LED (enhver farve)
- Raspberry Pi (med internetforbindelse)
- Brødbræt
- Tilslutning af ledninger
Forudsætninger:
Inden du går videre med vejledningen, skal du sørge for, at din Raspberry Pi har forbindelse til internettet, og at du kan køre python-programmer på din Pi. Læs også den foregående vejledning for at vide, hvordan du konfigurerer Telegram-bot med Raspberry Pi Pi, da jeg antager, at du er fortrolig med de ting for at fortsætte med projektet.
Hvis du er ny hos Raspberry Pi, skal du følge vores artikel om Raspberry Pi Introduktion og andre Raspberry Pi-vejledninger.
Kredsløbsdiagram:
Kredsløbsdiagrammet til styring af lysdioder ved hjælp af Raspberry Pi og Telegram Android App er intet mere end fire lysdioder og nogle forbindelsesledninger. Vi har ikke brug for de nuværende begrænsende modstande, da Raspberry Pi GPIO-stifter fungerer på 3.3V TTL. Følg kredsløbet nedenfor, og tilslut din LED.
Følgende tabel hjælper dig med at bestemme pin-nummeret og GPIO-nummeret til tilslutning af fire lysdioder.
Led Terminal |
Pinkode |
GPIO-nummer |
Grøn anode |
Pin 31 |
GPIO 6 |
Rød anode |
Pin 33 |
GPIO 13 |
Gul anode |
Pin 35 |
GPIO 19 |
Hvid anode |
Pin 37 |
GPIO 26 |
Katode af alle fire |
Pin 39 |
Jord |
Nedenfor er kredsløbsdiagrammet, hvor fire lysdioder er tilsluttet i henhold til tabellen ovenfor:
Når dine forbindelser er, skal din hardwareopsætning se ud som noget nedenfor.
Raspberry Python-program:
Når hardwaren er klar, kan vi fortsætte med Python-programmet. I dette program skal vi læse de data (besked), der sendes fra Telegram-bot og skifte lysdioden i overensstemmelse hermed. For at gøre det mere naturligt kan vi i stedet for at kontrollere hver sætning og hårdt kode disse sætninger i vores program kontrollere for ord og fortsætte i overensstemmelse hermed.
Så programmet vil primært tjekke for to ord, de er til og fra. Når det ene af disse to ord er registreret, ser det efter andre nøgleord som hvid, gul, grøn og rød. Den respektive farve-LED skiftes kun, hvis ordet registreres. Vi opdaterer også en streng for de opdagede ord for at sende en besked tilbage til telegram bot.
Det komplette program findes nederst på denne side; lige nedenfor har jeg forklaret programmet ved at bryde det op i små meningsfulde skridt.
For at dette program skal fungere, har vi brug for telepotten, der downloades og importeres i vores Raspberry Pi. I vores tidligere vejledning har vi allerede downloadet teleporten inde i vores Raspberry Pi, så nu skal vi bare importere det til vores program sammen med GPIO-biblioteket som vist nedenfor.
importer RPi.GPIO som GPIO import telepot fra telepot.loop importer MessageLoop
Vi styrer for LED-lys ved hjælp af dette program, og farven på LED'erne vil være hvid, gul, rød og grøn. De er forbundet til stifterne vist i kredsløbsdiagrammet; lad os definere pinnavne for disse lysdioder baseret på deres farve, så den bruges i programmet.
hvid = 26 gul = 19 rød = 13 grøn = 6
Det næste trin ville være at definere alle disse LED-ben som outputben og definere dem som slået fra som standard ved hjælp af nedenstående linjer.
#LED Hvid GPIO.setup (hvid, GPIO.OUT) GPIO.output (hvid, 0) # Fra oprindeligt #LED Gul GPIO.setup (gul, GPIO.OUT) GPIO.output (gul, 0) # Fra oprindeligt #LED Rød GPIO.setup (rød, GPIO.OUT) GPIO.output (rød, 0) # Fra oprindeligt #LED grøn GPIO.setup (grøn, GPIO.OUT) GPIO.output (grøn, 0) # Fra oprindeligt
Som vi lærte i vores tidligere tutorial, vil alle de handlinger, der skal udføres af Raspberry-bot, blive defineret inde i funktionshandlingen. Her er vi nødt til at få bot til at lytte til den besked, der sendes fra mobilen, sammenligne den med nogle nøgleord og skifte lysdiode i overensstemmelse hermed.
For hver besked, vi sender fra mobilen, vil der være et chat-id og en kommando. Dette chat-id kræves af programmet for at svare tilbage til afsenderen. Så vi gemmer chat-id'et og beskeden som vist nedenfor.
chat_id = msg kommando = msg
Uanset hvad vi sender fra telefonen, gemmes nu som streng i kommandoen variabel. Så alt hvad vi skal gøre er at kontrollere nøgleord i denne variabel. Python har en kommando, der gør tingene lette her. For eksempel, hvis vi skal kontrollere, om ordet "on" er til stede i den streng, der er gemt i kommandovariablen, kan vi simpelthen bruge nedenstående linje.
hvis 'til' i kommando:
På samme måde kontrollerer vi for alle nøgleord, når vi først modtager en "on", fortsætter vi med at kontrollere, hvilken farve brugeren har nævnt. Dette gøres også med de samme kommandoer ved at sammenligne de samme nøgleord. Vi opdaterer også en streng med navnet meddelelse, der kan besvares tilbage til brugeren som en statusmeddelelse.
hvis 'til' i kommando: meddelelse = "Tændt" hvis 'hvid' i kommando: besked = besked + "hvid" GPIO.output (hvid, 1) hvis 'gul' i kommando: besked = besked + "gul" GPIO.output (gul, 1) hvis 'rød' i kommando: meddelelse = besked + "rød" GPIO. output (rød, 1) hvis 'grøn' i kommando: besked = besked + "grøn" GPIO.output (grøn, 1) hvis 'alt' i kommando: besked = besked + "alt" GPIO.output (hvid, 1) GPIO.output (gul, 1) GPIO.output (rød, 1) GPIO.output (grøn, 1) besked = besked + "lys (e)" telegram_bot.sendMessage (chat_id, besked)
Som vist ovenfor ser vi efter nøgleord som 'grøn', 'hvid', 'rød', 'gul' og 'alt' og 'tændt' den bestemte LED alene. Når jobbet er udført, sender vi en besked tilbage til brugeren om, hvad der lige er sket. Den samme metode kan bruges til at slukke lysene godt.
hvis 'fra' i kommando: meddelelse = "Deaktiveret" hvis 'hvid' i kommando: besked = besked + "hvid" GPIO.output (hvid, 0) hvis 'gul' i kommando: besked = besked + "gul" GPIO.output (gul, 0) hvis 'rød' i kommando: meddelelse = besked + "rød" GPIO. output (rød, 0) hvis 'grøn' i kommando: meddelelse = besked + "grøn" GPIO.output (grøn, 0) hvis 'alt' i kommandoen: meddelelse = besked + "alt" GPIO.output (hvid, 0) GPIO.output (gul, 0) GPIO.output (rød, 0) GPIO.output (grøn, 0) besked = besked + "lys (e)" telegram_bot.sendMessage (chat_id, besked)
Styring af lysdioder med Raspberry Pi og Telegram bot:
Tilslut dine lysdioder og start dit program på python. Sørg for, at du har ændret Token-adressen til din bot. Og start med at skrive de kommandoer, du ønsker. For eksempel for at tænde det røde og gule lys kan du bruge en af følgende kommandoer.
1.Tænd for rødt og gult lys
2.Tænd for rød og gul farve til højre
3. På rød og gul
4.Please sat på den gule og røde lys
Som du kan se, ser bot kun efter nøgleordene og vil ignorere de andre ord i sætningen, på denne måde kan du tale med det naturligt. Den komplette bearbejdning af projektet kan findes i den video, der er vist i slutningen af denne side.
Fortsæt! leg med dit projekt og have det sjovt. Du kan tage det til et helt nyt niveau nu. Med begge vejledningerne kombineret har vi styrken til at styre enhver hardware fra vores smartphone overalt i verden og også få input / resultater fra vores Raspberry Pi i form af besked, lyd, billede og endda som dokument. Hvis du udskifter lysdioderne med relæer og AC-apparater, kan det være en smarttelefonstyret hjemmeautomatisering. Så brug din kreativitet og opbyg dine egne seje projekter…
Håber du kunne lide projektet og nød at bygge noget lignende. Fortæl mig, hvis du har problemer gennem kommentarsektionen, og jeg hjælper dig gerne. Del også din seje idé med mig, og lad os se, hvad vi kan bygge.