projet Iot
Dependencies: BMP180 DHT11 SoftPWM SparkFun_APDS9960 mbed-rtos mbed
main.cpp@0:826d61f3ff66, 2015-12-17 (annotated)
- Committer:
- ALounes
- Date:
- Thu Dec 17 18:37:52 2015 +0000
- Revision:
- 0:826d61f3ff66
- Child:
- 1:0941b8778db6
holla
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ALounes | 0:826d61f3ff66 | 1 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 2 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 3 | /* PROJET IOT / GROUPE AGIR / EISE5 2015-2016 */ |
ALounes | 0:826d61f3ff66 | 4 | /* achab.lounes@gmail.com */ |
ALounes | 0:826d61f3ff66 | 5 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 6 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 7 | |
ALounes | 0:826d61f3ff66 | 8 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 9 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 10 | /* BIBLIOTHEQUES ET HEADER */ |
ALounes | 0:826d61f3ff66 | 11 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 12 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 13 | |
ALounes | 0:826d61f3ff66 | 14 | #include "mbed.h" |
ALounes | 0:826d61f3ff66 | 15 | #include "rtos.h" |
ALounes | 0:826d61f3ff66 | 16 | #include "DHT11.h" |
ALounes | 0:826d61f3ff66 | 17 | #include "BMP180.h" |
ALounes | 0:826d61f3ff66 | 18 | #include "SoftPWM.h" |
ALounes | 0:826d61f3ff66 | 19 | #include "apds9960.h" |
ALounes | 0:826d61f3ff66 | 20 | #include "configuration.h" |
ALounes | 0:826d61f3ff66 | 21 | |
ALounes | 0:826d61f3ff66 | 22 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 23 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 24 | /* VARIABLES GLOBALES */ |
ALounes | 0:826d61f3ff66 | 25 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 26 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 27 | |
ALounes | 0:826d61f3ff66 | 28 | apds9960 sensor(PIN_MOUVEMENT_SENSOR_SDA,PIN_MOUVEMENT_SENSOR_SCL); |
ALounes | 0:826d61f3ff66 | 29 | InterruptIn interrupt(PIN_MOUVEMENT_SENSOR_INTERRUPTION); |
ALounes | 0:826d61f3ff66 | 30 | Serial bluetooth(PIN_BLE_TX, PIN_BLE_RX); |
ALounes | 0:826d61f3ff66 | 31 | Serial pc(USBTX, USBRX); |
ALounes | 0:826d61f3ff66 | 32 | Semaphore two_slots(1); |
ALounes | 0:826d61f3ff66 | 33 | Ticker timer; |
ALounes | 0:826d61f3ff66 | 34 | |
ALounes | 0:826d61f3ff66 | 35 | Informations inf = {0,0,0,0,0,0}; |
ALounes | 0:826d61f3ff66 | 36 | bool intFlag = false; |
ALounes | 0:826d61f3ff66 | 37 | |
ALounes | 0:826d61f3ff66 | 38 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 39 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 40 | /* FONCTION MAIN */ |
ALounes | 0:826d61f3ff66 | 41 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 42 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 43 | |
ALounes | 0:826d61f3ff66 | 44 | int main (void) { |
ALounes | 0:826d61f3ff66 | 45 | |
ALounes | 0:826d61f3ff66 | 46 | Thread t1(thread_temperature, (void *)"Thread temperature"); |
ALounes | 0:826d61f3ff66 | 47 | Thread t2(thread_pression , (void *)"Thread pression"); |
ALounes | 0:826d61f3ff66 | 48 | Thread t3(thread_presence , (void *)"Thread presence"); |
ALounes | 0:826d61f3ff66 | 49 | Thread t4(thread_led , (void *)"Thread Led"); |
ALounes | 0:826d61f3ff66 | 50 | |
ALounes | 0:826d61f3ff66 | 51 | RtosTimer BleSend(bleCallBack, osTimerPeriodic, (void *)"Ble emission"); |
ALounes | 0:826d61f3ff66 | 52 | BleSend.start(TIME_MS_PERIODE_BLE); |
ALounes | 0:826d61f3ff66 | 53 | |
ALounes | 0:826d61f3ff66 | 54 | potAndPwm(); |
ALounes | 0:826d61f3ff66 | 55 | } |
ALounes | 0:826d61f3ff66 | 56 | |
ALounes | 0:826d61f3ff66 | 57 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 58 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 59 | /* THREAD TEMPERATURE */ |
ALounes | 0:826d61f3ff66 | 60 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 61 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 62 | |
ALounes | 0:826d61f3ff66 | 63 | void thread_temperature(void const *name) { |
ALounes | 0:826d61f3ff66 | 64 | |
ALounes | 0:826d61f3ff66 | 65 | DHT11 capteur(PIN_TEMPERATURE_HUMIDITY_SENSOR); |
ALounes | 0:826d61f3ff66 | 66 | int tmp; |
ALounes | 0:826d61f3ff66 | 67 | |
ALounes | 0:826d61f3ff66 | 68 | while (true) { |
ALounes | 0:826d61f3ff66 | 69 | printf("%s\n\r", (const char*)name); |
ALounes | 0:826d61f3ff66 | 70 | tmp = capteur.readData(); |
ALounes | 0:826d61f3ff66 | 71 | |
ALounes | 0:826d61f3ff66 | 72 | if (tmp != DHT11::OK) { |
ALounes | 0:826d61f3ff66 | 73 | printf("Error! %d\r\n",tmp); |
ALounes | 0:826d61f3ff66 | 74 | } |
ALounes | 0:826d61f3ff66 | 75 | else { |
ALounes | 0:826d61f3ff66 | 76 | inf.temperature_01 = capteur.readTemperature(); |
ALounes | 0:826d61f3ff66 | 77 | inf.humidite = capteur.readHumidity(); |
ALounes | 0:826d61f3ff66 | 78 | printf("Temperature: %d, Humidity: %d\r\n", capteur.readTemperature(), capteur.readHumidity()); |
ALounes | 0:826d61f3ff66 | 79 | } |
ALounes | 0:826d61f3ff66 | 80 | |
ALounes | 0:826d61f3ff66 | 81 | Thread::wait(TIME_WAIT_MS_TEMPERATURE_HUMIDITY_SENSOR); |
ALounes | 0:826d61f3ff66 | 82 | } |
ALounes | 0:826d61f3ff66 | 83 | } |
ALounes | 0:826d61f3ff66 | 84 | |
ALounes | 0:826d61f3ff66 | 85 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 86 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 87 | /* THREAD LED */ |
ALounes | 0:826d61f3ff66 | 88 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 89 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 90 | |
ALounes | 0:826d61f3ff66 | 91 | void thread_led(void const *name) { |
ALounes | 0:826d61f3ff66 | 92 | DigitalOut tab[] = {PIN_MUX_P0, PIN_MUX_P1, PIN_MUX_P2}; |
ALounes | 0:826d61f3ff66 | 93 | |
ALounes | 0:826d61f3ff66 | 94 | while (true) { |
ALounes | 0:826d61f3ff66 | 95 | printf("%s\n\r", (const char*)name); |
ALounes | 0:826d61f3ff66 | 96 | |
ALounes | 0:826d61f3ff66 | 97 | //printf("000 \n\r"); |
ALounes | 0:826d61f3ff66 | 98 | tab[0] = LED_OFF; tab[1] = LED_OFF; tab[2] = LED_OFF; |
ALounes | 0:826d61f3ff66 | 99 | Thread::wait( TIME_WAIT_BLINK_LED ); |
ALounes | 0:826d61f3ff66 | 100 | |
ALounes | 0:826d61f3ff66 | 101 | //printf("100 \n\r"); |
ALounes | 0:826d61f3ff66 | 102 | tab[0] = LED_ON; tab[1] = LED_OFF; tab[2] = LED_OFF; |
ALounes | 0:826d61f3ff66 | 103 | Thread::wait( TIME_WAIT_BLINK_LED ); |
ALounes | 0:826d61f3ff66 | 104 | |
ALounes | 0:826d61f3ff66 | 105 | //printf("010 \n\r"); |
ALounes | 0:826d61f3ff66 | 106 | tab[0] = LED_OFF; tab[1] = LED_ON; tab[2] = LED_OFF; |
ALounes | 0:826d61f3ff66 | 107 | Thread::wait( TIME_WAIT_BLINK_LED ); |
ALounes | 0:826d61f3ff66 | 108 | |
ALounes | 0:826d61f3ff66 | 109 | //printf("110 \n\r"); |
ALounes | 0:826d61f3ff66 | 110 | tab[0] = LED_ON; tab[1] = LED_ON; tab[2] = LED_OFF; |
ALounes | 0:826d61f3ff66 | 111 | Thread::wait( TIME_WAIT_BLINK_LED ); |
ALounes | 0:826d61f3ff66 | 112 | |
ALounes | 0:826d61f3ff66 | 113 | //printf("001 \n\r"); |
ALounes | 0:826d61f3ff66 | 114 | tab[0] = LED_OFF; tab[1] = LED_OFF; tab[2] = LED_ON; |
ALounes | 0:826d61f3ff66 | 115 | Thread::wait( TIME_WAIT_BLINK_LED ); |
ALounes | 0:826d61f3ff66 | 116 | |
ALounes | 0:826d61f3ff66 | 117 | //printf("101 \n\r"); |
ALounes | 0:826d61f3ff66 | 118 | tab[0] = LED_ON; tab[1] = LED_OFF; tab[2] = LED_ON; |
ALounes | 0:826d61f3ff66 | 119 | Thread::wait( TIME_WAIT_BLINK_LED ); |
ALounes | 0:826d61f3ff66 | 120 | |
ALounes | 0:826d61f3ff66 | 121 | //printf("011 \n\r"); |
ALounes | 0:826d61f3ff66 | 122 | tab[0] = LED_OFF; tab[1] = LED_ON; tab[2] = LED_ON; |
ALounes | 0:826d61f3ff66 | 123 | Thread::wait( TIME_WAIT_BLINK_LED ); |
ALounes | 0:826d61f3ff66 | 124 | } |
ALounes | 0:826d61f3ff66 | 125 | } |
ALounes | 0:826d61f3ff66 | 126 | |
ALounes | 0:826d61f3ff66 | 127 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 128 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 129 | /* THREAD PRESSION */ |
ALounes | 0:826d61f3ff66 | 130 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 131 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 132 | |
ALounes | 0:826d61f3ff66 | 133 | void thread_pression(void const *name) { |
ALounes | 0:826d61f3ff66 | 134 | long temp = 0; |
ALounes | 0:826d61f3ff66 | 135 | long pressure = 0; |
ALounes | 0:826d61f3ff66 | 136 | int error = 0; |
ALounes | 0:826d61f3ff66 | 137 | BMP180 bmp180(PIN_PRESURE_SENSOR_SDA, PIN_PRESURE_SENSOR_SCL); |
ALounes | 0:826d61f3ff66 | 138 | |
ALounes | 0:826d61f3ff66 | 139 | while (true) { |
ALounes | 0:826d61f3ff66 | 140 | two_slots.wait(); |
ALounes | 0:826d61f3ff66 | 141 | |
ALounes | 0:826d61f3ff66 | 142 | printf("%s\n\r", (const char*)name); |
ALounes | 0:826d61f3ff66 | 143 | error = bmp180.readTP(&temp,&pressure,OVERSAMPLING_ULTRA_HIGH_RESOLUTION); |
ALounes | 0:826d61f3ff66 | 144 | |
ALounes | 0:826d61f3ff66 | 145 | two_slots.release(); |
ALounes | 0:826d61f3ff66 | 146 | |
ALounes | 0:826d61f3ff66 | 147 | if (error){ |
ALounes | 0:826d61f3ff66 | 148 | printf("Error is %d\r\n\r\n",error); |
ALounes | 0:826d61f3ff66 | 149 | } |
ALounes | 0:826d61f3ff66 | 150 | else { |
ALounes | 0:826d61f3ff66 | 151 | inf.temperature_02 = temp; |
ALounes | 0:826d61f3ff66 | 152 | inf.pression = pressure; |
ALounes | 0:826d61f3ff66 | 153 | printf("Temp is %d \r\n",(temp)); |
ALounes | 0:826d61f3ff66 | 154 | printf("Pressure is %ld\r\n",pressure); |
ALounes | 0:826d61f3ff66 | 155 | } |
ALounes | 0:826d61f3ff66 | 156 | |
ALounes | 0:826d61f3ff66 | 157 | Thread::wait(TIME_WAIT_MS_PRESURE_SENSOR); |
ALounes | 0:826d61f3ff66 | 158 | } |
ALounes | 0:826d61f3ff66 | 159 | } |
ALounes | 0:826d61f3ff66 | 160 | |
ALounes | 0:826d61f3ff66 | 161 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 162 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 163 | /* THREAD PRESENCE */ |
ALounes | 0:826d61f3ff66 | 164 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 165 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 166 | |
ALounes | 0:826d61f3ff66 | 167 | void trigger() { |
ALounes | 0:826d61f3ff66 | 168 | // pc.printf("triggered\n\r"); |
ALounes | 0:826d61f3ff66 | 169 | intFlag = true; |
ALounes | 0:826d61f3ff66 | 170 | } |
ALounes | 0:826d61f3ff66 | 171 | |
ALounes | 0:826d61f3ff66 | 172 | void printGesture(int gesture) { |
ALounes | 0:826d61f3ff66 | 173 | switch ( gesture ) { |
ALounes | 0:826d61f3ff66 | 174 | case DIR_UP: |
ALounes | 0:826d61f3ff66 | 175 | pc.printf("UP\n\r"); |
ALounes | 0:826d61f3ff66 | 176 | break; |
ALounes | 0:826d61f3ff66 | 177 | case DIR_DOWN: |
ALounes | 0:826d61f3ff66 | 178 | pc.printf("DOWN\n\r"); |
ALounes | 0:826d61f3ff66 | 179 | break; |
ALounes | 0:826d61f3ff66 | 180 | case DIR_LEFT: |
ALounes | 0:826d61f3ff66 | 181 | pc.printf("LEFT\n\r"); |
ALounes | 0:826d61f3ff66 | 182 | break; |
ALounes | 0:826d61f3ff66 | 183 | case DIR_RIGHT: |
ALounes | 0:826d61f3ff66 | 184 | pc.printf("RIGHT\n\r"); |
ALounes | 0:826d61f3ff66 | 185 | break; |
ALounes | 0:826d61f3ff66 | 186 | case DIR_NEAR: |
ALounes | 0:826d61f3ff66 | 187 | pc.printf("NEAR\n\r"); |
ALounes | 0:826d61f3ff66 | 188 | break; |
ALounes | 0:826d61f3ff66 | 189 | case DIR_FAR: |
ALounes | 0:826d61f3ff66 | 190 | pc.printf("FAR\n\r"); |
ALounes | 0:826d61f3ff66 | 191 | break; |
ALounes | 0:826d61f3ff66 | 192 | default: |
ALounes | 0:826d61f3ff66 | 193 | pc.printf("NONE\n\r"); |
ALounes | 0:826d61f3ff66 | 194 | } |
ALounes | 0:826d61f3ff66 | 195 | } |
ALounes | 0:826d61f3ff66 | 196 | |
ALounes | 0:826d61f3ff66 | 197 | int getGesture() { |
ALounes | 0:826d61f3ff66 | 198 | |
ALounes | 0:826d61f3ff66 | 199 | if(sensor.isGestureAvailable()) { |
ALounes | 0:826d61f3ff66 | 200 | pc.printf("Gesture Available!\n\r"); |
ALounes | 0:826d61f3ff66 | 201 | // Process it. |
ALounes | 0:826d61f3ff66 | 202 | |
ALounes | 0:826d61f3ff66 | 203 | switch ( sensor.readGesture() ) { |
ALounes | 0:826d61f3ff66 | 204 | |
ALounes | 0:826d61f3ff66 | 205 | case DIR_RIGHT: |
ALounes | 0:826d61f3ff66 | 206 | inf.mouvement = 2; |
ALounes | 0:826d61f3ff66 | 207 | return 2; |
ALounes | 0:826d61f3ff66 | 208 | case DIR_LEFT : |
ALounes | 0:826d61f3ff66 | 209 | inf.mouvement = 3; |
ALounes | 0:826d61f3ff66 | 210 | return 3; |
ALounes | 0:826d61f3ff66 | 211 | case DIR_DOWN : |
ALounes | 0:826d61f3ff66 | 212 | inf.mouvement = 4; |
ALounes | 0:826d61f3ff66 | 213 | return 4; |
ALounes | 0:826d61f3ff66 | 214 | case DIR_UP : |
ALounes | 0:826d61f3ff66 | 215 | inf.mouvement = 5; |
ALounes | 0:826d61f3ff66 | 216 | return 5; |
ALounes | 0:826d61f3ff66 | 217 | case DIR_NEAR : |
ALounes | 0:826d61f3ff66 | 218 | inf.mouvement = 6; |
ALounes | 0:826d61f3ff66 | 219 | return 6; |
ALounes | 0:826d61f3ff66 | 220 | case DIR_FAR : |
ALounes | 0:826d61f3ff66 | 221 | inf.mouvement = 7; |
ALounes | 0:826d61f3ff66 | 222 | return 7; |
ALounes | 0:826d61f3ff66 | 223 | default: |
ALounes | 0:826d61f3ff66 | 224 | inf.mouvement = 1; |
ALounes | 0:826d61f3ff66 | 225 | return 1; |
ALounes | 0:826d61f3ff66 | 226 | } |
ALounes | 0:826d61f3ff66 | 227 | } |
ALounes | 0:826d61f3ff66 | 228 | return DIR_NONE; |
ALounes | 0:826d61f3ff66 | 229 | //return 0; |
ALounes | 0:826d61f3ff66 | 230 | } |
ALounes | 0:826d61f3ff66 | 231 | |
ALounes | 0:826d61f3ff66 | 232 | |
ALounes | 0:826d61f3ff66 | 233 | void thread_presence(void const *name) { |
ALounes | 0:826d61f3ff66 | 234 | |
ALounes | 0:826d61f3ff66 | 235 | printf("%s\n\r", (const char*)name); |
ALounes | 0:826d61f3ff66 | 236 | |
ALounes | 0:826d61f3ff66 | 237 | two_slots.wait(); |
ALounes | 0:826d61f3ff66 | 238 | while(!sensor.ginit(pc)){ |
ALounes | 0:826d61f3ff66 | 239 | printf("Something went wrong during APDS-9960 init\n\r"); |
ALounes | 0:826d61f3ff66 | 240 | Thread::wait(TIME_WAIT_MS_INITIALISATION_FAILURE); |
ALounes | 0:826d61f3ff66 | 241 | } |
ALounes | 0:826d61f3ff66 | 242 | printf("APDS-9960 initialization complete\n\r"); |
ALounes | 0:826d61f3ff66 | 243 | |
ALounes | 0:826d61f3ff66 | 244 | // Start running the APDS-9960 gesture sensor engine |
ALounes | 0:826d61f3ff66 | 245 | while(!sensor.enableGestureSensor(true)){ |
ALounes | 0:826d61f3ff66 | 246 | printf("Something went wrong during gesture sensor init!\n\r"); |
ALounes | 0:826d61f3ff66 | 247 | Thread::wait(TIME_WAIT_MS_INITIALISATION_FAILURE); |
ALounes | 0:826d61f3ff66 | 248 | } |
ALounes | 0:826d61f3ff66 | 249 | printf("Gesture sensor is now running\n\r"); |
ALounes | 0:826d61f3ff66 | 250 | two_slots.release(); |
ALounes | 0:826d61f3ff66 | 251 | |
ALounes | 0:826d61f3ff66 | 252 | interrupt.fall(&trigger); |
ALounes | 0:826d61f3ff66 | 253 | |
ALounes | 0:826d61f3ff66 | 254 | while(1) { |
ALounes | 0:826d61f3ff66 | 255 | // when interrupt trigerred, flag is set. |
ALounes | 0:826d61f3ff66 | 256 | if(intFlag) { |
ALounes | 0:826d61f3ff66 | 257 | |
ALounes | 0:826d61f3ff66 | 258 | two_slots.wait(); |
ALounes | 0:826d61f3ff66 | 259 | printGesture(getGesture()); |
ALounes | 0:826d61f3ff66 | 260 | two_slots.release(); |
ALounes | 0:826d61f3ff66 | 261 | |
ALounes | 0:826d61f3ff66 | 262 | // Clean interrupt handler flag. |
ALounes | 0:826d61f3ff66 | 263 | intFlag = false; |
ALounes | 0:826d61f3ff66 | 264 | } |
ALounes | 0:826d61f3ff66 | 265 | |
ALounes | 0:826d61f3ff66 | 266 | // Do somethings else |
ALounes | 0:826d61f3ff66 | 267 | wait_ms(TIME_WAIT_MS_MOUVEMENT_SENSOR); |
ALounes | 0:826d61f3ff66 | 268 | } |
ALounes | 0:826d61f3ff66 | 269 | } |
ALounes | 0:826d61f3ff66 | 270 | |
ALounes | 0:826d61f3ff66 | 271 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 272 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 273 | /* BLE */ |
ALounes | 0:826d61f3ff66 | 274 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 275 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 276 | |
ALounes | 0:826d61f3ff66 | 277 | void bleCallBack(void const *name) { |
ALounes | 0:826d61f3ff66 | 278 | printf("%s\n\r", (const char*)name); |
ALounes | 0:826d61f3ff66 | 279 | |
ALounes | 0:826d61f3ff66 | 280 | printf(" tmp 01 : %3d \n",inf.temperature_01); |
ALounes | 0:826d61f3ff66 | 281 | printf(" tmp 02 : %3d \n",inf.temperature_02); |
ALounes | 0:826d61f3ff66 | 282 | printf(" humidite : %3d \n",inf.humidite); |
ALounes | 0:826d61f3ff66 | 283 | printf(" pression : %6ld \n",inf.pression); |
ALounes | 0:826d61f3ff66 | 284 | printf(" luminosite : %3d \n",inf.luminosite); |
ALounes | 0:826d61f3ff66 | 285 | printf(" Mouvement : %1d \n",inf.mouvement); |
ALounes | 0:826d61f3ff66 | 286 | |
ALounes | 0:826d61f3ff66 | 287 | bluetooth.printf("%3d%3d%3d%6ld%3d%1d" ,inf.temperature_01 |
ALounes | 0:826d61f3ff66 | 288 | ,inf.humidite |
ALounes | 0:826d61f3ff66 | 289 | ,inf.temperature_02 |
ALounes | 0:826d61f3ff66 | 290 | ,inf.pression |
ALounes | 0:826d61f3ff66 | 291 | ,inf.luminosite |
ALounes | 0:826d61f3ff66 | 292 | ,inf.mouvement); |
ALounes | 0:826d61f3ff66 | 293 | |
ALounes | 0:826d61f3ff66 | 294 | inf.mouvement = 0; |
ALounes | 0:826d61f3ff66 | 295 | } |
ALounes | 0:826d61f3ff66 | 296 | |
ALounes | 0:826d61f3ff66 | 297 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 298 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 299 | /* POT & PWM */ |
ALounes | 0:826d61f3ff66 | 300 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 301 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 302 | |
ALounes | 0:826d61f3ff66 | 303 | void potAndPwm() |
ALounes | 0:826d61f3ff66 | 304 | { |
ALounes | 0:826d61f3ff66 | 305 | AnalogIn pot(PIN_POTENTIOMETRE); |
ALounes | 0:826d61f3ff66 | 306 | SoftPWM led = PIN_PWM_LED; |
ALounes | 0:826d61f3ff66 | 307 | |
ALounes | 0:826d61f3ff66 | 308 | led.period_ms(PWM_PERIODE_MS); |
ALounes | 0:826d61f3ff66 | 309 | |
ALounes | 0:826d61f3ff66 | 310 | while (true) { |
ALounes | 0:826d61f3ff66 | 311 | if(pot.read() < PWM_VALUE_MIN){ |
ALounes | 0:826d61f3ff66 | 312 | led = PWM_LED_OFF; |
ALounes | 0:826d61f3ff66 | 313 | inf.luminosite = 0; |
ALounes | 0:826d61f3ff66 | 314 | } |
ALounes | 0:826d61f3ff66 | 315 | else if (pot.read()> PWM_VALUE_MAX){ |
ALounes | 0:826d61f3ff66 | 316 | led = PWM_LED_ON; |
ALounes | 0:826d61f3ff66 | 317 | inf.luminosite = 100; |
ALounes | 0:826d61f3ff66 | 318 | } |
ALounes | 0:826d61f3ff66 | 319 | else { |
ALounes | 0:826d61f3ff66 | 320 | led = pot.read(); |
ALounes | 0:826d61f3ff66 | 321 | inf.luminosite = pot.read()*100; |
ALounes | 0:826d61f3ff66 | 322 | } |
ALounes | 0:826d61f3ff66 | 323 | } |
ALounes | 0:826d61f3ff66 | 324 | } |
ALounes | 0:826d61f3ff66 | 325 | |
ALounes | 0:826d61f3ff66 | 326 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 327 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 328 | /* FIN PROGRAMME */ |
ALounes | 0:826d61f3ff66 | 329 | /*************************************************************************************/ |
ALounes | 0:826d61f3ff66 | 330 | /*************************************************************************************/ |