Tutorial ESP8266 12E Modbus RTU Maestro (Mejorado)

Hemos realizado varias pruebas de referentes a  Arduino integrando Arduino- PLC y Arduino-HMI Panasonic para aplicaciones Industriales, en esta oportunidad hemos encontrado otras  librerias para Arduino como  Maestro Modbus RTU, las cuales utilizaremos solo en los  Modulos ESP8266, ventajas principal de la libreria tiene mayor facilidad referente a configuración de lectura y escritura de registros.

Inicialmente las librerías solo funcionaban para Arduino,  Se le han realizado una serie de modificaciones para ser compiladas en Arduino IDE y funcionen correctamente con el modulo ESP8266.





En esta ocasión resaltaremos el origen de dichas librerías y los aportes de una comunidad llamada cooking-hacks.com los cuales comercializan y realizan pruebas de plataformas como Arduino, Raspberry pi e Intel galileo, en conjunto de libelium.com crean modulos para la integración de las plataformas mencionadas previamente con protocolos algunos conocidos existentes.

cooking-hacks : www.cooking-hacks.com

libelium : www.libelium.com

La libreria ModbusMaster232.h esta bajo licencia GNU (General Public License), en esta pagina existen 2 versiones disponibles de esta libreria RS232 y RS485, en este caso utilizaremos la version  RS232, dado que la otra fue creada para un modulo con un hardware diferente al comun Max485.

Documentación Api ModbusMaster232 : classModbusMaster232.

 PDAControl PDAControles.com PDAControlen.com ModbusRTU ESP8266

Arduino IDE

La estrategia de prueba realiza la comunicación bidireccional de registros Holding Registers.

ESP8266                             Simulador Esclavo

Holding Register[4]                <- 00005                                      (Control diodo led -GPIO 04)

Holding Register[5]                      00006 ->                                 int random (1  a 999 )

Holding Register[6]                      00007  ->                               Valor ADC0 (LDR- Fotoresistor)

Nota: ADC0 valido en versiones ESP con este pin disponible.

 PDAControl

Materiales y donde Compralos Baratos!!

Otros Recomendados

ESP32
ESP32 + 0.96″ Oled
– Arduino Nano V3 Clone 
Arduino Mega 2560 R3 Clone 
Raspberry pi 3 
Raspberry pi zero w 
Meter PZEM-004 with Display
Meter PZEM-004T Module

-LoRa RFM95, 915.0 MHz 
Meter PZEM-016 + CT (0-100A)
PLC LE3U FK3U FX3U 14MR
Power Supply 5v (rail) 

Tutorial

El siguiente video tutorial  explicara las modificaciones realizadas para funcionar en ESP8266 y una pequeña prueba de Comunicación Maestro (ESP8266) – Esclavo (Sim ModbusRTU).

Video Tutorial NodeMCU ESP8266 12E Modbus RTU Master

ESP8266 Maestro Modbus RTU (RS232)

Modificaciones 

Inicialmente al realizar la compilación los ejemplos disponibles libreria  ModbusMaster232.c para descargar en el modulo ESP8266 desde Arduino IDE, se generaban errores en 2 funciones nativas de las arquitectura de los Microcontroladores AVR Atmega (Atmel).

Nota: parte inferior Descargas, librerias Modificadas.

Vistas  editor Notepad++.

Funcion CRC16

1- Funcion creada _crc16_update2 en remplazo de libreria crc16.h  funcion _crc16_update  encargada del realizar checksum modbus, fuente AVR Libc Reference Manual <util/crc16.h>

 PDAControl PDAControles.com PDAControlen.com ModbusRTU ESP8266

-Implementacion

 PDAControl PDAControles.com PDAControlen.com ModbusRTU ESP8266

Funcion makeWord

2- Se ha eliminado la funcion makeWord la cual construye 1 word apartir de 2 byte, se ha implementado la funcion equivalente en código en cada sitio requerido.

 PDAControl PDAControles.com PDAControlen.com ModbusRTU ESP8266

Funciones disponibles

  • node.readHoldingRegisters(,)
  • node.writeSingleRegister(,)
  • node.readInputRegisters(,)
  • node.writeSingleCoil(,)
  • node.readWriteMultipleRegisters(,,,)





Acondicionamiento de Señal ADC(0)

Se debe tener mucho cuidado al utilizar pin  ADC (0) del modulo ESP8266 12E ,TOUT, ADC(0) o pin 6 son algunos nombres por los cuales se identificara esta entrada, su resolución es de 10 bits de 0 a 1.0V  maximo, se ha creado un circuito basado en un divisor de tensión y un diodo para limitar el voltage de entrada en paralelo a Nuestro sensor de luz, Fotoresistencia o LDR.

Conexiones 

ESP8266 PDAControl NodeMCU

Descargas Github

Referencias

Canal  Youtube

PDAControl

Deja una respuesta