Inhaltsverzeichnis

Mit dem NodeMCU Board ESP8266 Impulse zählen - Durchfluß messen

Einführung siehe ⇒ Erste Schritte mit dem ESP8266 / NodeMCU Board mit Lua


Technik

Der Sensor verwendet den Hall Effekt um die Drehzahl eines Rades zu bestimmen.

Flowmeter anschließen


Impulse auswerten

Der Meter wird an GPIO Port 1 angeschlossen, der Impuls wird ausgewertet und eine zuvor auf den Pin registrierte Funktion wird aufgerufen.

D0 wird nicht unterstützt für Interrupts!

Impulse pro Minute und Sekunde zählen:

-- 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()
 
------------------------

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.


Quellen

Real time OS Lua-RTOS for ESP32

Durchfluss Messen

Lieferanten:

Spezifikation ⇒ https://docs.google.com/file/d/0B9hyK_DA6VIiSWNRZ29sdG1UOVU/edit?pli=1