LJ12A3

Generic - Pulse counter NORMAL CLIMATE

../_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

Task settings

  • 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 or PULSE low

    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)

    PULSE Low = count if a stable low signal ended followed by a stable high signal

    PULSE Gigh = count if a stable high signal ended followed by a stable low signal.

    PULSE Change = count if the stable signal changes from high to low or from low to high

Warning

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

Data Acquisition

This group of settings are standard available configuration items.

  • Single event with all values: When this setting is enabled, all available values will be sent in a single event <TaskName>#All, with all values in order as arguments to the event.

  • Show derived values: When checked, the Devices overview page, and the /json endpoint (used for updating the Devices overview page) will include any Derived values as defined. See the TaskValueSetDerived and TaskValueSetPresentation commands.

  • Event & Log derived values: When checked, the Derived values will be generated as Events, to be handled in Rules, and sent to logging devices like the Syslog server and/or SD-card logging.

(The derived values options are only available if String variables feature is included in the build.)


  • Send to Controller: Select the Controller(s) to send the Values to, either on a TaskRun command applied to the task, or on an Interval time action.

Send to Controller is only visible when one or more Controllers are configured.

Depending on the controller capabilities, some configuration settings may be shown:

../_images/Task_config_page_Controllers_section.png

All configured Controllers are shown here, including the enabled or disabled state (multiple Controllers can be enabled, only a single MQTT Controller can be enabled at one time!).

For each controller the user can select wether the data should be sent on each Interval (or explicit TaskRun).

For the Domoticz controllers the value index (IDX) has to be configured.

For some controllers, like Home Assistant/openHAB, there are extra options available.

  • Group: This represents the group id to combine all values from multiple tasks into a single grouped-device during MQTT AutoDiscovery. Groups, by design, can span multiple ESPEasy devices, if desired, as long as the Task/Valuename combinations are unique. If a group should only combine Tasks from a single ESPEasy unit, the group id should be unique across multiple ESPEasy units. The group description, default Group <n>, can be adjusted in Home Assistant. If the Group value matches the current Unit nr, the Unit name, %sysname%, is used instead of Group <nr>.

  • Retained: For MQTT Controllers, this setting can be enabled to send the values for the current task with the Retain flag set. The Publish Retain flag in the Controller settings will override this by sending all task values with Retain flag enabled.

  • Send derived: This checkbox determines if any configured Derived values should also be sent to the controller (and included in the AutoDiscovery if that’s available and enabled).

  • Resend MQTT Discovery: When checked, will start a resend of the MQTT Discovery process for this task after a random delay, when Submit is clicked, so any changed settings will be updated in the MQTT broker. This setting is only available if the controller is enabled, the Auto Discovery feature is available and enabled for the controller. This setting is not stored.

Other controllers, like f.e. FHEM HTTP, do not support additional settings besides the checkbox to enable sending the data.


  • 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.