Bonjour,
j'ai testé le montage de Charles avec mosfet à base d'opto SFH620aV3.
C'est pour récupérer la téléinfo d'un linky en mode standard triphasé
et non en mode historique.
Ce qui permet d'obtenir la consommation instantanée de chaque phase afin
de gérer un potentiel délestage (cette information est indisponible en
mode historique sur le linky triphasé).
Le code de lecture des trames est donc différent.
Je peux fournir un lien gitub pour ceux qui seraient intéressés par ce
code, ou par messagerie.
Quand je colle ce montage sur un esp8266 (dans mon cas un nodemcu v0.9)
tout fonctionne impeccablement. Cent pour cent des trames sont
correctement récupérées.
Le code est donc parfaitement fonctionnel.
Quand je le fais tourner sur un arduino, plus d'une trame sur deux est
en erreur.
L'information est partielle, ou vide.
J'ai essayé deux arduinos (un nanov3 et un mega).
Les symptôme sont les mêmes.
Que j'alimente le montage en 3.3v ou en 5v ne change rien à l'affaire.
Que j'utilise un UART soft ou hardware ne change rien non plus.
J'ai tenté de baisser la valeur de la résistance pull-down de la gate du
mosfet sans succès : cela génere encore plus d'erreurs.
Je n'ai pas encore tenté de l'augmenter.
Si quelqu'un a une idée ça serait chouette.
Un extrait des logs que j'obtiens, on y voit l'attente de début de
trame, les infos que l'on souhaite conserver (par exemple).
22:15:49.473 -> Wait End Previous/Start new frame <=== syncho
22:15:50.113 -> Wait End trame
22:15:51.193 -> CHECKSUM_OK,COUNT(1),E=[SINSTS],D=[02436] <=== info
à conserver
22:15:51.233 -> CHECKSUM_OK,COUNT(2),E=[SINSTS1],D=[02928]
22:15:51.313 -> CHECKSUM_OK,COUNT(3),E=[SINSTS3],D=[77354]
22:15:51.353 -> CHECKSUM_OK,COUNT(4),E=[SMAXSN],H=[H190110184637],D=[07850]
22:15:51.393 -> CHECKSUM_OK,COUNT(5),E=[SMAXSN1],H=[H190110185756],D=[02220]
22:15:51.473 -> CHECKSUM_OK,COUNT(6),E=[SMAXSN2],H=[H190110025614],D=[03180]
22:15:51.513 -> CHECKSUM_OK,COUNT(7),E=[SMAXSN3],H=[H190110164209],D=[03330]
22:15:51.553 ->
CHECKSUM_OK,COUNT(8),E=[SMAXSN-1],H=[H190109181632],D=[08560]
22:15:51.633 ->
CHECKSUM_OK,COUNT(9),E=[SMAXSN1-1],H=[H190109181618],D=[04330]
22:15:51.673 ->
CHECKSUM_OK,COUNT(10),E=[SMAXSN2-1],H=[H190109233416],D=[03680]
22:15:51.713 ->
CHECKSUM_OK,COUNT(11),E=[SMAXSN3-1],H=[H190109191307],D=[03860]
22:15:52.353 -> Tout est complet
22:15:52.353 -> Statistiques echec [358]/[571] <=== stats
d'erreurs/nb lectures
22:15:52.353 -> [**** contenu en json ] <=== le resume en
json correct
22:15:52.353 ->
{"SINSTS":"02436"},{"SINSTS1":"02928"},{"SINSTS3":"77354"},{"SMAXSN":"07850","Horo":"H190110184637"},{"SMAXSN1":"02220","Horo":"H190110185756"},{"SMAXSN2":"03180","Horo":"H190110025614"},{"SMAXSN3":"03330","Horo":"H190110164209"},{"SMAXSN-1":"08560","Horo":"H190109181632"},{"SMAXSN1-1":"04330","Horo":"H190109181618"},{"SMAXSN2-1":"03680","Horo":"H190109233416"},{"SMAXSN3-1":"03860","Horo":"H190109191307"}
22:15:52.433 -> [ fin ]
22:15:54.433 -> Wait End Previous/Start new frame
22:15:54.433 -> Wait End trame
22:15:54.633 -> Il manque [11] groupes
22:15:54.633 -> Statistiques echec [359]/[572] <==== erreur
22:15:54.673 -> [ contenu en json ] <==== on a rien de
correct
22:15:54.673 ->
22:15:54.673 -> [ fin ****]
J'ai également des captures faites à l'oscillo pour plus de détail.
merci