Sigfox project
Dependencies: mbed TCS34725 WakeUp DHT TSL2561_I2C DS1820
Diff: main.cpp
- Revision:
- 3:a5b1e083ffd2
- Parent:
- 2:e153d5219f93
- Child:
- 4:0b63b5897827
diff -r e153d5219f93 -r a5b1e083ffd2 main.cpp --- a/main.cpp Tue Oct 15 09:50:21 2019 +0000 +++ b/main.cpp Mon Nov 18 15:49:02 2019 +0000 @@ -1,56 +1,135 @@ #include "mbed.h" #include "DS1820.h" #include "DHT.h" -#include "TCS3472_I2C.h" +#include "TSL2561_I2C.h" +#include "Adafruit_TCS34725.h" +#define commonAnode true -//DigitalOut led(LED3); + +Serial wisol(D1, D0); // tx, rx Serial pc(USBTX, USBRX); -DHT dht(A1, 22); -TCS3472_I2C rgb_sensor( PB_4, PA_7 ); -AnalogIn ain(A0); // humidity sol -DS1820 temp_sol(A2); + +//tempAir et humAir +DHT dht(D12, 22); + + +//RGB +I2C i2c(PB_7, PB_6); +Adafruit_TCS34725 tcs = Adafruit_TCS34725(&i2c, TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X); + +//tempSol +DS1820 temp_sol(A7); + + +//luminosite +TSL2561_I2C lum (PB_7, PB_6); + + +//humSol +AnalogIn ain(A3); int main(){ + //DHT22 int data; - rgb_sensor.enablePowerAndRGBC(); - rgb_sensor.setIntegrationTime(100); - int rgb_readings[4]; - int hum_sol; + float tempAir, humAir; - - //erreur temp_sol + //temp_sol if(temp_sol.unassignedProbe(A2)) { pc.printf("error temperature_sol"); } + + //humiditeSol + int hum_sol; + + //luminosite + float lux; + if(!lum.enablePower()) + { + pc.printf("error luminosite"); + } + + + + ///////////////////////////////////////// + ////////////////////RGB////////////////// + ///////////////////////////////////////// + + char gammatable[256]; + if(!tcs.begin()) + { + pc.printf("No TCS34725 found ... check your connections"); + } + for (int i=0; i<256; i++) + { + float x = i; + x /= 255; + x = pow((double)x, 2.5); + x *= 255; + if (commonAnode) + { + gammatable[i] = 255 - x; + } + else + { + gammatable[i] = x; + } + } + + + + while(1){ //Capteur air - //data = dht.readData(); - - - //Capteur RGB - - /*rgb_sensor.getAllColors(rgb_readings); - //led = !led; - if(data == ERROR_NONE){ - pc.printf("La temperature de la salle est: %.2f et Humidite est: %.2f\n", dht.ReadTemperature(CELCIUS), dht.ReadHumidity()); - } - else{ - //pc.printf("Erreur numero: %d\n", data); - } - pc.printf( "red: %d, green: %d, blue: %d, clear: %d\n", rgb_readings[0], rgb_readings[1], rgb_readings[2], rgb_readings[3] ); - wait_ms(5000);*/ + data = dht.readData(); + humAir = dht.ReadHumidity(); + tempAir = dht.ReadTemperature(CELCIUS); + pc.printf("tempAir = %1.f, humAir = %1.f\n", tempAir, humAir); + int valeur = 3; + wisol.printf("AT$SF=%02X%02X\r\n", (int)tempAir, (int)humAir); //capteur humidite sol hum_sol = (int)(((0.78 - ain.read())*100)/0.38); - pc.printf ("l'humidite du sol est %d%\n", hum_sol); // humidity sol + pc.printf ("humSol = %d%\n", hum_sol); //Capteur temperature sol temp_sol.convertTemperature(true, DS1820::all_devices); - pc.printf("temperature : %.1f\n", temp_sol.temperature()); - wait(3); + pc.printf("tempSol : %.1f\n", temp_sol.temperature()); + + + //luminosite + lux = lum.getLux(); + pc.printf("lux = %d\n", (int)lux); + + + /////////////// + //Capteur RGB// + /////////////// + + uint16_t clear, red, green, blue; + tcs.setInterrupt(false); // turn on LED + tcs.getRawData(&red, &green, &blue, &clear); + tcs.setInterrupt(true); // turn off LED + //pc.printf("clear = %d, red = %d, green = %d, blue = %d\r\n", clear, red, green, blue); + + //obtenir valeur en hexa + uint32_t sum = clear; + float r, g, b; + r = red; r /= sum; + g = green; g /= sum; + b = blue; b /= sum; + r *= 256; g *= 256; b *= 256; + pc.printf("clear = %d, red = %d, green = %d, blue = %d\r\n\n", clear, (int)r, (int)g, (int)b); + + wisol.printf("AT$SF=%06X%02X%02X%02X%04X%02X%04X%02X\r\n", (int)lux, (int)r, (int)g, (int)b, (int)(10*temp_sol.temperature()), (int)(hum_sol*10), (int)(tempAir*10), (int)(humAir*10)); + //lux : 3 octets + //r, g, b : 1 octet + //tempSol, tempAir : 2 octets + //humSol, humAir : 1 octet + + wait(1000); } } \ No newline at end of file