J'ai un problème avec 2 transceivers HC-12 que je viens d'avoir.
Je souhaite les utiliser pour faire communiquer un Arduino Nano avec un RPI (le RPI dans la maison et la nano au fond du jardin à environ 25m de la maison).
Jusque là j'utilise des modules FS1000a en émission et RBX6 en réception (que j'avais déjà changé en remplacement de modules chinois pas cher mais pas terrible). Ma solution fonctionne depuis plusieurs mois avec ces modules sauf que j'ai remarqué que depuis que les jours ont rafraîchit, le signal ne passe pas du RPI vers le Nano le matin lorsqu'il y a de la rosée !? Dès que la température est montée un peu le signal repasse. Dans l'autre sens Nano => RPI pas de soucis). L’humidité ambiante joue tant que ça sur les ondes (je n'y connais rien en radio) ?
Sur ce, en parcourant les forums j'ai vu que bcp préconisent le HC12 pour sa qualité et sa portée annoncée (jusqu'à 1800 m en champs libre !!). Du coup je me suis acheté 2 HC12 pour remplacer ma solution existante.
Et là catastrophe :-/ Premier tests, j'arrive difficilement à une portée de 10m du RPI vers le Nano, et 2m dans l'autre sens. Et je suis en mode de transmission FU4 (distance ultra-longue) sinon aucun signal à moins de quelques cm !!
Comment est-ce possible ? Ok mes premiers tests je les fais avec les petites antennes fournies mais quand même, je m'attendais à bcp mieux ! Pour ma solution FS1000a/RBX6 j'utilise des fils de 17 cm, pas d'antenne spéciale, et ça porte jusqu'au fond du jardin.
Est-il possible qu'un module HC12 soit défectueux ? Si c'était le cas, je n'arriverais pas à les faire discuter proches l'un de l'autre ?
Bien que la datasheet que j'ai trouvée ne le mentionne pas, certains disent d'ajouter une capa entre le VCC et le GND du module HC12. Ce que j'ai fait (1000uF) mais ça ne change rien.
J'ai testé avec en remplaçant le Nano par un UNO : là j'ai un signal à quelques cm seulement en mode FU4 :-/
Je suis perdu, et un peu dégouté de mon achat à vrai dire.
Souvent quand les modules sont proches il faut baisser la puissance d'émission pour que ça se passe bien. il faut bien soigner l'alimentation et l'antenne
jfr:
Bien que la datasheet que j'ai trouvée ne le mentionne pas, certains disent d'ajouter une capa entre le VCC et le GND du module HC12. Ce que j'ai fait (1000uF) mais ça ne change rien.
Bonjour
Les HC12 sont très sensibles à la qualité de l'alim.
faire déjà un test en alimentant les HC12 avec un 5V externe dédié (I.e un power bank)
accessoirement pour ceux qui souhaitent "jouer" +/- regulierement avec l'UHF
je conseille d'acquerir un recepteur SDR genre çà
çà permet de "voir" ce qui passe autour
J’ai essayé avec le 5v fourni par l’arduino Et l’alimentation fournie par le port usb de mon pc, puis avec une alim 12v pour l’arduino, cela n’a rien changé.
J’ai essayé de passer par un gros hub usb alimenté pareil.
Sur interne je vois que bcp arrivent à le faire fonctionner sur le port usb du pc pour commencer sans problème.
J’ai un 7805 sous la main, quels condos il faut mettre avec, on trouve de tout sur internet.
J'ai essayé avec une alim faite avec un montage à base de 7805 bien stabilisée à 5,002V dédiée au HC-12, l'arduino restant alimenté par le port USB connecté au PC, mais aucune différence.
Au repos je vois passer 15,9mA pour l'alim du HC-12 seule en mode FU4, ce qui correspond à la datasheet (ils annoncent 16mA), et 18,4mA lors d'une émission. (là on est loin de ce qui est annoncé => "jusqu'à 100mA"). Essayé avec les 2 modules et j'ai la même chose, donc je suppose que ça doit être normal ?
J-M-L:
Souvent quand les modules sont proches il faut baisser la puissance d'émission pour que ça se passe bien. il faut bien soigner l'alimentation et l'antenne
As-tu essayé avec une distance vraiment importante ?
Perso j'utilise un Aurel 433.920 MHz RTX-MID-5V sur ma domotique pour piloter des prises connectées du commerce et ça passe à travers des murs de pierre de 60cm à plus de 10m à l'aise.
Sur le 5V du module radio, il y a juste un petit condensateur de 100nF.
Un condensateur de 1000uF n'apporte rien en impulsionnel. Pour un découplage optimal Il vaut mieux coupler plusieurs condensateurs : 47µF chimique + 100nF film + 100pF céramique, au plus près du module.
Mais je doute que ton problème vienne de là.
hbachetti je suis d'accord pour la puissance VS distance mais là les modules communiquent dans un sens jusqu'à 10m de distance dans un sens et à moins de 2m dans l'autre :-/ Je perds tout signal au-delà. Et c'est en mode puissance d'émission maxi et sensibilité en réception maxi (débit mini 1200 bds).
Pareil j’ai essayé toutes les valeurs d’emission de -01db à +20db, toujours pareil, il y a un sens où ça passe et l’autre où je n’ai rien. Aléatoirement (peut-être une fois sur 150 et encore je suis gentil) ça passe. C’est ça le pire.
Pour le moment je suis dans la phase dev, donc j'envoie les msg manuellement (au clavier) chacun son tour, un coup depuis le RPI, un coup depuis l'arduino.
Ca discute dans les 2 sens à moins de 3m, et au-delà ça ne passe que dans un seul sens.
J'ai essayé toutes les gammes de puissance (AT-P1 (-01db) => AT-P8 (+20db)) ça ne change rien.
J'ai essayé plusieurs Channel différents, même combat.
Je viens de me souvenir que j'avais une vieille radio (Kenwood TH-G71) qui sait capter sur les fréquences de la bande 433MHz, et en la mettant sur la même fréquence que le channel choisi, j'entends lorsque les HC-12 émettent ! Et j'entends bien les 2 HC-12 dans tous les cas, je suis donc sûr qu'ils émettent. J'ai essayé de l'éloigner à l'autre bout de la maison elle reçoit toujours. Je pense que ce genre de matériel est très sensible. Je n'entends les HC-12 discuter avec cette radio qu'en mode longue distance (FU4) car l'émission est alors d'environ 1 sec selon la datasheet, ce qui laisse le temps à la radio de "déclencher". Dans les autres modes je n'entends rien à la radio, mais ça ne veut pas dire que le signal ne passe pas, il est juste beaucoup trop court pour être reçu par cette radio. J'en conclue donc que le problème viendrait plutôt de la partie réception du HC-12 mais pas sûr.
J'utilise SoftwareSerial sur l'Arduino, j'ai besoin du hardware pour discuter avec l'IDE Arduino pour le debug pour le moment. Ca peut jouer ?
SoftwareSerial n'est pas super robuste surtout si vous faites autre chose qui dépend des interruptions.
êtes vous à 9600 bauds ou plus rapide?
pouvez vous partager le code que vous utilisez ? avez vous 2 arduinos et pouvez vous tester avec 2 arduinos un code genre "ping pong" (et si vous avez un MEGA, prenez du hardware serial)
Je suis en 1200 bauds, vu que c'est la vitesse imposée pour être en mode longue distance FU4.
J'ai testé en classique 9600, en 4800, dans les modes FU1, FU2 et FU3. PAs mieux.
Le code est le plus simple qui soit, trouvé sur internet pour le moment. Je ne gère aucune interruption matérielle qui puisse interférer :
/* Arduino Long Range Wireless Communication using HC-12
Example 01
by Dejan Nedelkovski, www.HowToMechatronics.com
*/
#include <SoftwareSerial.h>
SoftwareSerial HC12(3, 13); // HC-12 TX Pin, HC-12 RX Pin
void setup() {
Serial.begin(1200); // Serial port to computer
HC12.begin(1200); // Serial port to HC12
Serial.println("Ready");
}
void loop() {
while (HC12.available()) { // If HC-12 has data
Serial.write(HC12.read()); // Send the data to Serial monitor
}
while (Serial.available()) { // If Serial monitor has data
HC12.write(Serial.read()); // Send that data to HC-12
}
}
Je vais essayer avec 2 arduinos. J'ai 2 Nano et un Uno sous la main, mais pas de Méga. Bonne idée, merci
la pin13 est sur la LED interne, éventuellement prenez une autre pin juste par acquis de conscience.
vous êtes sûr que votre module supporte le 5V sur Rx ?
essayez avec 2 arduino et ce code, ça permettra a moins d'éliminer une variable côté RPI