delay 10s
Dependencies: HX711 DHT DS1820
Diff: main.cpp
- Revision:
- 0:2e0fc2c1e24c
- Child:
- 1:b811fd6ee6f5
diff -r 000000000000 -r 2e0fc2c1e24c main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Oct 12 10:37:18 2020 +0000 @@ -0,0 +1,57 @@ +#include "mbed.h" +#include "DHT.h" +#include "DS1820.h" + +#define DHT_DATA_PIN D4 + +DS1820 ds1820(D3); // substitute D8 with the actual pin name connected to the DS1820 sensor +float temp = 0; +int result = 0; + +DHT sensor(DHT_DATA_PIN, DHT22); //DHT(PinName pin, eType DHTtype) +Serial pc(USBTX, USBRX); // tx, rx + +Serial device(D1, D0); // tx, rx + +int main() +{ + int error = 0; + float h = 0.0f, c = 0.0f; + pc.baud(9600); + device.baud(9600); + + if (!ds1820.begin()){ + pc.printf("No DS1820 sensor found!\r\n"); + } + else{ + pc.printf("DS1820 sensor found!\r\n"); + } + + while(1) { + + ds1820.startConversion(); // start temperature conversion from analog to digital + ThisThread::sleep_for(1000);// let DS1820 complete the temperature conversion + result = ds1820.read(temp); // read temperature from DS1820 and perform cyclic redundancy check (CRC) + error = sensor.readData(); //read error value + + c = sensor.ReadTemperature(CELCIUS); + h = sensor.ReadHumidity(); + pc.printf("temperature = %4.2f\r\n", c); // on affiche les valeurs sur teraTerm pour debug + pc.printf("Humidite = %4.2f\r\n", h); + + switch (result) { + case 0: // no errors -> 'temp' contains the value of measured temperature + pc.printf("temp DS18B20 = %3.1f\r\n", temp); + break; + + case 1: // no sensor present -> 'temp' was not updated + pc.printf("no sensor present\n\r"); + break; + + case 2: // CRC error -> 'temp' was not updated + pc.printf("CRC error\r\n"); + } + device.printf("AT$SF=%02X%02X%02X\r\n", (char) c,(char) h, (char) temp); // on envoie les données sur l'antenne + wait(2.0f); + } +}