Verschiedenes > ESP8266

ESP8266-12 wacht nicht auf

(1/1)

Grimm80:
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:


--- Code: ---
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ÿ


--- Ende Code ---

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ß

locutus:
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/

Grimm80:
Danke für den Tip, aber leider hat der auch nichts gebracht.
Es ist noch immer das gleiche verhalten.

Grimm80:
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:


--- Code: ---
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)


--- Ende Code ---


dht11.lua:


--- Code: ---
-- 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 )


--- Ende Code ---

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln