Projekt:RaspberryPiElektronik: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(23 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 20: Zeile 20:


=Raspberry Pi Installation=
=Raspberry Pi Installation=
[[Datei:VinRisen360.jpg|right]]
==Auswahl des Betriebssystems==
==Auswahl des Betriebssystems==
Zunächst muss das Standard Betriebssystem auf dem Raspberry Pi installiert werden.<br />
Zunächst muss das Standard Betriebssystem auf dem Raspberry Pi installiert werden.<br />
Zeile 74: Zeile 75:
Ab hier ist die Grundeinrichtung des Raspberry Pi abgeschlossen.<br />
Ab hier ist die Grundeinrichtung des Raspberry Pi abgeschlossen.<br />
Im Idealfall ist der Raspberry Pi mit dem WLAN/Internet verbunden und kann über SSH innerhalb des eigenen WLANs ferngesteuert werden.<br />
Im Idealfall ist der Raspberry Pi mit dem WLAN/Internet verbunden und kann über SSH innerhalb des eigenen WLANs ferngesteuert werden.<br />
==Installation GPIO Library==
Mit folgendem Befehl stellen wir sicher, dass "gpio ..."-Befehl auch funktionieren:<br />
sudo apt-get install wiringpi -y


=Einführung mit GPIO und Breadboard=
=Einführung mit GPIO und Breadboard=
Zeile 100: Zeile 105:


Mit folgendem Befehl lässt sich die LED an- und ausschalten:
Mit folgendem Befehl lässt sich die LED an- und ausschalten:
  gpio mode 17 output
  gpio -g mode 17 output
  gpio write 17 1
  gpio -g write 17 1
  gpio write 17 0
  gpio -g write 17 0


gpio -g: Der Parameter -g empfiehlt sich, damit die PIN-Nummern gleich den GPIO-Nummerierungen entsprechen<br />
mode 17 output: Bedeutet GPIO PIN 17 auf Strom-Zufuhr schalten<br />
mode 17 output: Bedeutet GPIO PIN 17 auf Strom-Zufuhr schalten<br />
write 17 1: Bedeutet GPIO PIN 17 Strom auf AN schalten<br />
write 17 1: Bedeutet GPIO PIN 17 Strom auf AN schalten<br />
Zeile 112: Zeile 118:


=Projekt 2: Temperatur Sensor verwenden=
=Projekt 2: Temperatur Sensor verwenden=
Benötigte Bauteile: Analog Temperature Sensor XXXXX<br />
Benötigte Bauteile: DHT11 Humidity Sensor, 10k Ohm-Widerstand (Wenn nicht schon auf dem DHT11 vorhanden)<br />
Geschätzte Dauer: 30-60 Minuten<br />
Geschätzte Dauer: 30-60 Minuten<br />
==Adafruit Library für DHT11-Sensor installieren==
Quelle: https://www.raspberrypi-spy.co.uk/2017/09/dht11-temperature-and-humidity-sensor-raspberry-pi/
Damit man die Werte vom Sensor auslesen kann, muss eine Python Library installiert werden.<br />
Führen Sie folgende Befehle aus:<br />
sudo apt-get install build-essential python-dev python-openssl git
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install


Der Temperatur Sensor sieht so aus:<br />
Der Temperatur Sensor sieht so aus:<br />
[[Datei:Temperaturesensor.jpg]]
[[Datei:DHT11.jpg]]


Folgende Schaltung sollte aufgebaut werden:<br />
Folgende Schaltung sollte aufgebaut werden:<br />
Zeile 122: Zeile 138:


Mit folgendem Code lässt sich die Temperatur über den Sensor ausgeben:<br />
Mit folgendem Code lässt sich die Temperatur über den Sensor ausgeben:<br />
  //Insert Code here
  cd ~/Adafruit_Python_DHT/examples
  //Insert Code here
sudo ./AdafruitDHT.py 11 4
  //Insert Code here
 
  //Insert Code here
==Erklärung des Codes==
<AdafruitDHT.py> ist eine Datei, die den notwendigen Code zum Auslesen des Sensors enthält<br />
<11> bedeutet einen DHT11-Sensor auslesen (DHT22 oder AM2302-Sensor ebenfalls möglich)<br />
<4> bedeutet GPIO PIN 4 wurde auf den DATA-PIN gesteckt<br />
 
=Projekt 3: Webserver auf Raspberry Pi installieren=
Um einen Webserver (Apache) auf dem Rasperry Pi zu installieren müssen folgende Befehle ausgeführt werden:<br />
sudo apt-get install apache2
sudo apt-get install php php-mbstring
sudo apt-get install mysql-server php-mysql
 
=Projekt 4: Temperature und Humidity Daten auf Website ausgeben=
Zunächst muss das Script, welches mit dem DHT11 Sensor interagiert in das /var/www Verzeichnis verschoben/kopiert werden.<br />
Als nächstes muss dem User www-data das Recht für sudo Befehle eingeräumt werden:<br />
  sudo nano /etc/sudoers
Zeile einfügen: www-data ALL=(ALL) NOPASSWD: ALL
Zu aller letzt muss eine index.php mit folgendem Text erstellt werden:
<?php
$shellstr = "sudo python /var/www/html/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 4";
$str_lastline = exec($shellstr, $arr_output, $retcode);
?>
<html>
<body>
Gemessener Wert: <?php echo $str_lastline ?>
</body>
</html>
 
Jetzt kann man mit einem beliebigen Browser auf die IP des Raspberry Pi gehen:<br />
http://198.18.1.6 <br />
 
=Projekt 5: Messdaten aus SQL-Datenbank lesen und auf Website ausgeben=
 
Zunächst müssen die Pakete aus Projekt 4 installiert werden (s. oben)<br />
Danach muss eine index.php unter /var/www/html/index.php mit folgendem Text erstellt werden:<br />
<?php
  /*
README
SQL should look like this:
DATABASE: mydatabase
TABLE: messdaten
TABLE (messdaten)
id | temperature (varchar255)| humidity (varchar255)
1  | 23.0 | 33%
  */
try {
  $hostname = "localhost";
  $database = "mydatabase";
  $username = "helmut";
  $password = "P@ssw0rd";
  $pdo = new PDO(
    'mysql:' .
    'host=' . $hostname . ';' .
    'dbname=' . $database . ';' .
    'charset=utf8', $username, $password);
} catch (PDOException $e) {
  die("Connection to SQL-DB failed: " . $e->getMessage());
}
$result = $pdo->query("SELECT * FROM messdaten ORDER BY id DESC LIMIT 1");
if ($result) {
  $messwert = $result[0]['temperature'];
} else {
  $messwert = "Kein Messwert in der Datenbank";
}
?>
<html>
<body>
Gemessener Wert: <?php echo $messwert ?> Grad Celsius
</body>
  </html>
 
Jetzt kann man mit einem beliebigen Browser auf die IP des Raspberry Pi gehen:<br />
http://198.18.1.6 <br />
mitglieder, Administratoren
292

Bearbeitungen