Benutzer-Werkzeuge

Webseiten-Werkzeuge


elektronik:nodemcu_esp8266_erste_schritte

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
elektronik:nodemcu_esp8266_erste_schritte [2019/01/25 00:25] – [Doku und Material zum Thema] gpipperrelektronik:nodemcu_esp8266_erste_schritte [2019/01/25 00:38] – [Genereller Ablauf] gpipperr
Zeile 459: Zeile 459:
 -- Konfig Tabelle für den Zugriff -- Konfig Tabelle für den Zugriff
 station_cfg={} station_cfg={}
-station_cfg.ssid="GPI_HOME+--station_cfg.ssid="Akademie Gast Secure
-station_cfg.pwd="xxxxTopSecretxxxx"+--station_cfg.pwd="sparkasse" 
 + 
 +station_cfg.ssid="my_wlan" 
 +station_cfg.pwd="xxxx" 
  
 -- Konfig nicht im Flash speichern -- Konfig nicht im Flash speichern
Zeile 474: Zeile 478:
 --  -- 
 -- Single shot sync time with a server on the local network. -- Single shot sync time with a server on the local network.
-sntp.sync("224.0.1.1", +
-  function(sec, usec, server, info) +
-    print('sync', sec, usec, server) +
-  end, +
-  function() +
-   print('failed!'+
-  end +
-)+
 -- im ersten Schritt einfach setzen .-) -- im ersten Schritt einfach setzen .-)
-rtctime.set(1547585804, 0)+--rtctime.set(1548237072, 0)
  
  
 -- je 1000 ms warten und prüfen  -- je 1000 ms warten und prüfen 
-tmr.alarm(1, 500, 1, function()+tmr.alarm(1, 1000, 1, function()
  -- prüfe ob die Verbindung schon geklappt hat  -- prüfe ob die Verbindung schon geklappt hat
   if wifi.sta.getip() == nil then   if wifi.sta.getip() == nil then
     print("Try to establish connection")     print("Try to establish connection")
  else  else
 + 
 +    ip, nm,gateway = wifi.sta.getip()
        
    -- Konfiguration ausgeben    -- Konfiguration ausgeben
    print("ESP8266 mode  :: " .. wifi.getmode()  )    print("ESP8266 mode  :: " .. wifi.getmode()  )
    print("MAC address   :: " .. wifi.ap.getmac())    print("MAC address   :: " .. wifi.ap.getmac())
-   print("IP            :: " .. wifi.sta.getip())+   print("IP            :: " .. ip) 
 +   print("Netmask       :: " .. nm) 
 +   print("Gateway       :: " .. gateway  
  
 +   -- configure Sensor
 +    dofile ("am2320.lua")
    -- Timer stop    -- Timer stop
    tmr.unregister(1)    tmr.unregister(1)
Zeile 503: Zeile 506:
    end    end
 end) end)
 +-------------
  
-tmr.alarm(25000, 1, function()+-- je 1000 ms warten und prüfen  
 +-- Uhrzeit setzen beim start 
 +-- Time dann auf 1h setzen, dann wieder Uhrzeit neu setzen 
 + 
 + 
 +ntptimer =tmr.create(
 +ntptimer:register(1000tmr.ALARM_AUTO, function()
  -- prüfe ob die Verbindung schon geklappt hat  -- prüfe ob die Verbindung schon geklappt hat
   if wifi.sta.getip() == nil then   if wifi.sta.getip() == nil then
-    print("Try to establish connection")+    print("Wait for IP Connection to set time")
  else  else
-    -- rufe die eigentliche Logik auf   +    print("---set time-  Timer 2 --  " ) 
-   dofile ("dht.lua")+    -- in my configuration the gateway has ntp feature on 
 +    ip, nm,gateway = wifi.sta.getip() 
 +    sntp.sync(gateway, 
 +      function(sec, usec, server, info) 
 +        print('sync', sec, usec, server) 
 +        rtctime.set(sec, 0) 
 +      end, 
 +      function() 
 +       print('Time Sync was not sucessfull'
 +      end 
 +    ) 
 +        
 +    -- get the time 
 +    sec, usec, rate = rtctime.get() 
 +    print("Internal Timer :: " .. tmr.time() ) 
 +    print("seconds        :: " .. sec ) 
 +      
 +    -- set the time time to one hour 
 +    ntptimer:interval(60000*60) 
 +     
 +    
 +   end 
 +end) 
 + 
 +ntptimer:start() 
 + 
 + 
 +--------------------------------- 
 +--- Eigentliche Ausleselogik aufrufen 
 + 
 +tmr.alarm(3, 60000*5, 1, function() 
 + -- prüfe ob die Verbindung schon geklappt hat 
 +  if wifi.sta.getip() == nil then 
 +    print("Try to establish connection to start logic"
 + else 
 +    print("---Call Logic Timer 3 --  " ) 
 +    -- get the time 
 +    sec, usec, rate = rtctime.get() 
 +    print("Internal Timer :: " .. tmr.time() ) 
 +    print("seconds        :: " .. sec ) 
 +     
 +    -- rufe die eigentliche Logik auf  
 +     
 +    humi, temp = am2320.read() 
 +    humi=humi/10; 
 +    temp=temp / 10; 
 +    print(string.format("RH: %s%%", humi   ) ) 
 +    print(string.format("Temperature: %s degrees C", temp ) )  
 +     
 +    -- oder alternativ für den DHT22  
 +    --  dofile ("DH22.lua") 
 +    -- 
 + 
 +   
    dofile ("sendData.lua")    dofile ("sendData.lua")
-    --print(temp)+   
    end    end
 +end)
 +
 +--------------------
 end) end)
 </code> </code>
Zeile 559: Zeile 625:
  
 **am2320**: **am2320**:
 +
 +Init:
 <code lua> <code lua>
  
 sda, scl = 2, 1 sda, scl = 2, 1
 i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once
-am2320.setup()+model, version, serial = am2320.setup() 
 + 
 +print("AM2320 Modell  :: " .. model   ) 
 +print("Version        :: " .. version ) 
 +print("Serial Number  :: " .. serial 
 + 
 +</code> 
 + 
 +Auslesen: 
 + 
 +<code lua>
  
 tmr.alarm(4, 5000, 1, function() tmr.alarm(4, 5000, 1, function()
Zeile 578: Zeile 656:
  
 </code> </code>
 +
 === Daten direkt in die InfluxDB Schreiben === === Daten direkt in die InfluxDB Schreiben ===
  
elektronik/nodemcu_esp8266_erste_schritte.txt · Zuletzt geändert: 2021/12/12 15:34 von gpipperr