Home / Tutoriels / Arduino / Comment utiliser le module sans fil HC-12 avec Arduino?

Comment utiliser le module sans fil HC-12 avec Arduino?

Vous venez d’acheter un module HC-12 chez YoupiLab. Merci pour votre fidélité.

HC-12 pour communiquer sur de longue distance.

Les points à développer :

  • HC-12 c’est quoi ?
  • Câblage avec Arduino
  • Simple code pour tester

HC-12 c’est quoi ?

Le HC-12 est un module de communication série sans fil semi-duplex avec 100 canaux dans la gamme 433,4-473,0 MHz, capable de transmettre jusqu’à 1 km.

Le HC-12 est un émetteur semi-duplex de 20 dBm (100 mW) couplé à un récepteur dont la sensibilité est de -117 dBm (2 × 10-15 W) à 5000 bps. Jumelés à une antenne externe, ces émetteurs-récepteurs sont capables de communiquer jusqu’à un kilomètre à l’air libre, voire un peu plus, et sont plus que suffisants pour assurer une couverture dans toute la maison.

La carte de circuit imprimé HC-12 est construite autour du microcontrôleur STM8S003F3 et de l‘émetteur-récepteur Si4463. Le Si4463 fournit la communication sans fil dans ce circuit. Il a une puissance d’émission maximale de 20 dBm (100 mW) et une sensibilité de réception de -129 dBm. Deux mémoires Rx et Tx FIFO de 64 octets sont intégrées à la puce, ainsi qu’un grand nombre de fonctions avancées qui ne sont pas implémentées dans la conception HC-12. Voir la fiche technique pour plus d’informations sur le fonctionnement multibandes, le saut de fréquence, etc. Le microcontrôleur STM8S003FS C’est un microcontrôleur de 8 bits avec 8 Ko de mémoire flash, 128 octets d’EEPROM et un ADC 10 bits. Il prend en charge UART, SPI et I²C et possède plusieurs broches d’E / S. Il offre plusieurs des mêmes capacités que ses homologues ATMega et XMC. Il est programmé pour contrôler le Si4463 et gérer la communication UART entre le HC-12 et tout ce qui est connecté à l’autre extrémité.  Le module émetteur-récepteur HC-12 Combiné avec d’autres composants, le Si4463 et le STM8S003 créent l’émetteur-récepteur HC-12, qui fournit une interface UART à 4 broches de type TTL (Vcc, Gnd, Tx, Rx), avec une 5ème broche utilisée en mode « commande » pour changer la configuration du module. Le HC-12 dispose de 100 canaux pris en charge espacés de 400 kHz, de huit niveaux de transmission, de huit vitesses de transmission en charge et de trois modes de fonctionnement différents.

La 5ème broche sur le HC-12 est étiquetée "Set" et, lorsqu'elle est réduite à la logique, permet de sélectionner différents réglages sur le HC-12 en utilisant les commandes AT envoyées à la broche "RXD".
La configuration par défaut du HC-12 est FU3 sur le canal 1, FU3 est un réglage entièrement automatique et transparent (pour les autres appareils) qui s'adapte au débit de transmission du périphérique connecté (bien que 9600 bauds soient encore nécessaires pour le programmer) mode).
Notez que lorsque la vitesse de transmission augmente, la sensibilité du récepteur diminue. Vous pouvez revenir à l'état par défaut en envoyant AT + DEFAULT une fois en mode commande.
Baud Rate du port Vitesse de transmission en direct  Sensibilité du récepteur 
1200 bps 5000 bps -117 dBm
2400 bps 5000 bps -117 dBm
4800 bps 15000 bps -112 dBm
9600 bps 15000 bps -112 dBm
19200 bps 58000 bps -107 dBm
38400 bps 58000 bps -107 dBm
57600 bps 236000 bps -100 dBm
115200 bps 236000 bps -100 dBm

Dans « Programme d’envoi / réception HC12 « , les HC-12 sont utilisés dans leur état par défaut (FU3: transmission 20mW, 9600bps, canal 001) pour créer un pont sans fil entre les ports série de deux ordinateurs. Les émetteurs-récepteurs doivent être physiquement séparés d’au moins 1,5 mètre pour fonctionner.

Ce programme permettra l’envoi de messages entre deux ordinateurs via les émetteurs HC-12. Le texte tapé sur un ordinateur sera affiché sur le moniteur série du second ordinateur.

Câblage avec Arduino

Commencez par connecter les émetteurs-récepteurs HC-12 à chaque Arduino:

Connectez la broche HC-12 « Set » à la broche Arduino 6

Connectez la broche HC-12 « RXD » à la broche Arduino 4

Connectez la broche HC-12 « TXD » à la broche Arduino 5

Selon la fiche technique, connecter un condensateur de réservoir de 22 μF à 1 mF en parallèle avec les broches HC-12 « Gnd » et « Vcc »

Connectez HC-12 « Gnd » et « Vcc » à une source de 3,2 V à 5,5 V 200 mA. Selon la fiche technique, si vous alimentez le HC-12 avec plus de 4,5 V, placez une diode 1N4007 en série avec la broche HC-12 « Vcc »

Le simple code pour tester

Téléchargez le code suivant et ouvrez le moniteur du port série dans l’IDE Arduino pour envoyer / recevoir des messages.

Les fonctions « * .available () » lisent le nombre d’octets stockés dans les tampons FIFO Serial ou SoftwareSerial de l’Arduino. Tant qu’il y a une valeur non nulle retournée par « * .available () », la fonction « * .read () » extrait un octet du tampon et la fonction « * .write () » envoie cet octet à l’autre port série à lire par l’ordinateur ou le HC-12.

L’Arduino UART dispose d’un tampon de réception de 64 octets intégré au matériel, de sorte que tous les octets de données dépassant la limite de 64 octets seront supprimés. La série logicielle dispose également d’un tampon de 64 octets; cependant, la bibliothèque SoftwareSerial peut être modifiée pour l’augmenter, si nécessaire.

NB : Software

Windows10

Arduino 1.6.9

/* HC12 envoi/réception  */ 

#include <SoftwareSerial.h> 

const byte HC12RxdPin = 4;                 

const byte HC12TxdPin = 5;                   

SoftwareSerial HC12(HC12TxdPin,HC12RxdPin);

 void setup() { 

Serial.begin(9600);                      

HC12.begin(9600);                   

} 

void loop() { 

if(HC12.available()){                         

Serial.write(HC12.read());             

} 

if(Serial.available()){                  

HC12.write(Serial.read());   

}

}

Merci pour votre attention !

About nonfonjuniorm_lf80ckk1

Check Also

Le régulateur LM317

Vous venez de prendre un régulateur LM317 chez YoupiLab. Merci pour votre fidélité. Voici le …

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *