...

Dependencies:   DHT TextLCD

Committer:
katachi
Date:
Wed Jun 09 06:25:36 2021 +0000
Revision:
0:74ce8bfddd4a
...

Who changed what in which revision?

UserRevisionLine numberNew contents of line
katachi 0:74ce8bfddd4a 1 #include "mbed.h"
katachi 0:74ce8bfddd4a 2 #include "DHT.h"
katachi 0:74ce8bfddd4a 3 #include "TextLCD.h" // LCD1602
katachi 0:74ce8bfddd4a 4
katachi 0:74ce8bfddd4a 5 DHT sensor(PB_3, DHT11);
katachi 0:74ce8bfddd4a 6 Serial pc(SERIAL_TX, SERIAL_RX);
katachi 0:74ce8bfddd4a 7
katachi 0:74ce8bfddd4a 8 // LCD pins
katachi 0:74ce8bfddd4a 9 TextLCD lcd(D2, D3, D9, D10, D11, D12);
katachi 0:74ce8bfddd4a 10
katachi 0:74ce8bfddd4a 11 // diplay text on LCD
katachi 0:74ce8bfddd4a 12 void textLCD(char *text, int line) {
katachi 0:74ce8bfddd4a 13 char tmpBuf[16];
katachi 0:74ce8bfddd4a 14 for (int i = 0; i < 16; i++) tmpBuf[i] = 0x20;
katachi 0:74ce8bfddd4a 15 for (int i = 0; i < strlen(text); i++) {
katachi 0:74ce8bfddd4a 16 if (i < 16) tmpBuf[i] = text[i];
katachi 0:74ce8bfddd4a 17 }
katachi 0:74ce8bfddd4a 18
katachi 0:74ce8bfddd4a 19 lcd.locate(0, line);
katachi 0:74ce8bfddd4a 20 lcd.printf(tmpBuf);
katachi 0:74ce8bfddd4a 21 }
katachi 0:74ce8bfddd4a 22
katachi 0:74ce8bfddd4a 23
katachi 0:74ce8bfddd4a 24 int main()
katachi 0:74ce8bfddd4a 25 {
katachi 0:74ce8bfddd4a 26 int error = 0;
katachi 0:74ce8bfddd4a 27 float h = 0.0f, c = 0.0f, f = 0.0f, k = 0.0f, dp = 0.0f, dpf = 0.0f;
katachi 0:74ce8bfddd4a 28 pc.baud(9600);
katachi 0:74ce8bfddd4a 29 lcd.cls();
katachi 0:74ce8bfddd4a 30 char tmpString[16];
katachi 0:74ce8bfddd4a 31 char tmpString2[16];
katachi 0:74ce8bfddd4a 32 int iKey = 0;
katachi 0:74ce8bfddd4a 33 int oldiKey = 0;
katachi 0:74ce8bfddd4a 34 int temp_format = 0;
katachi 0:74ce8bfddd4a 35 int humid_format = 0;
katachi 0:74ce8bfddd4a 36
katachi 0:74ce8bfddd4a 37 while(1) {
katachi 0:74ce8bfddd4a 38 wait(2.0f);
katachi 0:74ce8bfddd4a 39 error = sensor.readData();
katachi 0:74ce8bfddd4a 40 if (0 == error) {
katachi 0:74ce8bfddd4a 41 c = sensor.ReadTemperature(CELCIUS);
katachi 0:74ce8bfddd4a 42 f = sensor.ReadTemperature(FARENHEIT);
katachi 0:74ce8bfddd4a 43 k = sensor.ReadTemperature(KELVIN);
katachi 0:74ce8bfddd4a 44 h = sensor.ReadHumidity();
katachi 0:74ce8bfddd4a 45 dp = sensor.CalcdewPoint(c, h);
katachi 0:74ce8bfddd4a 46 dpf = sensor.CalcdewPointFast(c, h);
katachi 0:74ce8bfddd4a 47 pc.printf("Temperature in Kelvin: %4.2f, Celcius: %4.2f, Farenheit %4.2f\r\n", k, c, f);
katachi 0:74ce8bfddd4a 48 pc.printf("Humidity is %4.2f, Dewpoint: %4.2f, Dewpoint fast: %4.2f\r\n", h, dp, dpf);
katachi 0:74ce8bfddd4a 49 pc.printf("Tempformat: %d HumidFormat: %d\r\n", temp_format, humid_format);
katachi 0:74ce8bfddd4a 50 switch(temp_format) {
katachi 0:74ce8bfddd4a 51 case 0 : sprintf(tmpString, " Temp: %4.2fC", c); break;
katachi 0:74ce8bfddd4a 52 // case 1 : sprintf(tmpString, " Temp: %4.2fF", f); break;
katachi 0:74ce8bfddd4a 53 // case 2 : sprintf(tmpString, " Temp: %4.2fK", k); break;
katachi 0:74ce8bfddd4a 54 }
katachi 0:74ce8bfddd4a 55 textLCD(tmpString, 1);
katachi 0:74ce8bfddd4a 56 switch(humid_format) {
katachi 0:74ce8bfddd4a 57 case 0 : sprintf(tmpString2, "Humid: %4.2f", h); break;
katachi 0:74ce8bfddd4a 58 // case 1 : sprintf(tmpString2, "Dewpoint: %4.2f", dp); break;
katachi 0:74ce8bfddd4a 59 // case 2 : sprintf(tmpString2, "DewpFast: %4.2f", dpf); break;
katachi 0:74ce8bfddd4a 60 }
katachi 0:74ce8bfddd4a 61 textLCD(tmpString2, 0);
katachi 0:74ce8bfddd4a 62 } else {
katachi 0:74ce8bfddd4a 63 pc.printf("Error: %d\n", error);
katachi 0:74ce8bfddd4a 64 textLCD("Error", 0);
katachi 0:74ce8bfddd4a 65 }
katachi 0:74ce8bfddd4a 66 }
katachi 0:74ce8bfddd4a 67 }