{"id":182,"date":"2019-07-28T12:04:20","date_gmt":"2019-07-28T11:04:20","guid":{"rendered":"http:\/\/daniel974.fr\/wordpress\/?p=182"},"modified":"2021-08-24T17:34:12","modified_gmt":"2021-08-24T16:34:12","slug":"sniffer-rf433-mhz-et-telecommandes-433mhz-a-finir","status":"publish","type":"post","link":"http:\/\/daniel974.fr\/wordpress1\/2019\/07\/28\/sniffer-rf433-mhz-et-telecommandes-433mhz-a-finir\/","title":{"rendered":"Sniffer RF433 MHz et t\u00e9l\u00e9commandes 433MHz (\u00e0 finir&#8230;)"},"content":{"rendered":"\r\n<p>&nbsp;<\/p>\r\n<p>J&rsquo;avais essay\u00e9 il y a d\u00e9j\u00e0 longtemps les \u00e9metteurs et le r\u00e9cepteurs RF433 des sites chinois avec l\u2019Arduino , et j&rsquo;avais \u00e9t\u00e9 enthousiasm\u00e9 par la facilit\u00e9 de cloner les t\u00e9l\u00e9commandes bon march\u00e9 eu utilisant la libraire RC-Switch&#8230;<a href=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/433-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-198 size-full\" src=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/433-1.jpg\" alt=\"\" width=\"225\" height=\"122\" \/><\/a><\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p>par exemple :<br \/>http:\/\/anothermaker.xyz\/iot\/domotique-arduino-nano-raspberry-pi-partie1-rf433mhz-4995<\/p>\r\n\r\n\r\n\r\n<p>Mais j&rsquo;ai \u00e9t\u00e9 tr\u00e8s vite d\u00e9\u00e7u, en effet de nombreuses t\u00e9l\u00e9commandes n&rsquo;\u00e9taient pas identifi\u00e9es pas ce moyen&#8230;( j&rsquo;apprends ce jour que cette biblioth\u00e8que \u00e0 \u00e9volu\u00e9 avec 29 protocoles suppl\u00e9mentaires&#8230;., dont les DiO&#8230;, super&#8230;on continue quand m\u00eame)<\/p>\r\n<p>J&rsquo;ai donc entrepris de me passer de cette Library pourtant excellente&#8230;<br \/>Pour cela j&rsquo;ai revu\u00a0 le sniffer433 en utilisant la num\u00e9risation rapide&#8230;.<\/p>\r\n<pre class=\"lang:default decode:true \" title=\"Sniffer 433 pour miniteur graphisue Delphi\">#define DATA A0\r\n#define NbEchantillons 1250\r\n\r\n\/\/ Defines for setting A2D register bits\r\n#define a2dBitClr(bit) (_SFR_BYTE(ADCSRA) &amp;= ~_BV(bit))\r\n#define a2dBitSet(bit) (_SFR_BYTE(ADCSRA) |= _BV(bit))\r\n\r\nconst int maxCompteur = NbEchantillons; \/\/500 pour le grapheur....\r\nbyte code[NbEchantillons];\r\nvolatile int compteur = 0;\r\nconst byte ledPin = 13;\r\nbyte action = 1, nbemission = 0;\r\nunsigned long debut = 0, fin = 0;\r\n\r\n\/\/ Set A2D register clock division factor, enabling faster sampling\r\nvoid a2dSetup(int factor){ \/\/de 2 \u00e0 7....4 environ 16\u00b5s, 5 environ 30\u00b5s, 6 environ 60 \u00b5s, 7--&gt;110\u00b5s (par mesure....){\r\nif (factor &amp; 1) a2dBitSet(ADPS0);\r\nelse a2dBitClr(ADPS0);\r\nif (factor &amp; 2) a2dBitSet(ADPS1);\r\nelse a2dBitClr(ADPS1);\r\nif (factor &amp; 4) a2dBitSet(ADPS2);\r\nelse a2dBitClr(ADPS2);\r\n}\r\nvoid setup() {\r\n  Serial.begin(256000);\r\n  pinMode(DATA, INPUT);\r\n  digitalWrite(ledPin, LOW);\r\n  a2dSetup(4); \/\/de 2 \u00e0 7....4 environ 16\u00b5s, 5 environ 30\u00b5s, 6 environ 57 \u00b5s, 7--&gt;110\u00b5s (par mesure....)\r\n}\r\n\r\nvoid loop() {\r\n  compteur = 0;\r\n  debut = micros();\r\n  while (compteur &lt; maxCompteur) code[compteur++] = analogRead(DATA);\r\n  fin = micros();\r\n  digitalWrite(ledPin, HIGH);\r\n  for (int i = 0; i &lt; maxCompteur; i++) {\r\n    Serial.print(code[i]);\r\n    Serial.print(\",\");\r\n  }\r\n  Serial.print(\"Fin-duree:\" + String(fin - debut) + \",\");\r\n  digitalWrite(ledPin, LOW);\r\n  while ((!digitalRead(6)) and (!digitalRead(8)));\r\n  delay(20);\r\n}<\/pre>\r\n<p>il envoie les donn\u00e9es captur\u00e9es \u00e0 un moniteur graphique \u00e9crit avec Delphi, celui de l&rsquo;arduino \u00e9tant limit\u00e9 \u00e0 500 donn\u00e9es&#8230;<\/p>\r\n<p>Pour le bouton on d&rsquo;une t\u00e9l\u00e9commande, le signal est le suivant:<br \/><a href=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2019\/07\/BtnTelecommande.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-208\" src=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BtnTelecommande-300x62.png\" alt=\"\" width=\"702\" height=\"145\" srcset=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BtnTelecommande-300x62.png 300w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BtnTelecommande-768x158.png 768w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BtnTelecommande-1024x210.png 1024w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BtnTelecommande.png 1271w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/a><br \/>On y voit des barres fines et des barres plus \u00e9paisses s\u00e9par\u00e9es par des blancs, on sugg\u00e8re rapidement des 0 et des 1, soit \u00ab\u00a00001010100010101010101110\u00a0\u00bb<br \/>En fait la derni\u00e8re barre fine est le d\u00e9but du signal&#8230;.suivi d&rsquo;un grand blanc ce qui constitue l&rsquo;ent\u00eate de synchronisation<a href=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2019\/07\/Entete.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-210\" src=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/Entete-300x141.png\" alt=\"\" width=\"300\" height=\"141\" srcset=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/Entete-300x141.png 300w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/Entete.png 406w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\r\n<p>On peut obtenir davantage de d\u00e9tails en jouant sue le param\u00e8tre &lsquo;factor&rsquo; de la proc\u00e9dure a2dSetup (configuration du convertisseur analogique num\u00e9rique) avec un param\u00e8tre \u00e0 4 on obtient une donn\u00e9e toutes les 16 \u00b5s&#8230;(environ&#8230;)<br \/><a href=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2019\/07\/BontonOnDetails.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-200\" src=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BontonOnDetails-300x62.png\" alt=\"\" width=\"649\" height=\"134\" srcset=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BontonOnDetails-300x62.png 300w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BontonOnDetails-768x159.png 768w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BontonOnDetails-1024x212.png 1024w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/BontonOnDetails.png 1273w\" sizes=\"(max-width: 649px) 100vw, 649px\" \/><\/a><br \/>Le moniteur graphique permet de mesurer les p\u00e9riodes&#8230;<\/p>\r\n<p>Ici en moyenne\u00a0 une mesure toutes les 9,54\u00b5s (factor mis \u00e0 3), 8 p\u00e9riodes (bits) 1086 mesures soit un bit 9,54*1086\/8=<strong>1295 \u00b5s<\/strong> et donc un pulse (\u00e9tat H ou b) \u00e0<strong> 323,75 \u00b5s<\/strong><br \/><a href=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/details.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-212\" src=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/details-300x129.png\" alt=\"\" width=\"300\" height=\"129\" srcset=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/details-300x129.png 300w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2019\/07\/details.png 409w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\r\n\r\n\r\n\r\n<p>L&rsquo;analyse compl\u00e8te donne:<br \/>1-Entete de 32 &lsquo;pulses&rsquo;: Hbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb<br \/>2-Bit 0: 4 pulses Hbbb<br \/>3-Bit 1: 4 pulses HHHb<br \/>4-dur\u00e9e d&rsquo;un \u00e9tat (pulse): 323 \u00b5s<\/p>\r\n<p>On peut ainsi simuler la t\u00e9l\u00e9commande physique par un programme:<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Telecommande On\/Off<\/h2>\r\n<pre class=\"lang:default decode:true\">\/\/\/Telecommande bureau.\r\n\r\nconst byte ledPin = 13;\r\nconst String btnMarche = \"000101010001010101010111\";\r\nconst String btnArret = \"000101010001010101010100\";\r\n\r\n#define dureePulse 350 \/\/325 marche aussi....\r\n\r\nunsigned long debut;\r\n\r\nvoid EnvoyerBit(int H, int L) {\/\/entete:1-31, 0:1-3, 1:3-1\r\ndebut = micros();\r\ndigitalWrite (10, HIGH);\r\nwhile ((micros() - debut) &lt; (dureePulse * H));\r\ndigitalWrite(10, LOW);\r\nwhile ((micros() - debut) &lt; ( dureePulse * (L + H)));\r\n}\r\n\r\nvoid EnvoyerCode(String btn) {\r\nfor (int j = 1; j &lt; 10; j++) {\r\nEnvoyerBit(1, 31);\/\/ Synchro 1-31: 1 pulse H, 31 pulse L\r\nfor (int i = 0; i &lt; btn.length(); i++) {\r\nif (btn[i] == '1') EnvoyerBit(3, 1);\/\/Envoyer 1: 3 pulse H, 1 pulse L\r\nelse EnvoyerBit( 1, 3); \/\/Envoyer 0: 1 pulse H, 3 pulse L\r\n} } }\r\n\r\nvoid setup() {\r\npinMode (10, OUTPUT);\r\npinMode(ledPin, OUTPUT);\r\ndelay(500);\r\n}\r\n\r\nvoid loop() {\r\ndigitalWrite(ledPin, HIGH);\r\nEnvoyerCode(btnMarche);\r\ndelay(5000);\r\ndigitalWrite(ledPin, LOW);\r\nEnvoyerCode(btnArret);\r\ndelay(5000);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n<\/pre>\r\n<p>PS: pour les t\u00e9l\u00e9commande DiO, une solution est ici:<br \/><a href=\"http:\/\/charleslabs.fr\/fr\/project-Contr\u00f4le+de+prises+DiO+avec+Arduino\">http:\/\/charleslabs.fr\/fr\/project-Contr\u00f4le+de+prises+DiO+avec+Arduino<\/a><br \/>marche tr\u00e8s bien<br \/>Finalement j&rsquo;utilise RC-Switch avec tous ses protocoles&#8230;.<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-file\"><a href=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2019\/07\/Sniffer433-1.txt\">Sniffer433-1<\/a><a class=\"wp-block-file__button\" href=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2019\/07\/Sniffer433-1.txt\" download=\"\">T\u00e9l\u00e9charger<\/a><\/div>\r\n<div>\u00a0<\/div>\r\n<h2>Version Simplifi\u00e9e avec esp32<\/h2>\r\n<p>les timers de l&rsquo;esp32 permettent une version plus claire<\/p>\r\n<pre>\/\/**************** sniffer avec timers esp32 *********************\r\nhw_timer_t * timerMesures = NULL;\r\nhw_timer_t * timerLed = NULL;\r\n\r\nint led = 2;\r\nint touche = 17;\r\nint RX433 = 33;\r\n\r\nvolatile byte state = LOW;\r\n#define nbmesures 4000\r\nvolatile int mesures[nbmesures];\r\nvolatile int i = 0;\r\nboolean debug = true;\r\nportMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;\r\nlong debut;\r\nint interMesures = 52;\r\n\r\nvoid IRAM_ATTR onTimerMesures() {\r\n  portENTER_CRITICAL_ISR(&amp;timerMux);\r\n  mesures[i] = digitalRead(RX433);\r\n  i++;\r\n  if (i &gt; nbmesures) {\r\n    i = 0;\r\n    timerAlarmDisable(timerMesures);\r\n  }\r\n  portEXIT_CRITICAL_ISR(&amp;timerMux);\r\n}\r\n\r\nvoid IRAM_ATTR onTimerLed() {\r\n  state = !state;\r\n  digitalWrite(led, state);\r\n}\r\n\r\nvoid setup() {\r\n  Serial.begin(115200);\r\n\r\n  pinMode(led, OUTPUT);\r\n  pinMode(touche, INPUT);\r\n  pinMode(RX433, INPUT);\r\n\r\n  \/* Use 1 &amp; 2 timers of 4 *\/\r\n  \/* 1 tick take 1\/(80MHZ\/80) = 1us so we set divider 80 and count up *\/\r\n  timerMesures = timerBegin(0, 80, true);\r\n  timerLed = timerBegin(1, 80, true);\r\n\r\n  \/* Attach onTimer function to our timer *\/\r\n  timerAttachInterrupt(timerMesures, &amp;onTimerMesures, true);\r\n  timerAttachInterrupt(timerLed, &amp;onTimerLed, true);\r\n  \/* Set alarm to call onTimer function every second 1 tick is 1us\r\n    =&gt; 1 second is 1000000us *\/\r\n  \/* Repeat the alarm (third parameter) *\/\r\n  timerAlarmWrite(timerMesures, interMesures, true);\/\/une mesure toutes les interMesure \u00b5s\r\n  timerAlarmWrite(timerLed, 1000000, true);\r\n  \/* Start an alarm *\/\r\n  timerAlarmEnable(timerMesures);\r\n  timerAlarmEnable(timerLed);\r\n  if (debug) Serial.println(\"start timer\");\r\n}\r\n\r\nvoid loop() {\r\n  if (i &gt;= nbmesures) {\r\n    Serial.print(\"Dur\u00e9e des mesures: \" + String(millis() - debut));\r\n    Serial.println(\" attendu :\" + String(nbmesures * interMesures \/ 1000));\r\n    if (debug) Serial.println();\r\n    int cas = 2;\r\n    int nbcas = 1;\r\n    cas = mesures[0];\r\n    if (debug) Serial.println(\"**************** les mesures avec comptage ***********************************\");\r\n    for (int j = 1; j &lt; nbmesures; j++) {\r\n      if (mesures[j] == cas) {\r\n        nbcas++;\r\n      }\r\n      else {\r\n        if (debug) Serial.println(\" (\" + String(cas) + \":\" + String(nbcas) + \") \");\r\n        cas = mesures[j];\r\n        nbcas = 1;\r\n      }\r\n      Serial.print(mesures[j]);\r\n      if ((nbcas % 100) == 0) Serial.println();\r\n    }\r\n    if (debug) Serial.println(\" (\" + String(cas) + \":\" + String(nbcas) + \") \");\r\n    \/\/ fin des mesures ********************************************\r\n    \/\/ for (int u = 0; u &lt; nbmesures; u++) mesures[u] = 0;\r\n    if (debug) Serial.println(\"Touche en attente... \");\/\/pour lancer une nouvelle s\u00e9rie de mesures\r\n    while (digitalRead(touche) == HIGH) {\r\n      delay(100);\r\n    }\r\n    if (debug) Serial.println();\r\n    i = 0;\r\n    debut = millis();\r\n    timerAlarmEnable(timerMesures);\r\n  }\r\n}\r\n<\/pre>\r\n<h2>resultat sans signal<\/h2>\r\n<p>Dur\u00e9e des mesures: 208 attendu :208<\/p>\r\n<p>**************** les mesures avec comptage ***********************************<br \/>(0:1) <br \/>11 (1:2) <br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:3997) <br \/>Touche en attente&#8230;<\/p>\r\n<h2>r\u00e9sultats avec signal (apr\u00e8s \u00e9limination des donn\u00e9es superflues ou redontantes&#8230;)<\/h2>\r\n<p>Dur\u00e9e des mesures: 208 attendu :208<br \/><br \/>**************** les mesures avec comptage ***********************************<br \/><br \/>111 (1:3) <br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:197) <br \/>111111 (1:6) <br \/>00000000000000000000 (0:20) <br \/>111111 (1:6) <br \/>0000000000000000000 (0:19) <br \/>111111 (1:6) <br \/>00000000000000000000 (0:20) <br \/>111111111111111111 (1:18) <br \/>00000000 (0:8) <br \/>11111 (1:5) <br \/>00000000000000000000 (0:20) <br \/>111111111111111111 (1:18) <br \/>000000000 (0:9) <br \/>1111 (1:4) <br \/>000000000000000000000 (0:21) <br \/>111111111111111111 (1:18) <br \/>000000000 (0:9) <br \/>1111 (1:4) <br \/>00000000000000000000 (0:20) <br \/>111111111111111111 (1:18) <br \/>000000000 (0:9) <br \/>1111 (1:4) <br \/>000000000000000000000 (0:21) <br \/>111111111111111111 (1:18) <br \/>000000000 (0:9) <br \/>1111 (1:4) <br \/>00000000000000000000 (0:20) <br \/>11111 (1:5) <br \/>000000000000000000000 (0:21) <br \/>11111 (1:5) <br \/>00000000000000000000 (0:20) <br \/>111111111111111111 (1:18) <br \/>000000000 (0:9) <br \/>1111 (1:4) <br \/>000000000000000000000 (0:21) <br \/>111111111111111111 (1:18) <br \/>000000000 (0:9) <br \/>1111 (1:4) <br \/>00000000000000000000 (0:20) <br \/>111111111111111111 (1:18) <br \/>000000000 (0:9) <br \/>1111 (1:4) <br \/>000000000000000000000 (0:21) <br \/>111111111111111111 (1:18) <br \/>000000000 (0:9) <br \/>11111111111111111 (1:17) <br \/>000000000 (0:9) <br \/>11111111111111111 (1:17) <br \/>000000000 (0:9) <br \/>1111 (1:4) <br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br \/>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:197) <br \/><br \/><\/p>\r\n<p>entre deux blocs de 197 O, on voit apparaitre une alternance de 0 et 1:<\/p>\r\n<p>-un 1 :<br \/>111111111111111111 (1:18) <br \/>00000000 (0:8)<\/p>\r\n<p>-un 0:<br \/>11111 (1:5) <br \/>00000000000000000000 (0:20)<\/p>\r\n<p>On retrouve le codage sur 4 \u00e9tats HHHb pour un 1 et Hbbb pour un 0, la dur\u00e9e de chaque \u00e9tat \u00e9tant de 5 \u00e0 8 intervalles de mesures de 52 \u00b5s soit 260-416 \u00b5s soit en moyenne 338 \u00b5s ( entre 25*52\/4 et 27*52\/4)<\/p>\r\n<p>En comptant les nombres d\u2019\u00e9chantillons de chaque \u00e9tat, on on obtient la signature du signal, par exemple:<\/p>\r\n<p><span style=\"color: #3366ff;\">11111111111111111111111111 (1:26) <\/span><br \/><span style=\"color: #3366ff;\">00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:1019) <\/span><br \/><span style=\"color: #3366ff;\">111111111111111111111111111111111 (1:33) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:99) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111111 (1:32) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:99) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111111 (1:32) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:100) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:98) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000 (0:37) <\/span><br \/><span style=\"color: #3366ff;\">111111111111111111111111111111 (1:30) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:102) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:98) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000 (0:37) <\/span><br \/><span style=\"color: #3366ff;\">111111111111111111111111111111 (1:30) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:103) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:97) <\/span><br \/><span style=\"color: #3366ff;\">00000000000000000000000000000000000000 (0:38) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111 (1:29) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:103) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:97) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000 (0:39) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111 (1:29) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:103) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:98) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000 (0:39) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111 (1:28) <\/span><br \/><span style=\"color: #3366ff;\">00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:104) <\/span><br \/><span style=\"color: #3366ff;\">111111111111111111111111111111 (1:30) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:103) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111 (1:29) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:103) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:97) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000 (0:39) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111 (1:29) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:103) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:97) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000 (0:40) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111 (1:28) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:103) <\/span><br \/><span style=\"color: #3366ff;\">11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:98) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000 (0:39) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111 (1:28) <\/span><br \/><span style=\"color: #3366ff;\">00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:104) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:97) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000 (0:39) <\/span><br \/><span style=\"color: #3366ff;\">111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:96) <\/span><br \/><span style=\"color: #3366ff;\">0000000000000000000000000000000000000000 (0:40) <\/span><br \/><span style=\"color: #3366ff;\">111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (1:96) <\/span><br \/><span style=\"color: #3366ff;\">000000000000000000000000000000000000000 (0:39) <\/span><br \/><span style=\"color: #3366ff;\">1111111111111111111111111111 (1:28) <\/span><br \/><span style=\"color: #3366ff;\">00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0:1019) <\/span><br \/><span style=\"color: #3366ff;\">26,1019,33,99,32,99,32,100,98,37,30,102,98,37,30,103,97,38,29,103,97,39,29,103,98,39,28,104,30,103,29,103,97,39,29,103,97,40,28,103,98,39,28,104,97,39,96,40,96,39,28,1019,<\/span><\/p>\r\n<p>Cette derni\u00e8re ligne sera donn\u00e9e au player avec la dur\u00e9e entre deux \u00e9chantillons, par exemple<\/p>\r\n<pre>int veilleuseOff[] = {236, 28, 124, 28, 124, 104, 48, 28, 124, 104, 48, 28,<br \/>124, 104, 48, 28, 124, 28, 124, 28,124, 104, 47, 29, 123, 105, 46, 30, 122,<br \/>107, 45, 31, 121, 30, 121, 107, 46, 106, 46,106, 46, 106, 46, 106, 47, 29,<br \/>122, 30, 123, 30};<br \/><br \/>void\u00a0 player() {<br \/>int imax = 50;\/\/nombre de donn\u00e9es<br \/>for (int v = 0; v &lt; 5; v++) {<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 boolean niveau = LOW;<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 for (int i = 0; i &lt; imax; i++) {<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(rfTransmitPin, niveau);<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 delayMicroseconds(veilleuseOff[i] * 10);\/\/10 dur\u00e9e entre 2 \u00e9chantillons<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 niveau = !niveau;<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<br \/>\u00a0}<br \/>\u00a0}<br \/><br \/>.<\/pre>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp; J&rsquo;avais essay\u00e9 il y a d\u00e9j\u00e0 longtemps les \u00e9metteurs et le r\u00e9cepteurs RF433 des sites chinois avec l\u2019Arduino , et j&rsquo;avais \u00e9t\u00e9 enthousiasm\u00e9 par la facilit\u00e9 de cloner les t\u00e9l\u00e9commandes bon march\u00e9 eu utilisant la libraire RC-Switch&#8230; par exemple &hellip; <a href=\"http:\/\/daniel974.fr\/wordpress1\/2019\/07\/28\/sniffer-rf433-mhz-et-telecommandes-433mhz-a-finir\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/posts\/182"}],"collection":[{"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/comments?post=182"}],"version-history":[{"count":57,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/posts\/182\/revisions"}],"predecessor-version":[{"id":342,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/posts\/182\/revisions\/342"}],"wp:attachment":[{"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/media?parent=182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/categories?post=182"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/tags?post=182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}