Русифицированная версия программы для измерения температуры и отн. влажности и вывода информации на сенсорный 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();
}