macrocell_office_iot/espsens/sensing.h

34 lines
1.2 KiB
C

/* ESP8266 environmental sensor project
This file provides functions for all the sensor publication used in espsens and envisens.
(C) 2019 Macrocell - Environmental sensing solutions
proudly presented by Macrocell - FPGA Innovators
*/
#define TOPIC_BASE "sensor/" SENSOR_ID "/"
#define TOPIC_TEMP TOPIC_BASE "temperature"
#define TOPIC_HMID TOPIC_BASE "humidity"
#define TOPIC_ABHU TOPIC_BASE "abs_humidity"
#define TOPIC_HEAT TOPIC_BASE "heat_index"
#define DIFF_TEMP 0.3 // sensor has only 0.5°C accuracy, triggering on less is ludicrous
#define DIFF_HMID 1.5 // humidity doesn't change that much anyways
#define DIFF_ABHU 0.4 // small changes mean quite something
#define DIFF_HEAT 0.4 // this one's actually quite active
#define DHTPIN 4 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
struct Sensor {
String desc; // sensor description
char* topic; // sensor topic
float diff; // value difference for an update
float value; // current values
float lastValue; // value at last update
int lastUpdate; // number of samples since last update
};
void setup_wifi();
void reconnect(PubSubClient client);
void publishSensor (PubSubClient &client, Sensor &sensor);