Bonjour à tous,
J'ai dans un tiroir un Tx/Rx en 433MHz que je suis en train d'essayer.
http://www.belectronique.fr/modules/82-emetteur-recepteur-433mhz-rf.html
Je suis confronté à un souci à la réception des trames qui, au bout d'un moment, sont tronquées sans avoir d'explications :
Voici quelques exemples :
RX : 143 : //20:30:47/045081708N005494029E044580_ good : 199
RX : 144 : //20:30:48/045081708N005494027E044540_ good : 200
RX : 145 : //20:30:54/045081708N005494027E044420_ good : 202
RX : 146 : //20:30:59/045081708N005494029E044280_ good : 204
RX : 147 : //20:31:00/045081708N005494029E044250_ good : 205
RX : 148 : //20:31:06/045081708N005494031E044170_ good : 206
RX : 149 : //20:31:11/045081708N005494032E044060_ good : 208
RX : 150 : //20:31:12/045081708N005494035E044040_ good : 209
RX : 151 : //20:31:18/045081708N005494038E044040_ good : 211
RX : 152 : //20:31:20/045081708N005494038E044040_ good : 212
RX : 153 : //20:31:23/045081708N005494041E044080_ good : 213
RX : 154 : //20:31:24/045081708N005494043E044110_ good : 214
RX : 155 : //20:31:30/04_ good : 217
RX : 156 : //20:31:32/04_ good : 218
RX : 157 : //20:31:35/04_ good : 219
RX : 158 : //20:31:40/04_ good : 221
RX : 159 : //20:31:44/04_ good : 223
RX : 160 : //20:31:47/04_ good : 224
RX : 161 : //20:31:52/04_ good : 225
RX : 162 : //20:31:54/04_ good : 226
RX : 163 : //20:31:59/04_ good : 228
RX : 164 : //20:32:00/04_ good : 229
RX : 165 : //20:32:03/04_ good : 230
RX : 166 : //20:32:06/04_ good : 231
RX : 167 : //20:32:11/04_ good : 233
RX : 168 : //20:32:12/04_ good : 234
Tuto VirtualWire
Taille max du tableau : 80
RX : 0 : //20:43:50/045081720N005494071E043640_ buflen : 37_ good : 2
RX : 1 : //20:43:55/045081712N005494073E043640_ buflen : 37_ good : 4
RX : 2 : //20:43:56/045081712N005494073E043640_ buflen : 37_ good : 5
RX : 3 : //20:44:02/045081712N005494073E043640_ buflen : 37_ good : 7
RX : 4 : //20:44:04/045081712N005494073E043640_ buflen : 37_ good : 8
RX : 5 : //20:44:07/045081712N005494073E043640_ buflen : 37_ good : 9
RX : 6 : //20:44:08/045081712N005494073E043640_ buflen : 37_ good : 10
RX : 7 : //20:44:14/045081712N005494073E043640_ buflen : 37_ good : 12
RX : 8 : //20:44:16/045081712N005494073E043640_ buflen : 37_ good : 13
RX : 9 : //20:44:18/045081712N005494073E043640_ buflen : 37_ good : 14
RX : 10 : //20:44:20/045081712N005494073E043640_ buflen : 37_ good : 15
RX : 11 : //20:44:26/045081712N005494073E043640_ buflen : 37_ good : 17
RX : 12 : //20:44:28/045081712N005494073E043640_ buflen : 37_ good : 18
RX : 13 : //20:44:32/045081712N005494073E043640_ buflen : 37_ good : 19
RX : 14 : //20:44:38/045081712N005494073E043640_ buflen : 37_ good : 21
RX : 15 : //20:44:40/045081712N005494073E043640_ buflen : 37_ good : 22
RX : 16 : //20:44:44/045081712N00549407_ buflen : 29_ good : 24
RX : 17 : //20:44:50/045081712N00549407_ buflen : 29_ good : 26
RX : 18 : //20:44:52/045081712N00549407_ buflen : 29_ good : 27
RX : 19 : //20:44:56/045081712N00549407_ buflen : 29_ good : 29
RX : 20 : //20:45:02/045081712N00549407_ buflen : 29_ good : 31
RX : 21 : //20:45:04/045081712N00549407_ buflen : 29_ good : 32
RX : 22 : //20:45:08/045081712N00549407_ buflen : 29_ good : 34
RX : 23 : //20:45:11/045081712N00549407_ buflen : 29_ good : 35
RX : 24 : //20:45:14/045081712N00549407_ buflen : 29_ good : 36
RX : 25 : //20:45:16/045081712N00549407_ buflen : 29_ good : 37
RX : 26 : //20:45:20/045081712N00549407_ buflen : 29_ good : 39
RX : 27 : //20:45:23/045081712N00549407_ buflen : 29_ good : 40
RX : 28 : //20:45:26/045081712N00549407_ buflen : 29_ good : 41
...
RX : 78 : //20:51:58/045081712N00549406_ buflen : 29_ good : 113
RX : 79 : //20:52:00/045081712N00549406_ buflen : 29_ good : 114
RX : 80 : //20:52:03/045081712N00549406_ buflen : 29_ good : 115
RX : 81 : //20:52:08/045081712N00549406_ buflen : 29_ good : 117
RX : 82 : //20:52:10/045081712N00549406_ buflen : 29_ good : 118
RX : 83 : //20:52:12/045081712N00549406_ buflen : 29_ good : 119
RX : 84 : //20:52:15/045081712N00549406_ buflen : 29_ good : 120
RX : 85 : //20:52:20/04_ buflen : 13_ good : 123
RX : 86 : //20:52:22/04_ buflen : 13_ good : 124
RX : 87 : //20:52:24/04_ buflen : 13_ good : 125
RX : 88 : //20:52:27/04_ buflen : 13_ good : 126
RX : 89 : //20:52:32/04_ buflen : 13_ good : 128
RX : 90 : //20:52:34/04_ buflen : 13_ good : 129
RX : 91 : //20:52:39/04_ buflen : 13_ good : 131
RX : 92 : //20:52:44/04_ buflen : 13_ good : 133
RX : 93 : //20:52:46/04_ buflen : 13_ good : 134
RX : 94 : //20:52:51/04_ buflen : 13_ good : 136
RX : 95 : //20:52:56/04_ buflen : 13_ good : 138
RX : 96 : //20:52:58/04_ buflen : 13_ good : 139
RX : 25 : //07:45:39/045081668N005494081E042270_ buflen : 37_ good : 38
RX : 26 : //07:45:44/045081664N005494082E042190_ buflen : 37_ good : 40
RX : 27 : //07:45:46/045081664N005494082E042110_ buflen : 37_ good : 41
RX : 28 : //07:45:48/045081664N005494082E042110_ buflen : 37_ good : 42
RX : 29 : //07:45:51/045081664N005494084E042080_ buflen : 37_ good : 43
RX : 30 : //07:45:56/045081664N005494085E042010_ buflen : 37_ good : 45
RX : 31 : //07:45:58/045081664N005494085E042000_ buflen : 37_ good : 46
_ INIT_Rx?... _
RX : 32 : //07:46:03/045081668N00549408_ buflen : 29_ good : 48
_ INIT_Rx?... _
_ INIT_Rx?... _
RX : 33 : //07:46:08/045081676N00549409_ buflen : 29_ good : 50
_ INIT_Rx?... _
RX : 34 : //07:46:10/045081676N00549409_ buflen : 29_ good : 51
_ INIT_Rx?... _
_ INIT_Rx?... _
RX : 35 : //07:46:15/045081680N00549409_ buflen : 29_ good : 53
_ INIT_Rx?... _
RX : 36 : //07:46:17/045081680N00549409_ buflen : 29_ good : 54
_ INIT_Rx?... _
RX : 37 : //07:46:20/045081680N00549409_ buflen : 29_ good : 55
_ INIT_Rx?... _
RX : 38 : //07:46:22/045081680N00549408_ buflen : 29_ good : 56
_ INIT_Rx?... _
_ INIT_Rx?... _
void loop() // Fonction loop()
{
static int nbreRx = 0;
// if (vw_wait_rx_max(20)) // Si un message est reçu dans les 200ms qui viennent
if (vw_have_message()) // Returns true if an unread message is available
{
if (vw_get_message(buf, &buflen)) // On copie le message, qu'il soit corrompu ou non
{
Serial.print("RX : "); Serial.print(nbreRx++); Serial.print(" : ");
for (byte i = 0; i < buflen; i++) // Si il n'est pas corrompu on l'affiche via Serial
Serial.print((char) buf[i]);
Serial.print("_ buflen : "); Serial.print(buflen);
Serial.print("_ good : "); Serial.println(vw_get_rx_good());
}
if (buflen != 37) { // 37 est la longueur d'une trame 'normale'
Serial.println("_ INIT_Rx?... _");
vw_rx_stop();
delay(2000);
vw_rx_start();
}
}
}
Le problème arrive au bout d'un certain temps (voire d'un temps certain) qui me semble aléatoire.
J'ai vérifié ce qui est envoyé par le Tx : tout me semble cohérent : les trames sont bien complètes.
Lorsque je redémarre le moniteur tout remprend normalement, ce qui me fait dire que le problème vient du Rx.
Je constate que la longueur de trame se réduit d'un seul coup!
J'ai essayé de réinitialiser la transmission en cours de programme mais je ne suis pas sur que cela se fasse comme cela.
Les plus curieux auront reconnus des données GPS dans la trame transmise et pourront en déduire mon lieu d'habitation.
Le plus perspicasses pourront penser que le GPS m'envoi des données toutes pourries mais ça fera l'objet d'un autre sujet :D.
Vos idées sur les trames tronquées sont les biens venues.
Olivier