Connexion PIN script (débutant)

Forum dédié au Rflink : installation, paramétrage, utilisation, interfaces ...
ParkerLewis
Messages : 27
Inscription : 26 oct. 2021, 23:50

Connexion PIN script (débutant)

Message par ParkerLewis »

Bonjour à tous,

Je suis complètement débutant en RFLink.

Je viens de recevoir un RFLink 433.42 Mhz en kit de nodo-shop (celui-ci exactement : https://www.nodo-shop.nl/en/rflink-/195 ... cable.html).

Manuel du RFLink : https://nodo-shop.nl/nl/index.php?contr ... achment=21
Manuel du chip Aurel : https://www.aurelwireless.com/wp-conten ... 33G_um.pdf
Le manuel dit 433.92 mais j'ai bien commandé la version 433.42. La référence inscrite sur l'Aurel est RTX-MIDL-5V.

1) Pouvez-vous me confirmer que j'ai bien assemblé comme il fallait ? De ce que j'ai compris du manuel, il suffisait de plugger la carte verte (avec chip Aurel et connecteur pour l'antenne) sur la carte principale tel que je l'ai fait et visser l'antenne. Y avait-il autre chose à faire ? Ca ressemble à ça du coup (lien cliquable pour meilleure vue) :

Image

2) C'était fourni sans alim. Heureusement j'avais celle d'un autre RFLink... Nécessaire ou pas ?

3) Y a-t-il "autre chose à faire" au préalable ?

J'ai besoin d'utiliser le RFLink en mode récepteur pour récupérer la trame d'un équipement à moi. Le script que je voudrais utiliser est dispo ici : https://github.com/ChristopheHD/frisque ... decode.ino

Je n'ai pas de souci à lancer l'IDE Arduino, à trouver le bon port COM, à compiler et envoyer le script vers l'Arduino. Tout ça ça marche a priori : en ajoutant un "Hello World" dans le setup() du script en question, je le vois bien apparaître dans le moniteur série, donc a priori j'arrive bien à lui faire exécuter le script.

Le problème c'est que je ne vois jamais la trame que j'attends (je ne détecte jamais rien alors que je devrais).

De ce que je comprends, un problème est la définition des PIN dans le script qui n'est pas bonne / ne correspond pas à mon chip. En effet, tel que rédigé, le script définit et utilise

Code : Tout sélectionner

#define PIN_RF_TX_VCC               15                                          // +5 volt / Vcc power to the transmitter on this pin
#define PIN_RF_TX_DATA              14                                          // Data to the 433Mhz transmitter on this pin
#define PIN_RF_RX_VCC               16                                          // Power to the receiver on this pin
#define PIN_RF_RX_DATA              19                                          // On this input, the 433Mhz-RF signal is received. LOW when no signal.
Or j'ai d'un côté le manuel de mon RF Link qui me dit

Code : Tout sélectionner

D14 DAT IN Transceiver
D15 TX / RX Transceiver
D19 DAT OUT Transceiver
[...]
D22 ENABLE Transceiver
et la page 3 du manuel du chip qui me laisse à penser que pour être en réception, il faudrait :
Data IN (donc Aurel PIN 4, Arduino PIN 14) à 0
TX/RX (donc Aurel PIN 5, Arduino PIN 15) à 0
ENABLE (donc Aurel PIN 6, Arduino PIN 22) à 1

(et le signal RF reçu numérisé sortirait alors en Data OUT (Aurel PIN 9, Arduino PIN 19)).

Est-ce que du coup il suffirait que dans le script, je remplace la partie correspondante par

Code : Tout sélectionner

#define PIN_RF_TX_DATA_IN	14	// Data to the 433Mhz transmitter on this pin
#define PIN_RF_TX_RX		15 	// 0 = RX, 1 = TX
#define PIN_RF_RX_DATA_OUT	19	// Sortie du RX 
#define PIN_RF_ENABLE		22	// 0=Power Down, 1=Actif
Et du coup un peu plus loin

Code : Tout sélectionner

  pinMode(PIN_RF_RX_DATA_OUT, INPUT);			// Initialise in/output ports
  pinMode(PIN_RF_TX_DATA_IN, OUTPUT);			// Initialise in/output ports
  pinMode(PIN_RF_ENABLE, OUTPUT);			// Initialise in/output ports
  digitalWrite(PIN_RF_TX_DATA_IN,LOW);			// 0 ?
  digitalWrite(PIN_RF_TX_RX,LOW);			// 0 ?
  digitalWrite(PIN_RF_ENABLE,HIGH);			// 1 ?
  digitalWrite(PIN_RF_RX_DATA_OUT,INPUT_PULLUP);	// pull-up resister on (to prevent garbage)
  
?

Faut-il aussi que je gère un Vcc quelque part ou c'est bon c'est le ENABLE ?

Y a-t-il autre chose à faire ?

Je n'ose pas tester directement, car peut-être que je risque de griller un truc... ? Et de toute façon vu comment je suis à l'aveugle statistiquement c'est sûr qu'il va me manquer quelque chose.

Sauriez-vous m'aider ?

Merci
Dernière modification par ParkerLewis le 26 janv. 2022, 22:16, modifié 1 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Modération

Message par Keros »

En hébergeant les images à l'extérieur du forum, il y a de fort risques qu'ils ne soient plus disponible dans quelque temps comme ici, ou encore . Merci d'éditer votre message et utiliser l'onglet Fichiers joints en dessous de la zone d'écriture des messages pour enregistrer les éléments sur le serveur du forum.
ParkerLewis
Messages : 27
Inscription : 26 oct. 2021, 23:50

Re: Connexion PIN script (débutant)

Message par ParkerLewis »

Hello,

Oui c'est bien du 433.42 qu'il me faut (Frisquet).

Oui j'ai tout écrasé car c'est ce qui est préconisé pour récupérer la trame en question (l'auteur initial du script n'avait pas réussi avec le firmware officiel 48 d'où sa rédaction du script avec lequel il a réussi).

Je vais cependant effectivement réessayer moi-même avec le firmware officiel au cas où.

Néanmoins, est-ce que quelqu'un saurait apporter un éclairage sur les questions posées (connexion et activation PIN, risque de faire griller en cas d'erreur de manip, ...) ?
secator
Messages : 165
Inscription : 10 nov. 2018, 18:26

Re: Connexion PIN script (débutant)

Message par secator »

oui, je n'avais pas vu que tu faisais référence au post de régulation de la chaudière Frisquet.

sinon après avoir relu plusieurs fois ton post viewtopic.php?p=102117#p102117, je suis d'accord avec toi sur les modifs à faire dans le script.

As tu essayé?
Dernière modification par secator le 28 janv. 2022, 19:06, modifié 1 fois.
ParkerLewis
Messages : 27
Inscription : 26 oct. 2021, 23:50

Re: Connexion PIN script (débutant)

Message par ParkerLewis »

Y a t il un risque que je grille un composant si je me trompe ?

C'est ce qui m'arrête.

Par ailleurs, je fais quand même beaucoup de suppositions (est-ce qu'il suffit de faire low pour 0 et High pour 1 par exemple) donc je m'attendais à de faibles chances de réussite de toute façon et devoir nécessairement demander de l'aide.
secator
Messages : 165
Inscription : 10 nov. 2018, 18:26

Re: Connexion PIN script (débutant)

Message par secator »

pour moi non tu ne grilleras rien et tes modifs sont correctes. oui Low=0 (0V) et High=1 (5V).

Sais tu ce que ChristopheHD utilise à la place du AUREL ?
ParkerLewis
Messages : 27
Inscription : 26 oct. 2021, 23:50

Re: Connexion PIN script (débutant)

Message par ParkerLewis »

Non je ne sais pas...

Si pas de risque pour la carte, j'essaierai ce samedi et partagerai le résultat :)
ParkerLewis
Messages : 27
Inscription : 26 oct. 2021, 23:50

Re: Connexion PIN script (débutant)

Message par ParkerLewis »

:)

Alors pour info c'était effectivement l'idée. Merci à @benoit.divers.91 pour avoir partagé la solution exacte.

Source de la solution exacte : https://www.hackster.io/frankbeen/somfy ... ver-295382

La portion de code modifiée en conséquence :

Code : Tout sélectionner

#define TRANSCEIVER_RX_PIN      19    // Set the pin that receives data from your 433.42 Mhz Receiver
#define TRANSCEIVER_MODE_PIN    15    // Aurel transceivers have a pin that let the hardware switch to RX and TX mode
#define TRANSCEIVER_ENABLE_PIN  22    // Aurel transceivers have a pin that must be set to HIGH to enable the transmitter

// DO NOT CHANGE THESE SETTINGS BELOW
#define TRANSCEIVER_TX HIGH
#define TRANSCEIVER_RX  LOW

volatile long duration = 0;
volatile long prev_time = 0;
volatile boolean data_dispo = false;
byte input = TRANSCEIVER_RX_PIN;
String trame[3];
byte message = 0;
byte start = true;
byte intro = 0;
String prefixe = "1100";
 
void setup() {
  Serial.begin(115200);
  // set the Aurel transceiver to RX mode
  pinMode(TRANSCEIVER_MODE_PIN, OUTPUT);
  digitalWrite(TRANSCEIVER_MODE_PIN, TRANSCEIVER_RX);

  // enable Aurel transmitter
  pinMode(TRANSCEIVER_ENABLE_PIN, OUTPUT);
  digitalWrite(TRANSCEIVER_ENABLE_PIN, HIGH);

  delay(500);

  // assign an interrupt on pin x on state change
  pinMode(TRANSCEIVER_RX_PIN, INPUT);
  attachInterrupt(digitalPinToInterrupt(input), declenche, CHANGE);
  
  pinMode (LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);
}
Ca a marché chez moi direct. J'ai les trames en triple mais ça semble le cas pour tout le monde, donc sûrement l'émetteur qui les envoie trois fois...
Répondre