Русифицированная версия программы для измерения температуры и отн. влажности и вывода информации на сенсорный 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@0:9db07391e780, 2016-10-07 (annotated)
- Committer:
- Ksenia
- Date:
- Fri Oct 07 11:03:16 2016 +0000
- Revision:
- 0:9db07391e780
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ksenia | 0:9db07391e780 | 1 | #include "display.h" |
Ksenia | 0:9db07391e780 | 2 | |
Ksenia | 0:9db07391e780 | 3 | /************************************************************************************************************************** |
Ksenia | 0:9db07391e780 | 4 | ************************** Decompress images anf fonts from pictures.h and put them to the RAM memeory of FT800 *********** |
Ksenia | 0:9db07391e780 | 5 | **************************************************************************************************************************/ |
Ksenia | 0:9db07391e780 | 6 | void Display::LoadImagesAndFonts() |
Ksenia | 0:9db07391e780 | 7 | { |
Ksenia | 0:9db07391e780 | 8 | (*_TFT).WrCmd32(CMD_INFLATE); |
Ksenia | 0:9db07391e780 | 9 | (*_TFT).WrCmd32(IMAGE_ADDR_HUMIDITY); |
Ksenia | 0:9db07391e780 | 10 | (*_TFT).WrCmdBufFromFlash(hum_icon, sizeof(hum_icon)); |
Ksenia | 0:9db07391e780 | 11 | |
Ksenia | 0:9db07391e780 | 12 | (*_TFT).WrCmd32(CMD_INFLATE); |
Ksenia | 0:9db07391e780 | 13 | (*_TFT).WrCmd32(IMAGE_ADDR_TEMPERATURE); |
Ksenia | 0:9db07391e780 | 14 | (*_TFT).WrCmdBufFromFlash(temp_icon, sizeof(temp_icon)); |
Ksenia | 0:9db07391e780 | 15 | |
Ksenia | 0:9db07391e780 | 16 | (*_TFT).WrCmd32(CMD_INFLATE); |
Ksenia | 0:9db07391e780 | 17 | (*_TFT).WrCmd32(IMAGE_ADDR_SENSOR); |
Ksenia | 0:9db07391e780 | 18 | (*_TFT).WrCmdBufFromFlash(HYT_photo, sizeof(HYT_photo)); |
Ksenia | 0:9db07391e780 | 19 | |
Ksenia | 0:9db07391e780 | 20 | (*_TFT).WrCmd32(CMD_INFLATE); |
Ksenia | 0:9db07391e780 | 21 | (*_TFT).WrCmd32(FONT_SET_ROBOTO_REGULAR_30); |
Ksenia | 0:9db07391e780 | 22 | (*_TFT).WrCmdBufFromFlash(font_RobotoRegular30, sizeof(font_RobotoRegular30)); |
Ksenia | 0:9db07391e780 | 23 | |
Ksenia | 0:9db07391e780 | 24 | (*_TFT).WrCmd32(CMD_INFLATE); |
Ksenia | 0:9db07391e780 | 25 | (*_TFT).WrCmd32(FONT_SET_ROBOTO_REGULAR_16); |
Ksenia | 0:9db07391e780 | 26 | (*_TFT).WrCmdBufFromFlash(font_RobotoRegular16, sizeof(font_RobotoRegular16)); |
Ksenia | 0:9db07391e780 | 27 | } |
Ksenia | 0:9db07391e780 | 28 | |
Ksenia | 0:9db07391e780 | 29 | /************************************************************************************************************************** |
Ksenia | 0:9db07391e780 | 30 | ************************** Prepare images and fronts ********************************************************************** |
Ksenia | 0:9db07391e780 | 31 | **************************************************************************************************************************/ |
Ksenia | 0:9db07391e780 | 32 | void Display::HandleAllBitmaps() |
Ksenia | 0:9db07391e780 | 33 | { |
Ksenia | 0:9db07391e780 | 34 | // start FT800 display list |
Ksenia | 0:9db07391e780 | 35 | StartDL(); |
Ksenia | 0:9db07391e780 | 36 | |
Ksenia | 0:9db07391e780 | 37 | (*_TFT).DL(BITMAP_HANDLE(0)); |
Ksenia | 0:9db07391e780 | 38 | (*_TFT).DL(BITMAP_SOURCE(IMAGE_ADDR_HUMIDITY)); |
Ksenia | 0:9db07391e780 | 39 | (*_TFT).DL(BITMAP_LAYOUT(ARGB4, 60, 38)); |
Ksenia | 0:9db07391e780 | 40 | (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 30, 38)); |
Ksenia | 0:9db07391e780 | 41 | |
Ksenia | 0:9db07391e780 | 42 | (*_TFT).DL(BITMAP_HANDLE(1)); |
Ksenia | 0:9db07391e780 | 43 | (*_TFT).DL(BITMAP_SOURCE(IMAGE_ADDR_TEMPERATURE)); |
Ksenia | 0:9db07391e780 | 44 | (*_TFT).DL(BITMAP_LAYOUT(ARGB4, 42, 42)); |
Ksenia | 0:9db07391e780 | 45 | (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 21, 42)); |
Ksenia | 0:9db07391e780 | 46 | |
Ksenia | 0:9db07391e780 | 47 | (*_TFT).DL(BITMAP_HANDLE(2)); |
Ksenia | 0:9db07391e780 | 48 | (*_TFT).DL(BITMAP_SOURCE(IMAGE_ADDR_SENSOR)); |
Ksenia | 0:9db07391e780 | 49 | (*_TFT).DL(BITMAP_LAYOUT(RGB332, 101, 147)); |
Ksenia | 0:9db07391e780 | 50 | (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 101, 147)); |
Ksenia | 0:9db07391e780 | 51 | |
Ksenia | 0:9db07391e780 | 52 | (*_TFT).DL(BITMAP_HANDLE(3)); |
Ksenia | 0:9db07391e780 | 53 | (*_TFT).DL(BITMAP_SOURCE(FONT_ADDR_ROBOTO_REGULAR_30)); |
Ksenia | 0:9db07391e780 | 54 | (*_TFT).DL(BITMAP_LAYOUT(L4, 16, 33)); |
Ksenia | 0:9db07391e780 | 55 | (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 32, 33)); |
Ksenia | 0:9db07391e780 | 56 | |
Ksenia | 0:9db07391e780 | 57 | (*_TFT).DL(BITMAP_HANDLE(4)); |
Ksenia | 0:9db07391e780 | 58 | (*_TFT).DL(BITMAP_SOURCE(FONT_ADDR_ROBOTO_REGULAR_16)); |
Ksenia | 0:9db07391e780 | 59 | (*_TFT).DL(BITMAP_LAYOUT(L4, 8, 20)); |
Ksenia | 0:9db07391e780 | 60 | (*_TFT).DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 16, 20)); |
Ksenia | 0:9db07391e780 | 61 | |
Ksenia | 0:9db07391e780 | 62 | (*_TFT).SetFont(3, FONT_SET_ROBOTO_REGULAR_30); |
Ksenia | 0:9db07391e780 | 63 | (*_TFT).SetFont(4, FONT_SET_ROBOTO_REGULAR_16); |
Ksenia | 0:9db07391e780 | 64 | |
Ksenia | 0:9db07391e780 | 65 | // finish FT800 display list |
Ksenia | 0:9db07391e780 | 66 | FinishDL(); |
Ksenia | 0:9db07391e780 | 67 | } |