diff --git a/src/plugins/esp32/EnvironmentalMeasurementPlugin.cpp b/src/plugins/esp32/EnvironmentalMeasurementPlugin.cpp index 992057364..5ef642c75 100644 --- a/src/plugins/esp32/EnvironmentalMeasurementPlugin.cpp +++ b/src/plugins/esp32/EnvironmentalMeasurementPlugin.cpp @@ -86,6 +86,13 @@ int32_t EnvironmentalMeasurementPlugin::runOnce() DEBUG_MSG("EnvironmentalMeasurement: Opened DS18B20 on pin: %d\n", radioConfig.preferences.environmental_measurement_plugin_sensor_pin); return (DS18B20_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS); + case RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT22: + dht = new DHT(radioConfig.preferences.environmental_measurement_plugin_sensor_pin, DHT22); + this->dht->begin(); + this->dht->read(); + DEBUG_MSG("EnvironmentalMeasurement: Opened DHT22 on pin: %d\n", + radioConfig.preferences.environmental_measurement_plugin_sensor_pin); + return (DHT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS); default: DEBUG_MSG("EnvironmentalMeasurement: Invalid sensor type selected; Disabling plugin"); return (INT32_MAX); @@ -132,6 +139,8 @@ int32_t EnvironmentalMeasurementPlugin::runOnce() return (DHT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS); case RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DS18B20: return (DS18B20_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS); + case RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT22: + return (DHT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS); default: return (DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS); } @@ -264,6 +273,15 @@ bool EnvironmentalMeasurementPlugin::sendOurEnvironmentalMeasurement(NodeNum des DEBUG_MSG("EnvironmentalMeasurement: FAILED TO READ DATA\n"); return false; } + case RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT22: + if (!this->dht->read(true)) { + sensor_read_error_count++; + DEBUG_MSG("EnvironmentalMeasurement: FAILED TO READ DATA\n"); + return false; + } + m.relative_humidity = this->dht->readHumidity(); + m.temperature = this->dht->readTemperature(); + break; default: DEBUG_MSG("EnvironmentalMeasurement: Invalid sensor type selected; Disabling plugin"); return false;