Außentemperatursensoren

Dies ist eine Anleitung um durch einen Arduion Nano + Esp Modul Temperatur/Luftdruck/Luftfeuchtigkeitswerte in eine Datenbank zu speichern.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Benötigte Teile

Benötigte Hauptkomponenten:

Dies sind die wesentlichen Komponenten, welche benötigt werden.

Zusätzlich wird natürlich ein Lötkolben, Lötzinn, Zangen, Draht, Kondensatoren, Widerstände und Schalter benötigt die einzelnen Werte sind aus dem Schaltplan abzulesen.

Step 2: Zusammenbau

Nach dem folgenden Schaltplan zusammenlöten.

Am besten als erstes alles auf einem Steckboard ausprobieren.

Step 3: CODE

Um den Arduino zu programmieren dürfen die RX und TX Leitung zum ESP-Modul nicht verbunden sein!

Um das ESP-Modul zu programmieren zuerst denn RESET BUTTON gedrückthalten, dann zusätzlich den GPIO 0 BUTTON drücken, erst dann vom RESET BUTTON gehen und dannach auch den GPIO 0 BUTTON loslassen.

Um das ESP-Modul zu programmieren wird zusätzlich ein FTDI-Modul benötigt.

Bibliotheken für die Arduino IDE :

Jetzt wird noch ein Server benötigt welche die Daten in eine Datenbank schreibt. Hierfür benutze ich einen Raspberry Pi 2, auf welchem ein Apache Server läuft und eine PhpMyAdmin Datenbank.

Auf dem Server muss das PHP Skript abgelegt werden.

Danach muss eine Datenbank erstellt werden mit folgenden Tabellen:

  1. aussentemp
  2. feuchtigkeitaussen
  3. aussentempluftdruck
  4. absoluterluftdruck
  5. relativerluftdruck

Jede Tabelle muss folgende Spalten enthalten:

  1. id
  2. temperatur / feuchtigkeit / temp / absolutluftdruck / relativluftdruck
  3. uhrzeit
  4. datum

Je nach Tabelle bei zweitens, dass richtige eintragen.

Die id wird als Primärerschlüssel festgelegt und das Tabellenformat sollte MyISAM sein.

Bei einem LINUX Server kann zusätzlich durch Crontab jede Stunde(oder wie oft man es halt möchte) die Temperatur aktuallisiert werden.

Dazu im Ordner etc, die Datei crontab am Ende folgender Eintrag einfügen :

0 */1 * * *         root          wget <a href="http://IP" rel="nofollow"> <a href="http://IP" rel="nofollow"> <a href="http://IP" rel="nofollow">  http://IP  </a> </a> </a> adresse des ESP-Moduls/get

Um die Daten manuell in die Datenbank einzutragen folgene Internetadresse aufrufen :

http://IPAdresse des ESP-Moduls/get

Dies kann jedoch nur im gleichen Netzwerk funktionieren!

Da sich der PHP code nicht hochladenmöchte hier zum kopieren (Bitte Datei esp8266daten.php nennen)!

<?php

    date_default_timezone_set("Europe/Berlin");
    $timestamp = time(); 


    $mysqli = new mysqli("Datenbankip", "Benutzername", "Passwort", "Datenbank");
    //Datenbankaufbau 
    if ($mysqli -> connect_error) {
        echo "Fehler bei der Verbindung: " . mysqli_connect_error();
        exit();
    } 


    $data = htmlspecialchars($_GET["temp"]);
    $feuchtigkeit = htmlspecialchars($_GET["feucht"]);
    $tempdruck = htmlspecialchars($_GET["temppressure"]);
    $absolutdruck = htmlspecialchars($_GET["absolut"]);
    $relativdruck = htmlspecialchars($_GET["relativ"]); 
    $uhrzeit = date("(H, i)", $timestamp);
    $datum = date("(Y, d, m)", $timestamp);
    

    echo $data;
    echo $feuchtigkeit;
    echo $tempdruck;
    echo $absolutdruck;
    echo $relativdruck;
    echo $uhrzeit;
    echo $datum; 


    $sqltemp = "INSERT INTO aussentemp (temperatur, uhrzeit, datum) VALUES ('$data', '$uhrzeit', '$datum')";
    $mysqli -> query($sqltemp); 


    $sqlfeucht = "INSERT INTO feuchtigkeitaussen (feuchtigkeit, uhrzeit, datum) VALUES ('$feuchtigkeit', '$uhrzeit', '$datum')";
    $mysqli -> query($sqlfeucht);


    $sqltempdruck = "INSERT INTO aussentempluftdruck (temp , uhrzeit, datum) VALUES ('$tempdruck', '$uhrzeit', '$datum')";
    $mysqli -> query($sqltempdruck);


    $sqlabsolut = "INSERT INTO absoluterluftdruck (absolutluftdruck, uhrzeit, datum) VALUES ('$absolutdruck', '$uhrzeit', '$datum')";
    $mysqli -> query($sqlabsolut);

 
    $sqlrelativ = "INSERT INTO relativerluftdruck (relativluftdruck, uhrzeit, datum) VALUES ('$relativdruck', '$uhrzeit', '$datum')";
    $mysqli -> query($sqlrelativ);

 
    echo "down";
    $mysqli -> close();
?>

Step 4: Infos

Da der BMP180 auch Lufttemperatur von 0 - 60°C messen kann gibt es die auusentemluftdruck Tabelle.

Mit den Werten aus der Datenbank können beliebige Sachen gemacht werden, wie im Browser als Diagramm ausgeben oder wie ich es getan habe eine App schreiben um die Daten, als Diagramm auswerten zu können.

Bei irgendwelchen Problemen bitte bescheid geben.

Viel Spaß beim Nachbauen.

Be the First to Share

    Recommendations

    • Instrument Contest

      Instrument Contest
    • Make it Glow Contest

      Make it Glow Contest
    • STEM Contest

      STEM Contest

    6 Discussions

    0
    None
    wyzarddoc

    3 years ago

    How do I translate to English? Looks like a great project

    thanks

    3 replies
    0
    None
    fixit9660wyzarddoc

    Reply 3 years ago

    Copy the web page address and paste into Google Translate. It will translate it well enough to give you an idea.

    0
    None
    schollwyzarddoc

    Reply 3 years ago

    Maybe i will translate it but for now use the solution from fixit9660

    0
    None
    -MMM-

    3 years ago

    dein Projekt würde Viel mehr Leute erreichen wenn du es auf englisch schreiben würdest.

    1 reply
    0
    None
    scholl-MMM-

    Reply 3 years ago

    Dachte ich mir schon ? , werde ich vlt. noch in Angriff nehmen