Skip to content
Snippets Groups Projects
Commit d1b90198 authored by Jan Grewe's avatar Jan Grewe
Browse files

add SCD40

add MLX90614
parent 21929857
No related branches found
No related tags found
No related merge requests found
......@@ -8,3 +8,5 @@ packages:
time: !include packages/time.yaml
bme280: !include packages/bme280.yaml
yieryi2178: !include packages/yieryi3178.yaml
scd40: !include packages/scd40.yaml
mlx90614: !include packages/mlx90614.yaml
#include "esphome.h"
#include "Adafruit_MLX90614.h"
class MLX90614 : public PollingComponent {
public:
Adafruit_MLX90614 mlx90614 = Adafruit_MLX90614();
Sensor *ambient_temperature = new Sensor();
Sensor *object_temperature = new Sensor();
MLX90614( uint32_t update_interval ) : PollingComponent(update_interval) {}
void setup() override {
mlx90614.begin();
}
void update() override {
float amb_temperature = 0.0;
amb_temperature = mlx90614.readAmbientTempC(); // reading twice seemed to eliminate intermittent invalid data reads (shows as 1037.5 C)
amb_temperature = mlx90614.readAmbientTempC();
ambient_temperature->publish_state(amb_temperature);
float obj_temperature = 0.0;
obj_temperature = mlx90614.readObjectTempC(); // only had invalid reads for ambient teperature but taking two readings of object temperature as well fwiw
obj_temperature = mlx90614.readObjectTempC();
object_temperature->publish_state(obj_temperature);
}
};
esphome:
includes:
- include/mlx90614.h
libraries:
- Wire
- SPI
- https://github.com/adafruit/Adafruit_BusIO @ 1.13.2
- https://github.com/adafruit/Adafruit-MLX90614-Library @ 2.1.3
sensor:
- platform: custom
lambda: |-
auto mlx90614 = new MLX90614(5000);
App.register_component(mlx90614);
return {mlx90614->ambient_temperature, mlx90614->object_temperature};
sensors:
- id: mlx90614_temperature_ambient
name: "IR: Ambient Temperature"
unit_of_measurement: °C
accuracy_decimals: 2
- id: mlx90614_temperature_object
name: "IR: Object Temperature"
unit_of_measurement: °C
accuracy_decimals: 2
prometheus:
relabel:
mlx90614_temperature_object:
id: temperature_ir
name: "Object Temperature (IR)"
mlx90614_temperature_ambient:
id: temperature_ir_ambient
name: "Ambient Temperature (IR)"
sensor:
- platform: scd4x
update_interval: 5s
ambient_pressure_compensation_source: bme280_pressure
co2:
id: scd40_co2
name: "CO2"
temperature:
id: scd40_temperature
name: "CO2: Temperature"
humidity:
id: scd40_humidity
name: "CO2: Humidity"
prometheus:
relabel:
scd40_temperature:
id: temperature_co2
name: "Temperature (CO2)"
scd40_humidity:
id: humidity_co2
name: "Humidity (CO2)"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment