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