ESP8266 als Server mit Sensorik

Im letzten Beitrag zum 8266 haben wir gezeigt, wie man den ESP zum Arduino verkabelt, eine seriell-zu-seriell Verbindung herstellt und ihn über den Monitor der IDE oder einem kleinem Sketch mittels AT-Befehlen anspricht.
 

 
Unser Sketch hatte schon die Funktion, dass es Werte der analogen Eingänge nach der Server-Adresse des Arduino pushen konnte.

Das neue Programm soll nun ganz ähnlich arbeiten, den ESP konfigurieren und empfangsbereit machen, aber auch einen Sensor auswerten.

Zusätzlich dazu soll es eine neue Antenne mit verbesserter Reichweite geben. Wir ändern also nochmal Hardware und Software. Zur ersten Baustelle dann auch das erste Bild, die Leitung fixieren wir mit einem Klebepunkt.
 

 
Der ESP hat wieder eine feste IP-Adresse und ist mit einem Arduino auf die selbe Weise verkabelt, wie schon im ersten Projekt zu diesem Thema erläutert. Jetzt soll aber eine wirkliche Anwendung dahintergestellt werden. Wir beschränken uns mal auf einen Temperatur-und Luftfeuchte-Sensor.

Der DHT11 ist ein relativ preiswerter Sensor aus einer Reihe von DHTs, ziemlich ähnlich dem DHT22 und anderen. Aber wir brauchen hier nur das 11er-Modell.

Und die Arduino-DHT11Lib unterstützt diesen. Die Library, also Header-Datei und die dht11.cpp nebst einem Beispiel-Sketch gibt es unter http://playground.arduino.cc/main/DHT11Lib .
 

 
Ist alles fertig verbunden, sieht das Ganze auf einem Breadboard so aus. Zu erkennen die Stromversorgung, Antenne, Nano und die ESP-Platine in der Stiftleisten-Version.

Der Sensor (blau im Bild) misst Temperatur und Luftfeuchte und hat ein 1-Wire-Interface, braucht also neben GND und Vin (3.5-5V) noch eine Datenverbindung.

So verbindet man:
 
DHT11-Pins Arduino
——————–
1 – VCC 5V
2 – DATA D05
3 – NC –
4 – GND GND

 
Der Datenausgang des DHT kommt bei uns an den 5. digitalen Eingang des Arduino Nano, da ja D2 und D3 schon für das serielle Interface belegt sind. Außerdem bekommt der Dateneingang noch einen 4.7K-Widerstand zu 5V.

Der dritte Anschluss bleibt frei. Demzufolge lauten die einleitenden Zeilen im Sketch:
 
#include “dht11.h”
dht11 DHT11;
#define DHT11PIN 5

 
Will man jetzt Werte abfragen, so geht man vor:
 
int chk = DHT11.read(DHT11PIN);
Serial.print(“Temperatur: “);
Serial.println((float)DHT11.temperature, 2);
Serial.print(“Luftfeuchte: “);
Serial.println((float)DHT11.humidity, 2);

 

 
Bei uns wird dann später zusätzlich zur Website übertragen, die Ausgabe auf dem seriellen Monitor bleibt aber zu Debug-Zwecken wie oben bestehen. Den zugehörigen Quelltext spare ich mir hier, vielleicht einmal in einem Codeschnipsel.

Jedenfalls hat der Sensor nun eine Website bekommen, ist also Teil des “IoT” geworden. Zwischenziel erreicht also. Nun geht es also darum, den Nano durch eine mehr stromsparende Ansteuerung für den ESP zu ersetzen. Und das und den aktuellen Stand könnt ihr auch auf unserer Projekte-Seite unter dem Link http://www.smartewelt.de/sw4/?q=weiterearduino2 nachlesen.
 

Swen Hopfe

Teilen in...
Share on FacebookShare on Google+Tweet about this on TwitterShare on XingShare on LinkedIn

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.