measurement of vcc, calculation of battery lifetime
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								Batterielaufzeit.xlsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Batterielaufzeit.xlsx
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,4 +1,5 @@ | |||||||
| #define ESP8266 | #define ESP8266 | ||||||
|  | #define MQTT_MAX_PACKET_SIZE 256 | ||||||
|  |  | ||||||
|  |  | ||||||
| #include <ESP8266WiFi.h> | #include <ESP8266WiFi.h> | ||||||
| @@ -8,6 +9,10 @@ | |||||||
| #include <DallasTemperature.h> | #include <DallasTemperature.h> | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ADC_MODE(ADC_VCC); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| // #define DEBUG | // #define DEBUG | ||||||
| #define SLEEP | #define SLEEP | ||||||
|  |  | ||||||
| @@ -49,6 +54,8 @@ void setup() { | |||||||
|   Serial.println("Starting ..."); |   Serial.println("Starting ..."); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  |    | ||||||
|   setup_wifi(); |   setup_wifi(); | ||||||
|   client.setServer(mqttServer, mqttPort); |   client.setServer(mqttServer, mqttPort); | ||||||
|    |    | ||||||
| @@ -143,13 +150,23 @@ void read_thermometer() { | |||||||
|     int16_t t1 = (int)t; |     int16_t t1 = (int)t; | ||||||
|     int16_t t2 = (int)((t - t1)*100); |     int16_t t2 = (int)((t - t1)*100); | ||||||
|  |  | ||||||
|     uint32_t duration = millis() - startTime; |  | ||||||
|  |  | ||||||
|  |     uint16_t vcc = ESP.getVcc(); | ||||||
|  | #ifdef DEBUG     | ||||||
|  |     Serial.print(vcc); | ||||||
|  |     Serial.println();   | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     uint32_t duration = millis() - startTime; | ||||||
|  |  | ||||||
|     //char topic[128]; |     //char topic[128]; | ||||||
|     //snprintf(topic, 127, "IoT/espThermometer2/%s/measurement", WiFi.macAddress().c_str()); |     //snprintf(topic, 127, "IoT/espThermometer2/%s/measurement", WiFi.macAddress().c_str()); | ||||||
|     char payload[128]; |     char payload[128]; | ||||||
|     snprintf(payload, 127, "%d.%d %ld", t1, t2, duration); |     snprintf(payload, 127, "%s %d.%d %ld %ld", clientId, t1, t2, vcc, duration); | ||||||
|  | #ifdef DEBUG | ||||||
|  |     Serial.println(payload); | ||||||
|  | #endif         | ||||||
|     client.publish(topic, payload, true); |     client.publish(topic, payload, true); | ||||||
|      |      | ||||||
|    |    | ||||||
| @@ -165,10 +182,13 @@ void loop() { | |||||||
|  |  | ||||||
|     read_thermometer(); |     read_thermometer(); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef SLEEP | #ifdef SLEEP | ||||||
| #ifdef DEBUG | #ifdef DEBUG | ||||||
|     Serial.println("Sleeping"); |     Serial.println("Sleeping"); | ||||||
| #endif   | #endif   | ||||||
|  |     client.disconnect(); | ||||||
|     ESP.deepSleep(sleepTime * 1000000); |     ESP.deepSleep(sleepTime * 1000000); | ||||||
| #endif     | #endif     | ||||||
|   } |   } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Wolfgang Hottgenroth
					Wolfgang Hottgenroth