k k
/
dhtcode
Diff: main.cpp
- Revision:
- 0:74ce8bfddd4a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Jun 09 06:25:36 2021 +0000 @@ -0,0 +1,67 @@ +#include "mbed.h" +#include "DHT.h" +#include "TextLCD.h" // LCD1602 + +DHT sensor(PB_3, DHT11); +Serial pc(SERIAL_TX, SERIAL_RX); + + // LCD pins +TextLCD lcd(D2, D3, D9, D10, D11, D12); + +// diplay text on LCD +void textLCD(char *text, int line) { + char tmpBuf[16]; + for (int i = 0; i < 16; i++) tmpBuf[i] = 0x20; + for (int i = 0; i < strlen(text); i++) { + if (i < 16) tmpBuf[i] = text[i]; + } + + lcd.locate(0, line); + lcd.printf(tmpBuf); +} + + +int main() +{ + int error = 0; + float h = 0.0f, c = 0.0f, f = 0.0f, k = 0.0f, dp = 0.0f, dpf = 0.0f; + pc.baud(9600); + lcd.cls(); + char tmpString[16]; + char tmpString2[16]; + int iKey = 0; + int oldiKey = 0; + int temp_format = 0; + int humid_format = 0; + + while(1) { + wait(2.0f); + 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); + pc.printf("Temperature in Kelvin: %4.2f, Celcius: %4.2f, Farenheit %4.2f\r\n", k, c, f); + pc.printf("Humidity is %4.2f, Dewpoint: %4.2f, Dewpoint fast: %4.2f\r\n", h, dp, dpf); + pc.printf("Tempformat: %d HumidFormat: %d\r\n", temp_format, humid_format); + switch(temp_format) { + case 0 : sprintf(tmpString, " Temp: %4.2fC", c); break; +// case 1 : sprintf(tmpString, " Temp: %4.2fF", f); break; +// case 2 : sprintf(tmpString, " Temp: %4.2fK", k); break; + } + textLCD(tmpString, 1); + switch(humid_format) { + case 0 : sprintf(tmpString2, "Humid: %4.2f", h); break; +// case 1 : sprintf(tmpString2, "Dewpoint: %4.2f", dp); break; +// case 2 : sprintf(tmpString2, "DewpFast: %4.2f", dpf); break; + } + textLCD(tmpString2, 0); + } else { + pc.printf("Error: %d\n", error); + textLCD("Error", 0); + } + } +} \ No newline at end of file