Here a small Howto connect the Pollin AVR-NET-IO (with original firmware) to Pimatic for measure pressure of BQLZR Pressure Sensor Adapter 5V 0-0.5Mpa G1/4
First at all the Pollin AVR-NET-IO has following properties:
• Network Controller ENC28J60
• microcontroller ATMega32
• 8 digital outputs via the 25-pin. Sub-D connector
• 4 digital inputs that also the 25-pol. Sub-D connectors
• 4 ADC inputs (10 bits) which are connected via the terminals
The read out the analog digital Port of this is quit easy, from terminal:
echo “getadc 1” | nc 192.168.0.91 50290
as result the value of ADC Port 1 is displayed. Same can be done with the other 3 ports in the same way.
same with the digital port:
echo “getport 1” | nc 192.168.0.91 50290
switch output
Command: SET PORT X.Y
Example: SETPORT 4.0 (Turns output 4 to LOW)
Function: X stands for the selected output that is to be connected.
If Y = 0 then output = 0 - when Y = 1 then output = 1
For the pressue sensor 5V 0-0.5Mpa (0-5 bar) following function is given:
Vout = Vref x (1,6 x P + 0,1)
set to Pressure
P = (0,625 * Vout / Vref) - 0,0625
The AVR-NET-IO uses a 10-bit analog-to-digital converter, i.e. there are max 1024 different readings possible. The Vref voltage used is 5 V - that means the measured ADC unit is 0.0048828V (calculated from 5 / 1024 = 0.0048828) - see below.
{
"class": "ShellSensor",
"id": "pressure-sensor",
"name": "Pressure Sensor",
"attributeName": "Druck",
"attributeType": "number",
"command": "echo \"getadc 1\" | nc 192.168.0.91 50290"
},
{
"class": "VariablesDevice",
"id": "druck-berechnet",
"name": "Druck",
"variables": [
{
"name": "pressure",
"expression": "(( 0.625*($pressure-sensor.Druck*0.0048828)/5)-0.0625)*10",
"unit": "bar",
"type": "number"
}
]
}