ESP8266 - maximale deep-sleep Zeit?

Gast #4490886
Lesenswert?

Hallo Wifi-Fanatiker,

ich messe mit einem ESP8266-07 Modul und DS18B20 die Temperatur 
(Prog-Sprache LUA).

Per node.sleep() leg ich das Modul für z.B. 15min(90000000ms) in den 
Tiefschlaf. Auch 30min(180000000ms) funktionieren wunderbar.

Nun möchte ich, dass das Modul nur einmal pro Stunde aufwacht,
ABER: Wenn ich 1h(3600000000ms) eingebe, wacht das Modul bereits
nach 35min auf.

Meine Frage nun: Gibt es eine maximale Zeit für den deep.sleep des 
ESP8266.
Leider konnte ich dazu noch nirgend etwas finden...

Gruß
Michael
Gast #4490937
Lesenswert?

F. F. schrieb:
> Hätte man dann auch eben posten können.
>
> The maximum sleep time is 4294967295us, ~71 minutes. This is an SDK
> limitation. Firmware from before 05 Jan 2016 have a maximum sleeptime of
> ~35 minutes.

Das hättest du auch eben ins Deutsche übersetzen können....
Gast #4534477
Lesenswert?

Tja,
nun teste ich schon eine Weile. Mein Script resettet sich immer sofort, 
wenn ich die Firmware aus dem Build von: http://nodemcu-build.com/ 
nehme.
Muss etwas im LUA-script bei der 1.4.0 ggü. der 0.9.6 geändert werden?
1
--init.lua
2

3
print("Setting up WIFI...")
4
wifi.setmode(wifi.STATION)
5
--modify according your wireless router settings
6
--wifi.sta.config("myssid","mypassword")
7

8
wifi.sta.config("xy-ssid","xy-ssid passwd")
9
wifi.sta.setip({ip="192.168.1.103",netmask="255.255.255.0",gateway="192.168.1.254"})
10
wifi.sta.connect()
11
tmr.alarm(1, 1000, 1, function() 
12
if wifi.sta.getip()== nil then 
13
print("IP unavaiable, Waiting...") 
14
else 
15
tmr.stop(1)
16
print("Config done, IP is "..wifi.sta.getip())
17
dofile("ds18b20-web.lua")
18
end 
19
end)

Dieser code funktioniert mit 0.9.6 tadellos...bei der 1.4.0 bekommt er 
die IP und resettet sich danach sofort.
Gruß
Michael
#4534488
Lesenswert?

Hallo,

habe mit NodeLUA noch nichts gemacht, trotzdem eine Frage:
wifi.sta.setip({ip="192.168.1.103",netmask="255.255.255.0",gateway="192. 
168.1.254"})
legt doch wohl IP, Mask und Gateway der Station.

Dann connectest Du und wartest wohl darauf, daß Du (per DHCP) eine IP 
bekommst?

if wifi.sta.getip()== nil then
print("IP unavaiable, Waiting...")
else
tmr.stop(1)
print("Config done, IP is "..wifi.sta.getip())

Gruß aus Berlin
Michael
Gast #4535106
Lesenswert?

Harry L. schrieb:
> Das ist in Kombination mit einer festen IP völliger Quatsech!

OK, da könntest du recht haben. Wahrscheinlich weil er so oder so eine 
Adresse bekommt. Unter 0.9.6 funktioniert es halt ohne Beanstandung.

@Andreas: die float Version. Ich hatte es mal unter 0.9.6 mit der 
integer versucht. Das klappte aber nicht.

Hier noch das von der init.lua aufgerufene Script. Das eingebettete 
ds18b20 ist das mitgelieferte script aus github und wurde nicht 
verändert.
1
require('ds18b20')
2

3
ipnum=wifi.sta.getip()
4

5
-- ESP-01 GPIO Mapping
6
gpio0, gpio2 = 3, 4
7

8
ds18b20.setup(gpio0)
9

10
--- INTERVAL ---
11
-- In milliseconds. werden unten mit 1000 multipliziert
12
--30min   
13
time_between_sensor_readings = 1800000 
14
--1h = 3600000
15

16
function sendData()
17

18
t1=ds18b20.read() 
19

20

21
print("Temperatur:"..t1.."°C\n")
22

23
-- connection to xy_domain.de
24
print("Sending data to xy_domain.de")
25

26
conn=net.createConnection(net.TCP, 0)
27
conn:on("receive", function(conn, payload) print(payload) end)
28
conn:connect(80, '10x.xxx.xxx.10')
29
conn:send("GET http://xy_domain.de/testlabor/showtemp/collectdata.php?pl="..ipnum.."&t1="..t1.."&t2="..t2.."HTTP/1.1\r\n")
30
conn:send("Host: xy_domain.de\r\n")
31
conn:send("Accept: */*\r\n") 
32
conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
33
conn:send("\r\n")
34
conn:on("sent", function(conn) print("Closing connection") conn:close() end)
35
conn:on("disconnection", function(conn) print("Got disconnection...") end)
36
print("Going to deep sleep for "..(time_between_sensor_readings/1000).." seconds")
37
node.dsleep(time_between_sensor_readings*1000)
38
end

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren