Im letzten Teil wurde der Temperatur-Sensor DHT-11 mit dem Arduino Nano ausgelesen. Nun sollen die gemessenen Werte auch ohne Computer anzeigen werden können.
Der Aufbau basiert auf der letzten Schaltung und erweitert diese um das Display, welches ebenfalls aus dem Arduino Adventskalender stammt. Damit alles Platz hat kommen zwei kleine Steckboards zum Einsatz.
Für die Ansteuerung des LCD wird zusätzlich die Bibliothek „LiquidCrystal“ von Arduino, Adafruit benötigt, welche in der Arduino IDE wiederum unter Tools->Manage Libraries… hinzugefügt werden kann. Bei der Erstellung des Programmes wurde die Version 1.0.7 verwendet. Dem grösseren Aufbau entsprechend ist auch der Code umfangreicher.
* Read data from DHT-11 sensor and show it on a two-line LCD with an arduino nano *
* *
* based on a script by Philippe Keller (www.bastelgarage.ch) *
*******************************************************************************************/
// import used libraries
#include "DHT.h"
#include <LiquidCrystal.h>
// definitions
#define DHTPIN 2 // pin of the arduino where the sensor is connected to
#define DHTTYPE DHT11 // define the type of sensor (DHT11 or DHT22)
// create instance of DHT
DHT dht(DHTPIN, DHTTYPE, 6);
// create instance of LiquidCrystal
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
Serial.begin(9600);
Serial.println("DHT11 test program 2");
dht.begin();
lcd.begin(16, 2);
lcd.clear();
lcd.print("T: C");
lcd.setCursor(0,1);
lcd.print("rF: %");
}
void loop() {
// Wait two seconds between measurements as the sensor will not measure faster
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
// validate values
if (isnan(h) || isnan(t)) {
Serial.println("Error while reading data!");
return;
}
// send data via serial connection to pc
Serial.print("Luftfeuchtigkeit: ");
Serial.print(h);
Serial.print("%\t");
Serial.print("Temperatur: ");
Serial.print(t);
Serial.write("°");
Serial.println("C");
// write data to liquid crystal display
lcd.setCursor(4,0);
lcd.print(t);
lcd.setCursor(4,1);
lcd.print(h);
}
Für die Speisung der Schaltung habe ich eine USB-PowerBank verwendet. Im Einsatz sieht dann das Ganze so aus: