HC12 ne répond pas à la commande AT

Bonjour,
J'ai acheté deux HC-12 originaux. ! Les deux précédents étaient des clones et ne fonctionnaient apparemment pas.
J'ai voulu connecter mon premier HC-12 (voir photo) pour une première communication avec la commande AT. Cette commande sur le moniteur ne me renvoie pas le "OK" attendu.
Le module branché sur un arduino UNO est alimenté en 4.9V et reçoit 4.2V après la diode 4N4001 de protection.
Voici le code : `

#include <SoftwareSerial.h>
//#include <AltSoftSerial.h>

#define rxPin 5
#define txPin 6
#define pinSet 7

SoftwareSerial HC12(rxPin , txPin);
//AltSoftSerial HC12(rxPin , txPin); // Configuration des broches TX et RX

void setup() 
{
  Serial.begin(9600);   // Communication série avec l'ordinateur
  HC12.begin(9600);   
  pinMode(pinSet, OUTPUT);
  digitalWrite(pinSet, LOW);
//  //Passage du module sur le canal 1, en 9600bps et à 20dBm
//  HC12.print(F("AT+DEFAULT"));
//  delay(100);
}

void loop()
{
  while(Serial.available())
  {
    HC12.write(Serial.read());
  }
  while(HC12.available())
  {
    Serial.write(HC12.read());
  }
}

Merci pour votre aide.

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

on n'a pas la photo

bien que 9600 est le débit par défaut, essayez aussi d'autres valeurs comme 4800, 1200, 2400, 19200, 38400, 57600, 115200

4.2V c'est peut être un peu bas pour un module qui attend 5V ?

Bonjour,
Merci J-M-L pour votre réponse.
Je suis allé sur le Net pour bien des vidéos, des datasheets et de nombreux essais. J'ai changé de planche à pain, changé le choix des pins. Le baud rate semble être utilisé par défaut effectivement et j'utilise donc les 9600 bauds au départ.
Je souhaite pouvoir communiquer avec le module (et ses commandes AT) avant toute programmation de projets.

Par ailleurs, en utilisant le code suivant, l'émetteur envoie bien le message mais le récepteur n'affiche aucune réponse.

//#include <SoftwareSerial.h>
#include <AltSoftSerial.h>

String msg;
String RxChar;
int rxPin = 5;
int txPin = 6;
int setPin = 7;
//SoftwareSerial hc12(rxPin , txPin);
AltSoftSerial hc12(rxPin , txPin);

void setup() 
{
  pinMode(setPin,OUTPUT);
  // passage en mode commande
  digitalWrite(setPin,LOW);     // HC12 mis en mode commande
  Serial.begin(9600);
  hc12.begin(9600);
  // Passage du module sur le canal 1, en 9600bps et à 20dBm
  hc12.print(F("AT+DEFAULT"));
  // Délais pour que le module traite la commande 
  delay(100);
  // passage en mode transparent
  digitalWrite(setPin,HIGH);    // HC12 mis en mode transparent
}

void loop() 
{
  if(Serial.available())
  {
    msg = Serial.readString();
    Serial.print(F("SND : "));
    Serial.println(msg);
    hc12.print(msg);
  }
  if(hc12.available())
  {
    RxChar = hc12.read();
    Serial.print(F("RCV : "));
    //Serial.println(hc12.readString());
    Serial.println(RxChar);
    //hc12.print(RxChar);
  }
}

Cela fait bien des jours que je me casse les dents là-dessus. J'essaierai avec un ESP8285...

Merci beaucoup pour vos avis.

postez un détail du montage - alimentez le module avec 5V s'il est prévu pour 5V et vérifier que le GND est bien connecté

Bonjour J-M-L,
Désolé de faire durer !
Je suis toujours dans les essais : changement de carte (ESP8285), chargement de l'IDE arduino V2.3.2, changements de ports, bascule sur VSCode... Il me faut déjà parvenir à pouvoir téléverser le code sur l'ESP8285...

Je vais essayer de passer au forum Français.
Voici le montage réalisé

Merci pour votre aimable disponibilité.

A suivre.

vous n'êtes pas soudé sur le HC12, juste des pinces de mesure ?

image

ce n'est peut-être pas un contact de qualité suffisante

Si vous ne voulez pas directement souder les fils entre votre ESP et le HC-12, soudez un header sur le HC-12, mettez le dans une breadboard et emmener les fils Dupont entre votre ESP et le HC-12

Bonjour J-M-L,
Après bien des essais, j'ai enfin trouvé l'origine du problème.
J'alimente effectivement le module avec les micros pinces ("Dupont" ?). J'ai vérifié que le module est bien alimenté et affiche les 3V sur le composant des modules originaux
image

J'ai déclaré la carte ESP8285 en ESP8266 et c'est en supprimant les lignes
// //Passage du module sur le canal 1, en 9600bps et à 20dBm
//HC12.print(F("AT+DEFAULT"));
que j'ai ENFIIIINNNN obtenu la réponse à la commande "AT+RX" !

image

Code programme

//// *****************Essai commande "AT" reconnue *********************
#include <Arduino.h>
#include <SoftwareSerial.h>
//#include <AltSoftSerial.h>    //Pas avec le ESP8266 !

#define rxPin 4
#define txPin 5
#define pinSet 12

SoftwareSerial HC12(rxPin , txPin);
//AltSoftSerial HC12(rxPin , txPin); // Configuration des broches TX et RX

void setup() 
{
  Serial.begin(9600);   // Communication série avec l'ordinateur
  HC12.begin(9600);   
  pinMode(pinSet, OUTPUT);
  digitalWrite(pinSet, LOW);
  // //Passage du module sur le canal 1, en 9600bps et à 20dBm
  // HC12.print(F("AT+DEFAULT"));
  delay(100);
}

void loop()
{
  while(Serial.available())
  {
    HC12.write(Serial.read());
  }
  while(HC12.available())
  {
    Serial.write(HC12.read());
  }
}

Je peux maintenant poursuivre mon aventure.
Question : suis-je sur le bon site français et non celui de la communauté entière ? Sinon, comment faire pour mes prochains "topics" pour être sur le bon site ?

Je vous remercie infiniment pour votre aide salutaire et votre disponibilité.
A bientôt.
Bébert

Bonjour @Bebert

Oui tu es en ce moment sur la page du forum Arduino Francophone

site francophone

:point_right:Pour tes Favoris , le lien d'accès à cette section francophone du forum Arduino :

super :slight_smile:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.