Sigfox project

Dependencies:   mbed TCS34725 WakeUp DHT TSL2561_I2C DS1820

Committer:
ran_ghe
Date:
Mon Nov 18 15:49:02 2019 +0000
Revision:
3:a5b1e083ffd2
Parent:
2:e153d5219f93
Child:
4:0b63b5897827
X 10 pour les temp et hum

Who changed what in which revision?

UserRevisionLine numberNew contents of line
youdllo5 0:cfed96a14467 1 #include "mbed.h"
ran_ghe 1:07835f780c89 2 #include "DS1820.h"
youdllo5 0:cfed96a14467 3 #include "DHT.h"
ran_ghe 3:a5b1e083ffd2 4 #include "TSL2561_I2C.h"
ran_ghe 3:a5b1e083ffd2 5 #include "Adafruit_TCS34725.h"
ran_ghe 3:a5b1e083ffd2 6 #define commonAnode true
youdllo5 0:cfed96a14467 7
ran_ghe 3:a5b1e083ffd2 8
ran_ghe 3:a5b1e083ffd2 9 Serial wisol(D1, D0); // tx, rx
youdllo5 0:cfed96a14467 10 Serial pc(USBTX, USBRX);
ran_ghe 3:a5b1e083ffd2 11
ran_ghe 3:a5b1e083ffd2 12 //tempAir et humAir
ran_ghe 3:a5b1e083ffd2 13 DHT dht(D12, 22);
ran_ghe 3:a5b1e083ffd2 14
ran_ghe 3:a5b1e083ffd2 15
ran_ghe 3:a5b1e083ffd2 16 //RGB
ran_ghe 3:a5b1e083ffd2 17 I2C i2c(PB_7, PB_6);
ran_ghe 3:a5b1e083ffd2 18 Adafruit_TCS34725 tcs = Adafruit_TCS34725(&i2c, TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
ran_ghe 3:a5b1e083ffd2 19
ran_ghe 3:a5b1e083ffd2 20 //tempSol
ran_ghe 3:a5b1e083ffd2 21 DS1820 temp_sol(A7);
ran_ghe 3:a5b1e083ffd2 22
ran_ghe 3:a5b1e083ffd2 23
ran_ghe 3:a5b1e083ffd2 24 //luminosite
ran_ghe 3:a5b1e083ffd2 25 TSL2561_I2C lum (PB_7, PB_6);
ran_ghe 3:a5b1e083ffd2 26
ran_ghe 3:a5b1e083ffd2 27
ran_ghe 3:a5b1e083ffd2 28 //humSol
ran_ghe 3:a5b1e083ffd2 29 AnalogIn ain(A3);
youdllo5 0:cfed96a14467 30
youdllo5 0:cfed96a14467 31 int main(){
youdllo5 0:cfed96a14467 32
ran_ghe 3:a5b1e083ffd2 33 //DHT22
youdllo5 0:cfed96a14467 34 int data;
ran_ghe 3:a5b1e083ffd2 35 float tempAir, humAir;
youdllo5 0:cfed96a14467 36
ran_ghe 3:a5b1e083ffd2 37 //temp_sol
ran_ghe 1:07835f780c89 38 if(temp_sol.unassignedProbe(A2))
ran_ghe 1:07835f780c89 39 {
ran_ghe 1:07835f780c89 40 pc.printf("error temperature_sol");
ran_ghe 1:07835f780c89 41 }
ran_ghe 1:07835f780c89 42
ran_ghe 3:a5b1e083ffd2 43
ran_ghe 3:a5b1e083ffd2 44 //humiditeSol
ran_ghe 3:a5b1e083ffd2 45 int hum_sol;
ran_ghe 3:a5b1e083ffd2 46
ran_ghe 3:a5b1e083ffd2 47 //luminosite
ran_ghe 3:a5b1e083ffd2 48 float lux;
ran_ghe 3:a5b1e083ffd2 49 if(!lum.enablePower())
ran_ghe 3:a5b1e083ffd2 50 {
ran_ghe 3:a5b1e083ffd2 51 pc.printf("error luminosite");
ran_ghe 3:a5b1e083ffd2 52 }
ran_ghe 3:a5b1e083ffd2 53
ran_ghe 3:a5b1e083ffd2 54
ran_ghe 3:a5b1e083ffd2 55
ran_ghe 3:a5b1e083ffd2 56 /////////////////////////////////////////
ran_ghe 3:a5b1e083ffd2 57 ////////////////////RGB//////////////////
ran_ghe 3:a5b1e083ffd2 58 /////////////////////////////////////////
ran_ghe 3:a5b1e083ffd2 59
ran_ghe 3:a5b1e083ffd2 60 char gammatable[256];
ran_ghe 3:a5b1e083ffd2 61 if(!tcs.begin())
ran_ghe 3:a5b1e083ffd2 62 {
ran_ghe 3:a5b1e083ffd2 63 pc.printf("No TCS34725 found ... check your connections");
ran_ghe 3:a5b1e083ffd2 64 }
ran_ghe 3:a5b1e083ffd2 65 for (int i=0; i<256; i++)
ran_ghe 3:a5b1e083ffd2 66 {
ran_ghe 3:a5b1e083ffd2 67 float x = i;
ran_ghe 3:a5b1e083ffd2 68 x /= 255;
ran_ghe 3:a5b1e083ffd2 69 x = pow((double)x, 2.5);
ran_ghe 3:a5b1e083ffd2 70 x *= 255;
ran_ghe 3:a5b1e083ffd2 71 if (commonAnode)
ran_ghe 3:a5b1e083ffd2 72 {
ran_ghe 3:a5b1e083ffd2 73 gammatable[i] = 255 - x;
ran_ghe 3:a5b1e083ffd2 74 }
ran_ghe 3:a5b1e083ffd2 75 else
ran_ghe 3:a5b1e083ffd2 76 {
ran_ghe 3:a5b1e083ffd2 77 gammatable[i] = x;
ran_ghe 3:a5b1e083ffd2 78 }
ran_ghe 3:a5b1e083ffd2 79 }
ran_ghe 3:a5b1e083ffd2 80
ran_ghe 3:a5b1e083ffd2 81
ran_ghe 3:a5b1e083ffd2 82
ran_ghe 3:a5b1e083ffd2 83
youdllo5 0:cfed96a14467 84 while(1){
ran_ghe 1:07835f780c89 85 //Capteur air
ran_ghe 3:a5b1e083ffd2 86 data = dht.readData();
ran_ghe 3:a5b1e083ffd2 87 humAir = dht.ReadHumidity();
ran_ghe 3:a5b1e083ffd2 88 tempAir = dht.ReadTemperature(CELCIUS);
ran_ghe 3:a5b1e083ffd2 89 pc.printf("tempAir = %1.f, humAir = %1.f\n", tempAir, humAir);
ran_ghe 3:a5b1e083ffd2 90 int valeur = 3;
ran_ghe 3:a5b1e083ffd2 91 wisol.printf("AT$SF=%02X%02X\r\n", (int)tempAir, (int)humAir);
ran_ghe 1:07835f780c89 92
Mohamed_Sadialiou 2:e153d5219f93 93 //capteur humidite sol
Mohamed_Sadialiou 2:e153d5219f93 94 hum_sol = (int)(((0.78 - ain.read())*100)/0.38);
ran_ghe 3:a5b1e083ffd2 95 pc.printf ("humSol = %d%\n", hum_sol);
Mohamed_Sadialiou 2:e153d5219f93 96
ran_ghe 1:07835f780c89 97 //Capteur temperature sol
ran_ghe 1:07835f780c89 98 temp_sol.convertTemperature(true, DS1820::all_devices);
ran_ghe 3:a5b1e083ffd2 99 pc.printf("tempSol : %.1f\n", temp_sol.temperature());
ran_ghe 3:a5b1e083ffd2 100
ran_ghe 3:a5b1e083ffd2 101
ran_ghe 3:a5b1e083ffd2 102 //luminosite
ran_ghe 3:a5b1e083ffd2 103 lux = lum.getLux();
ran_ghe 3:a5b1e083ffd2 104 pc.printf("lux = %d\n", (int)lux);
ran_ghe 3:a5b1e083ffd2 105
ran_ghe 3:a5b1e083ffd2 106
ran_ghe 3:a5b1e083ffd2 107 ///////////////
ran_ghe 3:a5b1e083ffd2 108 //Capteur RGB//
ran_ghe 3:a5b1e083ffd2 109 ///////////////
ran_ghe 3:a5b1e083ffd2 110
ran_ghe 3:a5b1e083ffd2 111 uint16_t clear, red, green, blue;
ran_ghe 3:a5b1e083ffd2 112 tcs.setInterrupt(false); // turn on LED
ran_ghe 3:a5b1e083ffd2 113 tcs.getRawData(&red, &green, &blue, &clear);
ran_ghe 3:a5b1e083ffd2 114 tcs.setInterrupt(true); // turn off LED
ran_ghe 3:a5b1e083ffd2 115 //pc.printf("clear = %d, red = %d, green = %d, blue = %d\r\n", clear, red, green, blue);
ran_ghe 3:a5b1e083ffd2 116
ran_ghe 3:a5b1e083ffd2 117 //obtenir valeur en hexa
ran_ghe 3:a5b1e083ffd2 118 uint32_t sum = clear;
ran_ghe 3:a5b1e083ffd2 119 float r, g, b;
ran_ghe 3:a5b1e083ffd2 120 r = red; r /= sum;
ran_ghe 3:a5b1e083ffd2 121 g = green; g /= sum;
ran_ghe 3:a5b1e083ffd2 122 b = blue; b /= sum;
ran_ghe 3:a5b1e083ffd2 123 r *= 256; g *= 256; b *= 256;
ran_ghe 3:a5b1e083ffd2 124 pc.printf("clear = %d, red = %d, green = %d, blue = %d\r\n\n", clear, (int)r, (int)g, (int)b);
ran_ghe 3:a5b1e083ffd2 125
ran_ghe 3:a5b1e083ffd2 126 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));
ran_ghe 3:a5b1e083ffd2 127 //lux : 3 octets
ran_ghe 3:a5b1e083ffd2 128 //r, g, b : 1 octet
ran_ghe 3:a5b1e083ffd2 129 //tempSol, tempAir : 2 octets
ran_ghe 3:a5b1e083ffd2 130 //humSol, humAir : 1 octet
ran_ghe 3:a5b1e083ffd2 131
ran_ghe 3:a5b1e083ffd2 132 wait(1000);
youdllo5 0:cfed96a14467 133
youdllo5 0:cfed96a14467 134 }
youdllo5 0:cfed96a14467 135 }