WikiElectronique

Wiki sur l'électronique et l'informatique

Outils pour utilisateurs

Outils du site


transmission_433mhz

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
transmission_433mhz [2018/04/30 09:30] – [Installation] 88.164.131.165transmission_433mhz [2018/05/01 16:21] (Version actuelle) – [Si4432] 88.164.131.165
Ligne 8: Ligne 8:
 {{::si4432_.jpg?200|}} {{::si4432_.jpg?200|}}
  
 +==== Schema Arduino ====
  
 +{{::si4432_arduino.jpg?direct}}
 +
 +[[https://www.amazon.fr/gp/product/B077P28RVW/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1|Carte Arduino Uno 3.3V]]
 ==== Introduction ==== ==== Introduction ====
 Il s'agit d'un module RF paramétrable qui peut être utilisé pour différent types de protocoles de communication.  Il s'agit d'un module RF paramétrable qui peut être utilisé pour différent types de protocoles de communication. 
Ligne 51: Ligne 55:
   * Dans configuration, sélectionner Generique RTL2832U OEM   * Dans configuration, sélectionner Generique RTL2832U OEM
  
-{{::configsdrsharp.png?400|}}+{{::configsdrsharp.png?600}}
  
   * Cliquer sur le bouton play   * Cliquer sur le bouton play
Ligne 57: Ligne 61:
 Exemple d'appui sur le bouton de la télécommande de mon portail  Exemple d'appui sur le bouton de la télécommande de mon portail 
  
-{{::sdrsharp_433.jpg?400|}}+{{::sdrsharp_433.jpg?direct}}
  
   * Enregistrement des données transmises par la télécommande   * Enregistrement des données transmises par la télécommande
Ligne 68: Ligne 72:
 SDRSharp va créer un fichier audio dans son répertoire :  SDRSharp va créer un fichier audio dans son répertoire : 
  
-{{::sdrsharp_record_file.png?200|}}+{{::sdrsharp_record_file.png?direct}} 
 + 
 +Il est possible d'ouvrir ce fichier avec [[https://www.audacityteam.org/|Audacity]] ou [[https://fr.wavosaur.com/|Wavosaur]] que je préfère et qui permet de facilement mesurer les temps des différents états de la trame. 
 + 
 +  * Ouvrir le fichier avec Wavosaur 
 + 
 +Trames reçues : 
 +{{::wavosaur_trames.png?direct|}} 
 + 
 +Détail d'une trame : 
 +{{::wavosaur_trame.png?direct|}} 
 + 
 +Décodage d'une trame OOK : 
 +{{::wavosaur_trame_binaire.png?direct|}} 
 + 
 +Mesure des temps : 
 + 
 +Sélectionner la partie de trame à mesurer puis faire un clic droit et propriétés. 
 +Wavosaur indique que la fréquence échantillonnage est de 2 400 000 Hz et que 3253 échantillons sont sélectionnés. La période est donc de 1/2400000*3253 = 1.355ms 
 + 
 +{{::wavosaur_mesure_temps.png?direct|}} 
 + 
 +===== Reproduction du code ===== 
 + 
 +Une fois que le code lu, vous pouvez utiliser le code ci dessous pour le revoyer facilement vers un transmetteur 433Mhz. 
 + 
 +Indiquer les temps en micro seconde à l'état haut et l'état bas quand un bit est à '1' ou '0' 
 +<code csharp> 
 +unsigned int TimeHighLevelHigh = 1088; 
 +unsigned int TimeLowLevelHigh = 272; 
 +unsigned int TimeHighLevelLow = 408; 
 +unsigned int TimeLowLevelLow = 952; 
 +</code> 
 + 
 +<code csharp |main.ino> 
 +#include "RfManager.h" 
 + 
 +RfManager rfManager = RfManager(); 
 + 
 +unsigned char code[] = { 1,0,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0}; //Code bouton 
 + 
 +void setup() { 
 + 
 + rfManager.setTransmitPin(4); 
 +
 + 
 +void loop() { 
 +  
 + if (digitalRead(6) == 0) 
 +
 + rfManager.send(code, sizeof(code)); 
 + //Attend 10 ms 
 + delay(10); 
 +
 +
 + 
 +</code> 
 + 
 +<code csharp |RfManager.cpp> 
 +#include "RfManager.h" 
 + 
 +unsigned char TransmitPin = 0; 
 + 
 +unsigned int TimeHighLevelHigh = 1088; 
 +unsigned int TimeLowLevelHigh = 272; 
 +unsigned int TimeHighLevelLow = 408; 
 +unsigned int TimeLowLevelLow = 952; 
 + 
 +RfManager::RfManager() { 
 + 
 +
 + 
 +void RfManager::send(unsigned char* code, unsigned int length) 
 +
 + for (int i = 0; i <length; i++) { 
 + if (code[i] == 1) 
 + transmit(1); 
 + else 
 + transmit(0); 
 +
 +
 + 
 +void RfManager::setTransmitPin(unsigned char pin) 
 +
 + TransmitPin = pin; 
 + pinMode(TransmitPin, OUTPUT); 
 +
 + 
 +void RfManager::transmit(unsigned char bit) { 
 + 
 + if (bit == 1) 
 +
 + digitalWrite(TransmitPin, 1); 
 + delayMicroseconds(TimeHighLevelHigh); 
 + digitalWrite(TransmitPin, 0); 
 + delayMicroseconds(TimeLowLevelHigh); 
 +
 + else 
 +
 + digitalWrite(TransmitPin, 1); 
 + delayMicroseconds(TimeHighLevelLow); 
 + digitalWrite(TransmitPin, 0); 
 + delayMicroseconds(TimeLowLevelLow); 
 +
 +
 +</code> 
 + 
 +<code csharp |RfManager.h> 
 +#ifndef _RfManager_h 
 +#define _RfManager_h 
 + 
 +#if defined(ARDUINO) && ARDUINO >= 100 
 +#include "Arduino.h" 
 +#endif 
 + 
 +#include <stdint.h> 
 + 
 +class RfManager { 
 + 
 +public: 
 + RfManager(); 
 + void send(unsigned char* code, unsigned int length); 
 + void setTransmitPin(unsigned char pin); 
 + 
 +private: 
 + void transmit(unsigned char bit); 
 +}; 
 + 
 +#endif 
 +</code> 
 + 
 +Résultat sur la sortie de l'Arduino :  
 + 
 +{{::capture2.png?direct|}}
  
-Il est possible d'ouvrir ce fichier avec [[https://www.audacityteam.org/|Audacity]] ou [[https://fr.wavosaur.com/|Wavosaur]] que je préférè et qui permet de facilement mesurer les temps des différents états de la trame. 
transmission_433mhz.txt · Dernière modification : 2018/05/01 16:21 de 88.164.131.165

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki