Kurzbeschreibung
Läuft als PHP-Script unter http://IP-Adresse/index.php
Das Script selbst:
<html> <head> <meta name="viewport" content="width=device-width" /> <title>IP-Switch Raspi Hinteralm</title> </head> <p><h1 align="center">Welcome,<br />... Raspberry als IP-Switch ist bereit! </h1> <p align="center"> </p> <br> <form method="get" action="index.php"> Port 18 - GPIO 24 - SW1 - schalten (<b>10A max</b>): <br> Status (0=ein, 1=aus):<b> <?php $val = exec ("/usr/local/bin/gpio -g read 24", $status, $error); print_r ( $val ); ?></b><br> <input type="text" size="4" value="" name="t1"> <input type="submit" value="SW1 an" name="p1an"> <input type="submit" value="SW1 aus" name="p1aus"> <br><br> Port 22 - GPIO 25 - SW2 - schalten (<b>10A max</b>): <br> Status (0=ein, 1=aus):<b> <?php $val = exec ("/usr/local/bin/gpio -g read 25", $status, $error); print_r ( $val ); ?></b><br> <input type="text" size="4" value="" name="t2"> <input type="submit" value="SW2 an" name="p2an"> <input type="submit" value="SW2 aus" name="p2aus"> <br><br> Port 24 - GPIO 8 - SW3 - schalten (<b>10A max</b>): <br> Status (0=ein, 1=aus):<b> <?php $val = exec ("/usr/local/bin/gpio -g read 8", $status, $error); print_r ( $val ); ?></b><br> <input type="text" size="4" value="" name="t3"> <input type="submit" value="SW3 an" name="p3an"> <input type="submit" value="SW3 aus" name="p3aus"> <br><br> Port 26 - GPIO 7 - SW4 - schalten (<b>10A max</b>): <br> Status (0=ein, 1=aus):<b> <?php $val = exec ("/usr/local/bin/gpio -g read 7", $status, $error); print_r ( $val ); ?></b><br> <input type="text" size="4" value="" name="t4"> <input type="submit" value="SW4 an" name="p4an"> <input type="submit" value="SW4 aus" name="p4aus"> <br><br> Port 32 - GPIO 12 - SW5 - schalten (<b>10A max</b>): <br> Status (0=ein, 1=aus):<b> <?php $val = exec ("/usr/local/bin/gpio -g read 12", $status, $error); print_r ( $val ); ?></b><br> <input type="text" size="4" value="" name="t5"> <input type="submit" value="SW5 an" name="p5an"> <input type="submit" value="SW5 aus" name="p5aus"> <br><br> Port 36 - GPIO 16 - SW6 - schalten (<b>10A max</b>): <br> Status (0=ein, 1=aus):<b> <?php $val = exec ("/usr/local/bin/gpio -g read 16", $status, $error); print_r ( $val ); ?></b><br> <input type="text" size="4" value="" name="t6"> <input type="submit" value="SW6 an" name="p6an"> <input type="submit" value="SW6 aus" name="p6aus"> <br><br> Port 38 - GPIO 20 - SW7 - schalten (<b>10A max</b>): <br> Status (0=ein, 1=aus):<b> <?php $val = exec ("/usr/local/bin/gpio -g read 20", $status, $error); print_r ( $val ); ?></b><br> <input type="text" size="4" value="" name="t7"> <input type="submit" value="SW7 an" name="p7an"> <input type="submit" value="SW7 aus" name="p7aus"> <br><br> Port 40 - GPIO 21 - SW8 - schalten (<b>10A max</b>): <br> Status (0=ein, 1=aus):<b> <?php $val = exec ("/usr/local/bin/gpio -g read 21", $status, $error); print_r ( $val ); ?></b><br> <input type="text" size="4" value="" name="t8"> <input type="submit" value="SW8 an" name="p8an"> <input type="submit" value="SW8 aus" name="p8aus"> </form> <?php if(isset($_GET["p1an"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 24 0")); $t1 = $_GET["t1"]; if ($t1 > 0) { sleep($t1); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 24 1")); } } else if(isset($_GET["p1aus"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 24 1")); } if(isset($_GET["p2an"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 25 0")); $t1 = $_GET["t2"]; if ($t2 > 0) { sleep($t2); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 25 1")); } } else if(isset($_GET["p2aus"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 25 1")); } if(isset($_GET["p3an"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 8 0")); $t1 = $_GET["t3"]; if ($t3 > 0) { sleep($t3); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 8 1")); } } else if(isset($_GET["p3aus"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 8 1")); } if(isset($_GET["p4an"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 7 0")); $t1 = $_GET["t4"]; if ($t4 > 0) { sleep($t4); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 7 1")); } } else if(isset($_GET["p4aus"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 7 1")); } if(isset($_GET["p5an"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 12 0")); $t1 = $_GET["t5"]; if ($t5 > 0) { sleep($t5); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 12 1")); } } else if(isset($_GET["p5aus"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 12 1")); } if(isset($_GET["p6an"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 16 0")); $t1 = $_GET["t6"]; if ($t6 > 0) { sleep($t6); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 16 1")); } } else if(isset($_GET["p6aus"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 16 1")); } if(isset($_GET["p7an"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 20 0")); $t1 = $_GET["t7"]; if ($t7 > 0) { sleep($t7); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 20 1")); } } else if(isset($_GET["p7aus"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 20 1")); } if(isset($_GET["p8an"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 21 0")); $t1 = $_GET["t8"]; if ($t8 > 0) { sleep($t8); $val = trim(@shell_exec("/usr/local/bin/gpio -g write 21 1")); } } else if(isset($_GET["p8aus"])){ $val = trim(@shell_exec("/usr/local/bin/gpio -g write 21 1")); } ?> </body> </html>
Die Initialisierung dazu “startup_server.sh” (starten beim Hochlauf mit crontab!):
# # Port 24 # /usr/local/bin/gpio -g mode 24 out # 0 = einschalten, 1 = ausschalten bei Startup /usr/local/bin/gpio -g write 24 0 # # Port 25 # /usr/local/bin/gpio -g mode 25 out # 0 = einschalten, 1 = ausschalten bei Startup /usr/local/bin/gpio -g write 25 0 # # Port 8 # /usr/local/bin/gpio -g mode 8 out # 0 = einschalten, 1 = ausschalten bei Startup /usr/local/bin/gpio -g write 8 0 # # Port 7 # /usr/local/bin/gpio -g mode 7 out # 0 = einschalten, 1 = ausschalten bei Startup /usr/local/bin/gpio -g write 7 0 # # Port 12 # /usr/local/bin/gpio -g mode 12 out # 0 = einschalten, 1 = ausschalten bei Startup /usr/local/bin/gpio -g write 12 0 # # Port 16 # /usr/local/bin/gpio -g mode 16 out # 0 = einschalten, 1 = ausschalten bei Startup /usr/local/bin/gpio -g write 16 0 # # Port 20 # /usr/local/bin/gpio -g mode 20 out # 0 = einschalten, 1 = ausschalten bei Startup /usr/local/bin/gpio -g write 20 0 # # Port 21 # /usr/local/bin/gpio -g mode 21 out # 0 = einschalten, 1 = ausschalten bei Startup /usr/local/bin/gpio -g write 21 0 # Verzeichnis fuer Webserver anlegen if [ ! -d "/var/log/nginx" ]; then sudo mkdir /var/log/nginx fi # Webserver starten sudo service nginx restart