楼主你好,我想用这个模块发送多个传感器的数据,不知道该怎么改,能否指教一下?十分感谢
三公分阳光 发表于 2015-7-24 17:24 static/image/common/back.gif
楼主你好,我想用这个模块发送多个传感器的数据,不知道该怎么改,能否指教一下?十分感谢
你是希望一对多那种?多个传感器给一个主服务器发送数据?如果是这样那么很简单啊代码基本上不需要改动 你只需要在传送过去的数据里面加上一个自己定义的报头表明自己的身份就是了
L.anrist 发表于 2015-7-24 18:22 static/image/common/back.gif
你是希望一对多那种?多个传感器给一个主服务器发送数据?如果是这样那么很简单啊代码基本上不需要改动 ...
额,能再具体一点吗?我刚接触这个有点不懂,谢谢啦
L.anrist 发表于 2015-7-24 18:22 static/image/common/back.gif
你是希望一对多那种?多个传感器给一个主服务器发送数据?如果是这样那么很简单啊代码基本上不需要改动 ...
是多个传感器数据同时通过 nrf24l01传递给另一个 nrf24l01然后被arduino接收这样
L.anrist 发表于 2015-7-24 18:22 static/image/common/back.gif
你是希望一对多那种?多个传感器给一个主服务器发送数据?如果是这样那么很简单啊代码基本上不需要改动 ...
同时我还想问一下,如果要接收传感器的值该怎么改程序?我试了一下午了都不行,不知道问题在哪,求指教!
三公分阳光 发表于 2015-7-24 19:39 static/image/common/back.gif
同时我还想问一下,如果要接收传感器的值该怎么改程序?我试了一下午了都不行,不知道问题在哪,求指教!
一般来说你需要修改接受的传感器的数值是float量吧?如果是这样的话那么你在setup()函数里把对应的 Mirf.payload 修改成 Mirf.payload = sizeof(float);这样子传送的时候就是传送float大小的数据 接受的时候你只需要定义的接受的变量是float然后指针强制类型转换一下就能够拿到要的数据 比如接收端你写成 float data; Mirf.getData((byte *) &data); 至于多对一传送数据,关键在于你需要注意每个节点的地址,比如说主节点其实就是一个接受地址比如你设置成 Mirf.setRADDR((byte *)"NODE0");设置好了接受地址那么其他几个从机在发送数据的时候就可以先Mirf.setTADDR((byte *)"NODE0");然后发送 这样相当于是给NODE0这个接受地址发数据 至于从节点 你就不需要关注RADDR了 因为他们不需要接受信息。当然 如果你开启了增强型SHOCKBURST模式 那么他们在通信的时候是会自动来回一次那么这种情况下每个节点都需要有一个明确的RADDR。 多看看nrf24l01的数据手册 里面写得很详细:)
三公分阳光 发表于 2015-7-24 19:39 static/image/common/back.gif
同时我还想问一下,如果要接收传感器的值该怎么改程序?我试了一下午了都不行,不知道问题在哪,求指教!
最近有些忙 等我稍微有空的时候可以写一个多个节点之间进行通讯的例程
楼主,我为啥点击发送的时候板子上的接收灯会亮起来。而且接收也收不到数据
L.anrist 发表于 2015-7-30 09:03 static/image/common/back.gif
最近有些忙 等我稍微有空的时候可以写一个多个节点之间进行通讯的例程
额,楼主你可能还是没明白我的意思,我的意思是多个传感器通过一个nrf24l01模块给另一个nrf24l01模块发送数据,我现在尝试了单个传感器数据可以发送,但是多个一起通过一个nrf24l01发送给另一个的时候就不知道怎么办了,尝试了把多个传感器的数据变成数组发送但是没有成功,请问有没有什么的好的办法可以解决?谢谢啦
Muller_r 发表于 2012-7-12 17:38 static/image/common/back.gif
谢谢楼主的资料,我想请教一下 unsigned char status = SPI_Read(STATUS);里STATUS 到底是什么?[一直很不 ...
是STATUS状态寄存器
三公分阳光 发表于 2015-8-12 01:10 static/image/common/back.gif
额,楼主你可能还是没明白我的意思,我的意思是多个传感器通过一个nrf24l01模块给另一个nrf24l01模块发送 ...
这个很容易啊 你把所有的数据都转换成byte然后用标识符自己制定一个协议 比如说ABC三个传感器产生数据12,456,8
那你传送的时候传送如下 <A12><B456><C8>
这样子的话接受方只需要解析所有尖括号内的内容并根据尖括号内第一个字符来判断是什么传感器的数据 以右尖括号判断数据结尾处就是了。
我之前曾经这样传送过类似的数据
[email protected] 发表于 2015-8-10 11:22 static/image/common/back.gif
楼主,我为啥点击发送的时候板子上的接收灯会亮起来。而且接收也收不到数据
点击发送是什么意思呢?
楼主有尝试多通道通讯吗?最近想学这个,不知道能否给点启发和资料。谢谢
性感的阿淇 发表于 2015-10-15 21:56 static/image/common/back.gif
楼主有尝试多通道通讯吗?最近想学这个,不知道能否给点启发和资料。谢谢
多通道的话你就不要用mirf这个库了 这个默认一个通道。建议去看下官方文档,其实拿三个nrf一个arduino就能实验,一个nrf有六个同频道不同地址的接受通道,每个通道都有个各自的fifo接受缓存,你只要会了使用一个通道的接受,那么其他通道没什么太大区别。
谢谢楼主,学习。