nRF24L01+ auf dem Raspberry Pi

nRF24L01+ist ein kleines Funkmodul von NORDIC SEMICONDUCTOR. Die Preise der Module beginnen je nach Bezugsquelle und bestellter Anzahl ab 1€. 

In diesem kleinen Howto möchten wir zeigen, wie man einen Raspberry Pi als nRF24L01+ Router einrichtet. Der Router empfängt Daten von einem oder mehreren Boards und sendet die Daten weiter an eine BayEOS Gateway.

1. Anschluss des nRF24L01+ Moduls am Raspberry Pi:

Das nRF24L01+ Modul kann direkt mit der GPIO-Schnittstelle des PIs verbunden werden. Am einfachsten geht das mit 8 Breakboard-Kabeln mit Buchsen an beiden Enden. 

    nRF24L01+ (top view)     Raspberry Pi
+-+-+ (header)
|8|7| 1: GND -> 20: GND
+-+-+ 2: 3.3V -> 17: 3.3v
|6|5| 3: CE -> 18: GPIO 24 (configurable)
+-+-+ 4: CSN -> 24: SPI_CS0
|4|3| 5: SCKL -> 23: SPI_SCLK
+-+-+ 6: MOSI -> 19: SPI_MOSI
|2|1| 7: MISO -> 21: SPI_MISO
+-+-+ 8: IRQ -> 22: GPIO_25 (configurable)


 

2. Aktivierung des SPI-Busses

Die Kommunikation erfolgt über das Python Modul py-spidev: Zur Installation führen Sie bitte die folgenden Kommandos aus:

sudo apt-get install python-dev

wget https://github.com/doceme/py-spidev/archive/master.zip
unzip master.zip
cd py-spidev-master/
sudo python setup.py install

Als letztes stellen Sie sicher, dass in /boot/config.txt das SPI aktiviert ist.

dtparam=spi=on

 

3. Installation der Router-Software

Falls noch nicht erfolgt, fügen Sie bayeos repository zu  /etc/apt/source.list hinzu

deb http://www.bayceer.uni-bayreuth.de/repos/apt/debian stretch main

und importieren Sie mit

sudo su
wget -O - http://www.bayceer.uni-bayreuth.de/repos/apt/conf/bayceer_repo.gpg.key |apt-key add -

den Schlüssel unseres Repositories.

Die Installation der Router-Software erfolgt mit

sudo apt-get update
sudo apt-get install python-bayeosgatewayclient python-nrf24 nrf24-router

Die Konfiguration des Routers erfolgt über die Datei /etc/nrf24-router.conf. Per default sendet der Router seine Daten an eine gateway auf localhost. Zum Starten des Routers geben Sie ein

sudo /etc/init.d/nrf24-router start

Möchte man, dass der Router bei jedem Neustart automatisch gestartet wird, führen Sie einen update-rc.d aus:

sudo update-rc.d nrf24-router defaults

 

4. Boards

Als Datenproduzenten nutzen wir einen eigens entwickelten LowPower Arduino. Dieser wird mit einer Knopfzelle betrieben. Der Sleep-Mode Stromverbrauch liegt bei 1-3µA. Je nach angeschlossenen Sensoren und Sendefrequenz sind Batterielaufzeiten von einem Jahr möglich.

LowPower Arduino

This site makes use of cookies More information