- Potrebni materiali:
- Shema vezja:
- Program Raspberry Python:
- Upravljanje LED z Raspberry Pi in Telegram botom:
Telegram je optimalna aplikacija za kombiniranje z Raspberry Pi za vse naše namene mobilnega nadzora. Ima zelo dobro podporo za razvijalce, veliko funkcij pa naj bi kmalu izšle za izboljšanje zmogljivosti Telegram Botov. V prejšnji vadnici smo se naučili, kako lahko nastavimo telegramskega bota za malino pi, prav tako pa smo se morali z njo poklepetati in deliti slike, dokumente in zvočne datoteke.
Zdaj bomo nadaljevali z naslednjim korakom, tako da se naučimo, kako lahko s pomočjo Telegrama nadzorujemo GPIO nožke na Raspberry Pins, tako da za našega bota zagotovimo nekaj strojne podpore. V tej vadnici bomo na nožice Raspberry Pi GPIO povezali štiri LED in jih preklopili v naravnem jeziku (v klepetu kot) iz Telegrama. Sliši se zanimivo, kajne? Začnimo.
Potrebni materiali:
- Štiri LED (poljubne barve)
- Raspberry Pi (z internetno povezavo)
- Breadboard
- Priključne žice
Predpogoji:
Preden nadaljujete z vadnico, se prepričajte, da je vaš Raspberry Pi povezan z internetom in da lahko na svojem Pi zaženete programe python. Preberite tudi prejšnjo vadnico, če želite vedeti, kako nastaviti bota Telegram z Raspberry Pi Pi, saj predvidevam, da te stvari poznate za nadaljevanje projekta.
Če ste novi v Raspberry Pi, potem sledite našemu uvodnemu članku o Raspberry Pi in drugih vajah za Raspberry Pi.
Shema vezja:
Shema vezja za upravljanje LED z uporabo Raspberry Pi in Telegram Android App ni nič drugega kot štiri LED in nekatere povezovalne žice. Trenutnih omejevalnih uporov ne bomo potrebovali, ker zatiči Raspberry Pi GPIO delujejo na 3.3V TTL. Sledite spodnjemu vezju in priključite LED.
Naslednja tabela vam bo pomagala določiti številko PIN in številko GPIO za povezavo štirih LED.
Led terminal |
PIN številka |
Številka GPIO |
Zelena anoda |
Zatič 31 |
GPIO 6 |
Rdeča anoda |
Zatič 33 |
GPIO 13 |
Rumena anoda |
Zatič 35 |
GPIO 19 |
Bela anoda |
Zatič 37 |
GPIO 26 |
Katoda vseh štirih |
Zatič 39 |
Tla |
Spodaj je diagram vezja, v katerem so v skladu z zgornjo tabelo priključene štiri LED:
Ko se povežete, mora biti nastavitev strojne opreme videti nekako takole spodaj.
Program Raspberry Python:
Ko je strojna oprema pripravljena, lahko nadaljujemo s programom Python. V tem programu moramo prebrati podatke (sporočilo), poslane iz Telegramovega bota, in ustrezno preklopiti LED. Da bi bilo bolj naravno, lahko namesto preverjanja vsakega stavka in trdega kodiranja teh stavkov v našem programu preverimo besede in nadaljujemo s tem.
Torej bo program preveril predvsem dve besedi, vklopljeni in izklopljeni sta. Ko zazna eno od teh dveh besed, bo poiskal druge ključne besede, kot so bela, rumena, zelena in rdeča. Ustrezna barvna lučka se bo preklopila le, če bo zaznana beseda. Posodobili bomo tudi niz za zaznane besede, da bodo sporočilo poslali nazaj v telegram bot.
Celoten program najdete na dnu te strani; tik spodaj sem razložil program tako, da sem ga razdelil na majhne pomembne smeti.
Da ta program deluje, potrebujemo telepot , ki smo ga prenesli in uvozili v našo Raspberry Pi. V prejšnji vadnici smo že prenesli teleport v našo Raspberry Pi, zato ga moramo zdaj uvoziti v naš program skupaj s knjižnico GPIO, kot je prikazano spodaj.
uvozi RPi.GPIO kot GPIO uvozi telepot iz telepot.loop uvozi MessageLoop
S tem programom bomo nadzorovali LED luči, barva LED pa bo bela, rumena, rdeča in zelena. Priključeni so na zatiče, prikazane v vezju; nam določiti imena pin za te LED glede na njihovo barvo, tako da jih uporabljajo v programu.
bela = 26 rumena = 19 rdeča = 13 zelena = 6
Naslednji korak bi bil določiti vse te LED zatiče kot izhodne zatiče in jih določiti kot privzeto izklopljene z uporabo spodnjih vrstic.
#LED Bela GPIO.setup (bela, GPIO.OUT) GPIO.output (bela, 0) #Off off prvo #LED Rumena GPIO.setup (rumena, GPIO.OUT) GPIO.output (rumena, 0) #Off prvotno #LED Rdeča GPIO.setup (rdeča, GPIO.OUT) GPIO.output (rdeča, 0) #Of prvotno #LED zelena GPIO.setup (zelena, GPIO.OUT) GPIO.output (zelena, 0) #Off prvotno
Kot smo izvedeli v prejšnji vadnici, bodo vsa dejanja, ki jih mora narediti bot Raspberry, določena znotraj dejanja funkcije. Tu moramo narediti bota, da posluša sporočilo, poslano z mobilnega telefona, ga primerjamo z nekaterimi ključnimi besedami in ustrezno preklopimo LED.
Za vsako sporočilo, ki ga pošljemo z mobilnega telefona, sta ID klepeta in ukaz. Ta ID klepeta mora program odgovoriti pošiljatelju. Tako shranimo ID klepeta in sporočilo, kot je prikazano spodaj.
chat_id = msg ukaz = msg
Zdaj bo vse, kar pošljemo s telefona, shranjeno kot niz v ukazu spremenljivke. Vse, kar moramo storiti, je preveriti ključne besede v tej spremenljivki. Python ima ukaz, da olajša stvari tukaj. Če moramo na primer preveriti, ali je beseda "on" prisotna v nizu, shranjenem v ukazni spremenljivki, lahko preprosto uporabimo spodnjo vrstico.
če je v ukazu 'on':
Podobno preverimo za vse ključne besede, ko prejmemo »on«, nadaljujemo s preverjanjem, katero barvo je uporabnik omenil. To naredijo tudi isti ukazi s primerjavo istih ključnih besed. Posodobimo tudi niz z imenom sporočilo, na katerega lahko uporabniku odgovorimo kot sporočilo o stanju.
če je 'on' v ukazu: message = "vklopljen", če je 'white' v ukazu: message = message + "white" GPIO.output (white, 1) if 'yellow' v ukazu: message = message + "yellow" GPIO.output (rumena, 1), če je v ukazu 'rdeča': message = message + "rdeča" GPIO.output (rdeča, 1), če je v ukazu 'green' sporočilo = message + "green" GPIO.output (zelena, 1) če je 'all' v ukazu: message = message + "all" GPIO.output (bela, 1) GPIO.output (rumena, 1) GPIO.output (rdeča, 1) GPIO.output (zelena, 1) message = message + "lučka (i)" telegram_bot.sendMessage (chat_id, sporočilo)
Kot je prikazano zgoraj, iščemo ključne besede, kot so "zelena", "bela", "rdeča", "rumena" in "vse" ter "vklopljena" samo ta LED. Ko je delo končano, uporabniku pošljemo sporočilo o tem, kaj se je pravkar zgodilo. Z isto metodo lahko dobro izklopimo luči.
če je 'ukaz' izklopljen: sporočilo = "izklopljen", če je v ukazu 'bel': sporočilo = sporočilo + "bel", izhod (bel, 0), če je v ukazu 'rumen': sporočilo = sporočilo + 'rumen' GPIO.output (rumena, 0), če je v ukazu 'rdeča': message = message + "rdeča" GPIO.output (rdeča, 0), če je v ukazu 'green' sporočilo = message + "green" GPIO.output (green, 0) če je 'all' v ukazu: message = message + "all" GPIO.output (bela, 0) GPIO.output (rumena, 0) GPIO.output (rdeča, 0) GPIO.output (zelena, 0) message = message + "lučka (i)" telegram_bot.sendMessage (chat_id, sporočilo)
Upravljanje LED z Raspberry Pi in Telegram botom:
Priključite LED in zaženite program na pythonu. Prepričajte se, da ste spremenili naslov žetona za svojega bota. In začnite vnašati želene ukaze. Na primer, da vklopite rdečo in rumeno luč, lahko uporabite katerega koli od naslednjih ukazov.
1. Vklopite rdečo in rumeno luč
2. Desno vklopite rdečo in rumeno barvo
3. Na rdeči in rumeni
4.Please dal na v rumeno in rdečo svetlobo
Kot lahko vidite, da bot išče samo ključne besede in bo prezrl druge besede v stavku, tako lahko z njim govorite naravno. Popolno delovanje projekta najdete v videoposnetku na koncu te strani.
Kar daj! igrajte se s svojim projektom in se zabavajte. Zdaj ga lahko dvignete na povsem novo raven. Z obema vadnicama imamo moč nadzorovati katero koli strojno opremo s pametnega telefona kjer koli po svetu, prav tako pa dobimo vnose / rezultate iz naše Raspberry Pi v obliki sporočil, zvoka, slike in celo kot dokument. Če LED zamenjate z releji in napravami za izmenični tok, bi to lahko bila pametna telefon, ki jo upravlja avtomatizacija doma. Torej, uporabite svojo kreativnost in ustvarite svoje lastne kul projekte…
Upam, da vam je bil projekt všeč in ste uživali pri gradnji česa podobnega. Če imate kakršne koli težave, mi sporočite v oddelku za komentarje in z veseljem vam bom pomagal. Delite z mano tudi svojo kul idejo in nam poglejte, kaj lahko zgradimo.