delay 10s
Dependencies: HX711 DHT DS1820
main.cpp
- Committer:
- nextzero
- Date:
- 2020-11-22
- Revision:
- 6:5edb45f97ffe
- Parent:
- 5:df7af32714c0
- Child:
- 7:4894e844911e
File content as of revision 6:5edb45f97ffe:
#include "mbed.h" #include "DHT.h" #include "DS1820.h" #include "HX711.h" #define DHT1_DATA_PIN D4 #define DHT2_DATA_PIN D5 DS1820 ds1820_1(D3); // substitute D8 with the actual pin name connected to the DS1820 sensor DS1820 ds1820_2(D6); float temp1 = 0; float temp2 = 0; int result = 0; DHT sensor1(DHT1_DATA_PIN, DHT22); //DHT(PinName pin, eType DHTtype) DHT sensor2(DHT2_DATA_PIN, DHT22); //DHT(PinName pin, eType DHTtype) HX711 loadcell(D12, D11); Serial pc(USBTX, USBRX); // tx, rx Serial device(D1, D0); // tx, rx int main() { int error1 = 0; int error2 = 0; float h_int = 0.0f, c_int = 0.0f,c_moyenne_int = 0.0f,h_ext = 0.0f,c_ext =0.0f; float valeur = 0.3f,balance=0.2f; pc.baud(9600); device.baud(9600); if (!ds1820_1.begin()){ pc.printf("No DS1820 sensor found!\r\n"); } else{ pc.printf("DS1820 sensor found!\r\n"); } float valeurTare = loadcell.getValue(); while(1) { float valeur = loadcell.getValue(); float balance = ((double)valeur - (double)valeurTare)/21500; pc.printf("Weight = %.2f\r\n", balance); ds1820_1.startConversion(); // start temperature conversion from analog to digital ds1820_2.startConversion(); // start temperature conversion from analog to digital ThisThread::sleep_for(1000);// let DS1820 complete the temperature conversion result = ds1820_1.read(temp1); // read temperature from DS1820 and perform cyclic redundancy check (CRC) result = ds1820_2.read(temp1); error1 = sensor1.readData(); //read error value error2 = sensor2.readData(); //read error value c_int = sensor1.ReadTemperature(CELCIUS); h_int = sensor1.ReadHumidity(); c_ext = sensor2.ReadTemperature(CELCIUS); h_ext = sensor2.ReadHumidity(); c_moyenne_int =(c_int + temp1 + temp2)/3; pc.printf("temperature_int = %4.2f\r\n", c_moyenne_int); // on affiche les valeurs sur teraTerm pour debug pc.printf("Humidite_int = %4.2f\r\n", h_int); pc.printf("temperature_ext = %4.2f\r\n", c_ext); // on affiche les valeurs sur teraTerm pour debug pc.printf("Humidite_ext = %4.2f\r\n", h_ext); device.printf("AT$SF=%02X%02X%02X%02X%02X\r\n", (char) c_moyenne_int,(char) h_int, (char) c_ext, (char) h_ext,(char) balance); // on envoie les données sur l'antenne wait(20.0f); } }