Anthias
mail
3 connectés     # # #

nextion

Module de communication UHF

HC 12

(Brouillon en cours de rédaction)


Présentation du HC12
Trois caractères seulement
Le <padding>, petite curiosité
Les tests d'antennes
L’antenne
Balise et champmètre
Conclusion
Annexe : Contenu du Pack_HC12

Maj : 23/09/15

Abstract :
The HC12 module is a common and inexpensive small board with a UHF radio link that enables easy communication between microcontroller boards using a serial link with RX and TX at 9600 bauds. It is a simple way to exchange data packets.

Résumé :
Le module HC12est une carte peu coûteuse et courante dotée d'une liaison radio en UHF, permettant une communication aisée entre des cartes à microcontrôleur via une liaison série RX et TX à 9600 bauds. Cette solution simple permet l'échange de paquets de données de manière efficace.

nextion  Présentation du HC12

Le ESP32 possède WiFi et Bluetooth en 2.4 GHz, mais si l’on veut faire communiquer un Arduino quelconque, un vieux UNO, un excellent STM32, etc.., qui ne possèdent pas de 2.4 GHz, il faut rajouter un module de communication.
La page Balise radio pour système domotique bezier montre les choix possibles, cette page est consacrée au HC12 qui travaille en UHF vers 433 MHz.
Particularités
 + Bidirectionnel 9600 bauds
 + Nombreux canaux possibles (une centaine)
 + Faible coût (15 € les 5 en Chine)
 + Puissance réglable
 + Grande portée et très fiable
 - Consommation élevée pour des balises autonomes à grande autonomie, c'est un gros problème.

Haut de page

nextion Echange de données

Le pack logiciel <HC12> comprend aussi le programme basique simpliste que vous trouverez copié-collé partout, il n’est pas original mais vous permet de faire un premier test immédiat pour voir que vos deux HC12 se parlent via le clavier. S’ils sont à petite distance, pendant ce test, il est inutile de souder les antennes pour le moment.


Le but de l’installation des émetteurs récepteurs est de pouvoir échanger des paquets de données.
Par exemple diverses balises vont envoyer chacune, son nom, température, pression, humidité, tension de la batterie, compteurs, checksum, etc.., vers un maître qui centralise tout et exploite les données. Ces données sont de tous les formats possibles mélangés et centralisées dans un seul paquet, c'est une <structure>.

L’émetteur et le récepteur connaissent le format de la structure commune et se comprennent.

struct Data
{
char ch;  // texte de taille variable
float sensor1; // flottant de 4 bytes
uint16_t sensor2; // integer de 2 bytes
uint8_t count ; // 1 byte
bool state ; // booleen de 1 byte
}payload;

Haut de page

nextion Trois caractères seulement, petite curiosité

Comme tout le monde, lors de mes premiers tests des HC12, j’ai utilisé le programme minimaliste en mode console. Ce que l’on tape dans une fenêtre ressort sur l’autre.
Surprise, seuls les trois premiers caractères passaient !
Par habitude, j’avais initialisé : Serial.begin(115200),  alors que l’exemple donnait 9600… Testez diverses vitesses, c’est amusant!

Haut de page

nextion Le <padding>, autre curiosité

Dans l'exemple de structure précédent, supposons que le texte contient 7 caractères. Nous calculons donc une longueur de trame de 7 + 4 + 2 + 1 + 1, soit 15 bytes.
Notre paquet devrait donc faire 15 caractères, n'est-ce pas ? Vérifions cela en utilisant la commande Serial.print de sizeof(Data).
Cependant, il s'avère que la taille réelle est plus grande que notre estimation, et cela dépend des microcontrôleurs utilisés. Vous n'obtiendrez pas le même résultat avec un Uno et un ESP32 car ils affectent des longueurs différentes aux variables.
Le compilateur aligne les structures sur des multiples de la plus grande variable, entre autres choses. C'est pourquoi si un Uno émet vers un ESP32, cela provoquera un plantage. Pour que cela fonctionne, il faut ajouter des bytes inutiles pour aligner les deux, ce qui est appelé le padding. Le padding peut être une source de bugs si l'on ne fait pas attention.

Le programme <DataSize.ino> dans le pack, montre le nombre de bytes suivant les microcontrôleurs. Tableau résumé :

  ESP32 UNO
int 4 2
word 4 2
double 8 4

Haut de page

nextion La consommation d'énergie

Quand le HC12 est utilisé dans une balise autonome alimentée par un petit accumulateur, la consommation est primordiale. C’est le problème de ce composant.
Dès que la trame a été envoyée, il est mis en mode sommeil, mais le réveil est long et pendant tout ce temps le microcontrôleur reste à pleine consommation.
Détail du bilan énergétique :

à compléter

Haut de page

nextion L’antenne

Le module est fourni avec une petite antenne ressort sans plan de masse, qui s'avère inefficace comme nous le verrons plus loin. Si vous recherchez des performances optimales, il est préférable d'utiliser une antenne bien accordée et de la déporter au bout d'un petit câble coaxial avec un plan de masse (plaque, 4 fils en parapluie - montage classique ground-plane).
Il est possible d'acheter le petit câble de 26 cm avec une prise MMX délicate côté HC12 et une SMA de l'autre, mais attention, le sexe de la SMA est inversé selon les normes Wi-Fi. Il existe un adaptateur de manchon (Adaptateur RP SMA mâle - SMA femelle x 2 = 5.65€ sur Amazon), mais le plus simple est de souder directement un petit câble coaxial de 50 Ohms sur la platine en direction de l'antenne.

Si vous souhaitez comprendre le fonctionnement d'une antenne sans avoir à étudier sa théorie complexe, vous pouvez utiliser un simulateur d'antenne tel que MMANA-GAL. Cet outil est simple, gratuit, facile à prendre en main et permet de simuler une antenne avec une grande précision (liens en page NanoVNA :  ).

Le diagramme de rayonnement d'une antenne est très important, car l'énergie est répartie de manière très différente selon la géométrie choisie. Pour simplifier, on peut comparer cela à un phare qui concentre l'énergie d'une petite lampe dans un faisceau fin et puissant grâce à une lentille de Fresnel. Un simple brin d'antenne est omnidirectionnel, tandis que les antennes multi-éléments sont directives.

Lorsque l'on construit une antenne, le passage du prototype à l'analyseur de spectre (voir SignalHound  ) ou de réseau vectoriel (voir NanoVNA :  ) montre les multiples choix possibles en fonction de la disposition du plan de masse, de la polarisation (horizontale, verticale, circulaire...) et de la géométrie choisie. En plus de la raie calculée, de nombreuses autres apparaissent liées aux divers modes de résonance, et le rapport d'ondes stationnaires (ROS) est souvent décevant...

Si l'antenne est très pointue, elle résonnera sur la fréquence souhaitée, mais le moindre glissement de fréquence réduira considérablement son rendement. Si la géométrie de l'antenne privilégie une large bande passante, le gain sera faible. Un fil sera à bande étroite, la bande s'élargissant avec l'élargissement de la largeur de l'antenne. Pendant les mesures, la proximité d'objets (comme la main) entraînera des modifications profondes des courbes.

Haut de page

nextion Le matériel utilisé

Deux matériels complémentaires ont été utilisés

L'analyseur scalaire SignalHound Voir sa page :

Le SignalHound TGA124A est le générateur de tracking  12.4 GHz. Il attaque un double inverseur coaxial 18 GHz pour configurer le coupleur directif en direct ou inverse.
La prise de mesure du coupleur est reliée à l’analyseur de spectre 12.4 GHz SignalHound, SA124B.
L’autre borne en sortie du double inverseur passe par un aiguillage coaxial 18 GHz à 4 voies pour tester les dispositifs.
Une voie est dédiée à une charge ouverte, l’autre à une charge parfaite 50 Ohms pour les étalonnages rapides, les deux autres pour les antennes à tester.

L'analyseur de réseau vectoriel NanoVNA F-V2 Voir sa page :
Il est limité à 3 GHz, mais il coute 40 fois moins cher que le SignalHound ce qui en fait un remarquable rapport Performances/Prix.

Haut de page

nextion Les tests d'antennes pour HC12

Les explications des courbes sont données dans la page de l'analyseur de réseau vectoriel NanoVNA F-V2  , à consulter pour plus de détails sur les mesures.

Antenne ressort courte du HC12

En enroulant une antenne quart d’onde sous forme de ressort, la fréquence baissera ; le diamètre et l’espacement des spires jouent aussi, il faudra partir d’une longueur de fil double pour arriver à l’accord voulu. La forme ressort sert simplement à diminuer l’encombrement
J’ai reçu deux versions pour le HC12, mais il doit en exister d’autres, c’est du grand n’importe quoi !

La version courte résonne sur 490 MHz

Antenne ressort longue du HC12

La version longue résonne sur 363 MHz. Cela tombe dans une plage utilisée en Asie pour les télécommandes mais n’a rien à voir avec notre bande UHF.

Chaque HC12, est livré avec une antenne ressort centrée au hasard et sans plan de masse, donc le rendement sera très mauvais. Il faut toutefois nuancer, il n’y a pas de plan de masse structuré stricto sensu, mais le circuit du HC10, la batterie ou le câble d’alimentation constituent un palliatif de contrepoids difficile à caractériser et dépendant de la position de l’antenne, axiale ou perpendiculaire à la plaque. La simple mesure de la fréquence de résonance du ressort n’est qu’un des éléments.

Il vaudra mieux utiliser ces simples bouts de fil pour augmenter très sensiblement la portée !!

 Haut de page

nextion Balise et champmètre

Ensemble de deux programmes communiquant par HC12 :

Balise fixe en émission
Une carte en position fixe émet une trame toutes les 3 secondes à puissance variable comme ceci :


Champmètre mobile en réception
Une autre carte alimentée pas batterie est utilisée en champmètre, elle écoute les trames de la balise et les affiche sur un LCD 4*20.
En s’éloignant de l’émetteur on commencera à perdre la ligne 1, puis la 2, Cela permet de cartographier les zones de portée et de tester l'efficacité des antennes.

"1    -1dBm   (0.8mW)",
"2     2dBm   (1.6mW)",
"3     5dBm   (3.2mw)",
"4     8dBm   (6.3mW)",
"5    11dBm    (12mW)",
"6    14dBm    (25mW)",
"7    17dBm    (50mW)",
"8    20dBm   (100mW)"

Haut de page

nextion  Conclusion

Cette page veut rester simple. Il existe de nombreux documents sur le Net, à creuser si le sujet vous intéresse.

N’hésitez pas à m’envoyer vos remarques sur le fond (parties à compléter ou à modifier), et sur la forme (fautes de frappe…).

(Brouillon en cours de rédaction)

Haut de page

nextion  Annexe : Contenu du Pack_HC12

Classe de base
 Classe d'utilitaires <C_HC12> à venir...

Fichiers ino
 Basique : Programme simpliste pour communiquer au clavier
 Balise : Ensemble de deux programmes : Balise fixe + Champmètre mobile pour tester les portées.
 DataSize.ino : Donne le nombre de bytes suivant les microcontrôleurs

L’ensemble des outils,
est disponible ici dans le <Pack_HC12> :
zip

Mise à jour 230417

Haut de page

© Christian Couderc 1999-2024     Toute reproduction interdite sans mon autorisation


* Page vue   4081   fois       IP : 44.200.86.95

 Haut de page         Dernière retouche le 15 Septembre 2023 à 18 h         Retour page précédente

   Collector