Cuprins:
- Pasul 1: Configurați și testați hardware-ul
- Pasul 2: Configurarea serverului Web
- Pasul 3: Codul PHP și scripturile web
- Pasul 4: Concluzie
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
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
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
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
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:
Sistem de iluminare Club cu MadMapper & Teensy 3.2: 14 Pași
Club Lighting System With MadMapper & Teensy 3.2: În 2018 am realizat prima versiune a acestui sistem de iluminare a clubului cu buget redus pentru o petrecere de Revelion în Ramallah Palestina cu colectivul meu UNION, mai multe despre poveste și colectivul de la sfârșitul acestui articol. Sistemul a fost bazat pe WS2812
Sistem de iluminare inteligent pe pasarelă - Echipa Sailor Moon: 12 pași
Sistemul inteligent de iluminare Walkway - Echipa Sailor Moon: Bună! Acesta este Grace Rhee, Srijesh Konakanchi și Juan Landi și împreună suntem Team Sailor Moon! Astăzi vă vom aduce un proiect DIY în două părți pe care îl puteți implementa chiar în propria casă. Sistemul nostru final de iluminat inteligent pe pasarelă include un ul
Sistem automat de iluminare pentru acvariu: 6 pași
Sistem automat de iluminare pentru acvariu: Bună ziua tuturor! În proiectul de astăzi, vă voi arăta cum să creați un sistem automat de iluminat pentru acvariu. Folosind un controler Wifi și aplicația WiFi Magic Home, am putut schimba wireless culoarea și luminozitatea LED-urilor. În cele din urmă
Sistem auto de iluminare auto: 4 pași
Sistem auto de iluminare auto: hei băieți, mașina modernă vine cu sistem automat de iluminare auto, ceea ce înseamnă că farurile se aprind și se sting automat depinde de lumina ambientală, astfel încât atunci când se întunecă sau când conduceți în tanel, luminile se vor aprinde automat. chiar m-am gândit să schimb
Măriți distanța efectivă la transmițătorul cu declanșare la distanță „ebay” Flash cu antenă: 6 pași
Măriți distanța efectivă pe emițătorul de declanșare la distanță „ebay” cu antenă: amatorii de camere pot achiziționa versiuni ieftine de declanșatoare de la distanță pentru unitățile de bliț externe, controlând fie unitățile de tip flash „hot”, fie cele de tip „studio”. Acești declanșatori suferă de o putere redusă a emițătorului și, prin urmare, de o distanță de control efectivă mică. Acest mo