Inhoudsopgave:
- Stap 1: De hardware instellen en testen
- Stap 2: De webserver instellen
- Stap 3: De PHP-code en webscripts
- Stap 4: Conclusie
Video: R Pi -Afstandsbediening PA en verlichtingssysteem - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Dit is een eenvoudig project voor het maken van audio-aankondigingen en het op afstand in- en uitschakelen van lichten op een PI vanuit een webbrowser. Dus dit is wat je nodig hebt:
1) Raspberry Pi met Apache en PHP voorgeïnstalleerd. Ik gebruikte een oude Pi v1 die ik had liggen. Ik neem aan dat je hem via wifi of ethernet met je thuisnetwerk hebt verbonden.
2) Audio speaker(s) die via de output speaker aansluiting op de Pi kunnen worden aangesloten. Ik gebruikte een oude set luidsprekers van een oud stereosysteem.
3) Set kerstboomverlichting - ik heb de mijne gekocht bij Poundland.
4) Krokodillenklemmen en breadboard-kabels voor het aansluiten / testen van de Pi op de luidsprekers en verlichting. (zie 7)
5) Pc of laptop met Putty-terminalemulator voor toegang tot de Raspberry Pi
6) Krimpkous draad
7) Heteluchtpistool voor het aansluiten van luidspreker- en verlichtingsdraden
Het basisidee is dat ik een webformulier gebruik om op afstand mededelingen te doen via mijn speaker(s) en ook de lichten aan en uit te zetten. Ik gebruik PHP-scripts die op hun beurt Espeak uitvoeren voor het tekst-naar-spraakbit en GPIO-commando's voor de lichten. Ik ga ervan uit dat je weet hoe je Apache en PHP op je Raspberry Pi moet installeren. Het is zeer goed gedocumenteerd.
Ik probeerde deze lage kosten te houden en dus gebruikte ik een oude stereosysteemluidspreker die ik had, en nadat ik de aansluitingen had verwijderd en de kabels blootlegde, verbond ik hem met een oude microfoonkabel die ik ook had doorgesneden. Dit betekende dat terwijl de luidsprekervolume lager was dan bij een extern gevoede luidspreker, kon ik alles van stroom voorzien vanaf de Raspberry Pi. Hetzelfde gold voor de lichten. Ik heb de 3.3v-voedingsdoos eruit gehaald, de draden blootgelegd en op de Pi aangesloten met behulp van vrouwelijke / mannelijke breadboard-connectoren. Ik heb deze allemaal verbonden met krokodillenklemmen.
Na testen en valideren heb ik later alle draden met krimpdraad verbonden met behulp van een heteluchtpistool.
Stap 1: De hardware instellen en testen
Ik heb de Pi van stroom voorzien en de luidsprekers aangesloten op de audio-uitgang van de Pi. Ik heb de lichten aangesloten door het ene uiteinde aan te sluiten op GPIO17 (6e pin naar beneden op de binnenste kolom) en GND (3e pin naar beneden op de buitenste kolom) - zie de foto hierboven. HOUD ER REKENING MEE DAT IK EEN PI-versie 1 HEB GEBRUIKT, DUS VERANDER DE PINNEN DIENSTVERLENING ALS U EEN LATERE VERSIE VAN DE PI GEBRUIKT.
Hierboven ziet u de krimpkous en het heteluchtpistool voor het aansluiten van luidspreker- en verlichtingsdraden
Vervolgens, met alles ingeschakeld, logde ik in op de Pi met Putty vanaf mijn Windows-laptop. Om het IP-adres van de Pi te vinden, opent u het IP-adres van uw router in uw webbrowser (het is meestal zoiets als 192.168.1.254), die de lijst met aangesloten apparaten toont, inclusief de Pi-hostnaam en het IP-adres. U kunt beide gebruiken om u aan te melden bij Putty, maar ik gebruik meestal het IP-adres omdat ik een aantal PI's heb. Als alternatief kunt u zich aanmelden bij Putty door een hostnaam zoals pi of raspberrypi te proberen. Wanneer u op Putty om de gebruikersnaam en het wachtwoord wordt gevraagd, probeert u pi/raspberry, wat de standaardinstellingen zijn. (DEFAULTS GEBRUIKEN IS ZEER ONVEILIG EN LAAT JE OPEN OM AAN TEVALLEN VAN HACKERS, ZELFS INDIEN OP EEN PRIVÉNETWERK). In mijn ervaring zijn de Pi-programma's, Espeak- en GPIO-bibliotheken standaard geïnstalleerd op de meeste Pi-afbeeldingen.
Oké, wanneer je de opdrachtregel op de RaspberryPi opent, probeer dan de volgende opdrachten - sudo alsamixer die een geluidskaartbediening zou moeten onthullen - als je een passieve luidspreker hebt, zoals ik heb gebruikt, moet je het volume verhogen tot max. Schakel vervolgens de lichten in
sudo /usr/local/bin/gpio -g-modus 17 outsudo /usr/local/bin/gpio -g schrijven 17 1
schakel dan de lichten uit
(NB, eventuele problemen, probeer gewoon sudo gpio enz. - controleer ook of gpio is geïnstalleerd door gpio -v te typen - als u het toch moet installeren, kijk dan op
sudo /usr/local/bin/gpio -g schrijf 17 0
Test nu of espeak werkt
~ $ sudo espeak "dit is een test"
Ik heb zelden problemen gehad met Espeak, maar ik ben problemen tegengekomen wanneer het Alsamixer-volume laag is, en soms hebben andere programma's de geluidskaart gepakt. U moet ps -ef uitvoeren om te zien welke andere mediaprocessen worden uitgevoerd. Je kunt zoiets als sudo kill -9 $(sudo ps aux | sudo grep -v grep | sudo grep mplayer | sudo awk '{print $2}') gebruiken om ze te doden - We gebruiken dit later in het PHP-script
Stap 2: De webserver instellen
Er zijn een aantal stappen die we moeten uitvoeren
1) Zoek de eigenaar van de webservice / server apache2 - voer sudo ps aux |. uit egrep '(apache|httpd)' en u zou www-data2) moeten zien. voeg www-data toe aan sudo-groep - voer sudo nano /etc/sudoers uit --- voeg regel toe www-data ALL=(ALL) NOPASSWD: ALL
3) voeg www-data toe aan audiogroep - sudo adduser www-data audio
4) Een optionele stap is om een phpinfo-bestand te maken dat je alle PHP-functies vertelt die je hebt en de locatie van
het conf-bestand als je dingen wilt veranderen. Sommige versies van PHP blokkeren bijvoorbeeld de functie shell_exec() die we nodig hebben om opdrachtregelprogramma's zoals Espeak vanaf de webserver uit te voeren. Zo stel je phpinfo in..
Ga naar je standaard webdirectory, meestal /var/www of /var/www/html….. het is degene met het index.html-bestand en typ sudo nano phpinfo.php, typ het volgende in de nano-editor en druk op control O om opslaan en afsluiten
Vergeet niet om het uitvoerbaar te maken door sudo chmod 755 phpinfo.php te typen - Om het te bekijken, opent u de volgende url in uw webbrowser met uw hostnaam in plaats van de mijne, d.w.z. raspberrypi -
?>
Stap 3: De PHP-code en webscripts
Ik heb hier twee programma's gebruikt - Een voor het webformulier (espeak_form.php) en de andere die de formuliergegevens verwerkt (my_espeak.php). bestanden en vervolgens knippen en plakken uit de respectievelijke tekstbestanden die hierboven zijn weergegeven
pi@raspberrypi /var/www $ sudo nano /var//www/my_espeak.php
pi@raspberrypi /var/www $ sudo nano /var//www/espeak_form.php
Vergeet niet om ze uitvoerbaar te maken door sudo chmod 755 *.php. te typen
Het webformulier PHP-script (espeak_form.php) dat ik heb geschreven zal geen ontwerpprijzen winnen, maar het heeft 2 subformulieren. Een om de aankondiging te doen (tekst naar spraak) en de andere vorm wordt gebruikt om de lichten aan en uit te zetten. Met het subformulier espeak kunt u verschillende accenten, een vrouwenstem en een fluisterfunctie selecteren, De kern van my_espeak.php is het gebruik van de php-functie - shell_exec(). Zoals je kunt zien, stelt dit PHP in staat om Linux-commando's uit te voeren zonder dat er andere bibliotheken nodig zijn, zoals je in Python zou moeten zeggen.
Stap 4: Conclusie
Dit is een redelijk complexe oplossing omdat je veel elementen van de Pi-omgeving gebruikt, d.w.z. PHP, opdrachtregelfuncties, Apache, GPIO enz. Ik hoop dat het illustreert wat je specifiek met PI's en IOT in het algemeen kunt doen. Er zijn een aantal andere manieren om dit te bereiken en je kunt het zelfs vanaf internet bedienen als je port forwarding, firewalling en/of VPN begrijpt. Ik hoop dat je het leuk vond, maar hier is mijn disclaimer:
IK KAN NIET GARANDEREN DAT DIT EEN VEILIG OF VEILIG SYSTEEM IS EN GEBRUIK HET DAAROM NIET VOOR DOELEINDEN DIE DE VERWERKING VAN PRIVÉ, PERSOONLIJKE OF COMMERCIEEL GEVOELIGE GEGEVENS BEVATTEN. SLUIT OOK UW KABELS VEILIG AAN EN ALS U TIJDELIJKE AANSLUITINGEN GEBRUIKT, BIJV. KROKODILCLIPS LAAT HET SYSTEEM DAN NIET ONBEHEERD ACHTER OF GEBRUIK HET IN RUWE OMGEVINGEN.
Dit is een fantastische manier om veel over IOT te leren en onthoud voordat u nadenkt over commerciële toepassingen met behulp van methoden zoals deze. De Raspberry Pi is zo goed als zijn SD-kaart. Ik zou zeggen een jaar bij normaal gebruik in vergelijking met sommige servers die ik gebruikte en die meer dan 10 jaar draaiden.
Hoe dan ook, veel geluk.