adaptei a biblioteca ModbusIP do Prof André Sarmento do ESP8266 para o ESP32. Já testei e funcionou. A única mudança foi a troca do cabeçalho de WifiESP8266 para Wifi. Quem não conhece o ESP32, recomendo dar uma pesquisada sobre ela, é uma placa muito poderosa.
Esta biblioteca é uma adaptação para o CHIP ESP32 que é diferente do ESP8266. Fica aqui o link para você ver em detalhes o quanto é poderosa esta nova placa da Espressif:
Pergunta sobre o ESP12, também já utilizo a LIB do Prof. Sarmento para modbus IP, porém no ESP, percebi o seguinte para enviar valores, totalizadores tipo um valor decimal “2345”, ele o faz apenas em HEX, porém quando utilizo a LIB para o arduino ethernet shiel, não tem este problema, podem me ajudar, preciso enviar valores decimais acumulados na memoria do ESP via modbus ip.
Consegui resolver depois de muita pesquisa, chega ser idiota o problema, mas como não conhecia o tipo de variável usada na Lib do Sarmento, abri o código dele e vi que era word, então fiz o seguinte:
Oi. Sou novo aqui então se minha pergunta estiver no lugar errado me desculpem. Mais estou com um grave problema estou necessitando muito da biblioteca modbus rtu para esp 32 já rodei na Internet em tudo que é lugar caso alguém possa me dar essa super ajuda visto que no caso da modbus IP se conseguiu uma solução. Desde já muito obrigado galera.
Eu fiz uma contribuição para a biblioteca do Sarmento no Modbus Serial. Mas ele ainda não revisou meu commit.
Nele eu reduzi o uso da memória SRAM significativamente por mudar o uso estático da tabela de CRC da SRAM para a flash.
Caso alguém precisar, posso puxar essa melhoria para meu github também.
/* Constantes */ #define SSID lulu2// Insira aqui nome e senha do wifi. #define PASSWD bebeth08
//Portas do ESP32
const unsigned int ar_condicionado_001 = 18;
const unsigned int ar_condicionado_002 = 19;
//Registradores do Modbus IP
const unsigned int mb_reg_ar_condicionado_001 = 0;
const unsigned int mb_reg_ar_condicionado_002 = 0;
vc usa qual lib com ethernet shield? Uso uma “mudbus” porém os arduinos perdem comunicação com o supervisório. Eu implementei um reset via software e mesmo assim a comunicação ainda se perde.
Boa noite João. Ótima inciativa, a placa esp32 é realmente muito poderosa.
Testei a biblioteca e deu erro de compilação:
C:\Users\LEONIDASLOPESDEMELO\Documents\Arduino\libraries\ModbusIP_ESP32-master\ModbusIP_ESP32.cpp: In member function ‘void ModbusIP::task()’:
C:\Users\LEONIDASLOPESDEMELO\Documents\Arduino\libraries\ModbusIP_ESP32-master\ModbusIP_ESP32.cpp:50:10: error: ‘class ModbusIP’ has no member named ‘receivePDU’
this->receivePDU(_frame);
^
C:\Users\LEONIDASLOPESDEMELO\Documents\Arduino\libraries\ModbusIP_ESP32-master\ModbusIP_ESP32.cpp:53:18: error: ‘MB_REPLY_OFF’ was not declared in this scope
if (_reply != MB_REPLY_OFF) {
^
Estou com a impressão que falta alguma coisa.
Seria o arquivo modbus.h ?