Projet Long pour AGRAL

Dependencies:   mbed OneWire DHT22 TSL2561 SSD1306

Committer:
Pipou
Date:
Tue Oct 17 10:17:55 2017 +0000
Revision:
9:6ef06c9e2bab
Parent:
8:2ba90555552e
Child:
10:fd7b1648642d
Capteurs + OLED + Sigfox + Interruption (non test?)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Pipou 9:6ef06c9e2bab 1 /*******************************************************
Pipou 9:6ef06c9e2bab 2 Nom ......... : main.cpp
Pipou 9:6ef06c9e2bab 3 Role ........ : Récupération de données, mises en forme,
Pipou 9:6ef06c9e2bab 4 des capteurs de :
Pipou 9:6ef06c9e2bab 5 Luminosité, Température de l'air,
Pipou 9:6ef06c9e2bab 6 Humidité de l'air, Température du sol
Pipou 9:6ef06c9e2bab 7 et Huminidité du sol.
Pipou 9:6ef06c9e2bab 8 Affichage dans la console et sur l'écran
Pipou 9:6ef06c9e2bab 9 OLED, ainsi que envoie sur le site
Pipou 9:6ef06c9e2bab 10 ACTOBOARD via module Sigfox.
Pipou 9:6ef06c9e2bab 11 Auteur ...... : GEORGE Pierre, LOUVION Quentin et
Pipou 9:6ef06c9e2bab 12 FAISANT Pierre-Yves
Pipou 9:6ef06c9e2bab 13 Version ..... : V0 du 17/10/2017
Pipou 9:6ef06c9e2bab 14 ********************************************************/
Pipou 9:6ef06c9e2bab 15
Pipou 0:75cfe7e78e4b 16 #include "mbed.h"
pgeorge 2:1e52e7fab454 17 #include "OneWire.h"
pgeorge 3:e369ee47403e 18 #include "TSL2561.h"
pgeorge 3:e369ee47403e 19 #include "DHT22.h"
Pipou 6:998a618b5385 20 #include "ssd1306.h"
Pipou 6:998a618b5385 21 #include "standard_font.h"
Pipou 6:998a618b5385 22 #include "bold_font.h"
pgeorge 3:e369ee47403e 23
Pipou 4:2767fb09ac47 24 //Déclaration variables
Pipou 4:2767fb09ac47 25 TSL2561 Lum(PB_7,PB_6); // Luminosité (I2C:SDA,SCL)
Pipou 4:2767fb09ac47 26 DHT22 Tem_Hum_A(PA_11); // Température & Humidité air
Pipou 4:2767fb09ac47 27 OneWire Tem_S(PA_8); // Température sol
Pipou 4:2767fb09ac47 28 AnalogIn Hum_S(PA_0); // Huminidité sol
Pipou 4:2767fb09ac47 29 Serial pc(PA_2,PA_3); //Serial : Tx,Rx
Pipou 6:998a618b5385 30 SSD1306 oled(PB_0,PB_4,PB_5,PA_5,PA_7); // OLED : CS,Reset,DC,Clock,Data
Pipou 9:6ef06c9e2bab 31 Serial sigfox(PA_9,PA_10,9600); // Module Sigfox
Pipou 9:6ef06c9e2bab 32 LowPowerTicker t1; // Ticker pour la fonction d'interruption
Pipou 9:6ef06c9e2bab 33
Pipou 9:6ef06c9e2bab 34 char _id[16];
Pipou 9:6ef06c9e2bab 35 DeviceAddresses* devAddresses;
Pipou 9:6ef06c9e2bab 36 uint8_t foundNum;
Pipou 9:6ef06c9e2bab 37
Pipou 9:6ef06c9e2bab 38 void interruption()
Pipou 9:6ef06c9e2bab 39 {
Pipou 9:6ef06c9e2bab 40 I2C i2c(PB_7,PB_6);
Pipou 9:6ef06c9e2bab 41
Pipou 9:6ef06c9e2bab 42 //OneWire Tem_S
Pipou 9:6ef06c9e2bab 43 OneWireDeviceTemperature::startConversationForAll(&Tem_S, OWTEMP_11_BIT);
Pipou 9:6ef06c9e2bab 44 for (uint8_t i = 0; i < foundNum; i++)
Pipou 9:6ef06c9e2bab 45 {
Pipou 9:6ef06c9e2bab 46 OneWireDevice* owDevice = OneWireDeviceFactory::init(&Tem_S, (*devAddresses)[i]);
Pipou 9:6ef06c9e2bab 47
Pipou 9:6ef06c9e2bab 48 if (owDevice->getFamily() != ONEWIRE_DS18B20_FAMILY) // currently only DS18B20 supports
Pipou 9:6ef06c9e2bab 49 continue;
Pipou 9:6ef06c9e2bab 50
Pipou 9:6ef06c9e2bab 51 owDevice->generateId(_id);
Pipou 9:6ef06c9e2bab 52
Pipou 9:6ef06c9e2bab 53 Tem_Hum_A.sample();
Pipou 9:6ef06c9e2bab 54
Pipou 9:6ef06c9e2bab 55 // Calcul sur les données envoyées par les capteurs
Pipou 9:6ef06c9e2bab 56 float Lumux = Lum.lux();
Pipou 9:6ef06c9e2bab 57 float Temp_Air = Tem_Hum_A.getTemperature()/10.0;
Pipou 9:6ef06c9e2bab 58 float Hum_Air = Tem_Hum_A.getHumidity()/10.0;
Pipou 9:6ef06c9e2bab 59 float Temp_Sol = owDevice->sendGetCommand(GET_TEMPERATURE);
Pipou 9:6ef06c9e2bab 60 float Hum_Sol = Hum_S.read();
Pipou 9:6ef06c9e2bab 61
Pipou 9:6ef06c9e2bab 62 // Affichage données, mises en forme, sur la console
Pipou 9:6ef06c9e2bab 63 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 9:6ef06c9e2bab 64
Pipou 9:6ef06c9e2bab 65 // Envoie données, mises en forme, sur ACTOBOARD
Pipou 9:6ef06c9e2bab 66 sigfox.printf("AT$SF=");
Pipou 9:6ef06c9e2bab 67 sigfox.printf("%04x%04x",Temp_Air,Hum_Air);
Pipou 9:6ef06c9e2bab 68 sigfox.printf("\n\r");
Pipou 9:6ef06c9e2bab 69
Pipou 9:6ef06c9e2bab 70 delete owDevice;
Pipou 9:6ef06c9e2bab 71
Pipou 9:6ef06c9e2bab 72 SPI spi(PA_7,NC, PA_5);
Pipou 9:6ef06c9e2bab 73
Pipou 9:6ef06c9e2bab 74 // Affichage données, mises en forme, sur l'écran OLED
Pipou 9:6ef06c9e2bab 75 wait(2);
Pipou 9:6ef06c9e2bab 76 oled.set_font(bold_font, 8);
Pipou 9:6ef06c9e2bab 77 oled.printf("Capteurs\r\n");
Pipou 9:6ef06c9e2bab 78 oled.printf("\r\n");
Pipou 9:6ef06c9e2bab 79 oled.set_font(standard_font, 6);
Pipou 9:6ef06c9e2bab 80 oled.printf("Lum: %f\r\n", Lumux);
Pipou 9:6ef06c9e2bab 81 oled.printf("Temp_A: %f\r\n", Temp_Air);
Pipou 9:6ef06c9e2bab 82 oled.printf("Hum_A: %f\r\n", Hum_Air);
Pipou 9:6ef06c9e2bab 83 oled.printf("Temp_S: %f\r\n",Temp_Sol);
Pipou 9:6ef06c9e2bab 84 oled.printf("Hum_S: %f\r\n", Hum_Sol);
Pipou 9:6ef06c9e2bab 85 oled.printf("\r\n");
Pipou 9:6ef06c9e2bab 86 oled.update();
Pipou 9:6ef06c9e2bab 87 }
Pipou 9:6ef06c9e2bab 88 }
Pipou 0:75cfe7e78e4b 89
Pipou 0:75cfe7e78e4b 90 int main() {
Pipou 4:2767fb09ac47 91 //OneWire Tem_S
pgeorge 8:2ba90555552e 92 I2C i2c(PB_7,PB_6);
Pipou 9:6ef06c9e2bab 93 devAddresses = Tem_S.getFoundDevAddresses();
Pipou 9:6ef06c9e2bab 94 foundNum = Tem_S.getFoundDevNum();
Pipou 6:998a618b5385 95
pgeorge 8:2ba90555552e 96 SPI spi(PA_7,NC, PA_5);
Pipou 9:6ef06c9e2bab 97
Pipou 6:998a618b5385 98 //OLED
Pipou 6:998a618b5385 99 oled.initialise();
Pipou 6:998a618b5385 100 oled.clear();
Pipou 6:998a618b5385 101 oled.set_contrast(255); // max contrast
Pipou 6:998a618b5385 102
Pipou 6:998a618b5385 103 oled.set_font(bold_font, 8);
Pipou 6:998a618b5385 104 oled.printf("Heading\r\n");
Pipou 6:998a618b5385 105
Pipou 6:998a618b5385 106 oled.set_font(standard_font, 6);
Pipou 6:998a618b5385 107 oled.printf("Hello World!\r\n");
Pipou 6:998a618b5385 108 oled.printf("Some more text here..");
Pipou 6:998a618b5385 109
Pipou 6:998a618b5385 110 oled.update();
Pipou 9:6ef06c9e2bab 111
Pipou 9:6ef06c9e2bab 112 t1.attach(interruption,60);
Pipou 9:6ef06c9e2bab 113
Pipou 9:6ef06c9e2bab 114 while(1)
Pipou 9:6ef06c9e2bab 115 {
Pipou 9:6ef06c9e2bab 116 deepsleep();
Pipou 0:75cfe7e78e4b 117 }
Pipou 0:75cfe7e78e4b 118 }