PMODRF2 Transceiver radiofréquence 2,4 GHz MRF24J40 pour arduino
Dont 0,01 € d'eco-participation déjà incluse dans le prix
Conçu pour être piloté par un arduino, ce module Pmod intègre un tranceiver radiofréquence 2,4 GHz IEEE 802.15.4™ MRF24J40 Microchip® permettant le développement d'applications sans fil compatible ZigBee®, MiWi™, MiWi P2P et autres protocoles sans fils propriétaires.
Doté d'un connecteur mâle 2 x 6 broches, ce module pourra être déporté via des cordons optionnels (voir modèles en bas de page).
Ce module est soumis au contrôle de la réglementation américaine relative à l’exportation (15 CFR Part 730 et. seq.).
Exemple d'application avec 2 arduino™ (le programme consiste en un échange de données entre 2 arduino équiqés chacun d'un module PmodRF2).
La note d'application décrite ci-dessous nécessite le téléchargement préalable de librairies(s) additionnelle(s) dont les liens (github) sont indiqués en entête de programme ci-dessous. Une fois téléchargée(s), suivez les instructions données ici https://www.arduino.cc/en/Guide/Libraries#toc2 pour installer les librairies dans l'IDE de l'arduino.
Programme Arduino : Programme N°1
/************************************************************************
*
* Test du module Pmod transmetteur 2.4 GHz
*
*************************************************************************
* Description: Pmod_RF2
* Les données échangées entre deux modules RF2 sont affichés
* dans le moniteur série (basé sur l'exemple de la bibliothèque).
*
* Matériel
* 1. Arduino Uno
* 2. Module Pmod RF2 (télécharger la bibliothèque
* https://github.com/karlp/Mrf24j40-arduino-library)
*
* Schéma publié sous licence CC Attribution-ShareALike (réalisé avec Fritzing)
*
* N'importez pas le programme par un copier/coller dans l'IDE de l'arduino.
* Utilisez le lien ci-dessous pour télécharger le code source.
*
* Code source téléchargeable ici:
************************************************************************/
// Appel des bibliothèques
#include <SPI.h>
#include <mrf24j.h>
#define Reset 6 // affectation des broches
#define CS 10
#define Interruption 2
Mrf24j mrf(Reset, CS, Interruption); // création de l'objet mrf
long last_time;
long tx_interval = 1000;
unsigned long current_time;
void setup(void)
{
Serial.begin(9600); // initialisation de la liaison série
mrf.reset();
mrf.init();
mrf.set_pan(0x0000); // adresse du canal
mrf.address16_write(0x0001); // adresse du module N°1
attachInterrupt(0, interrupt_routine, CHANGE);
last_time = millis();
interrupts();
}
void interrupt_routine()
{
mrf.interrupt_handler(); // création de l'objet mrf.interrupt
}
void loop()
{
mrf.check_flags(&handle_rx, &handle_tx);
current_time = millis();
if (current_time - last_time > tx_interval)
{
last_time = current_time;
Serial.println("Envoi de la chaine ");
mrf.send16(0x0002, "Bonjour"); // envoi de la chaine au module N°2
}
}
void handle_rx()
{
Serial.print("Reception de la chaine ");
Serial.print(mrf.get_rxinfo()->frame_length, DEC);
Serial.println(" octets");
if(mrf.get_bufferPHY())
{
Serial.println("Packet data (PHY Payload):");
for (int i = 0; i < mrf.get_rxinfo()->frame_length; i++)
{
Serial.print(mrf.get_rxbuf()[i]);
}
}
Serial.println("rnASCII data :");
for (int i = 0; i < mrf.rx_datalength(); i++)
{
Serial.write(mrf.get_rxinfo()->rx_data[i]);
}
Serial.print("rnLQI/RSSI=");
Serial.print(mrf.get_rxinfo()->lqi, DEC);
Serial.print("/");
Serial.println(mrf.get_rxinfo()->rssi, DEC);
}
void handle_tx()
{
if (mrf.get_txinfo()->tx_ok)
{
Serial.println("Transmission OK");
}
else
{
Serial.print("Echec transmission ");
Serial.print(mrf.get_txinfo()->retries);
Serial.println(" essaisn");
}
}
Programme Arduino : Programme N°2
/************************************************************************
*
* Test du module Pmod transmetteur 2.4 GHz
*
*************************************************************************
* Description: Pmod_RF2
* Les données échangées entre deux modules RF2 sont affichés
* dans le moniteur série (basé sur l'exemple de la bibliothèque).
*
* Matériel
* 1. Arduino Uno
* 2. Module Pmod RF2 (télécharger la bibliothèque
* https://github.com/karlp/Mrf24j40-arduino-library)
*
* N'importez pas le programme par un copier/coller dans l'IDE de l'arduino.
* Utilisez le lien ci-dessous pour télécharger le code source.
*
************************************************************************/
// Appel des bibliothèques
#include <SPI.h>
#include <mrf24j.h>
#define Reset 6 // affectation des broches
#define CS 10
#define Interruption 2
Mrf24j mrf(Reset, CS, Interruption); // création de l'objet mrf
long last_time;
long tx_interval = 1000;
unsigned long current_time;
void setup(void)
{
Serial.begin(9600); // initialisation de la liaison série
mrf.reset();
mrf.init();
mrf.set_pan(0x0000); // adresse du canal
mrf.address16_write(0x0002); // adresse du module N°2
attachInterrupt(0, interrupt_routine, CHANGE);
last_time = millis();
interrupts();
}
void interrupt_routine()
{
mrf.interrupt_handler(); // création de l'objet mrf.interrupt
}
void loop()
{
mrf.check_flags(&handle_rx, &handle_tx);
current_time = millis();
if (current_time - last_time > tx_interval)
{
last_time = current_time;
Serial.println("Envoi de la chaine ");
mrf.send16(0x0001, "Lextronic"); // envoi de la chaine au module N°1
}
}
void handle_rx()
{
Serial.print("Reception de la chaine ");
Serial.print(mrf.get_rxinfo()->frame_length, DEC);
Serial.println(" octets");
if(mrf.get_bufferPHY())
{
Serial.println("Packet data (PHY Payload):");
for (int i = 0; i < mrf.get_rxinfo()->frame_length; i++)
{
Serial.print(mrf.get_rxbuf()[i]);
}
}
Serial.println("rnASCII data :");
for (int i = 0; i < mrf.rx_datalength(); i++)
{
Serial.write(mrf.get_rxinfo()->rx_data[i]);
}
Serial.print("rnLQI/RSSI=");
Serial.print(mrf.get_rxinfo()->lqi, DEC);
Serial.print("/");
Serial.println(mrf.get_rxinfo()->rssi, DEC);
}
void handle_tx()
{
if (mrf.get_txinfo()->tx_ok)
{
Serial.println("Transmission OK");
}
else
{
Serial.print("Echec transmission ");
Serial.print(mrf.get_txinfo()->retries);
Serial.println(" essaisn");
}
}
La note d'application ci-dessus a retenu votre attention ? Téléchargez toutes les autres notes d'applications concernant l'utilisation des modules Pmod™ avec un arduino™ Uno.
Produits associés