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

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

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

Message par Jean-Marie » sam. 14 mars 2015 15:01

Hello lawfix

Merci pour ton retour d'expérience.
Je vais me commander des modules nRF24L01. Je pourrai ainsi faire la comparaison avec les modules ESP8266.
J'aimerais me commander ceux-ci car ils ne sont pas chers, mais on ne voit pas l'antenne. Qu'en penses-tu ?

Il semble que le nRF24L01 ait une consommation très basse à l'état de veille. Ce serait un point intéressant pour un périphérique sur batterie.

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

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

Message par lawfix » lun. 16 mars 2015 22:53

Bonsoir,

Alors je t'avouerai que j'ai un peu pris ce genre de RF24 pour faire mes tests, achetés sur la bay.

Après pour le future, je pense en prendre avec une vraie antenne selon l'endroit ou sera situé le capteur.

Je dirais que l'utilisation est différente, les ESP utilisent le wifi donc à mon sens (pas encore testé) la configuration sera plus simple.

Ce que je regrette un peu avec les RF c'est qu'il n'y ai pas ( ou alors je n'ai pas trouvé ) de tutoriel pour faire communiquer le pi et le duino ensemble.

Car mon idée est de faire lire les duino par le pi pour qu'il écrive la température dans une base SQL.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

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

Message par vague nerd » sam. 21 mars 2015 16:02

Bonjour Jean-Marie.

Je vois que vous indiquez "tuto en fin de topic".
Je me tiens à votre disposition pour verrouiller le sujet pour que le tuto reste bien en fin de topic !

Par contre, je vous conseille plutôt d'éditer votre premier post pour y inclure ce tuto.
Ainsi, la discutions peut se prolonger indéfiniment dans le sujet.

En tout cas, merci de vos contributions.

Cdt.
Cordialement,

Vague Nerd

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

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

Message par Jean-Marie » sam. 21 mars 2015 22:28

Hello vague nerd,

En fait, c'est lawfix qui a choisi le titre du sujet et qui a écrit son tuto dans son message du 8 mars 19h55.

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

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

Message par lawfix » sam. 21 mars 2015 23:31

En fait, j'avais changé le titre pour la simple et bonne raison que ayant trouvé la solution, j'ai préféré la partagée tout simplement.

Maintenant j'en suis à la partie code, ou je ne parviens pas encore à lire sonde de température depuis le raspberry.

J'ai produit ces codes à partir d'exemple trouvé ci et là.

Si quelqu'un pouvait m'aider à dépatouiller cela...

Côté Duino :

Code : Tout sélectionner


//DS18b20 libraries
#include <OneWire.h>
#include <DallasTemperature.h>
//NRF24L01 libraries
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN 9
#define CSN_PIN 10

const uint64_t canal =  0xF0F0F0F0D2LL;

RF24 radio(CE_PIN, CSN_PIN);

const byte delay_seconds = 1; //Segundos entre ejecuciones del loop
const byte TEMPERATURE_SENSOR_BUS = 2; //Pin al que esta conectado el sensor de temperatura

OneWire oneWire(TEMPERATURE_SENSOR_BUS);
DallasTemperature sensors(&oneWire);

void setup()
{
 Serial.begin(9600); //Start serial port

 sensors.begin();

radio.begin();

 radio.openWritingPipe(canal);

}

void loop()
{

 String a = String(request_temperature());

 char s[a.length()];
 a.toCharArray(s, a.length());

 bool ok = radio.write( s, sizeof(s));


 delay(delay_seconds * 1000);
}

float request_temperature() {
 sensors.requestTemperatures();
return sensors.getTempCByIndex(0);
}
Côté Pi :

Code : Tout sélectionner


#!/usr/bin/python
# raspberry pi nrf24l01 hub

from nrf24 import NRF24
import time
from time import gmtime, strftime

pipes = [0xf0, 0xf0, 0xf0, 0xf0, 0xd2]

radio = NRF24()
radio.begin(0, 0,25,18) #set gpio 25 as CE pin
radio.setRetries(15,15)
radio.setPayloadSize(32)
radio.setChannel(0x4c)
radio.setDataRate(NRF24.BR_250KBPS)
radio.setPALevel(NRF24.PA_MAX)
radio.setAutoAck(1)
radio.openWritingPipe(pipes[0])
radio.openReadingPipe(1, pipes[1])

radio.startListening()
radio.stopListening()

radio.printDetails()
radio.startListening()

while True:
    pipe = [0]
    while not radio.available(pipe, True):
        time.sleep(1000/1000000.0)
    recv_buffer = []
    radio.read(recv_buffer)
    out = ''.join(chr(i) for i in recv_buffer)
    print out
Merci par avance :)

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

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

Message par vague nerd » dim. 22 mars 2015 09:41

Bonour.
En fait, c'est lawfix qui a choisi le titre du sujet et qui a écrit son tuto dans son message du 8 mars 19h55.
Oooops :oops: . Merci de vos contribution dans les divers forums !

Ben pareil, lawfix !
Quand vous aurez fini le tuto ('zavez vu ? Pas de conditionnel ! Vous/on aller/va y arriver !), je vous encourage à mettre le tuto dans un nouveau sujet ou en premier post.
Si néanmoins vous souhaitez avoir le tuto en fin de thread, je me tiens à votre disposition pour le verouiller.

EDIT : le plus simple au vu du sujet serait peut-être de faire un lien à partir du premier post vers le(s) tuto(s). Un genre de sommaire, quoi.
Par exemple, un lien vers le post 5261 du présent thread. Par exemple : 1. Les branchements et l'installation logicielle

Cdt.
Cordialement,

Vague Nerd

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

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

Message par lawfix » dim. 22 mars 2015 11:21

Hello,

Oui effectivement cela serait plus pratique !

en fait, je pensais refaire un tuto dans la section appropriée avec des images et un peu plus de détails.

C'est juste que je ne dispose pas de beaucoup de temps pour assouvir ma passion framboise mais malgré tout je souhaitai mettre à disposition un tutoriel pour ceux qui avaient eu beaucoup de mal :)

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

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

Message par vague nerd » dim. 22 mars 2015 15:06

Pareil ici !
:D
Cordialement,

Vague Nerd

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

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

Message par lawfix » lun. 23 mars 2015 19:24

C'est pour ça qu'un peu d'aide est la bienvenue car je bidouille certes, mais je débute en codage !

A toute tout le monde :)

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

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

Message par Jean-Marie » lun. 23 mars 2015 21:23

Hello lawfix

Je suis aussi sur le versant bidouillage.
Mes nRF24L01 sont commandés. Je les attends.
Sur le plan programmation, c'est en assembleur sur les AVR que je me débrouille le mieux. En C je suis débutant et je n'ai pas encore touché au Python.
J'ai un Raspi B+, un Arduino Uno, des Atmega et quelques Attiny.
Puisqu'on est tous les deux débutants en codage, on pourrait s'épauler dans la mise en oeuvre de ces nRF.

Répondre

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