Zum Inhalt springen
Arduino Wifi MySQL

Arduino zu MySQL via Wifi

    In diesem Beispiel zeige ich, wie sich Daten vom Arduino per Wi-Fi (WLAN) in einer MySQL Datenbank speichern lassen und per Browser anzeigen lassen.

    Download: Dateien auf GitHub

    Ich verwende einen DTH22 Temperatur- und Luftfeuchtigkeitssensor. Dessen Daten werden von einem Arduino / Genuino MKR1000 ausgelesen und per Wifi und HTTP GET an eine bestimmte Internetadresse geschickt. (GET hat natürlich Vor- und Nachteile. Es ist einfach zu benutzen, aber über die Browserzeile auch leicht zu manipulieren). Ein PHP-Script nimmt diese Daten und speichert sie in eine MySQL-Datenbank.


    Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


    Arduino MKR1000 mit DHT22

    Ich gehe davon aus, dass es bereits eine existierende MySQL-Datenbank gibt. Diese kann auf dem eigenen Computer (localhost) oder im Internet sein. In dieser Datenbank muss man nun eine Tabelle mit dem Namen dht001 anlegen.

    Jetzt benötigt man die Login-Daten für die MySQL-Datenbank und muss diese in den beiden Dateien writeData.php und showData.php anpassen: Servername, Benutzername, Benutzerpasswort, Datenbankname. Ich bin Kunde von 1und1 und bei mir haben diese Daten folgendes Format:

    $servername = "dbXXXXXXXXX.db.1and1.com"; 
    $username = "dboXXXXXXXXX";
    $password = 'XXXXXXXXXXXXXXXXXXXX';
    $dbname = "dbXXXXXXXXX";
    $dbtable = "dht001";

    Nun kann man beide Dateien auf den Webserver laden. Den Pfad sollte man sich merken, z.B. www.meineURL.de/dht001

    Jetzt kann man die Arduino-Datei WifiWebClientDHT22.ino öffnen. Hier muss als Erstes der WLAN-Name und das WLAN-Passwort gesetzt werden:

    char ssid[] = "Wlan_Name";
    char pass[] = "Wlan_Passwort";

    Danach muss die Ziel-URL angegeben werden. Hier nur die Adresse ohne Pfad, also nicht www.meineURL.de/dht001 sondern nur www.meineURL.de:

    char server[] = "www.meineURL.de";

    In der Methode void sendData() muss jetzt noch die Serveranfrage an zwei Stellen geändert werden. Im GET Aufruf muss nun der Pfad zur Datei angegeben werden:

    client.print("GET /iot/writeData.php?value1="); 

    Und die Host-Adresse muss noch einmal angegeben werden:

    client.println("Host: www.meineURL.de");

    Nun kann die Datei auf das Board übertragen werden. Im seriellen Monitor kann man überwachen, ob es funktioniert.

    Ist alles richtig gelaufen, kann nun per Browser die Datei www.meineURL.de/dht22/showData.php aufgerufen werden und sollte ein Diagramm von Temperatur und Luftfeuchtigkeit anzeigen.

    Arduino MKR1000 Diagramm

    Alle Dateien stehen natürlich auf GitHub zum Download bereit. Im Ordner Server-Files finden sich die drei Dateien, die auf den Webserver kopiert werden müssen, im Ordner Arduino-Files befindet sich der Arduino-Code. Download: Dateien auf GitHub

    Nachwort:
    Bei diesem Beispiel geht es mir darum, zu zeigen, wie Daten per Wi-Fi gesendet werden können und wie man eine MySQL-Datenbank verwendet, um diese zu speichern. Da Cloud-Services ziemlich viel Geld kosten können, ist das doch eine recht preiswerte Alternative dafür. Und nun viel Spaß damit.

    Benötigte Bauteile:
    Genuino MKR 1000
    DHT22


    Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

    • Die beliebtesten Arduino-Projekte von StartHardware
    • Inklusive Schaltplan, Beschreibung und Code
    • Arduino-Schnellstart-Kapitel
    • Kompakter Programmierkurs