Cuprins:

R Pi - Control de la distanță PA și sistem de iluminare: 4 pași (cu imagini)
R Pi - Control de la distanță PA și sistem de iluminare: 4 pași (cu imagini)
Anonim
R Pi - Sistem de control PA și iluminare la distanță
R Pi - Sistem de control PA și iluminare la distanță
R Pi - Control de la distanță PA și sistem de iluminare
R Pi - Control de la distanță PA și sistem de iluminare
R Pi - Telecomandă PA și sistem de iluminare
R Pi - Telecomandă PA și sistem de iluminare

Acesta este un proiect simplu pentru realizarea de anunțuri audio și pornirea și oprirea luminilor de pe un PI de la un browser web. Iată de ce aveți nevoie:

1) Raspberry Pi cu Apache și PhP preinstalat. Am folosit un Pi v1 vechi pe care îl aveam întins. Presupun că îl aveți conectat la rețeaua de acasă prin Wi-Fi sau Ethernet.

2) Difuzoare audio care pot fi conectate la Pi prin conexiunea difuzorului de ieșire. Am folosit un set vechi de difuzoare dintr-un sistem stereo antic.

3) Set de lumini de copac de Crăciun - am cumpărat-o pe a mea de la Poundland.

4) Cleme de crocodil și cabluri de panou pentru conectarea / testarea Pi la difuzoare și lumini. (Vezi 7)

5) PC sau laptop cu emulator terminal Putty pentru accesarea Raspberry Pi

6) Sârmă termocontractabilă

7) Pistol cu aer cald pentru conectarea difuzoarelor și a firelor de iluminat

Ideea de bază este că folosesc un formular web pentru a face anunțuri la distanță prin intermediul difuzoarelor mele și, de asemenea, să aprind și să sting luminile. Folosesc scripturi PHP care, la rândul lor, execută Espeak pentru bitul de text în vorbire și comenzi GPIO pentru lumini. Presupun că știi cum să instalezi Apache și PhP pe Raspberry Pi. Este foarte bine documentat.

Am încercat să păstrez acest cost redus, așa că am folosit un difuzor vechi de sistem stereo pe care îl aveam și, după ce am îndepărtat conexiunile și am expus cablurile, l-am conectat la un cablu vechi de microfon pe care l-am tăiat și eu. volumul difuzoarelor era mai mic decât un difuzor alimentat extern, puteam alimenta totul de la Raspberry Pi. Același lucru a fost valabil și pentru lumini. Am îndepărtat cutia de alimentare de 3.3v de pe ele, am expus firele și le-am conectat la Pi folosind conectori pentru placa de masă feminină / masculină. Toate acestea le-am conectat cu cleme de crocodil.

După testare și validare, ulterior am conectat toate firele cu fir termocontractabil folosind un pistol cu aer cald.

Pasul 1: Configurați și testați hardware-ul

Configurați și testați hardware-ul
Configurați și testați hardware-ul
Configurați și testați hardware-ul
Configurați și testați hardware-ul
Configurați și testați hardware-ul
Configurați și testați hardware-ul

Am alimentat Pi și am conectat difuzoarele la mufa de ieșire audio a Pi. Am conectat luminile conectând un capăt la GPIO17 (al șaselea pin în jos pe coloana interioară) și GND (al treilea pin în jos pe coloana exterioară) - vezi fotografia de mai sus. Vă rugăm să rețineți că am folosit o versiune PI 1, Așadar, vă rugăm să schimbați PIN-urile în mod corespunzător, dacă utilizați o versiune ulterioară a PI.

Mai sus sunt prezentate firul termocontractabil și pistolul cu aer cald pentru conectarea difuzoarelor și a cablurilor de iluminat

Apoi, cu tot ce am pornit, m-am conectat la Pi folosind Putty de pe laptopul meu Windows. Pentru a găsi adresa IP a Pi, deschideți adresa IP a routerului pe browserul dvs. web (este de obicei ceva de genul 192.168.1.254), care va afișa lista dispozitivelor conectate, inclusiv numele gazdei Pi și adresa IP. Puteți utiliza oricare dintre acestea pentru a vă conecta la Putty, dar eu folosesc de obicei adresa IP, deoarece am un număr de IP-uri. Alternativ, vă puteți conecta la Putty încercând un nume de gazdă, cum ar fi pi sau raspberrypi. Când vi se solicită pe Putty numele de utilizator și parola, încercați pi / raspberry care sunt valorile implicite. (UTILIZAREA DEFAULTURILOR ESTE FOARTE INSIGURĂ ȘI TE LASĂ DESCHIS PENTRU A ATACA DE LA HACKERI CHIAR DACĂ PE O REȚEA PRIVATĂ). Din experiența mea, programele Pi, bibliotecile Espeak și GPIO sunt instalate implicit pe majoritatea imaginilor Pi.

Bine, când accesați linia de comandă de pe RaspberryPi încercați următoarele comenzi - sudo alsamixer care ar trebui să dezvăluie comenzile unei plăci de sunet - dacă aveți un difuzor pasiv, așa cum am folosit, va trebui să măriți volumul la max. Apoi, aprindeți luminile

sudo / usr / local / bin / gpio -g mode 17 outsudo / usr / local / bin / gpio -g write 17 1

apoi opriți luminile

(NB orice problemă trebuie doar să încercați doar sudo gpio etc - verificați și dacă gpio este instalat tastând gpio -v - dacă trebuie să instalați aruncați o privire la

sudo / usr / local / bin / gpio -g scrie 17 0

Acum testați că funcționează vorbirea

~ $ sudo speak "acesta este un test"

Rareori am avut probleme cu Espeak, dar am întâmpinat probleme când volumul Alsamixer este redus și, uneori, alte programe au apucat placa de sunet. Trebuie să rulați ps -ef și să vedeți ce alte procese media rulează. Puteți folosi ceva de genul sudo kill -9 $ (sudo ps aux | sudo grep -v grep | sudo grep mplayer | sudo awk '{print $ 2}') pentru a le ucide - Folosim acest lucru mai târziu în scriptul PHP

Pasul 2: Configurarea serverului Web

Configurarea serverului Web
Configurarea serverului Web
Configurarea serverului Web
Configurarea serverului Web

Există o serie de pași pe care trebuie să îi parcurgem

1) Găsiți proprietarul serviciului web / server apache2 - rulați sudo ps aux | egrep '(apache | httpd)' și ar trebui să vedeți www-data2) adăugați www-data la grupul sudo - rulați sudo nano / etc / sudoers --- adăugați linia www-data ALL = (ALL) NOPASSWD: ALL

3) adăugați www-data la grupul audio - sudo adduser www-data audio

4) Un pas opțional este crearea unui fișier phpinfo care să vă spună toate funcțiile PHP pe care le aveți și locația

fișierul conf dacă doriți să schimbați lucrurile. De exemplu, unele versiuni de PHP blochează funcția shell_exec () de care avem nevoie pentru a rula programe de linie de comandă precum Espeak de pe serverul web. Iată cum vă configurați phpinfo..

Mergeți la directorul dvs. web implicit de obicei / var / www sau / var / www / html ….. este cel cu fișierul index.html și tastați sudo nano phpinfo.php, apoi tastați următoarele în editorul nano și apăsați control O pentru a salvează și ieși

Nu uitați să îl faceți executabil tastând sudo chmod 755 phpinfo.php - Pentru a-l vizualiza, deschideți următoarea adresă URL în browserul dvs. web folosind numele gazdei în locul meu, adică raspberrypi -

?>

Pasul 3: Codul PHP și scripturile web

Codul PHP și scripturile web
Codul PHP și scripturile web

Am folosit două programe aici - Unul pentru formularul web (espeak_form.php) și celălalt care prelucrează datele formularului (my_espeak.php) Le-am inclus mai sus ca fișiere text și pentru a le transfera în Pi, folosind Putty creați ambele php fișiere și apoi tăiați și lipiți din fișierele text respective prezentate mai sus

pi @ raspberrypi / var / www $ sudo nano /var//www/my_espeak.php

pi @ raspberrypi / var / www $ sudo nano /var//www/espeak_form.php

Nu uitați să le faceți executabile tastând sudo chmod 755 *.php

Scriptul PHP pentru formularul web (espeak_form.php) pe care l-am scris nu va câștiga niciun premiu de design, dar are 2 sub-formulare. Una pentru a face anunțul (text-to-speech) și cealaltă formă este utilizată pentru a comuta și opri luminile. Sub formularul de vorbire vă permite să selectați diferite accente, o voce feminină și o funcție de șoaptă, Nucleul my_espeak.php este utilizarea funcției php - shell_exec (). După cum puteți vedea, acest lucru permite PHP să execute comenzi Linux fără a fi nevoie de alte biblioteci, așa cum ați avea nevoie să spuneți în Python.

Pasul 4: Concluzie

Aceasta este o soluție rezonabil de complexă prin faptul că utilizați multe elemente ale mediului Pi, adică PHP, funcții de linie de comandă, Apache, GPIO etc. Există o serie de alte modalități de a realiza acest lucru și îl puteți controla chiar de pe internet dacă înțelegeți redirecționarea porturilor, firewall-urile și / sau VPN. Sper că ți-a plăcut, dar iată responsabilitatea mea:

NU POT GARANTA CĂ ESTE UN SISTEM SIGUR SAU SIGUR ȘI, DE aceea, NU-L UTILIZAȚI ÎN SCOPURI CARE INCLUDE PRELUCRAREA DE DATE PRIVATE, PERSONALE SAU COMERCIALE. DE ASEMENEA, CONECTAȚI-VĂ CABLURILE ÎN SIGURANȚĂ ȘI DACĂ UTILIZAȚI CONEXIUNI TEMPORALE, de ex. CLIPURILE CROCODILULUI ATUNCI NU LASĂ SISTEMUL NESUPRAVIZAT SAU UTILIZAT ÎN MEDIUL DURĂ.

Acesta este un mod fantastic de a învăța multe despre IOT și amintiți-vă înainte de a vă gândi la aplicații comerciale folosind metode precum aceasta. Raspberry Pi este la fel de bun ca și cardul său SD. Aș spune că un an în utilizare normală în comparație cu unele servere pe care le-am folosit, care au funcționat timp de peste 10 ani.

Oricum, noroc.

Recomandat: