Extra IO - ProMini Extender

.

Plugin details

Type: Extra IO

Name: ProMini Extender

Status: NORMAL

GitHub: P011_PME.ino

Maintainer: .

Used libraries: .

Supported hardware

.

This plugin supports the Pro Mini Extender, that’s a software solution installed on an Arduino Nano, providing 5 available analog input/output pins and 14 digital input/output pins.

The Pro Mini Extender software has to be manually installed on the Arduino Nano (or a Chinese clone), using the MiniProExtender software project from this ESPEasySlaves repository via the Arduino IDE.

After installing the software on the Arduino Nano, the simplest solution is to power the PME with 3.3V, even if it’s specified for 5V, so no level converter is needed for the I2C connection with the ESP, that only allows for 3.3V signal levels. The 3.3V power has to be connected to the 5V pin on the Arduino Nano, not on the 3.3V pin, as that’s a low-power output-only pin!

NB: This software can also be installed on other Arduino models, that support I2C, Analog and Digital pins, but this hasn’t been actively tested. Depending on the available IO pins, some of the features may not match with the Arduino Nano.

Device Configuration

../_images/P011_DeviceConfiguration.png
  • Name A unique name should be entered here.

  • Enabled The device can be disabled or enabled. When not enabled the device should not use any resources.

Sensor

  • Port Select the port (pin) of the Pro Mini Extender that is addressed by this task. For a Digital or Input (Switch) the range is 0..13, for an Analog input, the available pins are 0..3 and 6..7, as A4 and A5 are the (fixed) I2C pins of the Arduino Nano.

I2C Options

The available settings here depend on the build used. At least the Force Slow I2C speed option is available, but selections for the I2C Multiplexer can also be shown. For details see the Hardware page

Device Settings

  • Port Type:

../_images/P011_PortTypeOptions.png
  • Digital: An On/Off Input/Output type of port, every Interval the pin is read and the state is made available in the Value field.

  • Analog: Read the current analog value of the port.

  • Input (switch): Act like an input switch, the pin is read every 20 msec, and if the state changes, the new state is reported as an event, with the new value. The Interval is ignored when this Port Type is selected.

Data Acquisition

This group of settings, Single event with all values, Send to Controller and Interval settings are standard available configuration items. Send to Controller is only visible when one or more Controllers are configured.

Interval By default, Interval will be set to 60 sec. It is the frequency used to read sensor values and send these to any Controllers configured for this device.

Values

The single Value available holds the last digital, analog or input (switch) state value.

Commands available

Command

Extra information

extgpio,<pin>,<0|1>

<pin> : The IO pin on the PME board, range 0..13 for Digital output.

<0|1> : Select 0 for Off (low), and 1 for On (high) level output

Switch the pin to either low or high level output.

extpwm,<pin>,<level>

<pin> : The IO pin on the PME board, range 0..7 for Analog output.

<level> : The PWM level, range 0..255

Set the Analog pin (0..7) to the PWM level, where 0 = 0% and 255 = 100% of the VCC voltage the PME is running at.

extpulse,<pin>,<0|1>,<duration>

<pin> : The IO pin on the PME board, range 0..13 for Digital output.

<0|1> : Select 0 for Off (low), and 1 for On (high) level output

<duration> : The time in milliseconds the IO pin state should be set, after which it is restored in the previous state.

Switch the pin to either low or high level output, and after the duration has passed, return to the previous state.

extlongpulse,<pin>,<0|1>,<duration>

<pin> : The IO pin on the PME board, range 0..13 for Digital output.

<0|1> : Select 0 for Off (low), and 1 for On (high) level output

<duration> : The time in seconds the IO pin state should be set, after which it is restored in the previous state.

Switch the pin to either low or high level output, and after the duration (seconds!) has passed, return to the previous state.

status,ext,<pin>

<pin> : The IO pin on the PME board, range 0..13 for Digital output, range 20..27 for the Analog pins A0..A7.

Report the current state/value for the pin selected.

Get Config Values

Get Config Values retrieves values or settings from the sensor or plugin, and can be used in Rules, Display plugins, Formula’s etc. The square brackets are part of the variable. Replace <taskname> by the Name of the task.

Config value

Information

[<taskname>#D.<port>]

<port> : Range 0..13, corresponding with D0..D13 on the PME.

Returns the current status (0/1) from the requested Digital port (pin) of the Pro Mini Extender.

[<taskname>#A.<port>]

<port> : Range 0..3 and 6..7, corresponding with A0..A7 on the PME.

Returns the current value (0..1023) at the requested Analog port (pin) of the Pro Mini Extender.

Port A4 and A5 should be avoided, as that’s occupied by the I2C connection at the PME. There is no check in the code to block those pins!

Change log

Changed in version 2.0:

added 2024-03: Add Input (switch) option.

added Major overhaul for 2.0 release.

Added in version 1.0:

added Initial release version.