[SIMPLE PROGRAM] HYT humidity & temp sensor polling / showing received data at TFT with capacitive touchscreen

Dependencies:   FT800_2 HYT mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "FT_Platform.h"
00003 #include "HYT.h"
00004 #include "display.h"
00005 
00006 HYT SENSOR (PD6, PD7); // sda, scl [SLSTK3400A]
00007 FT800 TFT (PE10, PE11, PE12, PE13, PB11, PD4); // mosi, miso, sck, ss, int, pd [SLSTK3400A]
00008 //HYT SENSOR (D14, D15); // sda, scl [WIZwiki-W7500P]
00009 //FT800 TFT (D11, D12, D13, D10, D9, D8); // mosi, miso, sck, ss, int, pd [WIZwiki-W7500P]
00010 //HYT SENSOR (PA08, PA09); // sda, scl [ATSAMD21-XPRO]
00011 //FT800 TFT (PA18, PA16, PA19, PA17, PA20, PA21); // mosi, miso, sck, ss, int, pd [ATSAMD21-XPRO]
00012 
00013 Display disp(&TFT);
00014 
00015 /**************************************************************************************************************************
00016 ************************** HYT sensor polling cycle ***********************************************************************
00017 **************************************************************************************************************************/
00018 void dataUpdate(void)
00019 {
00020     SENSOR.MRCommand();
00021     wait_ms(100);
00022     SENSOR.DFCommand();
00023 }
00024 
00025 /**************************************************************************************************************************
00026 ************************** Main function **********************************************************************************
00027 **************************************************************************************************************************/
00028 int main()
00029 {
00030     disp.Calibration();
00031 
00032     disp.activeScreen = MENU_SCREEN;
00033     disp.pressedButton = NONE_PRESS;
00034 
00035     // change active screen depending on pressed area
00036     while(1) {
00037         dataUpdate();
00038         disp.pressedButton = disp.GetTouch();
00039 
00040         // ----------------------------------------------------------------------------------------------
00041         // Main menu screen
00042         if (disp.activeScreen == MENU_SCREEN) {
00043             disp.MainMenu(SENSOR.humidity, SENSOR.temperature);
00044             if (disp.pressedButton) {
00045                 wait_ms(150);
00046                 if (disp.pressedButton == CURR_TEMP_PRESS) {
00047                     disp.activeScreen = CURR_TEMP_SCREEN;
00048                 } else if (disp.pressedButton == CURR_HUM_PRESS) {
00049                     disp.activeScreen = CURR_HUM_SCREEN;
00050                 } 
00051                 disp.pressedButton = NONE_PRESS;
00052             }
00053 
00054         // ----------------------------------------------------------------------------------------------
00055         // Any other screen
00056         } else {
00057             // ----------------------------------------------------------------------------------------------
00058             // You can back to main menu from any screen
00059             if (disp.pressedButton == MENU_PRESS) {
00060                 disp.pressedButton = NONE_PRESS;
00061                 disp.activeScreen = MENU_SCREEN;
00062             } else {
00063                 // ----------------------------------------------------------------------------------------------
00064                 // Screen with current temperature / humidity
00065                 if (disp.activeScreen == CURR_TEMP_SCREEN) {
00066                     disp.CurrentTemperature(SENSOR.temperature);
00067                 } else if (disp.activeScreen == CURR_HUM_SCREEN) {
00068                     disp.CurrentHumidity(SENSOR.humidity);
00069                 } 
00070             }
00071         }
00072     }
00073 }