-
Dependencies: CommandHandler HygroClip2 InterruptBasedEncoder SPI_TFT_ILI9341 mbed-src-no-hal
main.cpp
00001 #include "stdio.h" 00002 #include "mbed.h" 00003 #include "HygroClip2.h" 00004 #include "SPI_TFT_ILI9341.h" 00005 #include "Arial12x12.h" 00006 #include "Arial28x28.h" 00007 #include "GraphScale.h" 00008 #include "LineGraph.h" 00009 #include "CommandHandler.h" 00010 #include "Encoder.h" 00011 00012 //Serial pc(SERIAL_TX, SERIAL_RX); 00013 HygroClip2 sensor(D8,D2); 00014 SPI_TFT_ILI9341 TFT(SPI_MOSI,SPI_MISO,SPI_SCK,SPI_CS,D9,D7); 00015 00016 const int ColorTemperature = RGB(0xff,0x37,0x00); 00017 const int ColorHumidity = RGB(0x00,0xc8,0xff); 00018 const int ColorDewPoint = RGB(0x00,0xE8,0x59); 00019 const int ColorHumidityAbs = RGB(0xff,0x44,0xa5); 00020 const float GraphUpdateRateInSeconds = 5; 00021 00022 00023 LineGraph<200> graphTemperature (&TFT,1,200,200,100,0,100); 00024 LineGraph<200> graphHumidity (&TFT,1,200,200,100,0,100); 00025 LineGraph<200> graphDewPoint (&TFT,1,200,200,100,0,100); 00026 GraphScale scale (&TFT,1,200,200,100,0,100,20); 00027 00028 //RotaryEncoder encoder(D3, D4); 00029 00030 CommandHandler commandHandler; 00031 00032 void drawChangingValues() 00033 { 00034 //TFT.set_font((unsigned char*)Arial28x28); 00035 TFT.locate(10,25); 00036 TFT.foreground(ColorTemperature); 00037 TFT.printf("%.1f*C ",sensor.getTemperature()); // * will be displayed as ° 00038 TFT.locate(10,70); 00039 TFT.foreground(ColorHumidity); 00040 TFT.printf("%.1f%%rH ",sensor.getHumidity()); 00041 TFT.foreground(ColorHumidityAbs); 00042 TFT.locate(10,115); 00043 TFT.printf("%.3fg/m3 ",sensor.getAbsolutHumidity()); 00044 TFT.foreground(ColorDewPoint); 00045 TFT.locate(10,160); 00046 TFT.printf("%.1f*C ",sensor.getDewPoint()); // * will be displayed as ° 00047 } 00048 00049 void drawGraphs() 00050 { 00051 graphTemperature.draw(ColorTemperature); 00052 graphHumidity.draw(ColorHumidity); 00053 graphDewPoint.draw(ColorDewPoint); 00054 } 00055 00056 int main() 00057 { 00058 //TFT.claim(stdout); // send stdout to the TFT display 00059 TFT.background(Black); // set background to black 00060 TFT.foreground(White); // set chars to white 00061 TFT.cls(); // clear the screen 00062 TFT.set_font((unsigned char*) Arial12x12); // select the font 00063 TFT.set_orientation(2); 00064 00065 TFT.locate(10,10); 00066 TFT.printf("Loading..."); 00067 00068 while(!sensor.isDataValid()) 00069 { 00070 sensor.update(); 00071 wait(.5f); 00072 } 00073 00074 TFT.locate(10,10); 00075 TFT.printf("Temperatur"); 00076 TFT.locate(10,55); 00077 TFT.printf("Luftfeuchtigkeit (relativ)"); 00078 TFT.locate(10,100); 00079 TFT.printf("Luftfeuchtigkeit (absolut)"); 00080 TFT.locate(10,145); 00081 TFT.printf("Taupunkt"); 00082 00083 scale.draw(White); 00084 00085 float seconds = 0; 00086 const float waitTime = 1.0f; 00087 00088 printf("running..\n"); 00089 00090 while(1) { 00091 00092 sensor.update(); 00093 00094 drawChangingValues(); 00095 if (seconds >= GraphUpdateRateInSeconds) 00096 { 00097 seconds = 0; 00098 graphTemperature.addItem(sensor.getTemperature()); 00099 graphHumidity.addItem(sensor.getHumidity()); 00100 graphDewPoint.addItem(sensor.getDewPoint()); 00101 drawGraphs(); 00102 } 00103 00104 seconds += waitTime; 00105 wait(waitTime); 00106 } 00107 }
Generated on Mon Jul 18 2022 03:22:46 by 1.7.2