Русифицированная версия программы для измерения температуры и отн. влажности и вывода информации на сенсорный 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/
statistics.h@1:8ca8a4ecbe6b, 2016-10-12 (annotated)
- Committer:
- Ksenia
- Date:
- Wed Oct 12 10:53:35 2016 +0000
- Revision:
- 1:8ca8a4ecbe6b
- Parent:
- 0:9db07391e780
?????? ??????? ? ?????? ?????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ksenia | 0:9db07391e780 | 1 | #include "mbed.h" |
Ksenia | 0:9db07391e780 | 2 | |
Ksenia | 0:9db07391e780 | 3 | #ifndef STATISTICS_H_ |
Ksenia | 0:9db07391e780 | 4 | #define STATISTICS_H_ |
Ksenia | 0:9db07391e780 | 5 | |
Ksenia | 0:9db07391e780 | 6 | #define INIT_STATISTICS_NUMBER 32767 |
Ksenia | 0:9db07391e780 | 7 | #define DELTA_HUMIDITY 6 |
Ksenia | 0:9db07391e780 | 8 | #define DELTA_TEMPERATURE 1 |
Ksenia | 0:9db07391e780 | 9 | #define TEMPERATURE_MULTIPLIER 10 |
Ksenia | 0:9db07391e780 | 10 | |
Ksenia | 0:9db07391e780 | 11 | /************************************************************************************************************************** |
Ksenia | 0:9db07391e780 | 12 | ************************** User class for calculate statistics for last 24 hrs ******************************************** |
Ksenia | 0:9db07391e780 | 13 | **************************************************************************************************************************/ |
Ksenia | 0:9db07391e780 | 14 | |
Ksenia | 0:9db07391e780 | 15 | class Statistics |
Ksenia | 0:9db07391e780 | 16 | { |
Ksenia | 0:9db07391e780 | 17 | public: |
Ksenia | 0:9db07391e780 | 18 | // xxxx24hrs[][] arrays contains all 24-hrs statistics data: |
Ksenia | 0:9db07391e780 | 19 | // 1. xxxx24hrs[0][0...287] - Average values calculated for each five-minute interval |
Ksenia | 0:9db07391e780 | 20 | // 2. xxxx24hrs[1][0...287] - Minimums calculated for each five-minute interval |
Ksenia | 0:9db07391e780 | 21 | // 2. xxxx24hrs[2][0...287] - Maximums calculated for each five-minute interval |
Ksenia | 0:9db07391e780 | 22 | // p.s. there are 288 five-minute intervals in 24 hours |
Ksenia | 0:9db07391e780 | 23 | |
Ksenia | 0:9db07391e780 | 24 | short int humidity24hrs[3][288]; |
Ksenia | 0:9db07391e780 | 25 | short int temperature24hrs[3][288]; |
Ksenia | 0:9db07391e780 | 26 | |
Ksenia | 0:9db07391e780 | 27 | uint64_t UpdateStatistics(float humidity, float temperature, uint64_t seconds, uint64_t changeSecondsOffset); |
Ksenia | 0:9db07391e780 | 28 | void InitValues(float humidity, float temperature); |
Ksenia | 0:9db07391e780 | 29 | |
Ksenia | 0:9db07391e780 | 30 | private: |
Ksenia | 0:9db07391e780 | 31 | |
Ksenia | 0:9db07391e780 | 32 | // functions called every second to update average value, minimum and maximum in current five-minute interval |
Ksenia | 0:9db07391e780 | 33 | void CalculateTemperature(float temperature, short int secondsIn5min); |
Ksenia | 0:9db07391e780 | 34 | void CalculateHumididty(float humidity, short int secondsIn5min); |
Ksenia | 0:9db07391e780 | 35 | // function called every 5 minutes to add new value to xxxx24hrs[][] arrays |
Ksenia | 0:9db07391e780 | 36 | uint64_t Update24hrsData(uint64_t changeSecondsOffset); |
Ksenia | 0:9db07391e780 | 37 | |
Ksenia | 0:9db07391e780 | 38 | // counter of five-minute intervals (0...287) |
Ksenia | 0:9db07391e780 | 39 | short int Counter24hrs; |
Ksenia | 0:9db07391e780 | 40 | // values for calculations "inside" five-minute interval |
Ksenia | 0:9db07391e780 | 41 | short int humidity5min[300], temperature5min[300]; |
Ksenia | 0:9db07391e780 | 42 | int humidity5minAverage, temperature5minAverage; |
Ksenia | 0:9db07391e780 | 43 | int humidity5minSum, temperature5minSum; |
Ksenia | 0:9db07391e780 | 44 | short int humidity5minMax, humidity5minMin, temperature5minMax, temperature5minMin; |
Ksenia | 0:9db07391e780 | 45 | }; |
Ksenia | 0:9db07391e780 | 46 | |
Ksenia | 0:9db07391e780 | 47 | #endif /* STATISTICS_H_ */ |