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

Dependencies:   FT800_2 HYT mbed

HYT humidity and temperature sensor polling & showing received data at TFT via graphical controller FT800/FT801.

Hardware

For documentation on the FT800 library, please refer to the library pages.

Connection

MCU-board to TFT-module

MCU-board is connected to TFT-module via Break Out Board. You need 6 signals to connect: SCK, MOSI and MISO are connected to a SPI channel, SS is the chip select signal, PD work as powerdown and INT for interrupts from TFT to MCU.

/media/uploads/Ksenia/4_-22-.jpg

You have to connect VDD to BLVDD at Break Out Board if you use the board:

/media/uploads/Ksenia/4_-5-.jpg

MCU-board to HYT sensor

MCU-board is connected to sensor via I2C. Remember to use pull-up resisrors there:

/media/uploads/Ksenia/freshpaint-20-2016.09.16-10.37.03.png

Подробнее в статьях Как перестать бояться и полюбить mbed [Часть 1 - 5] на https://habrahabr.ru/users/uuuulala/topics/

Committer:
Ksenia
Date:
Wed Oct 05 10:06:54 2016 +0000
Revision:
1:e20b5da0c912
Parent:
0:1f5444f2977d
Changed wrong comment in GetTouch function

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ksenia 0:1f5444f2977d 1 #include "mbed.h"
Ksenia 0:1f5444f2977d 2 #include "FT_Platform.h"
Ksenia 0:1f5444f2977d 3 #include <string>
Ksenia 0:1f5444f2977d 4
Ksenia 0:1f5444f2977d 5 #ifndef DISPLAY_H_
Ksenia 0:1f5444f2977d 6 #define DISPLAY_H_
Ksenia 0:1f5444f2977d 7
Ksenia 0:1f5444f2977d 8 /**************************************************************************************************************************
Ksenia 0:1f5444f2977d 9 ************************** Defines using for drawing **********************************************************************
Ksenia 0:1f5444f2977d 10 **************************************************************************************************************************/
Ksenia 0:1f5444f2977d 11
Ksenia 0:1f5444f2977d 12 // all tracking touch screen areas
Ksenia 0:1f5444f2977d 13 typedef enum {
Ksenia 0:1f5444f2977d 14 NONE_PRESS,
Ksenia 0:1f5444f2977d 15 CURR_TEMP_PRESS,
Ksenia 0:1f5444f2977d 16 CURR_HUM_PRESS,
Ksenia 0:1f5444f2977d 17 MENU_PRESS,
Ksenia 0:1f5444f2977d 18 } pressValues;
Ksenia 0:1f5444f2977d 19
Ksenia 0:1f5444f2977d 20 // all existing screens
Ksenia 0:1f5444f2977d 21 typedef enum {
Ksenia 0:1f5444f2977d 22 MENU_SCREEN,
Ksenia 0:1f5444f2977d 23 CURR_HUM_SCREEN,
Ksenia 0:1f5444f2977d 24 CURR_TEMP_SCREEN,
Ksenia 0:1f5444f2977d 25 } screenValues;
Ksenia 0:1f5444f2977d 26
Ksenia 0:1f5444f2977d 27
Ksenia 0:1f5444f2977d 28 /**************************************************************************************************************************
Ksenia 0:1f5444f2977d 29 ************************** User class for drawing at FT800 ****************************************************************
Ksenia 0:1f5444f2977d 30 **************************************************************************************************************************/
Ksenia 0:1f5444f2977d 31
Ksenia 0:1f5444f2977d 32 class Display
Ksenia 0:1f5444f2977d 33 {
Ksenia 0:1f5444f2977d 34 public:
Ksenia 0:1f5444f2977d 35 // in Display class we use FT800 TFT (definition is available in main.cpp)
Ksenia 0:1f5444f2977d 36 Display(FT800 *TFT) {
Ksenia 0:1f5444f2977d 37 _TFT = TFT;
Ksenia 0:1f5444f2977d 38 }
Ksenia 0:1f5444f2977d 39
Ksenia 0:1f5444f2977d 40 // functions describing all available screens (screens-functions)
Ksenia 0:1f5444f2977d 41 void MainMenu(float humidity, float temperature); // [display.Draw_MainMenu.cpp]
Ksenia 0:1f5444f2977d 42 void CurrentHumidity(float humidity); // [display.Draw_CurrentValuesGraphs.cpp]
Ksenia 0:1f5444f2977d 43 void CurrentTemperature(float temperature); // [display.Draw_CurrentValuesGraphs.cpp]
Ksenia 0:1f5444f2977d 44
Ksenia 0:1f5444f2977d 45 // functions using to prepare FT800
Ksenia 0:1f5444f2977d 46 void Calibration(void); // [display.Calibration.cpp]
Ksenia 0:1f5444f2977d 47
Ksenia 0:1f5444f2977d 48 // functions for touch screen tracking
Ksenia 0:1f5444f2977d 49 char GetTouch(void); // [display.GetTouch.cpp]
Ksenia 0:1f5444f2977d 50
Ksenia 0:1f5444f2977d 51 // variables using for navigation between screens
Ksenia 0:1f5444f2977d 52 char pressedButton;
Ksenia 0:1f5444f2977d 53 char activeScreen;
Ksenia 0:1f5444f2977d 54
Ksenia 0:1f5444f2977d 55 private:
Ksenia 0:1f5444f2977d 56 FT800 *_TFT;
Ksenia 0:1f5444f2977d 57
Ksenia 0:1f5444f2977d 58 void StartDL(void); // [display.DisplayListFunctions.cpp]
Ksenia 0:1f5444f2977d 59 void FinishDL(void); // [display.DisplayListFunctions.cpp]
Ksenia 0:1f5444f2977d 60 void MainMenuReference(void); // [display.Draw_MainMenuReference.cpp]
Ksenia 0:1f5444f2977d 61 void HorisontalGrid_CurrentTemp(void); // [display.Draw_Grids.cpp]
Ksenia 0:1f5444f2977d 62 void HorisontalGrid_CurrentHumidity(void); // [display.Draw_Grids.cpp]
Ksenia 0:1f5444f2977d 63
Ksenia 0:1f5444f2977d 64 void CreateStringTempHum(char *str, float number, bool isTemp); // [display.StringsTransforming.cpp]
Ksenia 0:1f5444f2977d 65
Ksenia 0:1f5444f2977d 66 char humidityStr[8], temperatureStr[8];
Ksenia 0:1f5444f2977d 67 char currentHumidity_X, currentTemperature_X;
Ksenia 0:1f5444f2977d 68 char currentHumidity_Y[68], currentTemperature_Y[68];
Ksenia 0:1f5444f2977d 69 };
Ksenia 0:1f5444f2977d 70
Ksenia 0:1f5444f2977d 71 #endif /* SCREENS_H_ */