-
Dependencies: CommandHandler HygroClip2 InterruptBasedEncoder SPI_TFT_ILI9341 mbed-src-no-hal
main.cpp
- Committer:
- wolfsberger
- Date:
- 2016-04-05
- Revision:
- 4:47fd4584df95
- Parent:
- 3:3ef8c2d7b1bf
File content as of revision 4:47fd4584df95:
#include "stdio.h" #include "mbed.h" #include "HygroClip2.h" #include "SPI_TFT_ILI9341.h" #include "Arial12x12.h" #include "Arial28x28.h" #include "GraphScale.h" #include "LineGraph.h" #include "CommandHandler.h" #include "Encoder.h" //Serial pc(SERIAL_TX, SERIAL_RX); HygroClip2 sensor(D8,D2); SPI_TFT_ILI9341 TFT(SPI_MOSI,SPI_MISO,SPI_SCK,SPI_CS,D9,D7); const int ColorTemperature = RGB(0xff,0x37,0x00); const int ColorHumidity = RGB(0x00,0xc8,0xff); const int ColorDewPoint = RGB(0x00,0xE8,0x59); const int ColorHumidityAbs = RGB(0xff,0x44,0xa5); const float GraphUpdateRateInSeconds = 5; LineGraph<200> graphTemperature (&TFT,1,200,200,100,0,100); LineGraph<200> graphHumidity (&TFT,1,200,200,100,0,100); LineGraph<200> graphDewPoint (&TFT,1,200,200,100,0,100); GraphScale scale (&TFT,1,200,200,100,0,100,20); //RotaryEncoder encoder(D3, D4); CommandHandler commandHandler; void drawChangingValues() { //TFT.set_font((unsigned char*)Arial28x28); TFT.locate(10,25); TFT.foreground(ColorTemperature); TFT.printf("%.1f*C ",sensor.getTemperature()); // * will be displayed as ° TFT.locate(10,70); TFT.foreground(ColorHumidity); TFT.printf("%.1f%%rH ",sensor.getHumidity()); TFT.foreground(ColorHumidityAbs); TFT.locate(10,115); TFT.printf("%.3fg/m3 ",sensor.getAbsolutHumidity()); TFT.foreground(ColorDewPoint); TFT.locate(10,160); TFT.printf("%.1f*C ",sensor.getDewPoint()); // * will be displayed as ° } void drawGraphs() { graphTemperature.draw(ColorTemperature); graphHumidity.draw(ColorHumidity); graphDewPoint.draw(ColorDewPoint); } int main() { //TFT.claim(stdout); // send stdout to the TFT display TFT.background(Black); // set background to black TFT.foreground(White); // set chars to white TFT.cls(); // clear the screen TFT.set_font((unsigned char*) Arial12x12); // select the font TFT.set_orientation(2); TFT.locate(10,10); TFT.printf("Loading..."); while(!sensor.isDataValid()) { sensor.update(); wait(.5f); } TFT.locate(10,10); TFT.printf("Temperatur"); TFT.locate(10,55); TFT.printf("Luftfeuchtigkeit (relativ)"); TFT.locate(10,100); TFT.printf("Luftfeuchtigkeit (absolut)"); TFT.locate(10,145); TFT.printf("Taupunkt"); scale.draw(White); float seconds = 0; const float waitTime = 1.0f; printf("running..\n"); while(1) { sensor.update(); drawChangingValues(); if (seconds >= GraphUpdateRateInSeconds) { seconds = 0; graphTemperature.addItem(sensor.getTemperature()); graphHumidity.addItem(sensor.getHumidity()); graphDewPoint.addItem(sensor.getDewPoint()); drawGraphs(); } seconds += waitTime; wait(waitTime); } }