Bonjour a tous, je demande votre aide pour extraire les données d'un capteur type JSY-MK-227 (Sortie RS485) courant continu sur un ESP32 pour extraire la Tension, Intensité et Puissance, j'ai essayé des bouts de codes trouvés par ci ou par la sans succès.
J'ai cherché sur le net, mais il n'y a rien qui parle d'exemples avec ce capteur....
J'ai lu et relu le datasheet sans rien y comprendre...
Merci jpbbricole, ja'i essayé de compiler mais j'ai cette erreur:
ESP32_MODBUS_RS485:4:1: error: 'ModbusRTU' does not name a type
ModbusRTU mb; // Instance du protocole Modbus
^
C:\Users\Fred\Documents\Arduino 1.8.19\ESSAIS\ESP32_MODBUS_RS485\ESP32_MODBUS_RS485.ino: In function 'bool readSensor()':
ESP32_MODBUS_RS485:29:8: error: 'mb' was not declared in this scope
if (!mb.slave()) {
^
C:\Users\Fred\Documents\Arduino 1.8.19\ESSAIS\ESP32_MODBUS_RS485\ESP32_MODBUS_RS485.ino: In function 'void setup()':
ESP32_MODBUS_RS485:45:3: error: 'mb' was not declared in this scope
mb.begin(&ModbusSerial);
^
C:\Users\Fred\Documents\Arduino 1.8.19\ESSAIS\ESP32_MODBUS_RS485\ESP32_MODBUS_RS485.ino: In function 'void loop()':
ESP32_MODBUS_RS485:54:3: error: 'mb' was not declared in this scope
mb.task(); // Tâche Modbus
^
exit status 1
'ModbusRTU' does not name a type
Par contre dans le datasheet il donne:
Voltage 0100h et 0101H
Current 0102H et 0103H
Active power 0104H et 0105H
Que mettre dans le code pour les adresses ?
// Adresses Modbus des registres pour tension, intensité, et puissance
//#define REG_VOLTAGE 0x0000 // Remplacer par l'adresse exacte
//#define REG_CURRENT 0x0001 // Remplacer par l'adresse exacte
//#define REG_POWER 0x0002 // Remplacer par l'adresse exacte
Par contre je crois qu'il faut envoyer une requete 01 03 01 00 00 14 44 39
Navré, l'IA n'est pas toujours au top et je n'ai pas de quoi essayer.
Essaies de poser la question en demandant avec une autre bibliothèque que celle-ci ou inspires toi de l'exemple de la bibliothèque ModbusRTU.
L'autre solution serait de contacter le vendeur de la carte pour voir s'ils n'ont pas des exemples de programme pour ESP32.
Dans la rubrique télécharger il y a un formulaire de contact ou vous pourez demander de l'aide pour un programme de lecture de la carte pour ESP32, il y a même un chat pour dialoguer en direct.
Il existe des bibliothèques arduino ESP32 pour ces modules JSY
Merci Irigolo pour cette aide, en effet je suis rentre en contact avec le développeur de la bibliothèque MycilaJSY, il a modifié la librairie a ma demande et celle d'un ami, mais moi je travaille avec l'Arduino IDE 1.8.19 et Mathieu (Développeur) travaille avec Platformio, sa librairie me donne des erreurs de compilation.. Je vais essayer votre code. Je veux juste recuperer la tension et les ampères par contre je n'ai pas de DE et RE.
Erreur de compilation, c'est la meme que j'avais:
In file included from c:\users\alfred\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\shared_mutex:35:0,
from C:\Users\Alfred\Documents\Arduino\libraries\MycilaJSY\src/MycilaJSY.h:10,
from C:\Users\Alfred\Documents\Arduino 1.8.19\ESP32_TEST_JSY_MK_227\ESP32_TEST_JSY_MK_227.ino:2:
c:\users\alfred\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0\bits\c++14_warning.h:32:2: error: #error This file requires compiler and library support for the forthcoming ISO C++ 2014 standard. This support is currently experimental, and must be enabled with the -std=c++1y or -std=gnu++1y compiler options. #error This file requires compiler and library support for the forthcoming
^
utilisé : C:\Program Files (x86)\arduino-1.8.19\libraries\MycilaJSY
exit status 1
Erreur de compilation pour la carte DOIT ESP32 DEVKIT V1
Mathieu m'avait dit d'avoir un compilateur C++17 minimum, j'ai fait des recherches le mien est un 201103L visiblement, comment mettre ce compilateur sur Arduino IDE ????
Effectivement, j'ai aussi des erreurs de compilation avec Arduino IDE 2.3.2
C:\Users\Loïc\Documents\Arduino\JSY_MK_227\JSY_MK_227.ino:10:1: error: 'MycilaJSY' does not name a type
C:\Users\Loïc\Documents\Arduino\JSY_MK_227\JSY_MK_227.ino: In function 'void setup()':
C:\Users\Loïc\Documents\Arduino\JSY_MK_227\JSY_MK_227.ino:29:3: error: 'jsy' was not declared in this scope
C:\Users\Loïc\Documents\Arduino\JSY_MK_227\JSY_MK_227.ino: In function 'void loop()':
C:\Users\Loïc\Documents\Arduino\JSY_MK_227\JSY_MK_227.ino:37:19: error: 'jsy' was not declared in this scope
exit status 1
Compilation error: 'MycilaJSY' does not name a type
J'ai essayé de compiler le fichier read dans les exemples du Github, j'ai une erreur. Si tu est resté en contact avec Mathieu, pose lui la question voilà l'erreur en question :
C:\Users\Loïc\Documents\Arduino\JSY_MK_227\JSY_read_227\JSY_read_227.ino: In function 'void loop()':
C:\Users\Loïc\Documents\Arduino\JSY_MK_227\JSY_read_227\JSY_read_227.ino:45:9: error: 'class Mycila::JSY' has no member named 'toJson'
exit status 1
Compilation error: 'class Mycila::JSY' has no member named 'toJson'