Русифицированная версия программы для измерения температуры и отн. влажности и вывода информации на сенсорный TFT
Dependencies: FT800_2 HYT mbed
Компоненты
- Датчик температуры и относительной влажности HYT-271 / HYT-221 / HYT-939 от компании IST-AG
- TFT-модуль серии uxTouch от компании Riverdi
- Плата-переходник Break Out Board 20 от компании Riverdi
- Любая отладочная плата с поддержкой mbed, интерфейсами I2C и SPI interface двумя свободными линиями для сигналов PD и INT
Подключение
Отладочная плата к TFT-модулю
Отладочная плата подключается к модулю через переходник Break Out Board 20. На плате-переходнике используется 6 сигналов: SCK, MOSI, MISO, SS (интерфейс SPI), PD (powerdown) и INT (interrupt).
Питание должно быть подано не только на VDD, но и на BLVDD - подсветку экрана. Соответствующие выводы можно просто соединить между собой:
Отладочная плата к датчику серии HYT
К датчику отладочная плата подключается по I2C. Не забываем про подтяжку к питанию:
Демонстрация работы
Процесс создания приложения подробно описан тут: https://habrahabr.ru/users/uuuulala/topics/
TFT/display.ImagesAndFonts.cpp
- Committer:
- Ksenia
- Date:
- 2016-10-12
- Revision:
- 1:8ca8a4ecbe6b
- Parent:
- 0:9db07391e780
File content as of revision 1:8ca8a4ecbe6b:
#include "display.h" /************************************************************************************************************************** ************************** Decompress images anf fonts from pictures.h and put them to the RAM memeory of FT800 *********** **************************************************************************************************************************/ void Display::LoadImagesAndFonts() { (*_TFT).WrCmd32(CMD_INFLATE); (*_TFT).WrCmd32(IMAGE_ADDR_HUMIDITY); (*_TFT).WrCmdBufFromFlash(hum_icon, sizeof(hum_icon)); (*_TFT).WrCmd32(CMD_INFLATE); (*_TFT).WrCmd32(IMAGE_ADDR_TEMPERATURE); (*_TFT).WrCmdBufFromFlash(temp_icon, sizeof(temp_icon)); (*_TFT).WrCmd32(CMD_INFLATE); (*_TFT).WrCmd32(IMAGE_ADDR_SENSOR); (*_TFT).WrCmdBufFromFlash(HYT_photo, sizeof(HYT_photo)); (*_TFT).WrCmd32(CMD_INFLATE); (*_TFT).WrCmd32(FONT_SET_ROBOTO_REGULAR_30); (*_TFT).WrCmdBufFromFlash(font_RobotoRegular30, sizeof(font_RobotoRegular30)); (*_TFT).WrCmd32(CMD_INFLATE); (*_TFT).WrCmd32(FONT_SET_ROBOTO_REGULAR_16); (*_TFT).WrCmdBufFromFlash(font_RobotoRegular16, sizeof(font_RobotoRegular16)); } /************************************************************************************************************************** ************************** Prepare images and fronts ********************************************************************** **************************************************************************************************************************/ void Display::HandleAllBitmaps() { // start FT800 display list StartDL(); (*_TFT).DL(BITMAP_HANDLE(0)); (*_TFT).DL(BITMAP_SOURCE(IMAGE_ADDR_HUMIDITY)); (*_TFT).DL(BITMAP_LAYOUT(ARGB4, 60, 38)); (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 30, 38)); (*_TFT).DL(BITMAP_HANDLE(1)); (*_TFT).DL(BITMAP_SOURCE(IMAGE_ADDR_TEMPERATURE)); (*_TFT).DL(BITMAP_LAYOUT(ARGB4, 42, 42)); (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 21, 42)); (*_TFT).DL(BITMAP_HANDLE(2)); (*_TFT).DL(BITMAP_SOURCE(IMAGE_ADDR_SENSOR)); (*_TFT).DL(BITMAP_LAYOUT(RGB332, 101, 147)); (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 101, 147)); (*_TFT).DL(BITMAP_HANDLE(3)); (*_TFT).DL(BITMAP_SOURCE(FONT_ADDR_ROBOTO_REGULAR_30)); (*_TFT).DL(BITMAP_LAYOUT(L4, 16, 33)); (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 32, 33)); (*_TFT).DL(BITMAP_HANDLE(4)); (*_TFT).DL(BITMAP_SOURCE(FONT_ADDR_ROBOTO_REGULAR_16)); (*_TFT).DL(BITMAP_LAYOUT(L4, 8, 20)); (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 16, 20)); (*_TFT).SetFont(3, FONT_SET_ROBOTO_REGULAR_30); (*_TFT).SetFont(4, FONT_SET_ROBOTO_REGULAR_16); // finish FT800 display list FinishDL(); }