🛠 Nœud capteur sans fil : nRF24L01+ sur le bus SPI

Arduino Pro Mini · avance · Schéma : IMG-pro-mini-avance-8-promini-node-sans-fil.svg — Arduino Pro Mini 3,3 V pilotant un module nRF24L01+ via le bus SPI (broches 10 SS, 11 MOSI, 12 MISO, 13 SCK), condensateur de découplage sur l'alimentation du module, debug série via SoftwareSerial

Objectifs

Construire le montage emblématique de la Pro Mini : un nœud capteur sur batterie avec radio nRF24L01+ — l'architecture historiquement déployée par la bibliothèque MySensors sur Pro Mini + nRF24L01+. On câble le module sur le bus SPI matériel (10 SS, 11 MOSI, 12 MISO, 13 SCK), on réserve deux broches pour un debug série logiciel (SoftwareSerial fonctionne sur n'importe quelle broche numérique puisque l'unique UART matériel sert au programmateur) et on soigne l'alimentation du module.

Matériel

Code complet

// Reception nRF24L01+ via SPI matériel (13 SCK / 12 MISO / 11 MOSI)
#include <SPI.h>
#include <RF24.h>
#include <SoftwareSerial.h>

RF24 radio(9, 8);                       // CE=9, CSN=8 (libres de SPI)
SoftwareSerial dbg(6, 7);               // debug série sans occuper D0/D1
const uint64_t PIPE = 0xF0F0F0F0E1LL;

void setup {
  dbg.begin(9600);
  radio.begin;
  radio.openReadingPipe(1, PIPE);
  radio.setChannel(100);
  radio.setDataRate(RF24_1MBPS);        // 1 Mbps plus robuste a 3,3 V
  radio.setPALevel(RF24_PA_LOW);        // puissance mini : menage la pile
  radio.startListening;
  dbg.println(F("noeud pret, ecoute..."));
}

void loop {
  if (radio.available) {
    char buf[32] = {0};
    radio.read(buf, sizeof(buf) - 1);
    dbg.print(F("msg: ")); dbg.println(buf);
  }
}

Vérification attendue

Le module émetteur (autre Pro Mini ou gateway USB) envoie un message toutes les secondes ; le nœud l'affiche sur la liaison SoftwareSerial à 9600 bauds, l'UART matériel restant libre pour le téléversement via le connecteur 6 broches. Sans le condensateur de découplage, on observe des pertes aléatoires ou des resets au moment de l'émission — remettre le condo fait disparaître les pannes, preuve de son rôle.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels