Bonjour,
Matériel:
- NodeMCU ESP8266
- HRLV-MaxSonar® EZ MB1043
J’ai câblé la sortie RS232 du MB1043 sur l’enrée RXD0(D9) du NodeMCU.
J’alimente le NodeMCU via le port USB (Branché sur mon pc pour le moment…)
J’alimente le MB1043 via un 3.3V du NodeMCU.
J’ai créé un « Communication - Serial Server » sur ESP_Easy.
Je lis les infos sur Jeedom en utilisant ce code en bloc php dans un scénario.
$cfgServer ="Mon ip...";
$cfgPort = "2000";
$cfgTimeOut = "5";
$f=fsockopen("$cfgServer",$cfgPort,$cfgTimeOut);
if (!$f)
{
$scenario->setLog('pas connecté');
}
else
{
$scenario->setLog('connecté');
if (($data = fgets($f, 256)) !== false){
$scenario->setLog($data);
}
$scenario->setLog('coupe la session');
fclose($f);
}
D’après la documentation du capteur je devrais recevoir ça
The output is an ASCII capital “R”, followed by four ASCII character digits representing the range in millimeters, followed by a carriage return (ASCII 13)
Et voilà se que je reçois:
[2024-01-26 23:15:02][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2024-01-26 23:15:02][SCENARIO] - Exécution du sous-élément de type [action] : code
[2024-01-26 23:15:02][SCENARIO] Exécution d’un bloc code
[2024-01-26 23:15:02][SCENARIO] connecté
[2024-01-26 23:15:04][SCENARIO] ccy+†2ccy+†2ccy+††öV+††öV+††öV+††öV+††öV+†2ccy+†2ccy+†2c¬+†2cdy+†2cdy+†2c²+†2c²+†2cey+†2cey+†2cey+†2cey+†2cey+†2cey+†2cey+†2cey+†2cey+†2cey+†2c²+†2c²+†2c²+†2c²+†2cdy+†2cdy+†2cdy+†2cdy+†2c¬+†2c¬+†2c¬+†2c¬+†2c¬+†2c¬+†2c¬+†2cdy+†2cdy+†2cdy
[2024-01-26 23:15:04][SCENARIO] coupe la session
[2024-01-26 23:15:04][SCENARIO] Fin correcte du scénario
Et en faisant ce message je me rend compte que mon fichier text n’affiche pas la même chose que mon log sur Chrome…
La fonction « mb_detect_encoding » me dit que c’est du UTF-8
Cela fait deux jours que je me casse la tête là-dessus…
J’ai essayé :
- Changer d’entrée sur le NodeMCU
- Divers réglages de Baudrate (malgré que la doc spécifie bien 9600…)
- Utiliser un script en python au lieu du code en php
- mb_convert_encoding($data,« ASCII »,« UTF-8 »)
- iconv(« UTF-8 »,« ASCII »,$data)
- Utiliser les « Rules » du NodeMCU pour ecrire l’info lue en Serial dans un « Dummy », mais ça n’a jamais fonctionné, le dummy restait vide malgré mes différents tests
- Je n’ai rien essayé d’autre que « ESP_Easy » pour le moment
- Plus d’autres petites choses, mais je pense que le principal est dit…
Quelqu’un aurait une idée pour me débloquer svp ?
Merci d’avance !