- Materiale necesare:
- Diagrama circuitului:
- Program Raspberry Python:
- Controlul LED-urilor cu Raspberry Pi și bot Telegram:
Telegram este o aplicație optimă de combinat cu Raspberry Pi pentru toate scopurile noastre de control mobil. Are un suport foarte bun pentru dezvoltatori și sunt planificate să fie lansate în curând o mulțime de caracteristici pentru a spori performanța roboților Telegram. În tutorialul nostru anterior am aflat cum putem configura un bot de telegramă pentru raspberry pi și, de asemenea, am învățat să discutăm cu acesta și să partajăm imagini, documente și fișiere audio.
Acum, vom trece la pasul următor, învățând cum putem controla pinii GPIO pe pinii Raspberry folosind Telegram, astfel încât să oferim un anumit suport hardware pentru botul nostru. În acest tutorial vom conecta patru LED-uri la pinii Raspberry Pi GPIO și le vom comuta folosind limbaj natural (de tip chat) de la Telegram. Sună interesant nu? Să începem.
Materiale necesare:
- Patru LED-uri (orice culoare)
- Raspberry Pi (cu conexiune la internet)
- Breadboard
- Conectarea firelor
Precondiții:
Înainte de a continua cu tutorialul, asigurați-vă că Raspberry Pi este conectat la internet și că puteți rula programe python pe Pi. De asemenea, citiți tutorialul anterior pentru a afla cum să configurați botul Telegram cu Raspberry Pi Pi, deoarece voi presupune că sunteți familiarizați cu acele lucruri pentru a continua cu proiectul.
Dacă sunteți nou în Raspberry Pi, urmați articolul nostru de introducere Raspberry Pi și alte tutoriale Raspberry Pi.
Diagrama circuitului:
Diagrama circuitului pentru controlul LED-urilor folosind aplicația Android Raspberry Pi și Telegram nu este altceva decât patru LED-uri și câteva fire de conectare. Nu vom avea nevoie de rezistențele de limitare a curentului, deoarece pinii Raspberry Pi GPIO funcționează pe 3,3V TTL. Urmați circuitul de mai jos și conectați-vă LED-ul.
Tabelul următor vă va ajuta să determinați numărul pinului și numărul GPIO pentru conectarea a patru leduri.
Terminal LED |
Numarul pin |
Număr GPIO |
Anod verde |
Pinul 31 |
GPIO 6 |
Anodul Roșu |
Pinul 33 |
GPIO 13 |
Anod galben |
Pinul 35 |
GPIO 19 |
Anodul alb |
Pinul 37 |
GPIO 26 |
Catod al tuturor celor patru |
Pinul 39 |
Sol |
Mai jos este schema de circuite în care sunt conectate patru LED-uri conform tabelului de mai sus:
Odată ce vă conectați setările hardware ar trebui să arate ca așa ceva mai jos.
Program Raspberry Python:
Odată ce hardware-ul este gata, putem continua cu programul Python. În acest program trebuie să citim datele (mesajul) trimise de la botul Telegram și să comutăm LED-ul în consecință. Pentru a-l face mai natural, în loc să verificăm fiecare propoziție și să codificăm cu duritate acele propoziții din programul nostru, putem verifica dacă există cuvinte și să procedăm în consecință.
Deci, programul va verifica în primul rând două cuvinte, acestea sunt activate și oprite. Odată ce a detectat oricare dintre aceste două cuvinte, va căuta alte cuvinte cheie precum alb, galben, verde și roșu. LED-ul color respectiv va fi comutat numai dacă este detectat cuvântul. De asemenea, vom actualiza un șir pentru cuvintele detectate pentru a trimite un mesaj înapoi la telegrama bot.
Programul complet poate fi găsit în partea de jos a acestei pagini; chiar mai jos, am explicat programul, împărțindu-l în mici joncțiuni semnificative.
Pentru ca acest program să funcționeze, avem nevoie de telepot descărcat și importat în Raspberry Pi. În tutorialul nostru anterior am descărcat deja teleportul în Raspberry Pi, așa că acum trebuie doar să-l importăm în programul nostru împreună cu biblioteca GPIO așa cum se arată mai jos.
import RPi.GPIO ca GPIO import telepot din telepot.loop import MessageLoop
Vom controla luminile LED folosind acest program, iar culoarea LED-urilor va fi alb, galben, roșu și verde. Acestea sunt conectate la pinii arătați în schema de circuit; să definim numele pinilor pentru aceste LED-uri pe baza culorii lor, astfel încât să le folosească în program.
alb = 26 galben = 19 roșu = 13 verde = 6
Următorul pas ar fi definirea tuturor acestor pini LED ca pini de ieșire și definirea lor ca oprită implicit folosind liniile de mai jos.
#LED White GPIO.setup (alb, GPIO.OUT) GPIO.output (alb, 0) #Off initial #LED Yellow GPIO.setup (galben, GPIO.OUT) GPIO.output (galben, 0) #Off initial #LED Red GPIO.setup (roșu, GPIO.OUT) GPIO.output (roșu, 0) #Off initial #LED verde GPIO.setup (verde, GPIO.OUT) GPIO.output (verde, 0) #Off initial
După cum am aflat în tutorialul nostru anterior, toate acțiunile care trebuie făcute de botul Raspberry vor fi definite în cadrul acțiunii funcției. Aici trebuie să facem botul pentru a asculta mesajul trimis de pe mobil, pentru a-l compara cu unele cuvinte cheie și pentru a comuta LED-ul în consecință.
Pentru fiecare mesaj pe care îl trimitem de pe mobil, va exista un ID de chat și o comandă. Acest ID de chat este necesar de către program pentru a răspunde înapoi expeditorului. Deci, salvăm ID-ul chatului și mesajul așa cum se arată mai jos.
chat_id = msg command = msg
Acum, orice trimitem de pe telefon va fi salvat ca șir în comanda variabilă. Deci, tot ce trebuie să facem este să verificăm cuvintele cheie din această variabilă. Python are o comandă care facilitează lucrurile aici. De exemplu, dacă trebuie să verificăm dacă cuvântul „pornit” este prezent în șirul stocat în variabila de comandă , putem folosi pur și simplu linia de mai jos.
dacă „pornit” la comandă:
În mod similar, verificăm toate cuvintele cheie, după ce primim un „activat”, continuăm să verificăm ce culoare a menționat utilizatorul. Acest lucru se face și prin aceleași comenzi prin compararea acelorași cuvinte cheie. De asemenea, actualizăm un șir numit mesaj care poate fi răspuns înapoi utilizatorului ca mesaj de stare.
dacă 'on' la comandă: mesaj = "Activat" dacă 'alb' la comandă: mesaj = mesaj + "alb" GPIO.output (alb, 1) dacă 'galben' la comandă: mesaj = mesaj + "galben" GPIO.output (galben, 1) dacă „roșu” în comandă: mesaj = mesaj + „roșu” GPIO.output (roșu, 1) dacă „verde” în comandă: mesaj = mesaj + „verde” GPIO.output (verde, 1) dacă „toate” în comandă: mesaj = mesaj + „toate” GPIO.output (alb, 1) GPIO.output (galben, 1) GPIO.output (roșu, 1) GPIO.output (verde, 1) mesaj = mesaj + "light (s)" telegram_bot.sendMessage (chat_id, mesaj)
Așa cum se arată mai sus, căutăm cuvinte cheie precum „verde”, „alb”, „roșu”, „galben” și „toate” și „Activat” respectivul LED special. Odată ce lucrarea este terminată, îi trimitem un mesaj utilizatorului despre ceea ce tocmai s-a întâmplat. Aceeași metodă poate fi utilizată pentru a opri luminile off bine.
dacă 'off' la comandă: mesaj = "Dezactivat" dacă 'alb' la comandă: mesaj = mesaj + GPIO "alb". ieșire (alb, 0) dacă 'galben' la comandă: mesaj = mesaj + GPIO "galben".output (galben, 0) dacă „roșu” în comandă: mesaj = mesaj + „roșu” GPIO.output (roșu, 0) dacă „verde” în comandă: mesaj = mesaj + „verde” GPIO.output (verde, 0) dacă „toate” în comandă: mesaj = mesaj + „toate” GPIO.output (alb, 0) GPIO.output (galben, 0) GPIO.output (roșu, 0) GPIO.output (verde, 0) mesaj = mesaj + "light (s)" telegram_bot.sendMessage (chat_id, mesaj)
Controlul LED-urilor cu Raspberry Pi și bot Telegram:
Conectați-vă LED-urile și lansați programul pe python. Asigurați-vă că ați schimbat adresa Token pentru botul dvs. Și începeți să tastați comenzile dorite. De exemplu, pentru a aprinde lumina roșie și galbenă, puteți utiliza oricare dintre următoarele comenzi.
1. Porniți lumina roșie și galbenă
2. Comutați pe roșu și galben dreapta
3. Pe roșu și galben
4.Please pus pe galben și roșu lumina
După cum puteți vedea, robotul caută doar cuvintele cheie și va ignora celelalte cuvinte din propoziție, astfel îi puteți vorbi în mod natural. Funcționarea completă a proiectului poate fi găsită la videoclipul prezentat la sfârșitul acestei pagini.
Dați-i drumul! joacă-te cu proiectul tău și distrează-te. Îl puteți duce la un nivel complet nou acum. Cu atât tutorialul combinat, avem puterea de a controla orice hardware de pe telefonul nostru inteligent oriunde în lume și, de asemenea, de a obține intrări / rezultate de la Raspberry Pi sub formă de mesaj, audio, imagine și chiar ca document. Dacă înlocuiți LED-urile cu relee și aparate de curent alternativ, atunci acesta ar putea fi un sistem de automatizare casnică controlat de un telefon inteligent. Deci, folosește-ți creativitatea și construiește-ți propriile proiecte interesante…
Sper că ți-a plăcut proiectul și ți-a plăcut să construiești ceva similar. Spuneți-mi dacă aveți probleme prin secțiunea de comentarii și vă voi ajuta cu plăcere. Împărtășește-mi și ideea ta grozavă și lasă-ne să vedem ce putem construi.