Arduino Forum

International => Français => Topic started by: Darkjeje on Aug 11, 2018, 03:50 pm

Title: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 11, 2018, 03:50 pm
Bonjour à tous,

Cela fait maintenant plusieurs mois que j'essaye en vain de réaliser mon projet.
Je souhaiterai créer un thermomètre avec le module DHT22, envoyer les données (Température et humidité) à intervalle régulier à mon Raspberry Pi via les modules NRF24L01, puis mettre en sommeil le tout pendant un temps défini (15 mn) avant un nouveau relevé de température.

J'ai donc commencé par lire la température avec le DHT22, réussi !
J'ai ensuite réussi à faire fonctionner la liaison entre mon arduino et mon raspberry Pi en python et à enregistrer l'info dans ma base de donnée.
Puis j'ai testé la mise en sommeil du bousin avec watchdog, ce qui semblait fonctionner. Je n'ai par contre pas pu tester l'économie d'énergie correspondante.

Je devais ensuite tester de faire fonctionner le DHT22, le module NRF24L01 sans l'arduino uno, mais seulement avec la puce atmega afin d'économiser de l'énergie.

Le problème qui s'est déjà produit une première fois, c'est qu'en déconnectant les modules DHT22/NRF24L01 afin d'intégrer le bootloader à ma deuxième puce Atmega, je n'ai pas réussi.

J'ai remonter le tout comme avant, mais je n'arrive plus à faire fonctionner la liaison Uno/Rasp.
En effet, mon script uno édite dans le moniteur, la configuration du module NRF24L01 et celle-ci n'est plus comme avant tout est à zéro :

Code: [Select]
Localisation du fichier dans le Raspberry :/home/pi/rf24libs/RF24/examples_linux/pingpair_dyn2.py/
STATUS = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0
RX_ADDR_P0-1 = 0xfafafafa7a 0x0000000000
RX_ADDR_P2-5 = 0x00 0x00 0x00 0x00
TX_ADDR = 0x0000000000
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x00
RF_CH = 0x00
RF_SETUP = 0x00
CONFIG = 0x00
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01
CRC Length = Disabled
PA Power = PA_MIN


Alors que je devrais de mémoire avoir comme sur le Rasp :
Code: [Select]
pi@raspberrypi:~/rf24libs/RF24/examples_linux $ sudo python  pingpair_dyn2.py
pyRF24/examples/pingpair_dyn/
================ SPI Configuration ================
CSN Pin          = CE0 (PI Hardware Driven)
CE Pin           = Custom GPIO25
Clock Speed      = 8 Mhz
================ NRF Configuration ================
STATUS           = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1     = 0xf0f0f0f0d2 0xf0f0f0f0e1
RX_ADDR_P2-5     = 0xc3 0xc4 0xc5 0xc6
TX_ADDR          = 0xf0f0f0f0d2
RX_PW_P0-6       = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA            = 0x3f
EN_RXADDR        = 0x02
RF_CH            = 0x4c
RF_SETUP         = 0x21
CONFIG           = 0x0e
DYNPD/FEATURE    = 0x3f 0x04
Data Rate        = 250KBPS
Model            = nRF24L01+
CRC Length       = 16 bits
PA Power         = PA_MIN
 ************ Role Setup ***********


Voici mon code Arduino :

Code: [Select]
// Import des librairies
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <printf.h>
#include "DHT.h"
#include <avr/sleep.h>
#include <avr/wdt.h>

//#define DHTPIN 2 // entrée capteur dht22
#define DHTTYPE DHT22
#define DHT22_POWER 3 //alimentation du capteur DHT22
#define PIN_PILE 1 // entrée analogique

float txbuffer[3] = {0, 0, 0}; // l'indice 0 du tableau représente le N° du themometre ici le 1
//variable température
float temperature;
float humidite;
//variables tension
const float coeff_division = 2.0; // constante pont diviseur
float real_bat = 0;
unsigned int raw_bat;

// Interruption du watchdog
ISR (WDT_vect)
{
   wdt_disable();  // Désactiver watchdog
}  // Fin de WDT_vect


// On définit les variables relatives au DHT22 dont celle que l'on va envoyer
DHT dht(3, DHT22); // On definit la sonde sur le pin 3
char numeroDetecteur [] = "AA"; // On definit l'identifiant du thermomètre
char send_payload[16]= ""; // La variable envoyée aura une longueur maximum de 16 bytes
char floatBuf1[10];
char floatBuf2[10];

// On définit les variables relatives au module radio
RF24 radio(9,10); // Configurer la radio nRF24L01 sur le bus SPI plus les broches 9 et 10
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; // Adresses de tuyau radio pour les 2 nœuds à communiquer.
int payload_size; // On définit la taille de l'envoi comme une valeur numérique
const int max_payload_size = 32;
char receive_payload[max_payload_size+1]; // +1 pour laisser de la place à un caractère NULL final

// Script de lecture de la température et d'envoi / réception par le module radio
void DHT22_NRF24L01 ()
{
  // lecture de la sonde
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  // Convertion float en string
  dtostrf(h, 6, 2, floatBuf1);  
  dtostrf(t, 6, 2, floatBuf2);

  /* Mesure de la tension brute */
  raw_bat = analogRead(PIN_PILE);
  /* Calcul de la tension réel */
  real_bat = ((raw_bat * (3.3 / 1024)) * coeff_division);
  txbuffer[3] = real_bat ;
  
  sprintf(send_payload, "%s%s%s", numeroDetecteur, floatBuf2, floatBuf1); // Ecriture du buffer en string
  payload_size = strlen(send_payload); // Compte la longueur de la variable envoyée
  radio.powerUp(); //alimente le module nrf24l01+
  radio.stopListening(); // D'abord, arrêtez d'écouter pour pouvoir parler.

  // Prenez le temps et envoyez-le. Cela bloquera jusqu'à complète
  //Serial.print(F("Longueur envoyée : "));
  //Serial.println(payload_size);
  radio.write( send_payload, payload_size );
  radio.powerDown(); //arrêt de l'alimentation du module nrf24l01+
  
  //communication avec le port serie de l'arduino.
    //Serial.print("Temp. de : ");
    //Serial.print(t);
    //Serial.print("°C et Hum. de : ");
    //Serial.println(h);
    //Serial.print("%\t ");
  Serial.println(send_payload);
  delay(100); // 20 secondes
}

void mywatchdogenable ()
{
  // Désactiver ADC
  //ADCSRA = 0;  

  // Effacer divers drapeaux "reset"
  MCUSR = 0;    
  // Autoriser les modifications, désactiver la réinitialisation
  WDTCSR = bit (WDCE) | bit (WDE);
  // Régler le mode d'interruption et un intervalle
  WDTCSR = bit (WDIE) | bit (WDP3) | bit (WDP0);    // Régler WDIE, et 8 secondes de retard
  wdt_reset();  // pat the dog
  
  set_sleep_mode (SLEEP_MODE_PWR_DOWN);  
  noInterrupts ();           // Séquence temporisée suit
  sleep_enable();
 
  // Désactiver l'activation de la désactivation dans le logiciel
  MCUCR = bit (BODS) | bit (BODSE);
  MCUCR = bit (BODS);
  interrupts ();             // Garantit la prochaine instruction exécutée
  sleep_cpu ();
  sleep_disable();
}



void setup ()
{
  dht.begin();  // On initie la sonde
  Serial.begin(9600); // On init la com serie de l'arduino
  Serial.println(F("Localisation du fichier dans le Raspberry :/home/pi/rf24libs/RF24/examples_linux/pingpair_dyn2.py/"));

  // Setup et configurer le module radio
  radio.begin();
  radio.setDataRate (RF24_250KBPS);
  radio.setPALevel (RF24_PA_MIN);
  printf_begin();
  radio.enableDynamicPayloads(); // Activer les charges utiles dynamiques
  radio.setRetries(5,15); // En option, augmenter le délai entre les tentatives et # de tentatives

  // Cette simple esquisse ouvre deux tuyaux pour que ces deux nœuds puissent communiquer d'avant en arrière.
  radio.openWritingPipe(pipes[0]); // Ouvrez 'notre' tuyau pour écrire
  //radio.openReadingPipe(1,pipes[1]); // Ouvrez l'autre tuyau pour la lecture, en position #1 (on peut avoir jusqu'à 5 tuyaux ouverts pour la lecture)
  //radio.startListening();// Commence à écouter
  radio.printDetails(); // Afficher la configuration de l'unité RF pour le débogage
  //DHT22_NRF24L01 ();
  }

void loop ()
{
  DHT22_NRF24L01 ();

for (int i=0; i < 10; i++) //mise en veille pendant ~~ 5mn secondes (35)
mywatchdogenable();
}


J'ai testé différent module NRF24L01, tester les câbles avec un multimètre.
Je ne comprends pas d'où vient le problème et je suis assez perdu.
Je ne sais pas d'où vient le problème et j'en suis à vouloir abandonné le projet car je passe mon temps à revenir sur quelque chose qui fonctionnait avant, sans comprendre pourquoi ça plante.
Est ce les modules, la bibliothèque, le code,... ???

Si l'un de vous pouvait m'aider à comprendre et refaire fonctionner le tout, j'en serai très heureux !

Merci à tous de m'avoir lu.

Jérémy
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 11, 2018, 05:10 pm
Salut

Quote
Puis j'ai testé la mise en sommeil du bousin avec watchdog, ce qui semblait fonctionner. Je n'ai par contre pas pu tester l'économie d'énergie correspondante.
Sur une UNO : 10mA au lieu de 20mA.
Sur une MINI : 2µA au lieu de 10mA. Juste énorme.

Si tu veux faire fonctionner un thermomètre en basse conso sur une batterie 200mAH comme CELUI-CI (https://riton-duino.blogspot.com/2018/01/un-thermometre-mysensors-sur-batterie.html) afin de le rendre autonome et indépendant du secteur, la UNO n'est vraiment pas adaptée.

J'aimerais savoir comment tu as connecté le NRF24L01 à la UNO. Directement ou à travers des convertisseurs de niveau 3.3V / 5V ?

Ton serveur sur RASPBERRY PI, c'est un truc perso ?

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 11, 2018, 05:28 pm
Quote
Je devais ensuite tester de faire fonctionner le DHT22, le module NRF24L01 sans l'arduino uno, mais seulement avec la puce atmega afin d'économiser de l'énergie.
Avec un ARDUINO MINI (https://riton-duino.blogspot.com/2018/02/arduino-pro-mini-basse-consommation.html), tu te fatiguera moins.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 12, 2018, 02:17 pm
Salut

Sur une UNO : 10mA au lieu de 20mA.
Sur une MINI : 2µA au lieu de 10mA. Juste énorme.

Si tu veux faire fonctionner un thermomètre en basse conso sur une batterie 200mAH comme CELUI-CI (https://riton-duino.blogspot.com/2018/01/un-thermometre-mysensors-sur-batterie.html) afin de le rendre autonome et indépendant du secteur, la UNO n'est vraiment pas adaptée.

Merci hbachetti pour ton retour !
En fait je suis partie sur le uno car j'ai aussi acheté un nano, mais je n'arrive pas à téléverser de croquis dessus. Je ne sais pas si c'est la carte, le vieux câble USB qui fait que cela plante. Lorsque je clique sur "Récupérer les informations de la carte", j'ai les infos suivantes :
BN: Carte inconnue
VID: 1A86
PID: 7523
SN: Envoyez un croquis pour l'obtenir

Mais c'est sûr que si je pouvais utiliser directement le nano cela serait plus pratique.


J'aimerais savoir comment tu as connecté le NRF24L01 à la UNO. Directement ou à travers des convertisseurs de niveau 3.3V / 5V ?
(https://pix.milkywan.fr/De0ZX6Nk.jpg)
La première fois j'étais en direct mais je ne sais plus si j'étais sur le 3.3v ou le 5v. Et quand j'ai démonté puis remonter le tout, voyant que cela ne fonctionnait plus, j'ai décider de racheter des modules NRF24L01 pensant les avoir grillés et je suis passé via l'adaptateur. Mais finalement les premiers modules n'avaient pas grillé et j'ai réussi à tout refaire fonctionner en repartant de zéro grâce aux exemples. Puis ça a replanté en démontant de nouveau le tout, ce que j'indiquais dans mon 1er post, mais je comprends pas pourquoi cela me fait ça.


Ton serveur sur RASPBERRY PI, c'est un truc perso ?
Oui je suis locataire dans un appart équipé de la domotique Bticino, donc je me suis créé un site web php/myadmin pour stocker tout ce qui passe par cette domotique. Je n'utilise pas DOMOTICZ ou autre jeedom qui ne sont que moyennement compatible avec ma domotique.

Ayant la temperature de chaque pièce, il me manque la température extérieure pour savoir quand ouvrir/fermer les fenêtres en été/hiver, en fonction de la température et du taux d'humidité,...
Et puis cela préparera ma futur domotique fait maison quand je quitterai cette appart. ;)
Title: Re: Problème récurent avec le module NRF24L01
Post by: 68tjs on Aug 12, 2018, 04:34 pm
Nano.
Tes ennuis indiquent que tu es sous windaube, sous Linux cela aurait fonctionner du premier coup :) .

Tout se passe dans l'interface USB vers UART (liaison série).
Ta nano est un clone qui, au lieu d'utiliser le coûteux FTDIxxxx, utilise un CH340 (ou CH341) qui est entièrement compatible.

Il se trouve que Gravitech le créateur de la nano en accord avec Arduino n'avait prévu que le FTDI qui alors était déjà utilisé par Arduino pour les prédécesseurs de la UNO.
L'IDE ne contient que le pilote logiciel pour le FTDI, il te faut installer toi même celui pour le CH340/CH341.

Comme j'ai Linux je ne sais pas où le trouver mais dans le bandeau supérieur de cette page il y a une loupe qui est le moteur de recherche du forum. Tu clique dessus et tu entre CH340 et tu trouvera toutes les informations dont tu as besoin.
Et c'est valable pour n'importe quel sujet, pouvoir profiter de l'expérience des autres est un plus.
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 12, 2018, 05:11 pm
Quote
je suis passé via l'adaptateur
De quel adaptateur parles-tu ?

Quote
j'ai aussi acheté un nano, mais je n'arrive pas à téléverser de croquis dessus
Si tu n'as pas de problème avec une UNO et des problèmes avec une NANO, Il est possible que tu doives choisir dans Tools / Type de carte / Arduino Nano et dans Tools / Processeur / ATmega328p (OldBootloader).

Quote from: 68tjs
Ta nano est un clone qui, au lieu d'utiliser le coûteux FTDIxxxx, utilise un CH340 (ou CH341) qui est entièrement compatible.
Possible aussi. Darkjeje, tu devrais donner plus de précisions. "Cela plante" n'est pas suffisant.


Quote
Mais c'est sûr que si je pouvais utiliser directement le nano cela serait plus pratique.
Plus pratique, c'est certain, et moins consommateur, 20mA au lieu de 40.

Mais, je ne parlais pas de NANO mais de MINI, si possible PRO MINI 8MHz 3.3V (https://fr.aliexpress.com/item/10pcs-lot-Pro-Mini-328-Mini-3-3V-8M-ATMEGA328-3-3V-8MHz-for-arduino/32695653634.html?spm=a2g0s.9042311.0.0.1e726c376GXrfx), qui sera encore moins consommatrice.

Quote
Puis ça a replanté en démontant de nouveau le tout, ce que j'indiquais dans mon 1er post, mais je comprends pas pourquoi cela me fait ça.
J'ai déjà eu des problèmes avec de la communication NANO / NRF24L01.
Cela provient des niveaux de tension sur le bus SPI. Le NRF24L01 est tolérant au 5V sur son bus SPI mais la NANO ou UNO reçoit des signaux 3.3V de la part du NRF24L01 et en fonction de sa tension d'alimentation, cela peut convenir ou pas.

J'ai sur mon bureau actuellement une horloge digitale montée avec une NANO et un NRF24L01, branché sur un hub USB.
La tension sur le 5V de la NANO est de 4.98V et le montage fonctionne parfaitement bien.
par contre avec un chargeur USB donnant 5.3V cela ne marchait pas du tout.
Il suffit que la tension d'alimentation de l'ATmega soit juste à la limite pour obtenir un fonctionnement erratique.

Je te propose de mesurer la tension sur le 5V de ta UNO.

Sincèrement je pense que tu obtiendrais de meilleurs résultats avec une PRO MINI 8MHz 3.3V. Un ATmega328p et un NRF24L01 alimenté par la même tension 3.3V auraient plus de chances de se comprendre.
De plus tu pourrait dans ce cas, passer de l'alimentation secteur à l'alimentation par batterie, comme ICI (https://riton-duino.blogspot.com/2018/01/un-thermometre-mysensors-sur-batterie.html).
Un thermomètre devrait être situé idéalement à 1m50 du sol, et non pas à proximité d'une prise secteur, souvent au ras du plancher.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 12, 2018, 10:13 pm
Je viens de réaliser une maquette avec un NANO et un NRF24L01 câblés en direct comme CECI (https://www.mysensors.org/build/connect_radio).

La broche VCC du NRF24L01 est connectée sur le 3.3V de la NANO.

J'essaie de faire varier la tension d'alimentation de la NANO entre 4.5V et 6V. Cela communique toujours sans problème.
Cela met mes propres convictions par terre ...

Tu dois avoir un problème de câblage.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 13, 2018, 07:23 am
Nano.
Tes ennuis indiquent que tu es sous windaube, sous Linux cela aurait fonctionner du premier coup :) .
Je n'en doute pas une seconde ;)

Ta nano est un clone qui, au lieu d'utiliser le coûteux FTDIxxxx, utilise un CH340 (ou CH341) qui est entièrement compatible.
C'est possible, je vais regarder ça dès que possible, mais la priorité c'est de comprendre pourquoi cela ne fonctionne plus avec le uno.


De quel adaptateur parles-tu ?
Je parle de celui-là qui permettrait une stabilisation de la tension si j'ai bien compris. https://picclick.fr/Socket-Adapter-Plate-Board-for-8-Pin-NRF24L01-123010965209.html


Si tu n'as pas de problème avec une UNO et des problèmes avec une NANO, Il est possible que tu doives choisir dans Tools / Type de carte / Arduino Nano et dans Tools / Processeur / ATmega328p (OldBootloader).

Possible aussi. Darkjeje, tu devrais donner plus de précisions. "Cela plante" n'est pas suffisant.
J'ai en effet essayé avec Nano ATmega328p et Nano ATmega328p (OldBootloader) et voici le message d'erreur pour ATmega328p :
Code: [Select]

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xda
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xda
Problème de téléversement vers la carte. Voir http://www.arduino.cc/en/Guide/Troubleshooting#upload pour suggestions.



Pour ATmega328p (OldBootloader) j'ai cela :
Code: [Select]

avrdude: stk500_paged_load(): (a) protocol error, expect=0x10, resp=0x00
avrdude: stk500_cmd(): programmer is out of sync
avr_read(): error reading address 0x0000
   read operation not supported for memory "flash"
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00


Ah par contre avec le croquis semble avoir été téléchargé car j'ai bien le test de la tension fourni (script d'exemple de calcul de la tension téléchargé).

Faudrait donc que j'essaye mon script de DHT22/NRF24L01 malgré le message d'erreur pour voir si ça fonctionne.

Je viens de réaliser une maquette avec un NANO et un NRF24L01 câblés en direct comme CECI (https://www.mysensors.org/build/connect_radio).

La broche VCC du NRF24L01 est connectée sur le 3.3V de la NANO.

J'essaie de faire varier la tension d'alimentation de la NANO entre 4.5V et 6V. Cela communique toujours sans problème.
Cela met mes propres convictions par terre ...

Tu dois avoir un problème de câblage.

@+

C'est ce que je me demande car quand je teste les câbles avec le ohmmètre, tous bip bien, sauf le vcc qui quelque soit le module nrf24l01 ne bip pas clairement.
De plus, sur certain croquis lorsque je bouge les fils de connection j'ai l'impression qu'il fait la mesure de la température, bon sans envoyer les données pour autant.

Je vais regarder pour acheter le mini sur tes conseils.
Mais je veux avant comprendre pourquoi ça ne fonctionne plus avec le uno.
Car revenir à chaque fois en arrière ne me donne pas envie d'investir encore dans l'arduino.

Est-ce que le défaut d'une des connexions pourrait être la cause que tout soit à 0 :

Code: [Select]
RX_ADDR_P0-1 = 0x0000000000 0x0000000000
RX_ADDR_P2-5 = 0x00 0x00 0x00 0x00
TX_ADDR = 0x0000000000
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x00
RF_CH = 0x00
RF_SETUP = 0x00
CONFIG = 0x00


Je vais retester mes connectiques et je vous dirai ce qu'il en est.
Merci en tout cas pour les conseils et le temps consacré !!!

Jérémy
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 13, 2018, 09:17 am
Quote
Je parle de celui-là qui permettrait une stabilisation de la tension si j'ai bien compris. https://picclick.fr/Socket-Adapter-Plate-Board-for-8-Pin-NRF24L01-123010965209.html
Stabilisation mais surtout abaissement à 3.3V. Car pour le NRF24L01 5V c'est la mort assurée.

Quote
De plus, sur certain croquis lorsque je bouge les fils de connection j'ai l'impression qu'il fait la mesure de la température, bon sans envoyer les données pour autant.
Quote
sauf le vcc qui quelque soit le module nrf24l01 ne bip pas clairement.
Même en changeant le fil ?
Essaie d'ajouter un condensateur de 100nF entre VCC et GND le plus près possible du NRF24L01.

Certaines breadboards sont de très mauvaise qualité. Exemple CELLE-CI (https://www.amazon.fr/gp/product/B00JGFDKBQ/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1).

Quote
Est-ce que le défaut d'une des connexions pourrait être la cause que tout soit à 0 :
Bien sûr, mais tant que tu ne montre pas ton code, difficile à dire.
Il faut aussi savoir quelle librairie tu utilises.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 13, 2018, 09:57 am
Je suppose que tu utilises la libriairie RF24 et que les informations sont sorties sur la console à l'aide de radio.printDetails().

Un truc sympa dans le dernière version :
Code: [Select]

  radio.begin();
  Serial.print("Radio connected: ");
  Serial.println(radio.isChipConnected() ? "YES" : "NO !!!");


Si cela affiche "NO !!!" c'est que tu as un vrai problème de SPI.

Cette méthode isChipConnected n'existait pas dans ma version de 2016 (oui je sais j'ai honte, mais c'est vrai que je n'utilise pas cette librairie)

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 13, 2018, 04:22 pm
Même en changeant le fil ?
Essaie d'ajouter un condensateur de 100nF entre VCC et GND le plus près possible du NRF24L01.
Oui même en changeant le fil. Mais je vais retester et tester aussi la technique du condensateur mais il me semblait que cela aidait surtout pour la porté et qualité du signal.



Bien sûr, mais tant que tu ne montre pas ton code, difficile à dire.
Il faut aussi savoir quelle librairie tu utilises.
Tu as mon code dans le premier post tout en bas  ; )
J'utilise la RF24, mais j'en ai installé plusieur donc peut-être ai-je merdouillé quelque part.

Oui le retour est bien fourni par printdetails().
Je vais rajouter le bout de code que tu m'as indiqué au dessus, je ne connaissais pas.

Je vais rajouter le bout de code que tu m'as indiqué au dessus, je ne connaissais pas.

Merci encore !!!
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 13, 2018, 07:29 pm
Un truc sympa dans le dernière version :
Code: [Select]

  radio.begin();
  Serial.print("Radio connected: ");
  Serial.println(radio.isChipConnected() ? "YES" : "NO !!!");


Si cela affiche "NO !!!" c'est que tu as un vrai problème de SPI.
Bon ben j'obtiens NO,... :(
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 13, 2018, 09:52 pm
Ma conviction est que si ce problème arrive après un démontage / remontage, c'est forcément un problème hardware.
Par exemple si tu instancies comme ceci :
Code: [Select]

RF24 radio(9,10);

Es-tu sûr que tes pins 9 et 10 sont reliées à CE et CS du NRF24L01?

Donne quand même des nouvelles si tu trouves la solution.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 14, 2018, 09:08 am
Oui c'est bien relié comme il faut.

J'ai téléversé dans le uno, dans le nano, avec 2 modules NRF24L01 différent l'un sur le 5v avec adaptateur, l'autre directement sur le 3,3v.
Pour les deux j'ai le même défaut. Tout est à zéro, pas de connection pour le NRF24L01.

Je vais essayer de supprimer toutes les bibliothèques et réinstaller que la RF24 de tmrh20 pour voir.

Je testerai aussi si je peux en alimentant le module wifi sans passer par l'arduino au cas où il y aurait une mauvaise alimentation,...

Que puis je tester de plus ?
Title: Re: Problème récurent avec le module NRF24L01
Post by: hameau on Aug 14, 2018, 02:59 pm
Salut,

Concernant la mise en veille d'une carte arduino Uno ou Nano, c'est pas le Top, le mieux est de passer sur Arduino Pro .

Je mesure la T° Ext avec une sonde 18DSB20, transmission sans fils avec module 433, le tout gérer avec une Arduino Pro 5V à 16 Mhz, j'ai juste retirer la LED qui consomme energie pour rien et avec cette configuration je suis à 0.2 mA en veille au lieu de 6 mA sur une nano.

Sur la carte Uno ou nano, il y a convertisseur USB - serie qui consomme energie, dans le cas d'une alimentation par piles, le mieux de de restreindre au maxi la consommation, donc retirer ce qui n'est pas utile.



Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 14, 2018, 05:58 pm
Quote
Je mesure la T° Ext avec une sonde 18DSB20, transmission sans fils avec module 433, le tout gérer avec une Arduino Pro 5V à 16 Mhz, j'ai juste retirer la LED qui consomme energie pour rien et avec cette configuration je suis à 0.2 mA en veille au lieu de 6 mA sur une nano.
A 200µA la MINI ne doit pas être en veille profonde.

Avec une PRO MINI 3.3V 8MHz il est possible de descendre à 5 µA.
Comme ICI (https://riton-duino.blogspot.com/2018/02/arduino-pro-mini-basse-consommation.html).

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 14, 2018, 08:42 pm
Ma conviction est que si ce problème arrive après un démontage / remontage, c'est forcément un problème hardware.
Par exemple si tu instancies comme ceci :
Code: [Select]

RF24 radio(9,10);

Es-tu sûr que tes pins 9 et 10 sont reliées à CE et CS du NRF24L01?

Donne quand même des nouvelles si tu trouves la solution.

@+

Méa culpa à tous, tu avais totalement raison.
J'étais tellement persuadé d'avoir tout remonté comme il faut, photo à l'appuie que je me suis focalisé sur tous sauf ça.
J'avais inversé MISO et MOSI, bref c'était moisi,...
Tout refonctionne comme avant.

Je m'en veux de pas avoir regardé ça plus tôt.
En tout cas, ça m'aura permis d'échanger avec vous et de connaitre le pro mini.
Je vais regarder ça de plus près pour éviter du bidouillage inutile.

Merci à tous !!!
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 14, 2018, 08:56 pm
Quote
Ma conviction est que si ce problème arrive après un démontage / remontage, c'est forcément un problème hardware.
Cela reste entre nous, mais la dernière fois que j'ai monté une manip ARDUINO NANO NRF24L01, j'ai branché le SCK sur la pin à côté de la pin 3.3V, D13, sauf que j'ai branché à droite au lieu de brancher à gauche, c'est à dire AREF !
Cela ne pouvait pas marcher, et pour cause ...  :smiley-confuse:

Quote
En tout cas, ça m'aura permis d'échanger avec vous et de connaitre le pro mini.
Si tu veux être indépendant du secteur, tu y passeras fatalement. Tu seras surpris de ce que l'on peut tirer d'une batterie de 200mAH.

Bonne continuation @+
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 14, 2018, 09:00 pm
Le côté positif est que tu m'as donné envie d'écrire un article dans mon blog (https://riton-duino.blogspot.com/2018/08/le-nrf24l01-avec-arduino-uno-nano-et.html).

Et je viens de le modifier (chapitre 5).
"Êtes-vous sûr de n'avoir pas inversé MISO / MOSI ?"

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 14, 2018, 09:21 pm
Le côté positif est que tu m'as donné envie d'écrire un article dans mon blog (https://riton-duino.blogspot.com/2018/08/le-nrf24l01-avec-arduino-uno-nano-et.html).

Et je viens de le modifier (chapitre 5).
Êtes-vous sûr de n'avoir pas inversé MISO / MOSI ?

@+

Si ça peut en aider d'autre :D

Merci encore pour ton aide, je testerai prochainement le pro mini et lirait ton article avec attention !!!
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 14, 2018, 09:25 pm
L'autre côté positif est que tu partages la solution à ton problème.
Beaucoup d'autres ne s'en donnent pas la peine  8)

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 14, 2018, 09:39 pm
Quote
Merci encore pour ton aide, je testerai prochainement le pro mini
Lis surtout CECI (https://riton-duino.blogspot.com/2018/02/arduino-pro-mini-basse-consommation.html) et n'oublie pas de commander un FT232 (https://fr.aliexpress.com/item/FT232RL-FTDI-BASIC-USB-vers-s-rie-pour-pro-mini-t-l-charger-c-ble-USB/32831265899.html?spm=a2g0w.search0104.3.1.46cb37af6VFhmn&ws_ab_test=searchweb0_0%2Csearchweb201602_2_10152_10151_10065_10344_10068_10342_10343_10340_10341_10084_10083_10618_10305_10304_10307_10306_10302_5711211_5722315_10313_10059_10184_10534_100031_10629_10103_10626_10625_10624_10623_10622_10621_10620_10142%2Csearchweb201603_1%2CppcSwitch_5&algo_expid=9ddc916b-fb91-4a80-8bdc-2176cb1f6e02-0&algo_pvid=9ddc916b-fb91-4a80-8bdc-2176cb1f6e02&priceBeautifyAB=0) sinon, tu resteras devant ta PRO MINI comme une vache qui regarde passer un train.

Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 15, 2018, 01:46 pm
L'autre côté positif est que tu partages la solution à ton problème.
Beaucoup d'autres ne s'en donnent pas la peine  8)

@+

Tu prends le temps de m'aider, c'est pour moi la moindre des choses de faire un retour quand le problème est résolu et de remercier pour l'aide et le temps accordé !!!


Lis surtout CECI (https://riton-duino.blogspot.com/2018/02/arduino-pro-mini-basse-consommation.html) et n'oublie pas de commander un FT232 (https://fr.aliexpress.com/item/FT232RL-FTDI-BASIC-USB-vers-s-rie-pour-pro-mini-t-l-charger-c-ble-USB/32831265899.html?spm=a2g0w.search0104.3.1.46cb37af6VFhmn&ws_ab_test=searchweb0_0%2Csearchweb201602_2_10152_10151_10065_10344_10068_10342_10343_10340_10341_10084_10083_10618_10305_10304_10307_10306_10302_5711211_5722315_10313_10059_10184_10534_100031_10629_10103_10626_10625_10624_10623_10622_10621_10620_10142%2Csearchweb201603_1%2CppcSwitch_5&algo_expid=9ddc916b-fb91-4a80-8bdc-2176cb1f6e02-0&algo_pvid=9ddc916b-fb91-4a80-8bdc-2176cb1f6e02&priceBeautifyAB=0) sinon, tu resteras devant ta PRO MINI comme une vache qui regarde passer un train.
Oui je me doutais bien qu'il fallait un module de plus pour faire la liaison avec le PC en USB.


Petit retour ce matin, la communication fonctionne parfaitement avec mon UNO, mais aussi avec mon NANO malgré le message d'erreur lorsque je téléverse le script.
Et la réception se fait parfaitement dans ma base de donnée.

Il va maintenant que je regarde le pro mini, que je vois combien j'en achète, la partie basse conso et enfin une boite pour contenir le tout.
Après je finirai par me renseigner sur le rechargement de la batterie par petit panneau solaire, gestion de la puissance, autonomie, anti retour,...
Même si je pense que l'on peut tenir des mois avec une basse conso, cela pourra m'être utile dans d'autres projets ;)
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 15, 2018, 02:16 pm
Mon thermomètre mobile (https://riton-duino.blogspot.com/2018/01/un-thermometre-mysensors-sur-batterie.html) est installé depuis le 10 décembre 2017.
Il consomme une vingtaine de µA.
Son autonomie théorique est de cinq ans, sans tenir compte de l'auto-décharge de la batterie que je ne connais pas.
Il envoie la température à un serveur à l'aide d'un NRF24L01 toutes les 15 minutes.
La batterie 200mAH a encore 92% de sa capacité au bout de huit mois.
Cela dure très longtemps.

Quote
Il va maintenant que je regarde le pro mini, que je vois combien j'en achète, la partie basse conso et enfin une boite pour contenir le tout.
Ne pas en acheter une seule. Un accident est vite arrivé, et puis tu risques d'y prendre goût.

ICI (https://fr.aliexpress.com/item/10pcs-ATMEGA328P-Pro-Mini-328-Mini-ATMEGA328-3-3V-16-MHz-for-Arduino-3-3V-16/32784455996.html?spm=a2g0s.9042311.0.0.27426c37tWBtJK), à 20€ les 10.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Aug 15, 2018, 03:38 pm
Euh 2007 ou 2017 ? Ca fait une toute petite différence ;)
Je suppose 2017 vue que tu parles de 8 mois après.
En gros tu perds 1 % de batterie par mois, ce qui fait un petit paquet d'année de vie ce qui est très bien.

Ton projet correspond exactement au mien, y compris dans le temps de pose entre 2 envoies de données.
La seule différence c'est que je n'utilise pas Domoticz du moins pour l'instant n'en ayant pas besoin et Openwebnet n'étant pas super bien intégré dedans.

Mais à terme si je me débrouille bien avec les arduinos, cela pourrait-être le serveur domotique de ma futur maison.
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Aug 15, 2018, 04:04 pm
Oups ... 2017. C'est corrigé.
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Sep 15, 2018, 08:14 pm
Oups ... 2017. C'est corrigé.
Salut hbachetti,

Je me demandais, quel est l'objectif de l'évolution de ton thermomètre ?
Pourquoi être parti sur une batterie Li-ion qui est plus puissante (donc régulateur de tension en plus) et qui consomme plus ?

Je vais pas tarder à m'acheter le nécessaire pour faire le capteur que tu proposes.

Jérem
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Sep 15, 2018, 08:37 pm
Dans la première version, la tension de 3.6V était abaissée à 3.3V à l'aide de deux diodes.
Pas très optimal surtout quand on sait qu'une batterie NI-MH à pleine charge fait plutôt 4V.
D'autre part entre la veille profonde et l'émission la consommation du NRF24L01 passe de 1µA à 30mA. La tension après les diodes risque de chuter fortement.
D'où l'adoption d'un régulateur.
On peut choisir un meilleur régulateur que le LM2936. Le HT7533-1 consomme 2.5µA et fournit 100mA.

Quote
Pourquoi être parti sur une batterie Li-ion qui est plus puissante
Non, la batterie choisie est CELLE-CI (https://fr.aliexpress.com/item/4pcs-lot-16340-CR123A-3-7v-2300mAh-Rechargeable-Li-ion-Battery-purple-For-LED-Flashlight-Battery/32434146518.html?spm=a2g0s.9042311.0.0.vp1mlk) : annoncée à  2300mAH elle en fait en réalité 225 ! contre 600 pour la NI-MH.
Par contre son encombrement est nettement moindre.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: Darkjeje on Sep 15, 2018, 08:48 pm
Non, la batterie choisie est CELLE-CI (https://fr.aliexpress.com/item/4pcs-lot-16340-CR123A-3-7v-2300mAh-Rechargeable-Li-ion-Battery-purple-For-LED-Flashlight-Battery/32434146518.html?spm=a2g0s.9042311.0.0.vp1mlk) : annoncée à  2300mAH elle en fait en réalité 225 ! contre 600 pour la NI-MH.
Par contre son encombrement est nettement moindre.

@+

Je suis un peu perdu, tu parles de 2300mAH qui en fait que 225 ? 225 mAH ?
Tu as un accu fait d'une pile pour la Li-ion 2300mAH 3,7v contre 3 piles pour la NIMH de 600 mAH 3,6v ?

Est-ce que cela fonctionnerai avec l'une de mes anciennes batteries de téléphone portable que j'ai toujours pas jeter à la déchetterie ?

J'ai souvent entendu que la batterie de portable devait être utilisé avec précaution, contrôler sa charge et sa décharge sous peine d'explosion,...

Ce qui ne me donne pas envie de tester,...
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Sep 15, 2018, 09:12 pm
Quote
Je suis un peu perdu, tu parles de 2300mAH qui en fait que 225 ? 225 mAH ?
Je l'ai testée moi-même (https://riton-duino.blogspot.com/2018/05/batteries-lithium-ion.html). Les sites chinois sont souvent mensongers.

Quote
Est-ce que cela fonctionnerai avec l'une de mes anciennes batteries de téléphone portable que j'ai toujours pas jeter à la déchetterie ?
Tout dépend de la tension, et de l'état de la batterie.

Quote
J'ai souvent entendu que la batterie de portable devait être utilisé avec précaution, contrôler sa charge et sa décharge sous peine d'explosion,...
Comme je le dis dans mon article : J'ai installé un chargeur USB à demeure dans le boîtier. Un TP4056 (https://fr.aliexpress.com/item/10pcs-Micro-USB-5V-1A-18650-TP4056-Lithium-Battery-Charger-Module-Charging-Board-With-Protection-Dual/1852201781.html?spm=a2g0s.9042311.0.0.RPuYMv).

C'est un chargeur LITIUM-ION avec arrêt de charge automatique qui fonctionne parfaitement bien.
Quand j'aurai besoin de charger le thermomètre, je brancherai un chargeur mini-USB dessus.

Mon détecteur de présence (https://riton-duino.blogspot.com/2018/04/un-detecteur-de-mouvement-mysensors-sur.html) est bâti sur le même principe.
Je l'ai déjà rechargé une fois car il consomme plus que le thermomètre. C'est vraiment impeccable.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on Sep 15, 2018, 09:37 pm
Quote
Est-ce que cela fonctionnerai avec l'une de mes anciennes batteries de téléphone portable que j'ai toujours pas jeter à la déchetterie ?
Je dirais que normalement ces batteries sont des LITHIUM-ION 3.7V et que même si elle possède encore 25% de sa capacité, c'est largement jouable.

@+
Title: Re: Problème récurent avec le module NRF24L01
Post by: simo_1000 on May 31, 2019, 12:43 pm
est il possible d'avoir le code que t'as mis sur raspberry ?

merci
Title: Re: Problème récurent avec le module NRF24L01
Post by: hbachetti on May 31, 2019, 01:07 pm
De quel code parles-tu ?
S'il s'agit du serveur domotique, c'est un Domoticz (http://www.domoticz.com/).