- Material som krävs:
- Kretsschema:
- Raspberry Python-program:
- Kontrollera lysdioder med Raspberry Pi och Telegram bot:
Telegram är en optimal applikation att kombinera med Raspberry Pi för alla våra mobila kontrolländamål. Det har mycket bra utvecklarstöd och många funktioner planeras att släppas snart för att förbättra Telegram Bots prestanda. I vår tidigare handledning lärde vi oss hur vi kan ställa in en telegram-bot för hallon pi och lärde oss också att prata med den och dela bilder, dokument och ljudfiler.
Nu fortsätter vi till nästa steg genom att lära oss hur vi kan styra GPIO-stiften på hallonstift med hjälp av Telegram, så att vi ger lite hårdvarustöd för vår bot. I den här guiden kommer vi att ansluta fyra lysdioder till Raspberry Pi GPIO-stift och växla dem med hjälp av naturligt språk (chatta som) från Telegram. Låter intressant, eller hur? Låt oss komma igång.
Material som krävs:
- Fyra LED (valfri färg)
- Raspberry Pi (med internetanslutning)
- Bakbord
- Anslutande ledningar
Förutsättningar:
Innan du fortsätter med handledningen, se till att din Raspberry Pi är ansluten till internet och att du kan köra pythonprogram på din Pi. Läs också föregående handledning för att veta hur man ställer in Telegram-botten med Raspberry Pi Pi, eftersom jag antar att du är bekant med det där för att fortsätta med projektet.
Om du är ny på Raspberry Pi följ sedan vår Raspberry Pi introduktionsartikel och andra Raspberry Pi-handledning.
Kretsschema:
Kretsschemat för att styra lysdioder med Raspberry Pi och Telegram Android App är inget annat än fyra lysdioder och några anslutningsledningar. Vi behöver inte de nuvarande begränsningsmotstånden eftersom Raspberry Pi GPIO-stiften fungerar på 3,3 V TTL. Följ kretsen nedan och anslut din LED.
Följande tabell hjälper dig att bestämma stiftnummer och GPIO-nummer för anslutning av fyra lysdioder.
Led Terminal |
Pinkod |
GPIO-nummer |
Grön anod |
Stift 31 |
GPIO 6 |
Röd anod |
Stift 33 |
GPIO 13 |
Gul anod |
Stift 35 |
GPIO 19 |
Vit anod |
Stift 37 |
GPIO 26 |
Katod av alla fyra |
Stift 39 |
Jord |
Nedan är kretsschemat där fyra lysdioder är anslutna enligt tabellen ovan:
När dina anslutningar har gjorts ska din hårdvaruinstallation se ut så här nedan.
Raspberry Python-program:
När hårdvaran är klar kan vi fortsätta med Python-programmet. I det här programmet måste vi läsa data (meddelande) som skickas från Telegram-botten och växla lysdioden därefter. För att göra det mer naturligt kan vi istället för att kontrollera varje mening och hårdkoda dessa meningar i vårt program söka efter ord och fortsätta därefter.
Så programmet kommer främst att söka efter två ord, de är på och av. När ett av dessa två ord upptäcks kommer det att leta efter andra nyckelord som vitt, gult, grönt och rött. Varje färg-lysdiod växlas endast om ordet detekteras. Vi kommer också att uppdatera en sträng för de upptäckta orden för att skicka ett meddelande tillbaka till telegram bot.
Det fullständiga programmet finns längst ner på denna sida; strax nedanför har jag förklarat programmet genom att bryta det i små meningsfulla munkar.
För att det här programmet ska fungera behöver vi telepoten laddas ner och importeras i vår Raspberry Pi. I vår tidigare handledning har vi redan laddat ner teleporten i vår Raspberry Pi, så nu måste vi bara importera den till vårt program tillsammans med GPIO-biblioteket som visas nedan.
importera RPi.GPIO som GPIO importera telepot från telepot.loop importera MessageLoop
Vi kommer att kontrollera för LED-lampor med hjälp av detta program och färgerna på lysdioderna kommer att vara vita, gula, röda och gröna. De är anslutna till stiften som visas i kretsschemat; låt oss definiera stiftnamnen för dessa lysdioder baserat på deras färg så att de används i programmet.
vit = 26 gul = 19 röd = 13 grön = 6
Nästa steg skulle vara att definiera alla dessa LED-stift som utgångsstift och definiera dem som avstängda som standard med hjälp av nedanstående rader.
#LED Vit GPIO.setup (vit, GPIO.OUT) GPIO.output (vit, 0) # Off initialt #LED Yellow GPIO.setup (gul, GPIO.OUT) GPIO.output (gul, 0) # Off initialt #LED Röd GPIO.setup (röd, GPIO.OUT) GPIO.output (röd, 0) # Från ursprungligen #LED grön GPIO.setup (grön, GPIO.OUT) GPIO.output (grön, 0) # Från initialt
Som vi lärde oss i vår tidigare handledning kommer alla åtgärder som måste utföras av Raspberry-botten att definieras inuti funktionsåtgärden. Här måste vi göra botten för att lyssna på meddelandet som skickas från mobilen, jämföra det med några nyckelord och växla lysdioden därefter.
För varje meddelande som vi skickar från mobilen kommer det att finnas ett chatt-id och kommando. Detta chatt-ID krävs av programmet för att svara tillbaka till avsändaren. Så vi sparar chatt-id och meddelande enligt nedan.
chat_id = msg command = msg
Nu, vad vi skickar från telefonen kommer att sparas som en sträng i variabeln kommandot . Så allt vi behöver göra är att söka efter nyckelord i denna variabel. Python har ett kommando som gör det enkelt här. Om vi till exempel måste kontrollera om ordet "on" finns i strängen som är lagrad i kommandovariabeln kan vi helt enkelt använda nedanstående rad.
om 'på' i kommando:
På samma sätt kontrollerar vi för alla nyckelord, när vi väl har fått ett "on" fortsätter vi att kontrollera vilken färg användaren har nämnt. Detta görs också med samma kommandon genom att jämföra samma nyckelord. Vi uppdaterar också en sträng som heter meddelande som kan besvaras tillbaka till användaren som ett statusmeddelande.
om 'på' i kommando: meddelande = "Aktiverat" om 'vit' i kommando: meddelande = meddelande + "vit" GPIO.output (vit, 1) om 'gul' i kommando: meddelande = meddelande + "gul" GPIO.output (gul, 1) om "röd" i kommando: meddelande = meddelande + "röd" GPIO. utgång (röd, 1) om "grön" i kommando: meddelande = meddelande + "grön" GPIO.output (grön, 1) om 'allt' i kommandot: meddelande = meddelande + "allt" GPIO.output (vit, 1) GPIO.output (gul, 1) GPIO.output (röd, 1) GPIO.output (grön, 1) meddelande = meddelande + "ljus (er)" telegram_bot.sendMessage (chat_id, meddelande)
Som visas ovan letar vi efter nyckelord som 'grönt', 'vitt', 'rött', 'gult' och 'allt' och 'tändt' den specifika lysdioden ensam. När jobbet är klart skickar vi tillbaka ett meddelande till användaren om vad som just hände. Det Samma metod kan användas för att släcka ljuset av väl.
om 'av' i kommando: meddelande = "Avstängd" om 'vit' i kommando: meddelande = meddelande + "vit" GPIO.output (vit, 0) om 'gul' i kommando: meddelande = meddelande + "gul" GPIO.output (gul, 0) om "röd" i kommando: meddelande = meddelande + "röd" GPIO. utgång (röd, 0) om "grön" i kommando: meddelande = meddelande + "grön" GPIO.output (grön, 0) om 'allt' i kommandot: meddelande = meddelande + "allt" GPIO.output (vit, 0) GPIO.output (gul, 0) GPIO.output (röd, 0) GPIO.output (grön, 0) meddelande = meddelande + "ljus (er)" telegram_bot.sendMessage (chat_id, meddelande)
Kontrollera lysdioder med Raspberry Pi och Telegram bot:
Anslut dina lysdioder och starta ditt program på python. Se till att du har ändrat Token-adressen för din bot. Och börja skriva in de kommandon du önskar. Till exempel för att slå på det röda och gula ljuset kan du använda något av följande kommando.
1. Slå på rött och gult ljus
2.Sätt på röd och gul färg till höger
3. På rött och gult
4.Sätt på det gula och röda ljuset
Som du kan se söker boten bara efter nyckelorden och kommer att ignorera de andra orden i meningen, på det här sättet kan du tala till det naturligt. Det fullständiga arbetet med projektet finns i videon i slutet av denna sida.
Varsågod! spela med ditt projekt och ha kul. Du kan ta det till en helt ny nivå nu. Med både handboken kombinerat har vi makten att styra vilken hårdvara som helst från vår smarttelefon var som helst från världen och också få ingångar / resultat från vår Raspberry Pi i form av meddelande, ljud, bild och till och med som dokument. Om du byter ut lysdioderna med reläer och växelströmsapparater kan det vara en smart telefonstyrd hemautomation. Så använd din kreativitet och bygg dina egna coola projekt…
Hoppas du gillade projektet och tyckte om att bygga något liknande. Låt mig veta om du har några problem genom kommentarsektionen så hjälper jag dig gärna. Dela också din coola idé med mig och låt oss se vad vi kan bygga.