openmmoo 发表于 2013-4-9 11:26:55

不用多通道,nrf24l01实现多发一收

一收一发调通了,现在想在这个基础上实现多发一收,不使用多通道,太难了。
发送方全部使用统一的地址,只是在发送的数据中加入唯一关键字来识别发送方是身份。这个好做
接收方只有一个,主要是向发送方发送数据,并接收应答,以确保数据发送成功。
现在问题:多个发送方同时发送数据,接收方如何确保全部接受到,以免数据丢失。

梵谷的右耳 发表于 2013-4-9 19:54:36

我准备开始做多发一收的了,思路和你差不多, 你试试开启自动应答能否解决问题呢?行的话记得告诉我一声

openmmoo 发表于 2013-4-10 14:54:27

还要等第三个nrf才行,现在才两个,我也是先来问问看有没有走在前面的供我参考。

葱头同学 发表于 2013-4-12 18:58:00

最近在做一个项目也需要实现这个功能呢,几组感应器和nrf24L01同时向接收端发送数据,但是我用的模块近距离内(大概5米)接收容易丢包,发送没问题 等待高手出现啊!!!

openmmoo 发表于 2013-4-15 09:07:09

看资料nrf24l01是半双工的,在从发送转为接收数据的过程中要有一段时间才能稳定接收,所以如果要同时发送接收最好使用两片nrf24l01一片收一片发,我已经放弃了这个方案了!

tianruoqiwo 发表于 2013-8-30 11:56:56

lz还在?

上行分时复用,可以吧?不可能同时接收到的,会有数据冲突。
分时发,1秒内265个轮训发送,;前提是个每个终端话id,时间到就发送

openmmoo 发表于 2013-10-15 12:41:58

放弃了,太麻烦

openmmoo 发表于 2013-11-15 13:34:00

轮训发送如何同步各各发送端的时间呢?

openmmoo 发表于 2013-11-19 08:47:09

没有人用过么,或者给点思路,先送支花哈哈:{:soso_e163:}

Be1ieve 发表于 2013-11-19 09:50:07

多發一收牽涉到碰撞問題,估計單靠arduino運算能力不太夠處理碰撞機制
可以去挖24L01+的硬體多通道,規格書開到六發一收,搭配RF24庫試試看
要不就自行實作令牌功能,採用環狀或星狀網路的結構

openmmoo 发表于 2013-11-19 10:07:28

多通道不行,我要求的发射端太多超过10个
“要不就自行實作令牌功能,採用環狀或星狀網路的結構"没明白,可以可以讲解一下!也好提供个思路!

yuri_su 发表于 2014-3-18 00:35:10

这个可以很难也有比较容易的,要看你的数据量,如果只是温度等对实时性要求不高的应用是很容易实现的.

先把自动应答关掉,由软件来发送ACK.
发送端发送前先发送请求,主机收到请求后,答复并要求跳另一个频道通信.
如果收不到答复,随机延时后重新请求,随机延时的范围安装终端数量来定.

跳频后发送方进入接收状态等待接收方查询命令,收到命令后,上传数据.
如果跳频后没有等到查询命令,返回原来频道重新请求.

接收方收到数据要回复ACK.并包含数据大小或校验码,如果出错应该重传.

原野动力 发表于 2016-5-20 16:56:47

学习学习学习学习

amiao 发表于 2018-5-13 15:12:57

楼主现在弄好了吗,求大神指导一下啊

275891381 发表于 2018-5-14 13:53:09

本帖最后由 275891381 于 2018-5-14 13:55 编辑

amiao 发表于 2018-5-13 15:12
楼主现在弄好了吗,求大神指导一下啊

改成主机查询,从机相应就可以了,类似modbus;或者就是主机请求,从机ack把数据带回去;这两种方案都是主机挨个请求从机数据,还有就是数据全部接收到是指每个通道都有数据还是每个数据都不能丢,要是防止只接收一个通道只保证每个通道都有数据,发射端延时个质数就可以了,这词冲突了下次肯定错开
页: [1] 2
查看完整版本: 不用多通道,nrf24l01实现多发一收