Vladimir N. Shilov 1 жил өмнө
parent
commit
0bb46b29be
1 өөрчлөгдсөн 19 нэмэгдсэн , 12 устгасан
  1. 19 12
      app/application.cpp

+ 19 - 12
app/application.cpp

@@ -14,8 +14,9 @@
 /** DHT22 */
 #define DHT22_PIN 2
 DHTesp dht;
+TempAndHumidity th;
 Timer readTemperatureProcTimer;
-void onTimer_readTemperatures();
+void onTimer_readDHT22();
 
 Timer procTimer, procRTimer;
 Timer displayTimer, tmpTimer;
@@ -23,11 +24,11 @@ Timer showHighTimer, showLowTimer;
 Timer brightTimer;
 // Sensors values
 ahtxx_t sensorData;
-float SensorT, SensorH, SensorHI, SensorCR;
 String StrCF;
 // Time values
 time_t Time, NTPLastUpdate;
 DateTime dt;
+float SensorT, SensorH, SensorHI, SensorCR;
 
 void GetData(void);
 void connectOk(const String& SSID, MacAddress bssid, uint8_t channel);
@@ -85,7 +86,7 @@ void init(void) {
 
 	/* 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) {
@@ -144,22 +145,26 @@ void showTime(void) {
 /*
  * Show temperature, small indicators
  */
-void showTemperature(void) {
+void showTemperature(void)
+{
+	SensorT = th.temperature;
 	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_Out3(Sym_o);
 	TM1650_Out4(Sym_C);
 }
 
+
 /*
  * Show humidity, small indicators
  */
 void showHumidity(void) {
+	SensorH = th.humidity;
 	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_Out3(Sym_Off);
 	TM1650_Out4(Sym_H);
@@ -203,8 +208,8 @@ void GetData(void) {
 		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) {
 		st = !st;
@@ -263,7 +268,7 @@ void onNtpReceive(NtpClient& client, time_t timestamp)
 	Serial.println("*** Time synchronized OK! ***"); // DEBUG
 }
 
-void onTimer_readTemperatures()
+void onTimer_readDHT22()
 {
 	//* try different reading methods (Adafruit compatible) vs improved */
 	static bool toggle = false;
@@ -275,6 +280,8 @@ void onTimer_readTemperatures()
 		Serial.println(_F("Read using Adafruit API methods"));
 		humidity = dht.getHumidity();
 		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!
 		if(dht.getStatus() == DHTesp::ERROR_NONE) {
@@ -286,7 +293,7 @@ void onTimer_readTemperatures()
 		//* improved reading method
 		Serial.println(_F("\r\n"
 						  "Read using new API methods"));
-		TempAndHumidity th = dht.getTempAndHumidity();
+		th = dht.getTempAndHumidity();
 		humidity = th.humidity;
 		temperature = th.temperature;