Pi <-> NFR24 <-> Arduino

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

Pi <-> NFR24 <-> Arduino

Message par piper » lun. 30 mai 2022 22:17

Bonjour,
Je suis sur un projet qui comme le titre l'indique fera causer Pi et Arduino via des modules NRF24L01.

Pb : par le passé, j'avais testé la faisabilité de la chose et ça fonctionnait.
A l'époque, j'utilisais WiringPi sur le Raspberry (et j'avais Jessie en OS). Cette méthode correspond au sujet déjà présent dans le forum.

Aujourd'hui, je suis sous BullsEye comme OS et WiringPi est abandonné et ne sera plus disponible comme vous le savez.
On peut encore avoir les sources de WiringPi, je pourrais le compiler. Mais je veux une solution pérenne : donc pas de WiringPi

J'ai bien trouvé 2 bibliothèques pour Python et les NRF24 mais aucune ne fonctionnent. En fait, aucune ne permet de régler le clock du bus SPI comme on le faisait avec WiringPi
Donc j'ai un arduino émetteur qui arrive à causer avec mon ESP32 (codé en C) mais il ne cause pas avec mon Pi (codé en python).
J'ai tout essayé : rien à faire alors avant de réinventer la lune , si quelqu'un l'a déjà fait. Je suis preneur.
Pour info, émétteurs et récepteurs sont évidement sur la même adresse, le même channel , j'ai mis le PA au mini et réglé le débit à 250KB (comme c'est sur l'ESP32 qui reçoit correctement les données). J'ai aussi vérifier 1000 fois les connecteurs (d'ailleurs, c'est drôles, ils appellent le CS CE : faut croiser dans la doc du AzDelivery NRF24L01)
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

jelopo
Raspinaute
Messages : 310
Enregistré le : mer. 11 oct. 2017 10:23

Re: Pi <-> NFR24 <-> Arduino

Message par jelopo » mar. 31 mai 2022 07:51

Bonjour,

J'ai également testé ce type de communication il y 4 ou 5ans...
Je m'était basé sur cette bibliothèque : https://github.com/nRF24/RF24 (qui semble toutjours active) on trouve aussi un vieux article sur framboise 314 https://www.framboise314.fr/faire-dialo ... -nrf24l01/ Je ne me souviens plus trop, mais je crois avoir eu des problèmes de stabilité à l'époque...

Donc ensuite, pour contourner le problème de fonctionnement des NRF sur Raspberry, j'avais configuré un ESP équipé d'un NRF24L01 pour le transformer en passerelle unidirectionnelle NRF -> WIFI. La communication en WIFI se faisant sur MQTT.

Faute de solution, j'espère que ceci pourra donner des pistes...

Bonnes bidouilles
A+

piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

Re: Pi <-> NFR24 <-> Arduino

Message par piper » mar. 31 mai 2022 09:32

Bonjour Jelopo, merci de la réponse.
C'est cette bibliothèque que j'ai voulu utiliser : le Pi est bien connecté au NRFL24 mais il ne reçoit jamais ce qui vient de l'Arduino : au mieux un tas de bouzes, souvent juste des 0x0.
En plus, si tu fait un print_details après avoir mis les settings de communication, tantôt l'adresse que tu as donnée est bien prise, tantôt non. Tantôt la vitesse de transmission que tu as fournit est bien prise, tantôt non etc.... et la méthode setchannel ne fait rien (le canal est semble-t-il aléatoire).

Etant donné, que comme pour toi : tout fonctionne lorsque je communique entre les Arduino et l'ESP32 :
Soit je vais faire comme toi (utiliser l'ESP32 en passerelle), soit tenter de me faire ma bibliothèque RF24 pour le Pi, parce que, vu le prix des Pi aujourd'hui, je ne compte pas remplacer les Arduino nano à 4,50 € pièce par des Pi dont le prix a dernièrement totalement explosé. Le Pb c'est que j'ai besoin de la puissance du Pi pour le "master" : j'ai essayé avec l'ESP32 mais je l'ai mis à genoux et je n'ai pas pu mettre toutes les fonctionnalités que je voulais.
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

jelopo
Raspinaute
Messages : 310
Enregistré le : mer. 11 oct. 2017 10:23

Re: Pi <-> NFR24 <-> Arduino

Message par jelopo » mar. 31 mai 2022 20:14

Bonjour,

Pour la conception de la passerelle, je me suis inspiré de ces 2 sites :
https://how2electronics.com/esp8266-nrf ... uino-node/
https://electroniqueamateur.blogspot.co ... pi-et.html

Pour la passerelle, il faut une carte microcontrôleur compatible NRF et équipé du WIFI. Aujourd'hui, je conseillerais l'utilisation d'un clone de Wemos D1 mini, qui à mon avis a le meilleur rapport puissance/prix. Si plusieurs sondes sont installées et qu'elle communiquent souvent, bien sûr, cette carte n'a pas la puissance de traitement, ni l'espace de stockage des données, c'est pour cela qu'elle n'est utilisée qu'en passerelle.

Pour communiquer via le WIFI, j'utilise MQTT dont un serveur mosquitto est installé sur le PI. Ensuite il "suffit" de déchiffrer les payload MQTT pour les traiter/stocker/afficher...

Pour émettre chaque sonde à besoin d'envoyer dans chacune de ses trames son identifiant unique afin qu'en bout de la chaine le PI puisse connaître de qui vient la série de mesures. Par exemple, l'utilisation du format json permet de standardiser le format des données.

Du coup dans ma configuration j'avais environ ceci:

Arduino RF24 json {"id":"ID", "mesures":[{"tension":3.3, "courant":10}]} -> ESP8266 RF24 -> WIFI (MQTT) -> Raspberry PI WIFI Mosquitto + json + stockage des données + affichage

Bonnes bidouilles
A+

piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

Re: Pi <-> NFR24 <-> Arduino

Message par piper » mer. 1 juin 2022 10:44

Merci, si je ne trouve pas de solution, c'est ainsi que je comptais faire. Mais ça rajoute une couche à paramétrer. (l'ESP32 a son wifi paramétré en dur.... si on passe sur une autre box....il faut le reprogrammer, tandis que le Pi lui a un OS accessible que ce soit en ssh ou en vnc ou avec un clavier, on peut facilement, sans aucune connaissance ni accès au code de l'appli paramétrer le wifi pour une nouvelle box.
A moins que tu ne mettes l'ESP32 en hot spot et le wifi du Pi verrouillé en client dessus (ou le contraire) auquel cas, pour l'échange avec mon api sur le web , il ne reste que le LAN.
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Pi <-> NFR24 <-> Arduino

Message par Artemus24 » mer. 1 juin 2022 12:46

Salut à tous.
Piper a écrit :Je suis sur un projet qui comme le titre l'indique fera causer Pi et Arduino via des modules NRF24L01.
Pourquoi le choix du NRF24L01 ? Un problème de distance ? A l'intérieur ou à l'extérieur d'une maison ?
Dois-je comprendre que le wifi ne suffit pas pour ce que tu veux faire.

Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

domi
Administrateur
Messages : 3233
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Pi <-> NFR24 <-> Arduino

Message par domi » mer. 1 juin 2022 18:00

piper a écrit :
mer. 1 juin 2022 10:44
Mais ça rajoute une couche à paramétrer. (l'ESP32 a son wifi paramétré en dur.... si on passe sur une autre box....il faut le reprogrammer,...
Bonjour,
Pour ma part, sur mes objets IOT (à base d'ESP8266 le plus souvent), je fais des mise à jour OTA. C'est vrai qu'il faut penser à faire la mise à jour avant le changement de Box ;) Mais pour mes modifications de programme, c'est plus souple en OTA plutôt que de débrancher le module.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

Re: Pi <-> NFR24 <-> Arduino

Message par piper » jeu. 2 juin 2022 20:32

Bonjour Artemus.
Dois-je comprendre que le wifi ne suffit pas pour ce que tu veux faire.
Je ne souhaite pas donner de la confiture aux cochons
Pour être plus précis j'ai besoin d'un maitre et de 7 esclaves.
J'ai le choix comme tu dis : si chaque esclave est en wifi (donc chacun un Pi avec un OS, donc arrêt problématique s'il est brutal, une carte SD qu'il faut chouchouter et au prix des Pi aujourd'hui ... ça pique.)
Ou
Le maitre est un Pi, les esclaves sont des arduinos à 4,50 € TTC pièce sans OS, sans carte sD qu'on peut éteindre brutalement et ré-allumer tout aussi brutalement sans soucis.
Seul le maitre a besoin impérativement d'accéder à une Api Web (donc lui est un Pi)
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Pi <-> NFR24 <-> Arduino

Message par Artemus24 » jeu. 2 juin 2022 21:00

Salut Piper.

Comment vas-tu ?

Ma question concernant le choix du "NRF24L01".

Pour l'usage des IOT, je préfère utiliser mes NodeMCU ESP32.
Il ne sont pas trop cher. Pas de carte micro SD et un arrêt brusque ne provoque aucun dommage.
La manipulation se fait par page web, depuis n'importe quel ordinateur, même à l'autre bout du monde.

La problématique concerne la distance entre les ESP32 et la box wifi.
J'ai penné qu'en faisant le choix du NRF24L01, tu désirais augmenter la distance à 10m, voire plus si tu n'as aucun obstacle en ligne droite.

J'avais bien envisager de passer au lora, mais je rencontre deux problèmes.
Ils sont chers et il faut un abonnement pour se connecter à l'internet.
Je ne connais pas ce NRF24L01. J'aurai aimé que tu m'en parles un peu plus.

Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

jelopo
Raspinaute
Messages : 310
Enregistré le : mer. 11 oct. 2017 10:23

Re: Pi <-> NFR24 <-> Arduino

Message par jelopo » ven. 3 juin 2022 00:02

Bonjour,
piper a écrit :
jeu. 2 juin 2022 20:32
Pour être plus précis j'ai besoin d'un maitre et de 7 esclaves.
A savoir:
Basiquement, un nRF24 ne peut communiquer qu’avec 6 autres nRF24 au maximum (mais nous verrons comment dépasser cette limite en fin d’article, en créant un réseau de NRF24L01). Mais attention, car sur ces 6 pipes, un seul est utilisable en émission/réception (les autres ne pouvant qu’écouter, et non émettre).
Source: https://passionelectronique.fr/tutorial-nrf24l01/

A+

Répondre

Retourner vers « Utilisateurs avancés »