
DHT11 and LCD, humidity, temperature, dew point
Dependencies: Freetronics_16x2_LCD mbed
main.cpp
- Committer:
- fblanc
- Date:
- 2015-02-24
- Revision:
- 0:5e787e0e8ab6
File content as of revision 0:5e787e0e8ab6:
#include "mbed.h" #include "freetronicsLCDShield.h" #include "DHT.h" freetronicsLCDShield lcd(D8, D9, D4, D5, D6, D7, D3, A0); DHT sensor(A5, DHT11); DigitalOut myled(LED1); Ticker flipper; bool up=true; void readBP() { float bp=lcd.readButton(); if (bp<0.25) up=true; else if (bp<0.5) up=false; } int main() { flipper.attach(&readBP, 0.1); int error = 0; float h = 0.0f, c = 0.0f, f = 0.0f, k = 0.0f, dp = 0.0f, dpf = 0.0f; // turn on the back light (it's off by default) lcd.setBackLight(true); lcd.cls(); // print the first line and wait 3 sec lcd.printf("mbed DHT11"); wait(3); // print the counter prefix; the number will be printed in the while loop while (1) { error = sensor.readData(); if (0 == error) { c = sensor.ReadTemperature(CELCIUS); f = sensor.ReadTemperature(FARENHEIT); k = sensor.ReadTemperature(KELVIN); h = sensor.ReadHumidity(); dp = sensor.CalcdewPoint(c, h); dpf = sensor.CalcdewPointFast(c, h); if(up==true) { lcd.setCursorPosition(0, 0); lcd.printf("Temperature %4.2f ",c); lcd.setCursorPosition(1, 0); lcd.printf("Humidity %4.2f ", h); } if(up==false) { lcd.setCursorPosition(0, 0); lcd.printf("Humidity %4.2f ", h); lcd.setCursorPosition(1, 0); lcd.printf("Dew point %4.2f ",dp); } } else { lcd.setCursorPosition(0, 0); lcd.printf("mbed DHT11 "); lcd.setCursorPosition(1, 0); lcd.printf("Error: %d ", error); } wait(0.5f); } }