Enkelt och intuitivt webbgränssnitt för din Raspberry Pi (4 / 6 steg)
Steg 4: Kontrollera lysdioderna med PHP
Vi har nu en webbserver och ett bibliotek, låta ' sätta ihop.
PHP står för "PHP: Hypertext Preprocessor", det är en server side skriptspråk. Det betyder att PHP-koden körs en gång (varje gång sidan begärs) av servern och kan inte ses av klienten. Jag använde detta språk eftersom det är den mest populära (och det är den enda jag vet) men du måste veta att de är andra server side språk som Python, Ruby, Lua, Perl... Men vet jag inte om de funktioner vi kommer att använda har sina motsvarigheter i dessa språk.
Köra program med ett PHP-kod kan göras med två olika funktioner: exec (för execute) och system. För det första, "system"-funktion. Det tar två parametrar: "system (sträng $command, int $return_var)", som du gissade det, den första parametern är kommandot för att köra och den andra är utförda kommandot returnerade status. Den andra parametern är inte obligatorisk. Du kan använda denna funktion om du inte förväntar dig ett svar från kommandot körs. Således kan du använda den om du behöver köra kommandona "gpio läge 0 ut" eller "gpio skriva 0 1". Exempel:
<? php
system ("gpio läge 0 ut");
system ("gpio skriva 0 1");
? >
Då, den "exec" funktion. Denna funktion gör exakt samma arbete än "system" men den läser och lagrar vad kommandot skrivs ut. Det tar tre parametrar: "exec (sträng $command, array $output, int $return_var)", igen $command och $return_var är samma parametrar och den enda skillnaden är $output matrisen. Som namnet säger det kommer att lagra kommandots utdata i en matris. Således kan du använda denna funktion om du behöver vad kommandot utskrifter som med kommandot "gpio läsa 0". Exempel:
<? php
exec ("gpio Läs 0", $status);
print_r ($status);
? >
Du kan nu köra nästan oavsett kommandot du vill men låt oss göra ett litet PHP exempel öva: vi kommer att slå på lysdioder 0 till 7, sedan vänta 2 sekunder, sedan stänga av dem. Precis som vi gjorde med bash-script. Redigera filen index.php med följande kod:
<? php
$status = array (0);
Ställ in stift att produktionen
för ($i = 0; $i < = 7. $i ++) {
system ("gpio läge". $i. "out");
}
tänds lysdioderna
för ($i = 0; $i < = 7. $i ++) {
system ("gpio skriva". $i. " 1" );
}
läser och skriver ut lysdioder status
för ($i = 0; $i < = 7. $i ++) {
exec ("gpio läsa". $i, $status);
ECHO ($status [0]);
}
väntar 2 sekunder
sömn (2).
släcks lamporna
för ($i = 0; $i < = 7. $i ++) {
system ("gpio skriva". $i. " 0" );
}
? >