arduino连接nRF24L01

  • 介绍
nRF24L01可以将多个Arduino、树莓派以及其他的单片机通过2.4GHz无线连接起来,一般都是成对使用(一个作为客户端,一个作为服务端)。例如:负责采集环境(温度、湿度、噪音等)数据的Arduino向树莓派发送数据。
  • 实物图片
[caption id="attachment_1205" align="alignnone" width="350"] nRF24L01 nRF24L01[/caption] [caption id="attachment_1269" align="alignnone" width="309"] nRF24L01背面图 nRF24L01背面图[/caption]
  • 服务端
[codesyntax lang="cpp" lines="normal"]
/*
VCC 3.3V
GND GND
CSN 7
CE 8
MOSI 11
SCK 13
IRQ
MISO 12
 
from arduino.surenpi.com
created 2015/3/29
*/
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

void setup(){
  Serial.begin(9600);
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setRADDR((byte *)"serv1");
  Mirf.setTADDR((byte *)"clie1");
  Mirf.payload = sizeof(char);
  Mirf.config();
  
  Serial.println("Listening..."); 
}

void loop(){
  char data;
  char words;
  if(!Mirf.isSending() && Mirf.dataReady())
  {
    Mirf.getData((byte *)&data);
    words = data;
    Mirf.rxFifoEmpty();
    Serial.println(words);
  }
}
[/codesyntax]
  • 客户端
[codesyntax lang="cpp" lines="normal"]
/*
VCC 3.3V
GND GND
CSN 7
CE 8
MOSI 11
SCK 13
IRQ
MISO 12

from arduino.surenpi.com
created 2015/3/29
*/
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

void setup()
{
  Serial.begin(9600);
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setTADDR((byte *)"serv1");
  Mirf.setRADDR((byte *)"clie1");
  Mirf.payload = sizeof(char);
  Mirf.config();
  
  Serial.println("Beginning ..."); 
}

void loop()
{
  while(Serial.available() > 0)
  {
    char words = Serial.read();
    Serial.println(words);
    Mirf.send((byte*) &words);
    
    while(Mirf.isSending()){}
    
    Serial.println("send over");
  }
}
[/codesyntax]
  • 问题
如果发现自己没有库文件的,可以留言跟我索要。 在使用了大概两个小时左右,有发烫的感觉。看来这个芯片不能长期处于工作状态,如果有办法解决的还请您能不吝赐教,留下您的看法,谢谢。
  • 参考
http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01 nRF24L01的具体介绍。

你可能感兴趣的:(无线,arduino,NRF24L01)