Temperatur is visualized via an LED, too
This commit is contained in:
parent
903d34b871
commit
4d161fe711
12
src/main.cpp
12
src/main.cpp
@ -48,6 +48,8 @@
|
|||||||
#define MQTT_LOG_INFO 20
|
#define MQTT_LOG_INFO 20
|
||||||
#define MQTT_LOG_DEBUG 90
|
#define MQTT_LOG_DEBUG 90
|
||||||
|
|
||||||
|
#define TEMPBORDER 20
|
||||||
|
|
||||||
#define getTopic(test, topic) \
|
#define getTopic(test, topic) \
|
||||||
char *topic = new char[strlen(Homie.getConfiguration().mqtt.baseTopic) + strlen(Homie.getConfiguration().deviceId) + 1 + strlen(test) + 1]; \
|
char *topic = new char[strlen(Homie.getConfiguration().mqtt.baseTopic) + strlen(Homie.getConfiguration().deviceId) + 1 + strlen(test) + 1]; \
|
||||||
strcpy(topic, Homie.getConfiguration().mqtt.baseTopic); \
|
strcpy(topic, Homie.getConfiguration().mqtt.baseTopic); \
|
||||||
@ -83,6 +85,7 @@ HomieNode pressureNode(NODE_PRESSURE, "Pressure", "Room Pressure");
|
|||||||
HomieNode altitudeNode(NODE_ALTITUDE, "Altitude", "Room altitude");
|
HomieNode altitudeNode(NODE_ALTITUDE, "Altitude", "Room altitude");
|
||||||
|
|
||||||
HomieSetting<bool> i2cEnable("i2c", "BMP280 sensor present");
|
HomieSetting<bool> i2cEnable("i2c", "BMP280 sensor present");
|
||||||
|
HomieSetting<bool> rgbTemp("rgbTemp", "Show temperatur via red (>20 °C) and blue (< 20°C)");
|
||||||
|
|
||||||
static SoftwareSerial pmSerial(SENSOR_PM1006_RX, SENSOR_PM1006_TX);
|
static SoftwareSerial pmSerial(SENSOR_PM1006_RX, SENSOR_PM1006_TX);
|
||||||
Adafruit_BMP280 bmp; // connected via I2C
|
Adafruit_BMP280 bmp; // connected via I2C
|
||||||
@ -176,6 +179,14 @@ void bmpPublishValues() {
|
|||||||
temperatureNode.setProperty(NODE_TEMPERATUR).send(String(bmp.readTemperature()));
|
temperatureNode.setProperty(NODE_TEMPERATUR).send(String(bmp.readTemperature()));
|
||||||
pressureNode.setProperty(NODE_PRESSURE).send(String(bmp.readPressure() / 100.0F));
|
pressureNode.setProperty(NODE_PRESSURE).send(String(bmp.readPressure() / 100.0F));
|
||||||
altitudeNode.setProperty(NODE_ALTITUDE).send(String(bmp.readAltitude(SEALEVELPRESSURE_HPA)));
|
altitudeNode.setProperty(NODE_ALTITUDE).send(String(bmp.readAltitude(SEALEVELPRESSURE_HPA)));
|
||||||
|
if (rgbTemp.get()) {
|
||||||
|
if (bmp.readTemperature() < TEMPBORDER) {
|
||||||
|
strip.setPixelColor(0, strip.Color(0,0,255));
|
||||||
|
} else {
|
||||||
|
strip.setPixelColor(0, strip.Color(255,0,0));
|
||||||
|
}
|
||||||
|
strip.show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -235,6 +246,7 @@ void setup()
|
|||||||
Homie.setLoopFunction(loopHandler);
|
Homie.setLoopFunction(loopHandler);
|
||||||
Homie.onEvent(onHomieEvent);
|
Homie.onEvent(onHomieEvent);
|
||||||
i2cEnable.setDefaultValue(false);
|
i2cEnable.setDefaultValue(false);
|
||||||
|
rgbTemp.setDefaultValue(false);
|
||||||
memset(serialRxBuf, 0, 80);
|
memset(serialRxBuf, 0, 80);
|
||||||
|
|
||||||
pmSerial.begin(PM1006_BIT_RATE);
|
pmSerial.begin(PM1006_BIT_RATE);
|
||||||
|
Loading…
Reference in New Issue
Block a user