Forum: Mikrocontroller und Digitale Elektronik 8266+dht11mit 12000mAh 3,7V Batterie


von Marc H. (antiti2012)


Lesenswert?

Guten Tag,
ich weiss nicht ob das eine dumme Frage ist aber ich versuche es einfach 
mal.

Ich habe mir folgendes gekauft:

https://www.ebay.de/itm/ESP8266-DHT11-Temperature-Humidity-WiFi-Module-Wireless-Module-ESP-01-01S-Shiled/162835085549?hash=item25e9ba38ed:g:lk4AAOSwI59aTebZ

und dazu den folgenden Code draufgemacht:
1
#include <ESP8266WiFi.h>
2
#include <DHT11.h>
3
4
const char* ssid     = "ssid"; // Your ssid
5
const char* password = "password"; // Your Password
6
7
int pin = 2;
8
9
WiFiServer server(80);
10
DHT11 dht11(pin);
11
12
double Fahrenheit(double celsius) {
13
return ((double)(9 / 5) * celsius) + 32;
14
}
15
16
double Kelvin(double celsius) {
17
return celsius + 273.15;
18
}
19
20
void setup() {
21
Serial.begin(115200);
22
delay(10);
23
Serial.println();
24
25
// Connect to WiFi network
26
WiFi.mode(WIFI_STA);
27
Serial.println();
28
Serial.println();
29
Serial.print("Connecting to ");
30
Serial.println(ssid);
31
32
WiFi.begin(ssid, password);
33
34
while (WiFi.status() != WL_CONNECTED) {
35
delay(500);
36
Serial.print(".");
37
}
38
Serial.println("");
39
Serial.println("WiFi connected");
40
41
// Start the server
42
server.begin();
43
Serial.println("Server started");
44
45
// Print the IP address
46
Serial.println(WiFi.localIP());
47
}
48
49
void loop() {
50
int err;
51
float temp, humi;
52
if ((err = dht11.read(humi, temp)) == 0)
53
{
54
Serial.print("temperature:");
55
Serial.print(temp);
56
Serial.print(" humidity:");
57
Serial.print(humi);
58
Serial.println();
59
}
60
else
61
{
62
Serial.println();
63
Serial.print("Error No :");
64
Serial.print(err);
65
Serial.println();
66
}
67
WiFiClient client = server.available();
68
client.println("HTTP/1.1 200 OK");
69
client.println("Content-Type: text/html");
70
client.println("Connection: close");  // the connection will be closed after completion of the response
71
client.println("Refresh: 5");  // refresh the page automatically every 5 sec
72
client.println();
73
client.println("<!DOCTYPE html>");
74
client.println("<html xmlns='http://www.w3.org/1999/xhtml'>");
75
client.println("<head>\n<meta charset='UTF-8'>");
76
client.println("<title>ESP8266 Temperature & Humidity DHT11 Sensor</title>");
77
client.println("</head>\n<body>");
78
client.println("<H2>ESP8266 & DHT11 Sensor</H2>");
79
client.println("<H3>Humidity / Temperature</H3>");
80
client.println("<pre>");
81
client.print("Humidity (%)         : ");
82
client.println((float)humi, 2);
83
client.print("Temperature (°C)  : ");
84
client.println((float)temp, 2);
85
client.print("Temperature (°F)  : ");
86
client.println(Fahrenheit(temp), 2);
87
client.print("Temperature (°K)  : ");
88
client.println(Kelvin(temp), 2);
89
client.println("</pre>");
90
client.println("<H3>www.elec-cafe.com</H3>");
91
client.print("</body>\n</html>");
92
delay(DHT11_RETRY_DELAY); //delay for reread
93
}

das funktioniert auch super aber wenn ich eine 1200mAh 3,7V Batterie 
dranhänge läuft das höchstens einen Tag. Kann man die Laufzeit irgendwie 
verlängern z.B. dadurch das nur alle halbe Stunde einmal gemessen wird 
o.ä.?

Danke im voraus für Antworten

von Stefan F. (Gast)


Lesenswert?

Nicht mit dieser Hardware.

Du brauchst ein ESP-Modul, wo der Anschluss GPIO16 herausgeführt ist.

Weiterhin lohnt sich der Einsatz eines sparsameren Spannungsreglers, 
sowie einer Möglichkeit, den Sensor in den Pausen stromlos zu schalten.

Lies dazu die Tipps auf meine Homepage: 
http://stefanfrings.de/esp8266/index.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.