#include <SPI.h>
#include <ESP8266WiFi.h>
#include <ThingerWifi.h>
#include <Adafruit_Si7021.h>
// thinger.io config
#define USER_ID "kvwillis311"
#define DEVICE_ID "HouseHumidityTemp"
#define DEVICE_CREDENTIAL "HumTemp"
// wifi config
#define WIFI_SSID "TheInternet"
#define WIFI_WPA2_PASSWORD "HereistheKey0618"
//thinger.io Endpoint Config
//defines Wifi conection function
ThingerWifi thing(USER_ID, DEVICE_ID, DEVICE_CREDENTIAL);
//sets up defualt connection to Sensor
Adafruit_Si7021 sensor = Adafruit_Si7021();
//Defines containing readings for sensor
float Temperature;
float Humidity;
bool LowHum = false;
bool HighHum = false;
unsigned long lastCheck = 0;
float previousTemp = 0;
float previousHum = 0;
void setup() {
//initializes wifi connection
thing.add_wifi(WIFI_SSID, WIFI_WPA2_PASSWORD);
//initializes sensor
sensor.begin();
thing["temperature"] >> [](pson& out){
out = sensor.readTemperature();
};
thing["humidity"] >> [](pson& out){
out = sensor.readHumidity();
};
}
void loop() {
thing.handle();
Humidity = sensor.readHumidity();
float currentTemp = sensor.readTemperature();
float currentHum = Humidity;
if(currentTemp-previousTemp!=0){
thing.stream(thing["temperature"]);
previousTemp = currentTemp;
}
if(currentHum-previousHum!=0){
thing.stream(thing["humidity"]);
previousHum = currentHum;
}
unsigned long currentTs = millis();
if(currentTs-lastCheck>= 60*1000){
lastCheck = currentTs;
if(Humidity < 30 && !LowHum){
LowHum = true;
thing.call_endpoint("LowHumidity");
}else if(Humidity < 50 && Humidity > 30){
if(LowHum){
LowHum = false;
thing.call_endpoint("LowHumidityOff");
}else if(HighHum){
HighHum = false;
thing.call_endpoint("HighHumOff");
}
}else if(Humidity > 50 && !HighHum){
HighHum = true;
thing.call_endpoint("HighHumOn");
}
}
}
Comments