nRF24L01 et B+ [tuto en fin de topic]

Un lieu pour discuter des composants et de leur utilisation. Un passage obligé si vous devez interfacer votre Raspberry Pi avec le monde extérieur. On y trouvera aussi les cartes type commande de moteur pas à pas, continu, servo...

Modérateurs : Francois, smba38

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » lun. 15 juin 2015 17:40

point mort, depuis mon accident de sauvegarde. je suis sur un autre projet , un peu de mini mécanique pour la construction d'un anémomètre , qui transmettra évidement par ....nrf24l01.
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

lawfix
Messages : 66
Enregistré le : mer. 24 sept. 2014 10:02

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par lawfix » lun. 15 juin 2015 18:57

C'est déjà bien de persévérer ! Par contre j'espère que t'as trouvé une solution sans réécrire toute la librairie... déjà que j'ai du mal à capter l'originale, je ne me vois pas la réécrire !

lawfix
Messages : 66
Enregistré le : mer. 24 sept. 2014 10:02

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par lawfix » lun. 15 juin 2015 23:16

Humm après quelques recherches sur internet, la fonction ftoa n'est pas intégrée dans la librairie de l'arduino.

Pour autant même en cherchant sur le net, il n'y a pas vraiment de fonction ftoa, la seule que j'ai trouvé qui s'en approche c'est dtostrf mais qui me provoque des erreurs.

Ce soir je test ce bout de code on verra bien :

Code : Tout sélectionner


#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
#include <OneWire.h>
#include <DallasTemperature.h>

OneWire oneWire(2);

DallasTemperature sensors(&oneWire);

// ce,csn pins
RF24 radio(9,10);
char valTexte[21] = "";                //Variable texte

void setup(void)
{
  sensors.begin();  
  Serial.begin(57600);
  Serial.println("**************V1 Send Sensor Data***********");
  radio.begin();
  radio.setPALevel(RF24_PA_LOW);
  radio.setChannel(0x4c);

  // open pipe for writing
  radio.openWritingPipe(0xF0F0F0F0E1LL);

  radio.enableDynamicPayloads();
  radio.setAutoAck(true);
  radio.powerUp();
  Serial.println("...Sending");
}

void loop(void) {

sensors.begin(); //demarrage du capteur de temperature
sensors.requestTemperatures(); // demmande mesure de temperature
float temp = sensors.getTempCByIndex(0); // Lecture de la temperature
dtostrf(temp,14,8,valTexte);           //Convertit temp en texte
radio.write(&temp,4);

  // print and increment the counter
  Serial.print("Temperature sent:  ");
  Serial.println(temp);
  // pause a second
  delay(500);

}

Le bout de code est passé au débug, mais après ça ne veut rien dire.. et j'ai pas mon arduino ni mon pi à la pause midi ^^

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » mar. 16 juin 2015 14:24

http://c.developpez.com/faq/?page=Les-c ... S_strtonum

C est un petit rappel sur les chaines de caracteres, il y a aussi un paragraphe sur
la convertion des nombres en chaine.
Autant pour moi ftoa n est pas un standard du C , on peut utiliser des derivés de
printf ( tout est dans le lien).

Pour dtostrf, je connais pas , je dirai decimal to string, il y a peut etre une fonction ftostrf , float to string?

@+
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

lawfix
Messages : 66
Enregistré le : mer. 24 sept. 2014 10:02

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par lawfix » mar. 16 juin 2015 14:28

Je regarde ce soir sans faute !

je persévère, et avec tes conseils je vais bien y arriver quand même...

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » mar. 16 juin 2015 17:32

c'est toujours un plaisir.
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

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

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par domi » jeu. 18 juin 2015 08:38

Salut,

Bon après 2 soirées , j'ai enfin réussi hier soir à faire dialoguer un Rpi B+ avec un Arduino Nano via nRF24L01.

Mon premier test :
Rpi en tant que demandeur, Arduino en tant qu'exécuteur d'allumage, d’extinction, ou de renvoi de l'état d'une led.

Test à venir :
  • Réinstallation sur une Raspbian "propre"
  • Demander au Nano via Rpi de lui retourner une température ainsi que le taux d'humidité
Fonctionnement actuel de mon test :
  • Allumage de la LED
    • Le Rpi envoi une chaine JSON pour demander l'allumage de la led au Nano (envoi N° id attribué au nRF24L01 du Nano + commande "on").
    • Le Nano allume la LED, lit l'état de la Led, et retourne sont état au Rpi.
    • Le Rpi reçoit l'état de la LED (chaine JSON comprend la validation de commande du Nano (true ou false) ainsi que l'état de la Led (on ou off))
  • Extinction de la LED
    • Idem ci dessus, mais envoi d'une commande "off"
  • Demander l'état de la LED
    • Le Rpi envoi une chaine JSON pour demander au Nano quel est l'état de la led (envoi N° id attribué au nRF24L01 du Nano + commande "get").
    • Le Nano lit l'état de la Led, et le retourne au Rpi.
    • Le Rpi reçoit l'état de la LED (chaine JSON comprend la validation de commande du Nano (true ou false) ainsi que l'état de la Led (on ou off))
Voici ce que j'ai réussi à faire hier soir.
Mon but est d'avoir des petits montages autonomes répartis à différents endroits, me permettant soit d'allumer quelque chose (un relais remplacera la Led), soit d'avoir des capteurs de température/humidité (type DHT 11 ou 22) qui permettrons au Rpi de consulter leurs informations.

Afin de comprendre le fonctionnement, je me suis inspiré de beaucoup d'informations trouvées sur le Net. Aucune n'a fonctionné réellement, j'ai donc fait un condensé des différentes informations. Ayant pas mal "bidouillé" avant d'y arriver, je vais retenter l'expérience sur une Raspbian toute neuve, je ferai ensuite un petit retour de mes différentes installations et configurations nécessaires pour faire fonctionner cet ensemble.

Cdt,
Domi
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

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » jeu. 18 juin 2015 11:25

C est bien tous ca!

Pour info , j ai fait communiquer 2 rpi avec les esemples de la biblioteque Rf24 , sans problemes .
j ai remarquer aussi quˋil faut un peut de distance entre deux nrf pour que ca fonctionne mieu.
Deux metres semble une distance correct pour des essais, je n ai pas essayé de baisser le niveau rf pour mes essais
en proximité, ca peut aider aussi.
@+
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

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

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par domi » mer. 24 juin 2015 22:28

Salut,

Je viens d'y passer toute ma soirée à mettre en forme sur le forum,
Le tuto pour connexion d'un Raspberry avec un Arduino via nRF24L01 est dispo ici.

Bonne lecture.
Domi
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

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » jeu. 25 juin 2015 07:25

Comme d'habitude , super boulot Domi.
merci .
(tu pourrais pas en faire un pour rpi et stm32 ..... :D :D :D )
@+
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

Répondre

Retourner vers « L'électronique et le Raspberry Pi »