Thermometer indicating temperature and humidity by LED blink pattern

Dependencies:   BLE_API mbed nRF51822

Committer:
HiroyukiIzumi
Date:
Fri Jun 17 01:55:11 2016 +0000
Revision:
0:8d05f1ced202
Thermometer indicating temperature and humidity by LED blink pattern

Who changed what in which revision?

UserRevisionLine numberNew contents of line
HiroyukiIzumi 0:8d05f1ced202 1 #include "mbed.h"
HiroyukiIzumi 0:8d05f1ced202 2 #include "hts221.h"
HiroyukiIzumi 0:8d05f1ced202 3 #include "DeviceInformationService.h"
HiroyukiIzumi 0:8d05f1ced202 4
HiroyukiIzumi 0:8d05f1ced202 5 #define ON 1
HiroyukiIzumi 0:8d05f1ced202 6 #define OFF 0
HiroyukiIzumi 0:8d05f1ced202 7
HiroyukiIzumi 0:8d05f1ced202 8 DigitalOut myled2(LED2);
HiroyukiIzumi 0:8d05f1ced202 9 DigitalOut myled1(LED1);
HiroyukiIzumi 0:8d05f1ced202 10
HiroyukiIzumi 0:8d05f1ced202 11
HiroyukiIzumi 0:8d05f1ced202 12 int main() {
HiroyukiIzumi 0:8d05f1ced202 13
HiroyukiIzumi 0:8d05f1ced202 14 float temp = 12.0;
HiroyukiIzumi 0:8d05f1ced202 15 int tempint = static_cast<int> (temp);
HiroyukiIzumi 0:8d05f1ced202 16 int tempdigit1 = 0;
HiroyukiIzumi 0:8d05f1ced202 17 int tempdigit10 = 0;
HiroyukiIzumi 0:8d05f1ced202 18
HiroyukiIzumi 0:8d05f1ced202 19 float humi = 55;
HiroyukiIzumi 0:8d05f1ced202 20 int humiint = static_cast<int> (humi);
HiroyukiIzumi 0:8d05f1ced202 21 int humidigit1 = 0;
HiroyukiIzumi 0:8d05f1ced202 22 int humidigit10 = 0;
HiroyukiIzumi 0:8d05f1ced202 23 int i = 0;
HiroyukiIzumi 0:8d05f1ced202 24
HiroyukiIzumi 0:8d05f1ced202 25
HiroyukiIzumi 0:8d05f1ced202 26 if (hts221_init()) { //Check if the sensor is initialized correctly
HiroyukiIzumi 0:8d05f1ced202 27 HTS221_Calib(); //calibrate thermometer
HiroyukiIzumi 0:8d05f1ced202 28 while(true) { //Infinite loop
HiroyukiIzumi 0:8d05f1ced202 29
HiroyukiIzumi 0:8d05f1ced202 30 HTS221_ReadTempHumi(&temp, &humi);
HiroyukiIzumi 0:8d05f1ced202 31
HiroyukiIzumi 0:8d05f1ced202 32 tempint = static_cast<int> (temp);
HiroyukiIzumi 0:8d05f1ced202 33 tempdigit1 = tempint % 10;
HiroyukiIzumi 0:8d05f1ced202 34 tempdigit10 = tempint / 10;
HiroyukiIzumi 0:8d05f1ced202 35 for (i = tempdigit10 ; i ; i--) {
HiroyukiIzumi 0:8d05f1ced202 36 myled1 = ON;
HiroyukiIzumi 0:8d05f1ced202 37 wait (0.5);
HiroyukiIzumi 0:8d05f1ced202 38 myled1 = OFF ;
HiroyukiIzumi 0:8d05f1ced202 39 wait (1.0);
HiroyukiIzumi 0:8d05f1ced202 40 }
HiroyukiIzumi 0:8d05f1ced202 41 for (i = tempdigit1 ; i ; i--) {
HiroyukiIzumi 0:8d05f1ced202 42 myled1 = ON;
HiroyukiIzumi 0:8d05f1ced202 43 wait (0.1);
HiroyukiIzumi 0:8d05f1ced202 44 myled1 = OFF ;
HiroyukiIzumi 0:8d05f1ced202 45 wait (0.4);
HiroyukiIzumi 0:8d05f1ced202 46 }
HiroyukiIzumi 0:8d05f1ced202 47
HiroyukiIzumi 0:8d05f1ced202 48 humiint = static_cast<int> (humi);
HiroyukiIzumi 0:8d05f1ced202 49 humidigit1 = humiint % 10;
HiroyukiIzumi 0:8d05f1ced202 50 humidigit10 = humiint / 10;
HiroyukiIzumi 0:8d05f1ced202 51 for (i = humidigit10 ; i ; i--) {
HiroyukiIzumi 0:8d05f1ced202 52 myled2 = ON;
HiroyukiIzumi 0:8d05f1ced202 53 wait (0.5);
HiroyukiIzumi 0:8d05f1ced202 54 myled2 = OFF ;
HiroyukiIzumi 0:8d05f1ced202 55 wait (1.0);
HiroyukiIzumi 0:8d05f1ced202 56 }
HiroyukiIzumi 0:8d05f1ced202 57 for (i = humidigit1 ; i ; i--) {
HiroyukiIzumi 0:8d05f1ced202 58 myled2 = ON;
HiroyukiIzumi 0:8d05f1ced202 59 wait (0.1);
HiroyukiIzumi 0:8d05f1ced202 60 myled2 = OFF ;
HiroyukiIzumi 0:8d05f1ced202 61 wait (0.4);
HiroyukiIzumi 0:8d05f1ced202 62 }
HiroyukiIzumi 0:8d05f1ced202 63
HiroyukiIzumi 0:8d05f1ced202 64 wait (4.0);
HiroyukiIzumi 0:8d05f1ced202 65 }
HiroyukiIzumi 0:8d05f1ced202 66 } else { //Sensor initialize error
HiroyukiIzumi 0:8d05f1ced202 67 while(true) {
HiroyukiIzumi 0:8d05f1ced202 68 myled1 = ON;
HiroyukiIzumi 0:8d05f1ced202 69 wait(0.1);
HiroyukiIzumi 0:8d05f1ced202 70 myled1 = OFF;
HiroyukiIzumi 0:8d05f1ced202 71 wait(0.2);
HiroyukiIzumi 0:8d05f1ced202 72 }
HiroyukiIzumi 0:8d05f1ced202 73 }
HiroyukiIzumi 0:8d05f1ced202 74 }
HiroyukiIzumi 0:8d05f1ced202 75