Let’s Craft: Ikea Driva Webserver

Nach Let’s Hack kommt jetzt Let’s Craft. Zudem auch noch passend zum Let’s Hack: Ikea Driva oder auch Spaß mit Kinderzimmerresten.
Empfehle ich auch zuerst anzusehen, um zu verstehen was ich hier so mache.

Also los gehts. Ab hier wird der Atikel lang.
1. Relay anschließen und verkabeln
Dazu werde ich nicht sagen, da es bei jedem anders seien wird. Als Hilfestellung kannst du dir ja die Bilder aus dem erwähnten Atikel ansehen und die Videos, da wird es gut veranschaulicht.
GPIO Belegung bei mir:

gpio 2      relay 1    Stromleiste/NAS
gpio 3      relay 2    ROT
gpio 17    relay 3    GELB
gpio 23    relay 4    GRÜN

2. Webserver installieren
Dazu gibt es den Code zum ausführen:

sudo apt-get install apache2 php5 libapache2-mod-php5
sudo groupadd www-data 
sudo usermod -g www-data www-data

3. Scripte erstellen
Der Scriptordner liegt bei mir in /home/pi, also im Homeverzeichnis des pi Benutzers.

mkdir schaltung
cd schaltung

Dort werden nun die einzelnen Dateien erstellt. Im NANO ist STRG + O speichern und STRG + X schließen.
Bei Alle an/aus werden nur die Lampen geschaltet.
Die Power Scripte sind bei mir für meine NAS mit NAS4FREE gedacht, bei der Wake on Lan nicht richtig (Softwarebug). Daher ist dort im BIOS eingestellt, dass wenn nach Verlust der Stromversorgung wieder Strom kommt automatisch gestartet wird. So kann ich per Relay die NAS starten, bzw. bei Fehlern resetten.

nano export.sh
#!/bin/sh
gpio export 17 out
gpio -g write 17 1
gpio export 23 out
gpio -g write 23 1
gpio export 2 out
gpio -g write 2 1
gpio export 3 out
gpio -g write 3 1
nano off-all.sh
#!/bin/sh
gpio -g write 3 1
gpio -g write 17 1
gpio -g write 23 1
 nano off-gelb.sh
#!/bin/sh
gpio -g write 17 1
nano off-gruen.sh
#!/bin/sh
gpio -g write 23 1
nano off-power.sh
#!/bin/sh
gpio -g write 2 1
nano off-rot.sh
#!/bin/sh
gpio -g write 3 1
nano on-all.sh
#!/bin/sh
gpio -g write 3 0
gpio -g write 17 0
gpio -g write 23 0
nano on-gelb.sh
#!/bin/sh
gpio -g write 17 0
nano on-gruen.sh
#!/bin/sh
gpio -g write 23 0
nano on-power.sh
#!/bin/sh
gpio -g write 2 0
nano on-rot.sh
#!/bin/sh
gpio -g write 3 0
nano power-nas.sh
#!/bin/sh
gpio -g write 2 1
sleep 120
gpio -g write 2

4. Webseite erstellen
Alle Dateien werden in /var/www erstellt. Wenn es nicht gehen sollte, zum root-Benutzer wechseln. Damit geht es auf jeden Fall.
Aus der Index-Datei einfach alles rausschmeißen und neu befüllen.

nano index.html
<html>
<head>
<title>ampel</title>
</head>
<body>
<h1>Ampel</h1>
<a href="export.php">Export</a><br>
<p>
<h2>Ampelsteuerung</h2>
<h3>Alle</h3>
      <a href="on-all.php">Alle AN</a><br>
      <a href="off-all.php">Alle AUS</a><br>
<h3>Rot</h3>
      <a href="on-rot.php">Rot AN</a><br>
      <a href="off-rot.php">Rot AUS</a><br>
<h3>Gelb</h3>
      <a href="on-gelb.php">Gelb AN</a><br>
      <a href="off-gelb.php">Gelb AUS</a><br>
<h3>Gr&uuml;n</h3>
      <a href="on-gruen.php">Gr&uuml;n AN</a><br>
      <a href="off-gruen.php">Gr&uuml;n AUS</a><br>
</p>    
<h2>Powercontroll f&uuml;r nas.steuber-it</h2>
    <a href="power-nas.php">NAS starten</a><br><br>
    <a href="on-power.php">Power AN</a><br>
      <a href="off-power.php">Power AUS</a><br>
</body>
</html>

Hier das Beispielscript. Den Dateinamen aus der Index-Datei und die Scriptnamen der vorher erstellten Scripte einsetzen.

<?php
shell_exec ('/home/pi/schaltung/SCRIPTNAME.sh');
header("Location:index.html");
?>

Dann viel Spaß bei blinken lassen.