#include "dht_sens.h"
struct TransmissionData {
bool errors;
DhtSensorRead dht_data;
};
void setup(){
Serial.begin(9600);
init_dht_sensor(2);
}
void loop(){
bool errors = false;
DhtSensorRead dht_data= read_dht_sensor();
if(dht_data.error != 0) {
errors = true;
}
send_data({
errors,
dht_data
});
delay(250); // max 4 ticks per second, should have a separate timer for camera capture and sensor capture
}
void send_data(TransmissionData transmissionData) {
if(transmissionData.errors) {
int dht_error = transmissionData.dht_data.error;
Serial.println("Error detected in satellite module!");
Serial.print("DHT> ");
Serial.print(dht_error == 0 ? "OK" : " ");
switch(dht_error) {
case 0:
break;
case 1:
Serial.println("Unknown Error!");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Checksum error.");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println("Sensor timeout detected.");
break;
case DHTLIB_ERROR_CONNECT:
Serial.println("Failed to establish connection to the sensor.");
break;
case DHTLIB_ERROR_ACK_L:
Serial.println("Sensor ACK is low.");
break;
case DHTLIB_ERROR_ACK_H:
Serial.println("Sensor ACK is high.");
break;
}
Serial.println("----------------------------------");
}
Serial.print("Temperature: ");
Serial.print(transmissionData.dht_data.temperature);
Serial.print("°C Humidity: ");
Serial.print(transmissionData.dht_data.humidity);
Serial.print("%");
Serial.println();
}