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:38] – [Genereller Ablauf] gpipperrelektronik:nodemcu_esp8266_erste_schritte [2019/01/25 20:16] – [Erste Schritte mit dem ESP8266 / NodeMCU Board mit Lua] gpipperr
Zeile 1: Zeile 1:
-=====Erste Schritte mit dem ESP8266 / NodeMCU Board mit Lua =====+=====Erste Schritte mit dem ESP8266 / NodeMCU Board mit Lua - Temperatur und Luftfeuchtigkeit messen=====
  
 <fc #008080>**Ziel:**</fc>  <fc #008080>**Ziel:**</fc> 
Zeile 725: Zeile 725:
  
 ---- ----
 +
 +==== Impluse auswerten ====
 +
 +Flowmeter angeschloßen
 +
 +  * Schwarz and GND
 +  * Rot and 3,3V
 +  * Gelb an D1
 +
 +
 +D0 wird nicht unterstützt für Interrupts!
 +
 +
 +Impulse pro Minute und Sekunde zählen:
 +<code lua>
 +-- Welcher GPIO Port
 +trigger_pin=1
 +
 +-- Zähler
 +min_time=0
 +pulszaehler=0
 +pulszaehler_min=0
 +
 +
 +-------------------------------------------
 +-- Was soll aufgerufen werden
 +function intPin1(level, internalCountMs)
 + 
 +    pulszaehler=pulszaehler+1
 +    
 +end
 +
 +-------------------------------------------
 +-- Trigger Mode setzen
 +gpio.mode(trigger_pin,gpio.INT)
 +
 +-------------------------------------------
 +-- Interrupt Handler definieren
 +-- für fallende flanke
 +gpio.trig(trigger_pin, "down", intPin1)
 +
 +-------------------------------------------
 +-- je Sekunde den aktuellen Status ausgeben
 +sectimer =tmr.create()
 +sectimer:register(1000, tmr.ALARM_AUTO, function()
 +
 +  if min_time == 59 then
 +    min_time=0
 +    print(string.format('Stand nach einer Minute :: %05i ', pulszaehler_min ))
 +    pulszaehler_min=0
 +    -- hier wird der gezählte Werte nun an die Datenbank übergeben
 +    -- send data aufrufen 
 +    -- möglichst in einen neuen Thread !!
 +  else
 +    min_time=min_time+1    
 +  end
 +
 +  pulszaehler_min=pulszaehler_min+pulszaehler
 +  print(string.format('Stand in dieser %02i Sekunde :: %05i  :: Sum :: %05i',min_time, pulszaehler,pulszaehler_min) )
 +  pulszaehler=0 
 +  
 +  
 +end)
 + 
 +sectimer:start()
 +
 +------------------------
 +
 +
 +</code>
 +
 +So etwas ist evtl. besser mit /Lua-RTOS umsetzbar => https://github.com/whitecatboard/Lua-RTOS-ESP32 , da ja hier eigentlich mehrer Threads notwendig sind um die Daten zu versenden und gleichzeitig richtig zu zählen.
 +
 +
 +----
 +
  
 ==== Hilfsfunktionen==== ==== Hilfsfunktionen====
elektronik/nodemcu_esp8266_erste_schritte.txt · Zuletzt geändert: 2021/12/12 15:34 von gpipperr