PrécédentVérification13 / 16SuivantProgrammation passerelle
7. Des projets embarqués

Programmation sonde

Programmation sonde

Nous allons configurer le programme de la sonde (Sonde\_MySensors.ino)pour l'envoi des données des capteurs.

Paramétrage du NRF24

Pour éviter les interférences entre les modules NRF24 dans une même salle, nous allons sélectionner un canal de communication pour chaque personne.
Un canal correspond à une fréquence précise d'émission et de réception pour le module NRF24.

Voici un extrait du code Sonde\_MySensors.ino :

C++

Paramétrage du NRF24

/*!
 * ************************************************************
 * PARAMETRES NRF24 (exemple canal 86)
 * Légende : (*) = A changer pour chaque personne
 * ************************************************************
 */
//Mode debug activé
#define MY_DEBUG

// Enable and select radio type attached #define MY_RADIO_RF24

#ifndef MY_RF24_PA_LEVEL #define MY_RF24_PA_LEVEL RF24_PA_MAX #endif

#ifndef MY_RF24_CHANNEL #define MY_RF24_CHANNEL 86 //(*) A CHANGER #endif

#ifndef MY_RF24_DATARATE #define MY_RF24_DATARATE RF24_250KBPS #endif

Paramétrage de Domoticz

Comme vue dans le chapitre de présentation, chaque sonde possède un identifiant et chaque capteur rattaché à la sonde possède lui aussi un identifiant.

Pour éviter toute confusion, nous allons également attribuer un identifiant à notre sonde et à nos capteurs, ces identifiants sont définis pour chaque personne dans le tableau suivant :

C++

Paramétrage de Domoticz

/*!
 * ************************************************************
 * PARAMETRES DOMOTICZ (Exemple avec l'ID 30)
 * ************************************************************
 * Légende : (*) = A changer pour chaque personne
 */
#define MY_NODE_ID 30         //Noeud dans Domoticz (*)

//Voir le tableau #define CHILD_ID_BATT 31 //(*) Identifiant Domoticz pour le niveau de batterie #define CHILD_ID_TEMP 32 //(*) Identifiant Domoticz pour la température #define CHILD_ID_HUM 33 //(*) Identifiant Domoticz pour l'humidité

ici, il nous reste à définir le temps entre deux envois de données par la sonde.

C++

Temps de mise à jour

//Temps entre deux envois de données
static const uint64_t UPDATE_INTERVAL = 10000;

Ensuite, on peut éventuellement changer le nombre de mesure au bout duquel la sonde envoie les données même si elles n'ont pas changés

C++

Nombre de lectures forcée

//Nombre au bout duquel la sonde envoie les données même si elles n'ont pas changés
    static const uint8_t FORCE_UPDATE_N_READS = 10;

Paramétrage du DHT

Il faut préciser si le capteur est un DHT11 ou DHT22 et indiquer la broche du capteur

C++

Paramétrage du DHT

/*!
    * ************************************************************
    * DHT22/DHT11
    * ************************************************************
    */
   //Broche de données du DHT22 (ou DHT11)
   #define DHT_DATA_PIN 3
   
   #define DHT_TYPE DHT22 //use DHT11 or DHT22
   
   //définir une valeur si le capteur à un offset permanent par rapport à la température réelle
   #define SENSOR_TEMP_OFFSET 0
   
   float lastTemp;   //Dernière valeur de température lue
   float lastHum;    //dernière valeur d'humidité lue

Paramétrage de la mesure de la batterie

Il suffit de renseigner les valeurs des résistances (en $\Omega$) formant le pont diviseur de tension.
Dans mon cas, les résistances ont une valeur de 330 $k\Omega$ et $1 M\Omega$

Le calcul pour afficher la tension réel de la batterie est détaillé en annexe.

C++

Paramétrage du multimètre

/*!
    * ************************************************************
    * BATTERIE
    * ************************************************************
    */
   //Partie pour mesure Batterie
   int BATTERY_SENSE_PIN = A0;  //ne pas toucher
   
   float oldBatteryV = 0;//Sauvegarde du niveau de batterie
   
   const float r1_value = 1000000.0; //Valeur de la résistance la plus proche de l'alimentation de la batterie
   const float r2_value = 330000.0; //Valeur de la résistance la plus proche de la masse

Branchements du DHT

Branchement du DHT sur la sonde
Branchement du DHT sur la sonde

Voici les connexions pour brancher le DHT :

Schéma du circuit imprimé
Schéma du circuit imprimé
PrécédentVérification13 / 16SuivantProgrammation passerelle