|
@@ -14,8 +14,9 @@
|
|
/** DHT22 */
|
|
/** DHT22 */
|
|
#define DHT22_PIN 2
|
|
#define DHT22_PIN 2
|
|
DHTesp dht;
|
|
DHTesp dht;
|
|
|
|
+TempAndHumidity th;
|
|
Timer readTemperatureProcTimer;
|
|
Timer readTemperatureProcTimer;
|
|
-void onTimer_readTemperatures();
|
|
|
|
|
|
+void onTimer_readDHT22();
|
|
|
|
|
|
Timer procTimer, procRTimer;
|
|
Timer procTimer, procRTimer;
|
|
Timer displayTimer, tmpTimer;
|
|
Timer displayTimer, tmpTimer;
|
|
@@ -23,11 +24,11 @@ Timer showHighTimer, showLowTimer;
|
|
Timer brightTimer;
|
|
Timer brightTimer;
|
|
// Sensors values
|
|
// Sensors values
|
|
ahtxx_t sensorData;
|
|
ahtxx_t sensorData;
|
|
-float SensorT, SensorH, SensorHI, SensorCR;
|
|
|
|
String StrCF;
|
|
String StrCF;
|
|
// Time values
|
|
// Time values
|
|
time_t Time, NTPLastUpdate;
|
|
time_t Time, NTPLastUpdate;
|
|
DateTime dt;
|
|
DateTime dt;
|
|
|
|
+float SensorT, SensorH, SensorHI, SensorCR;
|
|
|
|
|
|
void GetData(void);
|
|
void GetData(void);
|
|
void connectOk(const String& SSID, MacAddress bssid, uint8_t channel);
|
|
void connectOk(const String& SSID, MacAddress bssid, uint8_t channel);
|
|
@@ -85,7 +86,7 @@ void init(void) {
|
|
|
|
|
|
/* DHT22 */
|
|
/* DHT22 */
|
|
dht.setup(DHT22_PIN, DHTesp::DHT22);
|
|
dht.setup(DHT22_PIN, DHTesp::DHT22);
|
|
- readTemperatureProcTimer.initializeMs(5 * 1000, onTimer_readTemperatures).start(); // every so often.
|
|
|
|
|
|
+ readTemperatureProcTimer.initializeMs(5 * 1000, onTimer_readDHT22).start(); // every so often.
|
|
}
|
|
}
|
|
|
|
|
|
void showWatch(void) {
|
|
void showWatch(void) {
|
|
@@ -144,22 +145,26 @@ void showTime(void) {
|
|
/*
|
|
/*
|
|
* Show temperature, small indicators
|
|
* Show temperature, small indicators
|
|
*/
|
|
*/
|
|
-void showTemperature(void) {
|
|
|
|
|
|
+void showTemperature(void)
|
|
|
|
+{
|
|
|
|
+ SensorT = th.temperature;
|
|
uint8_t a, b;
|
|
uint8_t a, b;
|
|
- a = sensorData.Temperature / 100;
|
|
|
|
- b = (sensorData.Temperature % 100) / 10;
|
|
|
|
|
|
+ a = (uint8_t)th.temperature / 10;
|
|
|
|
+ b = (uint8_t)th.temperature % 10;
|
|
TM1650_Out(a, b, 0, 0);
|
|
TM1650_Out(a, b, 0, 0);
|
|
TM1650_Out3(Sym_o);
|
|
TM1650_Out3(Sym_o);
|
|
TM1650_Out4(Sym_C);
|
|
TM1650_Out4(Sym_C);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Show humidity, small indicators
|
|
* Show humidity, small indicators
|
|
*/
|
|
*/
|
|
void showHumidity(void) {
|
|
void showHumidity(void) {
|
|
|
|
+ SensorH = th.humidity;
|
|
uint8_t a, b;
|
|
uint8_t a, b;
|
|
- a = sensorData.Humidity / 100;
|
|
|
|
- b = (sensorData.Humidity % 100) / 10;
|
|
|
|
|
|
+ a = (uint8_t)th.humidity / 10;
|
|
|
|
+ b = (uint8_t)th.humidity % 10;
|
|
TM1650_Out(a, b, 0, 0);
|
|
TM1650_Out(a, b, 0, 0);
|
|
TM1650_Out3(Sym_Off);
|
|
TM1650_Out3(Sym_Off);
|
|
TM1650_Out4(Sym_H);
|
|
TM1650_Out4(Sym_H);
|
|
@@ -203,8 +208,8 @@ void GetData(void) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- SensorT = (float)sensorData.Temperature / 10;
|
|
|
|
- SensorH = (float)sensorData.Humidity / 10;
|
|
|
|
|
|
+ th.temperature = (float)sensorData.Temperature / 10.0;
|
|
|
|
+ th.humidity = (float)sensorData.Humidity / 10.0;
|
|
|
|
|
|
if (st) {
|
|
if (st) {
|
|
st = !st;
|
|
st = !st;
|
|
@@ -263,7 +268,7 @@ void onNtpReceive(NtpClient& client, time_t timestamp)
|
|
Serial.println("*** Time synchronized OK! ***"); // DEBUG
|
|
Serial.println("*** Time synchronized OK! ***"); // DEBUG
|
|
}
|
|
}
|
|
|
|
|
|
-void onTimer_readTemperatures()
|
|
|
|
|
|
+void onTimer_readDHT22()
|
|
{
|
|
{
|
|
//* try different reading methods (Adafruit compatible) vs improved */
|
|
//* try different reading methods (Adafruit compatible) vs improved */
|
|
static bool toggle = false;
|
|
static bool toggle = false;
|
|
@@ -275,6 +280,8 @@ void onTimer_readTemperatures()
|
|
Serial.println(_F("Read using Adafruit API methods"));
|
|
Serial.println(_F("Read using Adafruit API methods"));
|
|
humidity = dht.getHumidity();
|
|
humidity = dht.getHumidity();
|
|
temperature = dht.getTemperature();
|
|
temperature = dht.getTemperature();
|
|
|
|
+ th.humidity = humidity;
|
|
|
|
+ th.temperature = temperature;
|
|
|
|
|
|
// check if returns are valid, if they are NaN (not a number) then something went wrong!
|
|
// check if returns are valid, if they are NaN (not a number) then something went wrong!
|
|
if(dht.getStatus() == DHTesp::ERROR_NONE) {
|
|
if(dht.getStatus() == DHTesp::ERROR_NONE) {
|
|
@@ -286,7 +293,7 @@ void onTimer_readTemperatures()
|
|
//* improved reading method
|
|
//* improved reading method
|
|
Serial.println(_F("\r\n"
|
|
Serial.println(_F("\r\n"
|
|
"Read using new API methods"));
|
|
"Read using new API methods"));
|
|
- TempAndHumidity th = dht.getTempAndHumidity();
|
|
|
|
|
|
+ th = dht.getTempAndHumidity();
|
|
humidity = th.humidity;
|
|
humidity = th.humidity;
|
|
temperature = th.temperature;
|
|
temperature = th.temperature;
|
|
|
|
|