Make more variables configurable

This commit is contained in:
bzi 2019-02-18 20:43:41 +01:00
parent 9356c436bc
commit 69d76139f2

View File

@ -14,12 +14,18 @@
#include "DHT.h" #include "DHT.h"
#include "mqtt_credentials.h" #include "mqtt_credentials.h"
#define ID_BASE "sensor/window/" #define TOPIC_BASE "sensor/window/"
#define ID_TEMP ID_BASE "/temperature" #define TOPIC_TEMP TOPIC_BASE "/temperature"
#define ID_HUMID ID_BASE "/temperature" #define TOPIC_HMID TOPIC_BASE "/temperature"
#define ID_HEAT ID_BASE "/temperature" #define TOPIC_HEAT TOPIC_BASE "/temperature"
#define DIFF_TEMP 0.3 // sensor has only 0.5°C accuracy, triggering on less is ludicrous
#define DIFF_HMID 2.5 // humidity doesn't change that much anyways
#define DIFF_HEAT 0.2 // this one's actually quite active
#define OPERATION_BLINK_EN true // blink continuously if in correct operation #define OPERATION_BLINK_EN true // blink continuously if in correct operation
#define OPERATION_PERIOD 5000 // sensor reading period in milliseconds
#define FORCE_PERIOD 12 // sensor reading publication force period in number of readings without publication
#define DHTPIN 4 // Digital pin connected to the DHT sensor #define DHTPIN 4 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
@ -116,10 +122,10 @@ void loop() {
digitalWrite(LED_BUILTIN, HIGH); digitalWrite(LED_BUILTIN, HIGH);
long now = millis(); long now = millis();
if (now - lastMsg > 2500) { if (now - lastMsg > OPERATION_PERIOD / 2) {
if (OPERATION_BLINK_EN) {digitalWrite(LED_BUILTIN, LOW);} if (OPERATION_BLINK_EN) {digitalWrite(LED_BUILTIN, LOW);}
} }
if (now - lastMsg > 5000) { if (now - lastMsg > OPERATION_PERIOD) {
lastMsg = now; lastMsg = now;
if (OPERATION_BLINK_EN) {digitalWrite(LED_BUILTIN, HIGH);} if (OPERATION_BLINK_EN) {digitalWrite(LED_BUILTIN, HIGH);}
@ -142,15 +148,15 @@ void loop() {
Serial.println(F("°C ")); Serial.println(F("°C "));
published = false; published = false;
if (lastSent > 12) { if (lastSent > FORCE_PERIOD) {
Serial.println(F("Forcing a publish of all values")); Serial.println(F("Forcing a publish of all values"));
forcePublish = true; forcePublish = true;
lastSent = 0; lastSent = 0;
} }
published += publish("temperature", ID_TEMP, t, t_r, 0.3, forcePublish); published += publish("temperature", TOPIC_TEMP, t, t_r, DIFF_TEMP, forcePublish);
published += publish("humidity", ID_HUMID, h, h_r, 2.5, forcePublish); published += publish("humidity", TOPIC_HMID, h, h_r, DIFF_HMID, forcePublish);
published += publish("heat index", ID_HEAT, hi, hi_r, 0.2, forcePublish); published += publish("heat index", TOPIC_HEAT, hi, hi_r, DIFF_HEAT, forcePublish);
if (published == false) { if (published == false) {
lastSent = lastSent + 1; lastSent = lastSent + 1;