Stap 4: Beheersing van de LEDs met PHP
We hebben nu een webserver en een bibliotheek, laat ' zet ze samen.
PHP staat voor "PHP: Hypertext Preprocessor", het is een server-side scripting taal. Het betekent dat de PHP-code één keer is uitgevoerd (telkens wanneer de pagina wordt opgevraagd) door de server en kan niet worden gezien door de client. Ik gebruikte deze taal, want het is de meest populaire (en dat is de enige die ik ken) maar je moet weten dat zij andere server-side talen zoals Python, Ruby, Lua, Perl... Echter, ik weet niet of de functies die we gaan gebruiken hun equivalenten in deze talen.
Uitvoeren van toepassingen met een PHP-code kan gedaan worden met twee verschillende functies: exec (voor uitvoeren) en systeem. Ten eerste, de functie "systeem". Het neemt twee parameters: "systeem (string $command, int $return_var)", zoals u raadt het al, de eerste parameter is de opdracht uit te voeren en de tweede is de geretourneerde status van de uitgevoerde opdracht. De tweede parameter is niet verplicht. U kunt deze functie gebruiken als u niet verwacht een antwoord van de opdracht uitgevoerd dat. Zo kunt u het als u wilt "gpio modus 0 uit" of "gpio schrijven 0 1" commando's uitvoeren. In het volgende voorbeeld:
<?php system ( "gpio mode 0 out" ); system ( "gpio write 0 1" ); ?>
Dan, de "exec" functie. Deze functie maakt precies hetzelfde werk dan "systeem", maar het leest en slaat wat de opdracht afgedrukt. Het duurt drie parameters: "exec (string $command, matrix $output, int $return_var)", opnieuw $command en $return_var zijn dezelfde parameters en het enige verschil is de $output array. Zoals de naam al dat het zal de uitvoer van de opdracht opslaan in een matrix zegt. Zo kunt u deze functie als u nodig hebt wat de opdracht afdrukken als met de opdracht "gpio lezen 0". In het volgende voorbeeld:
<?php exec ( "gpio read 0", $status ); print_r ( $status ); ?>
U kunt nu uitvoeren bijna welke opdracht u wilt, maar laten we een klein voorbeeld van PHP om te oefenen: We zullen inschakelen LEDs 0 tot en met 7, wacht 2 seconden, vervolgens zwenking zij vandoor. Net als we met de bash-script. Bewerk het index.php bestand met de volgende code:
<?php $status = array ( 0 ); //set pins mode to output for ($i = 0; $i <= 7; $i++ ) { system ( "gpio mode ".$i." out" ); } //turns on the LEDs for ($i = 0; $i <= 7; $i++ ) { system ( "gpio write ".$i." 1" ); } //reads and prints the LEDs status for ($i = 0; $i <= 7; $i++ ) { exec ( "gpio read ".$i, $status ); echo ( $status[0] ); } //waits 2 seconds sleep ( 2 ); //turns off the LEDs for ($i = 0; $i <= 7; $i++ ) { system ( "gpio write ".$i." 0" ); } ?>