k k
/
dhtcode
...
main.cpp@0:74ce8bfddd4a, 2021-06-09 (annotated)
- Committer:
- katachi
- Date:
- Wed Jun 09 06:25:36 2021 +0000
- Revision:
- 0:74ce8bfddd4a
...
Who changed what in which revision?
User | Revision | Line number | New 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 | } |