Hexiwear hdc1000 click board lab time

Dependencies:   HDC1000 Hexi_KW40Z Hexi_OLED_SSD1351

Committer:
i_am_kitsune
Date:
Mon Sep 11 02:07:32 2017 +0000
Revision:
0:6f385e76e7e3
Hexiwear HDC1000 Click Board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
i_am_kitsune 0:6f385e76e7e3 1 #include "mbed.h"
i_am_kitsune 0:6f385e76e7e3 2 #include "Hexi_KW40Z.h"
i_am_kitsune 0:6f385e76e7e3 3 #include "Hexi_OLED_SSD1351.h"
i_am_kitsune 0:6f385e76e7e3 4 #include "HDC1000.h"
i_am_kitsune 0:6f385e76e7e3 5 #include "string.h"
i_am_kitsune 0:6f385e76e7e3 6
i_am_kitsune 0:6f385e76e7e3 7 #define LED_ON 0
i_am_kitsune 0:6f385e76e7e3 8 #define LED_OFF 1
i_am_kitsune 0:6f385e76e7e3 9
i_am_kitsune 0:6f385e76e7e3 10 void StartHaptic(void);
i_am_kitsune 0:6f385e76e7e3 11 void StopHaptic(void const *n);
i_am_kitsune 0:6f385e76e7e3 12
i_am_kitsune 0:6f385e76e7e3 13 DigitalOut led1(LED1);
i_am_kitsune 0:6f385e76e7e3 14
i_am_kitsune 0:6f385e76e7e3 15 DigitalOut redLed(PTC8);
i_am_kitsune 0:6f385e76e7e3 16 DigitalOut greenLed(PTD0);
i_am_kitsune 0:6f385e76e7e3 17 DigitalOut blueLed(PTC9);
i_am_kitsune 0:6f385e76e7e3 18 DigitalOut haptic(PTB9);
i_am_kitsune 0:6f385e76e7e3 19
i_am_kitsune 0:6f385e76e7e3 20 HDC1000 hdc(PTD9,PTD8);
i_am_kitsune 0:6f385e76e7e3 21 Serial pc(USBTX, USBRX);
i_am_kitsune 0:6f385e76e7e3 22 SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); /* (MOSI,SCLK,POWER,CS,RST,DC) */
i_am_kitsune 0:6f385e76e7e3 23 KW40Z kw40z_device(PTE24, PTE25); /* Instantiate the Hexi KW40Z Driver (UART TX, UART RX) */
i_am_kitsune 0:6f385e76e7e3 24
i_am_kitsune 0:6f385e76e7e3 25 /* Define timer for haptic feedback */
i_am_kitsune 0:6f385e76e7e3 26 RtosTimer hapticTimer(StopHaptic, osTimerOnce);
i_am_kitsune 0:6f385e76e7e3 27
i_am_kitsune 0:6f385e76e7e3 28 void ButtonRight(void)
i_am_kitsune 0:6f385e76e7e3 29 {
i_am_kitsune 0:6f385e76e7e3 30 StartHaptic();
i_am_kitsune 0:6f385e76e7e3 31
i_am_kitsune 0:6f385e76e7e3 32 redLed = LED_OFF;
i_am_kitsune 0:6f385e76e7e3 33 greenLed = LED_OFF;
i_am_kitsune 0:6f385e76e7e3 34 blueLed = LED_ON;
i_am_kitsune 0:6f385e76e7e3 35 }
i_am_kitsune 0:6f385e76e7e3 36
i_am_kitsune 0:6f385e76e7e3 37 void ButtonLeft(void)
i_am_kitsune 0:6f385e76e7e3 38 {
i_am_kitsune 0:6f385e76e7e3 39 // char t_tmp[10] = {};
i_am_kitsune 0:6f385e76e7e3 40 // float tmp = 0.0f;
i_am_kitsune 0:6f385e76e7e3 41 //
i_am_kitsune 0:6f385e76e7e3 42 // tmp = hdc.conv_c_to_f();
i_am_kitsune 0:6f385e76e7e3 43 //
i_am_kitsune 0:6f385e76e7e3 44 //
i_am_kitsune 0:6f385e76e7e3 45 // /* Get OLED Class Default Text Properties */
i_am_kitsune 0:6f385e76e7e3 46 // oled_text_properties_t textProperties = {0};
i_am_kitsune 0:6f385e76e7e3 47 // oled.GetTextProperties(&textProperties);
i_am_kitsune 0:6f385e76e7e3 48 //
i_am_kitsune 0:6f385e76e7e3 49 // /* Turn on the backlight of the OLED Display */
i_am_kitsune 0:6f385e76e7e3 50 // oled.DimScreenON();
i_am_kitsune 0:6f385e76e7e3 51 //
i_am_kitsune 0:6f385e76e7e3 52 // /* Fills the screen with solid black */
i_am_kitsune 0:6f385e76e7e3 53 // oled.FillScreen(COLOR_BLACK);
i_am_kitsune 0:6f385e76e7e3 54 //
i_am_kitsune 0:6f385e76e7e3 55 // textProperties.fontColor = COLOR_WHITE;
i_am_kitsune 0:6f385e76e7e3 56 // oled.SetTextProperties(&textProperties);
i_am_kitsune 0:6f385e76e7e3 57 //
i_am_kitsune 0:6f385e76e7e3 58 // sprintf(t_tmp,"%4.1fC",tmp);
i_am_kitsune 0:6f385e76e7e3 59 // //sprintf(t_humi,"%4.1f%%",humi);
i_am_kitsune 0:6f385e76e7e3 60 // oled.TextBox((uint8_t *)t_tmp,40,30,46,15); //Increase textbox for more digits
i_am_kitsune 0:6f385e76e7e3 61 // //oled.TextBox((uint8_t *)t_humi,40,45,46,15); //Increase textbox for more digits
i_am_kitsune 0:6f385e76e7e3 62
i_am_kitsune 0:6f385e76e7e3 63 StartHaptic();
i_am_kitsune 0:6f385e76e7e3 64 redLed = LED_ON;
i_am_kitsune 0:6f385e76e7e3 65 greenLed = LED_ON;
i_am_kitsune 0:6f385e76e7e3 66 blueLed = LED_OFF;
i_am_kitsune 0:6f385e76e7e3 67 }
i_am_kitsune 0:6f385e76e7e3 68
i_am_kitsune 0:6f385e76e7e3 69 void StartHaptic(void)
i_am_kitsune 0:6f385e76e7e3 70 {
i_am_kitsune 0:6f385e76e7e3 71 hapticTimer.start(50);
i_am_kitsune 0:6f385e76e7e3 72 haptic = 1;
i_am_kitsune 0:6f385e76e7e3 73 }
i_am_kitsune 0:6f385e76e7e3 74
i_am_kitsune 0:6f385e76e7e3 75 void StopHaptic(void const *n) {
i_am_kitsune 0:6f385e76e7e3 76 haptic = 0;
i_am_kitsune 0:6f385e76e7e3 77 hapticTimer.stop();
i_am_kitsune 0:6f385e76e7e3 78 }
i_am_kitsune 0:6f385e76e7e3 79
i_am_kitsune 0:6f385e76e7e3 80
i_am_kitsune 0:6f385e76e7e3 81 // main() runs in its own thread in the OS
i_am_kitsune 0:6f385e76e7e3 82 int main() {
i_am_kitsune 0:6f385e76e7e3 83
i_am_kitsune 0:6f385e76e7e3 84 char text[20] = {0}; /* Text Buffer */
i_am_kitsune 0:6f385e76e7e3 85
i_am_kitsune 0:6f385e76e7e3 86 char t_temp[10] = {0};
i_am_kitsune 0:6f385e76e7e3 87 char t_humi[10] = {0};
i_am_kitsune 0:6f385e76e7e3 88
i_am_kitsune 0:6f385e76e7e3 89 float temp = 0.0f, humi = 0.0f;
i_am_kitsune 0:6f385e76e7e3 90
i_am_kitsune 0:6f385e76e7e3 91
i_am_kitsune 0:6f385e76e7e3 92 /* Get OLED Class Default Text Properties */
i_am_kitsune 0:6f385e76e7e3 93 oled_text_properties_t textProperties = {0};
i_am_kitsune 0:6f385e76e7e3 94 oled.GetTextProperties(&textProperties);
i_am_kitsune 0:6f385e76e7e3 95
i_am_kitsune 0:6f385e76e7e3 96 /* Turn on the backlight of the OLED Display */
i_am_kitsune 0:6f385e76e7e3 97 oled.DimScreenON();
i_am_kitsune 0:6f385e76e7e3 98
i_am_kitsune 0:6f385e76e7e3 99 /* Fills the screen with solid black */
i_am_kitsune 0:6f385e76e7e3 100 oled.FillScreen(COLOR_BLACK);
i_am_kitsune 0:6f385e76e7e3 101
i_am_kitsune 0:6f385e76e7e3 102 /* Change font color to blue */
i_am_kitsune 0:6f385e76e7e3 103 textProperties.fontColor = COLOR_BLUE;
i_am_kitsune 0:6f385e76e7e3 104 textProperties.alignParam = OLED_TEXT_ALIGN_CENTER;
i_am_kitsune 0:6f385e76e7e3 105 oled.SetTextProperties(&textProperties);
i_am_kitsune 0:6f385e76e7e3 106
i_am_kitsune 0:6f385e76e7e3 107 /* Display Text at (x=0,y=0) */
i_am_kitsune 0:6f385e76e7e3 108 strcpy((char *) text,"HDC1000");
i_am_kitsune 0:6f385e76e7e3 109 oled.TextBox((uint8_t *)text,0,0,96,15); //Increase textbox for more digits
i_am_kitsune 0:6f385e76e7e3 110
i_am_kitsune 0:6f385e76e7e3 111 textProperties.fontColor = COLOR_WHITE;
i_am_kitsune 0:6f385e76e7e3 112 oled.SetTextProperties(&textProperties);
i_am_kitsune 0:6f385e76e7e3 113
i_am_kitsune 0:6f385e76e7e3 114 /* Display Text at (x=7,y=30) */
i_am_kitsune 0:6f385e76e7e3 115 strcpy((char *) text,"TEMP :");
i_am_kitsune 0:6f385e76e7e3 116 oled.Label((uint8_t *)text,7,30);
i_am_kitsune 0:6f385e76e7e3 117
i_am_kitsune 0:6f385e76e7e3 118 /* Display Text at (x=7,y=45) */
i_am_kitsune 0:6f385e76e7e3 119 strcpy((char *) text,"HUMI :");
i_am_kitsune 0:6f385e76e7e3 120 oled.Label((uint8_t *)text,7,45);
i_am_kitsune 0:6f385e76e7e3 121
i_am_kitsune 0:6f385e76e7e3 122 /* Display Text at (x=7,y=0) */
i_am_kitsune 0:6f385e76e7e3 123 strcpy((char *) text,"F");
i_am_kitsune 0:6f385e76e7e3 124 oled.Label((uint8_t *)text,15,81);
i_am_kitsune 0:6f385e76e7e3 125
i_am_kitsune 0:6f385e76e7e3 126 strcpy((char *) text,"C");
i_am_kitsune 0:6f385e76e7e3 127 oled.Label((uint8_t *)text,75,81);
i_am_kitsune 0:6f385e76e7e3 128
i_am_kitsune 0:6f385e76e7e3 129
i_am_kitsune 0:6f385e76e7e3 130 kw40z_device.attach_buttonLeft(&ButtonLeft);
i_am_kitsune 0:6f385e76e7e3 131 kw40z_device.attach_buttonRight(&ButtonRight);
i_am_kitsune 0:6f385e76e7e3 132
i_am_kitsune 0:6f385e76e7e3 133
i_am_kitsune 0:6f385e76e7e3 134 while (true) {
i_am_kitsune 0:6f385e76e7e3 135
i_am_kitsune 0:6f385e76e7e3 136 hdc.get(); // Triger conversion
i_am_kitsune 0:6f385e76e7e3 137 pc.printf("Temp: %+4.1fC, Humid: %4.1f%%\r\n", hdc.temperature(), hdc.humidity());
i_am_kitsune 0:6f385e76e7e3 138 temp = hdc.temperature();
i_am_kitsune 0:6f385e76e7e3 139 humi = hdc.humidity();
i_am_kitsune 0:6f385e76e7e3 140 sprintf(t_temp,"%4.1fC",temp);
i_am_kitsune 0:6f385e76e7e3 141 sprintf(t_humi,"%4.1f%%",humi);
i_am_kitsune 0:6f385e76e7e3 142 oled.TextBox((uint8_t *)t_temp,40,30,46,15); //Increase textbox for more digits
i_am_kitsune 0:6f385e76e7e3 143 oled.TextBox((uint8_t *)t_humi,40,45,46,15); //Increase textbox for more digits
i_am_kitsune 0:6f385e76e7e3 144 wait(1.0);
i_am_kitsune 0:6f385e76e7e3 145 led1 = !led1;
i_am_kitsune 0:6f385e76e7e3 146
i_am_kitsune 0:6f385e76e7e3 147 }
i_am_kitsune 0:6f385e76e7e3 148 }
i_am_kitsune 0:6f385e76e7e3 149