Hi Leute,
ich bastell jetzt schon seit Tagen an dem ESP-12 das er wieder aufwacht, aber ich schaffe es einfach nicht.
Habe die beiden PINS: GPIO16 und RST miteinander verbunden und die Standard PINS natürlich auch damit er arbeitet.
Hier mal der Auszug aus dem LuaLoader:
NodeMCU custom build by frightanic.com
branch: dev096
commit: e4f79508e1d086a46f90bdf3b9b450e13c3aa015
SSL: true
modules: node,file,gpio,wifi,net,pwm,tmr,uart,ow,mqtt,ws2812,cjson,dht,ws2801
built on: 2015-09-26 16:23
powered by Lua 5.1.4
*** You've got 5 sec to stop timer 0 ***
> Executing gettemp.lua
Temp:21 C
8Y—8ÿ
Die letzte Zeile kommt immer dann, wenn er wieder aufwachen will. Nur leider macht er das nicht.
Wenn ich dann den RST-PIN manuell auf GND lege, kommt er wieder hoch.
Hat da jemand eine Lösung?
Gruß
Vermutlich schlummert der ESP im "Zombie Mode" vor sich hin.
Gegenmaßnahmen:
4,7k Widerstand zwischen GPIO0 und VCC
4,7k Widerstand zwischen GPIO2 und VCC
Siehe auch: http://blog.hekkers.net/2015/02/26/esp8266-in-deep-sleep/
Danke für den Tip, aber leider hat der auch nichts gebracht.
Es ist noch immer das gleiche verhalten.
So habe bis Dato folgendes getestet:
GPIO16 und RST verbunden = wacht nicht auf
GPIO16 und RST verbunden und Pullup (4,7k) gegen GND = wacht nicht auf
GPIO0 und GPIO2 mit Pullup (4,7k) gegen VCC und wie oben beschrieben (beide Varianten) = wacht nicht auf.
Ehrlich gesagt gehn mit jetzt die Ideen aus. Ich hoffe es hat noch wer eine Idee dafür.
Hier mal die beiden lua-Dateien:
init.lua:
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","Passwort")
wifi.sta.connect()
tmr.alarm(0,5000, 1, function()
if wifi.sta.getip()==nil then
print("connecting ap")
else
wifi.sta.setip({ip="192.168.190.180",netmask="255.255.255.0",gateway="192.168.190.254"})
print("ESP8266 mode is: " .. wifi.getmode())
print("The module MAC address is: " .. wifi.ap.getmac())
print("Config done, IP is ".. wifi.sta.getip())
tmr.stop(0)
dofile("dht11.lua")
end
end)
dht11.lua:
-- Measure temperature, humidity and post data to thingspeak.com
-- 2014 OK1CDJ
-- DHT11 code is from esp8266.com
---Sensor DHT11 is conntected to GPIO13
pin = 7
Humidity = 0
HumidityDec=0
Temperature = 0
TemperatureDec=0
Checksum = 0
ChecksumTest=0
function getTemp()
Humidity = 0
HumidityDec=0
Temperature = 0
TemperatureDec=0
Checksum = 0
ChecksumTest=0
--Data stream acquisition timing is critical. There's
--barely enough speed to work with to make this happen.
--Pre-allocate vars used in loop.
bitStream = {}
for j = 1, 40, 1 do
bitStream[j]=0
end
bitlength=0
gpio.mode(pin, gpio.OUTPUT)
gpio.write(pin, gpio.LOW)
tmr.delay(20000)
--Use Markus Gritsch trick to speed up read/write on GPIO
gpio_read=gpio.read
gpio_write=gpio.write
gpio.mode(pin, gpio.INPUT)
--bus will always let up eventually, don't bother with timeout
while (gpio_read(pin)==0 ) do end
c=0
while (gpio_read(pin)==1 and c<100) do c=c+1 end
--bus will always let up eventually, don't bother with timeout
while (gpio_read(pin)==0 ) do end
c=0
while (gpio_read(pin)==1 and c<100) do c=c+1 end
--acquisition loop
for j = 1, 40, 1 do
while (gpio_read(pin)==1 and bitlength<10 ) do
bitlength=bitlength+1
end
bitStream[j]=bitlength
bitlength=0
--bus will always let up eventually, don't bother with timeout
while (gpio_read(pin)==0) do end
end
--DHT data acquired, process.
for i = 1, 8, 1 do
if (bitStream[i+0] > 2) then
Humidity = Humidity+2^(8-i)
end
end
for i = 1, 8, 1 do
if (bitStream[i+8] > 2) then
HumidityDec = HumidityDec+2^(8-i)
end
end
for i = 1, 8, 1 do
if (bitStream[i+16] > 2) then
Temperature = Temperature+2^(8-i)
end
end
for i = 1, 8, 1 do
if (bitStream[i+24] > 2) then
TemperatureDec = TemperatureDec+2^(8-i)
end
end
for i = 1, 8, 1 do
if (bitStream[i+32] > 2) then
Checksum = Checksum+2^(8-i)
end
end
ChecksumTest=(Humidity+HumidityDec+Temperature+TemperatureDec) % 0xFF
print ("Temperature: "..Temperature.."."..TemperatureDec)
print ("Humidity: "..Humidity.."."..HumidityDec)
print ("ChecksumReceived: "..Checksum)
print ("ChecksumTest: "..ChecksumTest)
end
--- Get temp and send data to thingspeak.com
function sendData()
getTemp()
print("Sending data to fehm")
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end )
conn:connect(8083,"192.168.190.200")
conn:send('GET /fhem?cmd=setreading%20dht11temp%20state%20T:%20' ..Temperature.. '%20H:%20' ..Humidity.. '\r\n HTTP/1.1\r\nHost: www.local.lan\r\n".."Connection: keep-alive\r\nAccept: */*\r\n\r\n"')
conn:on("sent",function(conn)
print("Closing connection")
conn:close()
end)
conn:on("disconnection", function(conn)
print("Got disconnection...")
print("15 Sek. schlafen...")
node.dsleep(15 * 1000000, 0)
end)
end
-- send data every X ms to thing speak
tmr.alarm(2, 10000, 1, function() sendData() end )