LJ12A3

Generic - Pulse counter NORMAL

../_images/P003_LJ12A3_1.jpg

Introduction

The ESP8266 module can be used as a general purpose digital pulse counter device for various digital sensors. Think about optical sensors with a digital output. To be used for things like gas, water, electricity, door open/close counters, etc.

In this example we will connect an inductive proximity switch (LJ12A3-4-Z/BX). A LJ12A3-4-Z/BX module can be used in order to detect metal. For example in your water consumption meter (as seen in picture).

Specifications:
  • Inductive proximity sensor
  • Detection distance: 4mm
  • Working voltage range: 10V-30V
  • Dimension: M12x10x55mm

Wiring

ESP               LJ12A3
GPIO (14)  <-->   Signal (black)

Power
12V        <-->   VCC (brown)
GND        <-->   GND (blue)

Note

You need to use a voltage divider to get the signal level down from 12V to 5V.

The LJ12A3-4-Z/BX-5V way

Just buy the 5V version of the proximity sensor and you are good to go.

The resistor way

../_images/P003_LJ12A3_2.png

The 7805 way

7805 IC specifications:
  • Input voltage range 7-35V
  • Current rating Ic = 1A
  • Output voltage range: Vmax=5.2V, Vmin=4.8V
  • Where to buy: AliExpress ($)
../_images/P003_LJ12A3_3.png

Note

7805 is not very efficient and has drop-out voltage problems. A lot of energy is wasted in the form of heat. Higher the input voltage, less efficient your 7805 will be.

Setup

../_images/P003_Setup_LJ12A3_1.png

Danger

Only task number 1..4 is currently supported for the pulse plugin!

  • Device: Name of plugin
  • Name: Name of the task (example name WaterMeter)
  • Enable: Should the task be enabled or not

Sensor

  • GPIO <– Pulse: Pulse input is generally set to GPIO 14 (D5).

  • Debounce time: Debounce time is generally set to 100.

  • Counter type: In this example the type is set to Delta/Total/Time.

  • Mode type: Pulse input is generally set to Falling

    LOW = count when signal go from not low to low (0.8+V to 0.8-V)

    CHANGE = count on signal being changed, low to high (0.8-V to 2.4+V) or high to low (2.4+V to 0.8-V)

    RISING = count if signal is rising, from low to not low (0.8-V to 0.8+V)

    FALLING = count if signal is falling, from high to not high (2.4+V to 2.4-V)

Warning

GPIO 16 (D0) is not compatible with pulse counters.

Data acquisition

  • Send to controller 1..3: Check which controller (if any) you want to publish to. All or no controller can be used.
  • Interval: How often should the task publish its value (5..15 seconds is normal).

Rules examples

On WaterMeter#mL Do
 If [WaterMeter#mL]=0
   Publish,%sysname%/WaterConsumption/status,No water running
 Else
   Publish,%sysname%/WaterConsumption/status,Water is being tapped
 EndIf
EndOn

Where to buy

Store Link
AliExpress Link 1 ($) Link 2 ($)
Banggood Link 3 ($)
eBay Link 4 ($)

$ = affiliate links which will give us some money to keep this project running, thank you for using those.