Русифицированная версия программы для измерения температуры и отн. влажности и вывода информации на сенсорный TFT

Dependencies:   FT800_2 HYT mbed

Компоненты

Подключение

Отладочная плата к TFT-модулю

Отладочная плата подключается к модулю через переходник Break Out Board 20. На плате-переходнике используется 6 сигналов: SCK, MOSI, MISO, SS (интерфейс SPI), PD (powerdown) и INT (interrupt).

Питание должно быть подано не только на VDD, но и на BLVDD - подсветку экрана. Соответствующие выводы можно просто соединить между собой:

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

Отладочная плата к датчику серии HYT

К датчику отладочная плата подключается по I2C. Не забываем про подтяжку к питанию:

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

Демонстрация работы

Процесс создания приложения подробно описан тут: https://habrahabr.ru/users/uuuulala/topics/

Committer:
Ksenia
Date:
Fri Oct 07 11:03:16 2016 +0000
Revision:
0:9db07391e780
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew 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 }