Raspberry Pi und nRF24L01+ Funkmodul

OP #3526117
Lesenswert?
• ▲
▼
Hallo Leute,

ich versuche nun schon seit einigen Tagen eine Ansteuerung für ein 
nRF24L01+ Funkmodul auf meinem Raspberry Pi zu realisieren. Ich nutze 
zur Ansteuerung eine modifizierte Version der RF24.h, welche ich im 
Internet gefunden habe. Passend dazu habe auch ein fertiges Programm im 
Internet gefunden, welches ich ein wenig abgeändert habe:
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <unistd.h>
4
#include <string.h>
5
#include <string>
6
#include <getopt.h>
7
#include <cstdlib>
8
#include <iostream>
9
#include "/home/pi/RF24/librf24-rpi/librf24/RF24.h"
10

11
using namespace std;
12
RF24 radio("/dev/spidev0.0",8000000,25); //spi device, speed and CSN,only CSN is NEEDED in RPI
13
const int role_pin = 7;
14
const uint64_t pipes[1] = { 0xF0F0F0F0E1LL };
15

16
void setup(void)
17
{
18
  //Prepare the radio module
19
  printf("\nPreparing interface\n");
20
  radio.begin();
21
  printf("Started\n");
22
  radio.setRetries( 15, 15);
23
  radio.setChannel(0x4c);
24
  radio.setPALevel(RF24_PA_MAX);
25
  radio.setPALevel(RF24_PA_MAX);
26

27
  radio.openWritingPipe(pipes[0]);
28
  radio.openReadingPipe(1,pipes[1]);
29
  radio.startListening();
30
  radio.printDetails();
31
}
32

33
void switchLight(void)
34
{
35
  //This function send a message
36

37
  unsigned long message = 2;
38
  
39
  //Send the message
40
  bool ok = radio.write( &message, sizeof(unsigned long) );
41
  if (ok)
42
    printf("ok...");
43
  else
44
    printf("failed.\n\r");
45
}
46

47
int main( int argc, char ** argv)
48
{
49
  uint8_t i;
50
  
51
  setup();
52

53
  for(i = 0; i < 1000; i++)
54
  {
55
      printf("Sending message...\n");
56
      switchLight();
57
      printf("Done...\n");
58
  }
59
}

Ursprünglich war es ein Programm um ein Licht per Funk einzuschalten. 
Nun soll das Programm ganz einfach immer wieder eine 2 an den 
Kommunikationspartner senden. Das hat soweit nur den Sinn, dass ich auf 
dem Oszi sehen möchte ob sich überhaupt was am SPI-Port des RPi tut.

Wenn ich das Program in der Konsole Kompeliere, so kommt folgende 
Ausgabe:

Preparing interface
can't open device: no such file or directory

Hat sich schon mal einer von euch mit dem Thema befasst und kann mir 
weiterhelfen?

Ich entschuldige mich schonmal im Voraus für den Programmierstill, aber 
ich möchte erstmal einfach nur das es läuft. Danach werde ich dann alles 
sauber Programmieren.
Gast #3533359
Lesenswert?
• ▲
▼
Hay,

ich bin zur Zeit leider bei dem gleichen Problem =D. Die Anleitungen 
dafür sind einfach viel zu undetailiert ...

Ich vermute aber, dass irgendwas mit dem foldenden Teil nicht stimmt:
RF24 radio("/dev/spidev0.0",8000000,25);

Da
"/dev/spidev0.0"
bei mir zumindest erst garnicht existiert.


In welchem Teil der Anleitung das installiert werden sollte? Keine 
Ahnung. Ich glaube der Teil ist in der Anleitung der ich gefolgt bin 
leider weggefallen.


http://hack.lenotta.com/arduino-raspberry-pi-switching-light-with-nrf24l01/
Gast #3533596
Lesenswert?
• ▲
▼
Problem bei mir gelöst:
Methode 2 bei der GPIO-Einrichtung funktioniert nicht zu 100% =D

Ich habe Methode 1 inklusive des Reboots hinterhergeschoben und es 
funktioniert nun. Ob es jetzt lediglich an dem Reboot lag kann ich im 
Nachhinein nicht sagen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.