![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Software for wall mounted dew point sensor
Dependencies: mbed HYT Watchdog TextLCD
main.cpp
- Committer:
- koosvanderwat
- Date:
- 2019-11-29
- Revision:
- 3:25b7f448750d
- Parent:
- 2:ad0b044d0a10
File content as of revision 3:25b7f448750d:
#include "mbed.h" #include "TextLCD.h" #include "HYT.h" #include "Watchdog.h" // Setup Hardware HYT SENSOR (D0,D1); //Nucleo (SDA,SCL) (D0,D1) (D4,D5) TextLCD lcd(D9, D6, D5, D4, D3, D2); // rs, e, d4-d7 // Setup Watchdog Watchdog wd; //Define Pins AnalogOut AOUT(A3); DigitalOut my_led(LED1); DigitalOut Alarm_led(A7); //Setup Timer Ticker timeKeeping; //Setup Variables float Calibration = 0; // RH correction value float SetPoint = 5; // Max Dew Point in Celsius to trigger alarm. int Counter = 0; float RHValue = 0; float TempValue = 0; float A = 0; float DewPoint = -50; float sample = 0; float test = 0; int main() { //lcd.printf("Hello World5!\n"); Alarm_led=1; //lcd.setBacklight(TextLCD::LightOn); //lcd.setCursor(TextLCD::CurOff_BlkOff); wd.Configure(4.0); wait_ms(100); lcd.printf("TegnonEfficiency\n"); lcd.locate(0,1); lcd.printf("Dew Point Sensor\n"); wait_ms(1000); lcd.cls(); lcd.printf("Dew Point:"); lcd.locate(0,1); lcd.printf("RH:"); lcd.locate(8,1); lcd.printf("T:"); while(1) { Counter = Counter + 1; wait(1); wd.Service(); my_led = !my_led; if(Counter == 10) { lcd.cls(); lcd.printf("Dew Point:"); lcd.locate(0,1); lcd.printf("RH:"); lcd.locate(8,1); lcd.printf("T:"); Counter = 0; } if(DewPoint > SetPoint) { Alarm_led = !Alarm_led; } else { Alarm_led=1; } SENSOR.MRCommand(); wait_ms(100); SENSOR.DFCommand(); wait_ms(100); RHValue = (SENSOR.humidity); TempValue = (SENSOR.temperature); if(RHValue > 1) { A = log( RHValue * 0.01 * pow(10, 7.5*TempValue/(237.2+TempValue) ) ); DewPoint = ( 23720 * A/(17.269-A))/100; if(DewPoint < -50) { DewPoint = -50; } if(DewPoint > 20) { DewPoint = 20; } test = 0.01428728*DewPoint+0.714364; lcd.locate(10,0); lcd.printf(" "); lcd.locate(10,0); lcd.printf("%.1f%", DewPoint); lcd.printf("C"); lcd.locate(3,1); lcd.printf(" "); lcd.locate(3,1); lcd.printf("%.1f%", RHValue); lcd.locate(10,1); lcd.printf(" "); lcd.locate(10,1); lcd.printf("%.1f%", TempValue); lcd.printf("C\n"); AOUT = 0.0142857142857143*DewPoint+0.7142857143; } else { AOUT = 0; lcd.cls(); wait_ms(1000); lcd.locate(0,0); lcd.printf(" Sensor \n"); lcd.locate(0,1); lcd.printf(" Error \n"); } } // While(1) } //Void Main