-

Dependencies:   CommandHandler HygroClip2 InterruptBasedEncoder SPI_TFT_ILI9341 mbed-src-no-hal

Committer:
wolfsberger
Date:
Tue Apr 05 14:00:51 2016 +0000
Revision:
4:47fd4584df95
Parent:
3:3ef8c2d7b1bf
-

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolfsberger 0:9ed7238d49e2 1 #include "stdio.h"
wolfsberger 0:9ed7238d49e2 2 #include "mbed.h"
wolfsberger 0:9ed7238d49e2 3 #include "HygroClip2.h"
wolfsberger 0:9ed7238d49e2 4 #include "SPI_TFT_ILI9341.h"
wolfsberger 0:9ed7238d49e2 5 #include "Arial12x12.h"
wolfsberger 0:9ed7238d49e2 6 #include "Arial28x28.h"
wolfsberger 0:9ed7238d49e2 7 #include "GraphScale.h"
wolfsberger 0:9ed7238d49e2 8 #include "LineGraph.h"
wolfsberger 3:3ef8c2d7b1bf 9 #include "CommandHandler.h"
wolfsberger 3:3ef8c2d7b1bf 10 #include "Encoder.h"
wolfsberger 0:9ed7238d49e2 11
wolfsberger 3:3ef8c2d7b1bf 12 //Serial pc(SERIAL_TX, SERIAL_RX);
wolfsberger 0:9ed7238d49e2 13 HygroClip2 sensor(D8,D2);
wolfsberger 0:9ed7238d49e2 14 SPI_TFT_ILI9341 TFT(SPI_MOSI,SPI_MISO,SPI_SCK,SPI_CS,D9,D7);
wolfsberger 0:9ed7238d49e2 15
wolfsberger 3:3ef8c2d7b1bf 16 const int ColorTemperature = RGB(0xff,0x37,0x00);
wolfsberger 3:3ef8c2d7b1bf 17 const int ColorHumidity = RGB(0x00,0xc8,0xff);
wolfsberger 3:3ef8c2d7b1bf 18 const int ColorDewPoint = RGB(0x00,0xE8,0x59);
wolfsberger 3:3ef8c2d7b1bf 19 const int ColorHumidityAbs = RGB(0xff,0x44,0xa5);
wolfsberger 3:3ef8c2d7b1bf 20 const float GraphUpdateRateInSeconds = 5;
wolfsberger 3:3ef8c2d7b1bf 21
wolfsberger 3:3ef8c2d7b1bf 22
wolfsberger 3:3ef8c2d7b1bf 23 LineGraph<200> graphTemperature (&TFT,1,200,200,100,0,100);
wolfsberger 3:3ef8c2d7b1bf 24 LineGraph<200> graphHumidity (&TFT,1,200,200,100,0,100);
wolfsberger 3:3ef8c2d7b1bf 25 LineGraph<200> graphDewPoint (&TFT,1,200,200,100,0,100);
wolfsberger 3:3ef8c2d7b1bf 26 GraphScale scale (&TFT,1,200,200,100,0,100,20);
wolfsberger 3:3ef8c2d7b1bf 27
wolfsberger 3:3ef8c2d7b1bf 28 //RotaryEncoder encoder(D3, D4);
wolfsberger 3:3ef8c2d7b1bf 29
wolfsberger 3:3ef8c2d7b1bf 30 CommandHandler commandHandler;
wolfsberger 0:9ed7238d49e2 31
wolfsberger 2:81fc8f80fdb4 32 void drawChangingValues()
wolfsberger 2:81fc8f80fdb4 33 {
wolfsberger 4:47fd4584df95 34 //TFT.set_font((unsigned char*)Arial28x28);
wolfsberger 2:81fc8f80fdb4 35 TFT.locate(10,25);
wolfsberger 2:81fc8f80fdb4 36 TFT.foreground(ColorTemperature);
wolfsberger 2:81fc8f80fdb4 37 TFT.printf("%.1f*C ",sensor.getTemperature()); // * will be displayed as °
wolfsberger 2:81fc8f80fdb4 38 TFT.locate(10,70);
wolfsberger 2:81fc8f80fdb4 39 TFT.foreground(ColorHumidity);
wolfsberger 2:81fc8f80fdb4 40 TFT.printf("%.1f%%rH ",sensor.getHumidity());
wolfsberger 3:3ef8c2d7b1bf 41 TFT.foreground(ColorHumidityAbs);
wolfsberger 2:81fc8f80fdb4 42 TFT.locate(10,115);
wolfsberger 3:3ef8c2d7b1bf 43 TFT.printf("%.3fg/m3 ",sensor.getAbsolutHumidity());
wolfsberger 3:3ef8c2d7b1bf 44 TFT.foreground(ColorDewPoint);
wolfsberger 2:81fc8f80fdb4 45 TFT.locate(10,160);
wolfsberger 2:81fc8f80fdb4 46 TFT.printf("%.1f*C ",sensor.getDewPoint()); // * will be displayed as °
wolfsberger 2:81fc8f80fdb4 47 }
wolfsberger 2:81fc8f80fdb4 48
wolfsberger 3:3ef8c2d7b1bf 49 void drawGraphs()
wolfsberger 3:3ef8c2d7b1bf 50 {
wolfsberger 3:3ef8c2d7b1bf 51 graphTemperature.draw(ColorTemperature);
wolfsberger 3:3ef8c2d7b1bf 52 graphHumidity.draw(ColorHumidity);
wolfsberger 3:3ef8c2d7b1bf 53 graphDewPoint.draw(ColorDewPoint);
wolfsberger 3:3ef8c2d7b1bf 54 }
wolfsberger 3:3ef8c2d7b1bf 55
wolfsberger 0:9ed7238d49e2 56 int main()
wolfsberger 3:3ef8c2d7b1bf 57 {
wolfsberger 3:3ef8c2d7b1bf 58 //TFT.claim(stdout); // send stdout to the TFT display
wolfsberger 0:9ed7238d49e2 59 TFT.background(Black); // set background to black
wolfsberger 0:9ed7238d49e2 60 TFT.foreground(White); // set chars to white
wolfsberger 0:9ed7238d49e2 61 TFT.cls(); // clear the screen
wolfsberger 0:9ed7238d49e2 62 TFT.set_font((unsigned char*) Arial12x12); // select the font
wolfsberger 0:9ed7238d49e2 63 TFT.set_orientation(2);
wolfsberger 3:3ef8c2d7b1bf 64
wolfsberger 0:9ed7238d49e2 65 TFT.locate(10,10);
wolfsberger 0:9ed7238d49e2 66 TFT.printf("Loading...");
wolfsberger 3:3ef8c2d7b1bf 67
wolfsberger 3:3ef8c2d7b1bf 68 while(!sensor.isDataValid())
wolfsberger 0:9ed7238d49e2 69 {
wolfsberger 0:9ed7238d49e2 70 sensor.update();
wolfsberger 0:9ed7238d49e2 71 wait(.5f);
wolfsberger 0:9ed7238d49e2 72 }
wolfsberger 3:3ef8c2d7b1bf 73
wolfsberger 0:9ed7238d49e2 74 TFT.locate(10,10);
wolfsberger 2:81fc8f80fdb4 75 TFT.printf("Temperatur");
wolfsberger 0:9ed7238d49e2 76 TFT.locate(10,55);
wolfsberger 2:81fc8f80fdb4 77 TFT.printf("Luftfeuchtigkeit (relativ)");
wolfsberger 0:9ed7238d49e2 78 TFT.locate(10,100);
wolfsberger 2:81fc8f80fdb4 79 TFT.printf("Luftfeuchtigkeit (absolut)");
wolfsberger 0:9ed7238d49e2 80 TFT.locate(10,145);
wolfsberger 2:81fc8f80fdb4 81 TFT.printf("Taupunkt");
wolfsberger 3:3ef8c2d7b1bf 82
wolfsberger 3:3ef8c2d7b1bf 83 scale.draw(White);
wolfsberger 3:3ef8c2d7b1bf 84
wolfsberger 3:3ef8c2d7b1bf 85 float seconds = 0;
wolfsberger 3:3ef8c2d7b1bf 86 const float waitTime = 1.0f;
wolfsberger 3:3ef8c2d7b1bf 87
wolfsberger 3:3ef8c2d7b1bf 88 printf("running..\n");
wolfsberger 3:3ef8c2d7b1bf 89
wolfsberger 0:9ed7238d49e2 90 while(1) {
wolfsberger 3:3ef8c2d7b1bf 91
wolfsberger 0:9ed7238d49e2 92 sensor.update();
wolfsberger 3:3ef8c2d7b1bf 93
wolfsberger 2:81fc8f80fdb4 94 drawChangingValues();
wolfsberger 3:3ef8c2d7b1bf 95 if (seconds >= GraphUpdateRateInSeconds)
wolfsberger 3:3ef8c2d7b1bf 96 {
wolfsberger 3:3ef8c2d7b1bf 97 seconds = 0;
wolfsberger 3:3ef8c2d7b1bf 98 graphTemperature.addItem(sensor.getTemperature());
wolfsberger 3:3ef8c2d7b1bf 99 graphHumidity.addItem(sensor.getHumidity());
wolfsberger 3:3ef8c2d7b1bf 100 graphDewPoint.addItem(sensor.getDewPoint());
wolfsberger 3:3ef8c2d7b1bf 101 drawGraphs();
wolfsberger 3:3ef8c2d7b1bf 102 }
wolfsberger 3:3ef8c2d7b1bf 103
wolfsberger 3:3ef8c2d7b1bf 104 seconds += waitTime;
wolfsberger 3:3ef8c2d7b1bf 105 wait(waitTime);
wolfsberger 0:9ed7238d49e2 106 }
wolfsberger 0:9ed7238d49e2 107 }