
Projet Long pour AGRAL
Dependencies: mbed OneWire DHT22 TSL2561 SSD1306
main.cpp@6:998a618b5385, 2017-10-02 (annotated)
- Committer:
- Pipou
- Date:
- Mon Oct 02 15:28:05 2017 +0000
- Revision:
- 6:998a618b5385
- Parent:
- 5:e3a7dc396048
- Child:
- 7:7cbb4556e694
- Child:
- 8:2ba90555552e
Capteurs + Ecran OLED
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Pipou | 0:75cfe7e78e4b | 1 | #include "mbed.h" |
pgeorge | 2:1e52e7fab454 | 2 | #include "OneWire.h" |
pgeorge | 3:e369ee47403e | 3 | #include "TSL2561.h" |
pgeorge | 3:e369ee47403e | 4 | #include "DHT22.h" |
Pipou | 6:998a618b5385 | 5 | #include "ssd1306.h" |
Pipou | 6:998a618b5385 | 6 | #include "standard_font.h" |
Pipou | 6:998a618b5385 | 7 | #include "bold_font.h" |
pgeorge | 3:e369ee47403e | 8 | |
Pipou | 4:2767fb09ac47 | 9 | //Déclaration variables |
Pipou | 4:2767fb09ac47 | 10 | TSL2561 Lum(PB_7,PB_6); // Luminosité (I2C:SDA,SCL) |
Pipou | 4:2767fb09ac47 | 11 | DHT22 Tem_Hum_A(PA_11); // Température & Humidité air |
Pipou | 4:2767fb09ac47 | 12 | OneWire Tem_S(PA_8); // Température sol |
Pipou | 4:2767fb09ac47 | 13 | AnalogIn Hum_S(PA_0); // Huminidité sol |
Pipou | 4:2767fb09ac47 | 14 | Serial pc(PA_2,PA_3); //Serial : Tx,Rx |
Pipou | 6:998a618b5385 | 15 | SSD1306 oled(PB_0,PB_4,PB_5,PA_5,PA_7); // OLED : CS,Reset,DC,Clock,Data |
Pipou | 0:75cfe7e78e4b | 16 | |
Pipou | 0:75cfe7e78e4b | 17 | int main() { |
Pipou | 4:2767fb09ac47 | 18 | //OneWire Tem_S |
pgeorge | 2:1e52e7fab454 | 19 | char _id[16]; |
Pipou | 4:2767fb09ac47 | 20 | DeviceAddresses* devAddresses = Tem_S.getFoundDevAddresses(); |
Pipou | 4:2767fb09ac47 | 21 | uint8_t foundNum = Tem_S.getFoundDevNum(); |
Pipou | 6:998a618b5385 | 22 | |
Pipou | 6:998a618b5385 | 23 | //OLED |
Pipou | 6:998a618b5385 | 24 | oled.initialise(); |
Pipou | 6:998a618b5385 | 25 | oled.clear(); |
Pipou | 6:998a618b5385 | 26 | oled.set_contrast(255); // max contrast |
Pipou | 6:998a618b5385 | 27 | |
Pipou | 6:998a618b5385 | 28 | oled.set_font(bold_font, 8); |
Pipou | 6:998a618b5385 | 29 | oled.printf("Heading\r\n"); |
Pipou | 6:998a618b5385 | 30 | |
Pipou | 6:998a618b5385 | 31 | oled.set_font(standard_font, 6); |
Pipou | 6:998a618b5385 | 32 | oled.printf("Hello World!\r\n"); |
Pipou | 6:998a618b5385 | 33 | oled.printf("Some more text here.."); |
Pipou | 6:998a618b5385 | 34 | |
Pipou | 6:998a618b5385 | 35 | oled.update(); |
pgeorge | 3:e369ee47403e | 36 | |
Pipou | 0:75cfe7e78e4b | 37 | while(1) { |
Pipou | 4:2767fb09ac47 | 38 | OneWireDeviceTemperature::startConversationForAll(&Tem_S, OWTEMP_11_BIT); |
pgeorge | 2:1e52e7fab454 | 39 | for (uint8_t i = 0; i < foundNum; i++) { |
Pipou | 4:2767fb09ac47 | 40 | OneWireDevice* owDevice = OneWireDeviceFactory::init(&Tem_S, (*devAddresses)[i]); |
pgeorge | 2:1e52e7fab454 | 41 | |
pgeorge | 2:1e52e7fab454 | 42 | if (owDevice->getFamily() != ONEWIRE_DS18B20_FAMILY) // currently only DS18B20 supports |
pgeorge | 2:1e52e7fab454 | 43 | continue; |
pgeorge | 2:1e52e7fab454 | 44 | |
pgeorge | 2:1e52e7fab454 | 45 | owDevice->generateId(_id); |
pgeorge | 3:e369ee47403e | 46 | |
pgeorge | 3:e369ee47403e | 47 | |
Pipou | 4:2767fb09ac47 | 48 | Tem_Hum_A.sample(); |
Pipou | 6:998a618b5385 | 49 | |
Pipou | 6:998a618b5385 | 50 | float Lumux = Lum.lux(); |
Pipou | 6:998a618b5385 | 51 | float Temp_Air = Tem_Hum_A.getTemperature()/10.0; |
Pipou | 6:998a618b5385 | 52 | float Hum_Air = Tem_Hum_A.getHumidity()/10.0; |
Pipou | 6:998a618b5385 | 53 | float Temp_Sol = owDevice->sendGetCommand(GET_TEMPERATURE); |
Pipou | 6:998a618b5385 | 54 | float Hum_Sol = Hum_S.read(); |
Pipou | 6:998a618b5385 | 55 | |
Pipou | 6:998a618b5385 | 56 | printf( "Lum: %f \tTemp_A: %f \tHum_A: %f \tTemp_S: %f \tHum_S: %f\r\n", Lumux, Temp_Air, Hum_Air, Temp_Sol, Hum_Sol); |
Pipou | 6:998a618b5385 | 57 | delete owDevice; |
Pipou | 6:998a618b5385 | 58 | |
Pipou | 6:998a618b5385 | 59 | wait(2); |
Pipou | 6:998a618b5385 | 60 | oled.set_font(bold_font, 8); |
Pipou | 6:998a618b5385 | 61 | oled.printf("Capteurs\r\n"); |
Pipou | 6:998a618b5385 | 62 | oled.printf("\r\n"); |
Pipou | 6:998a618b5385 | 63 | oled.set_font(standard_font, 6); |
Pipou | 6:998a618b5385 | 64 | oled.printf("Lum: %f\r\n", Lumux); |
Pipou | 6:998a618b5385 | 65 | oled.printf("Temp_A: %f\r\n", Temp_Air); |
Pipou | 6:998a618b5385 | 66 | oled.printf("Hum_A: %f\r\n", Hum_Air); |
Pipou | 6:998a618b5385 | 67 | oled.printf("Temp_S: %f\r\n",Temp_Sol); |
Pipou | 6:998a618b5385 | 68 | oled.printf("Hum_S: %f\r\n", Hum_Sol); |
Pipou | 6:998a618b5385 | 69 | oled.printf("\r\n"); |
Pipou | 6:998a618b5385 | 70 | oled.update(); |
Pipou | 4:2767fb09ac47 | 71 | } |
Pipou | 6:998a618b5385 | 72 | //wait(5); // Frenquence : 200Hz |
Pipou | 0:75cfe7e78e4b | 73 | } |
Pipou | 6:998a618b5385 | 74 | |
Pipou | 6:998a618b5385 | 75 | |
Pipou | 0:75cfe7e78e4b | 76 | } |