【开源】基于 STM32 + RT-Thread 的 6LoWPAN 无线自组网方案
本帖最后由 sunnydragon 于 2018-7-22 21:50 编辑背景自组网的需求在工业工控、智能家居等领域都很常见。提到自组网,很容易联想到常见的自组网协议 Zigbee ,但由于种种原因,Zigbee 的发展速度很慢。大家逐渐的把焦点聚焦到 6LoWPAN 技术上。
6LoWPAN (IPv6 over Low-Power Wireless Personal Area Networks) 作为物联网的一种协议方式,已经发展了很多年。使用这项技术后,所有节在点网络层通过 IPv6 联系起来,组网方式更加标准化,极大的方便了上层应用的开发。一些 RF-SoC (例如:CC1310) 都有对应的协议栈,最常见就是基于 Contiki 。
为什么基于 RT-ThreadContiki 的协程式编程方式虽然省了资源,但是跟常规的 RTOS 编程方式差距很大,如果自己之前做过一些基于 RTOS 的代码,可能也没法拿到 Contiki 上用了。这里选择 RT-Thread 的原因是:
[*]RT-Thread 作为起步较早国产的 RTOS ,成熟、稳定、可靠,工业产品很看重这点
[*]同时还有国内最大的嵌入式开源软件社区,解决问题(尤其是新技术)、寻找大牛都很方便
[*]再加上,之前很多项目也都是基于 RT-Thread ,对其内部有一定的了解,这也能让我们从技术角度,解决 RT-Thread 与 Contiki 的共存问题。
为什么选择 STM32常见的 RF-SoC 都已经支持好了 Contiki ,这点是不错,但是主要问题是这些 RF-SoC 资源都非常的小,如果项目单一的业务还好,但如果又需要 GUI ,又要跑文件系统。此时只能选择 资源较多的常规 MCU + RF IC 的方式,协议栈跑在 MCU 上。
介绍这个开源项目被命名为 ART-6LoWPAN ,由我们 ART-6LoWPAN 开发团队独立自主研发完成。项目最早是从 2017年8月 开始,在此期间,相关技术都已经在产品上做过充分的验证。这也是一个软件和硬件全开源的项目,也希望通过这个项目,降低 6LoWPAN 的应用门槛。还可以利用本项目提供的类 Arduino 的开发板,加速产品原型设计的验证过程。
另外,不得不提一下,在去年 11 月底,中共中央办公厅 国务院办公厅 印发了 《推进互联网协议第六版(IPv6)规模部署行动计划》 。这说明了国家当前对于 IPv6 的重视,对我们团队也是一种极大的鼓舞,希望 IPv6 在物联网领域的应用会越来越广。
功能特点
[*]采用 6LoWPAN 协议,节点支持 mesh 组网,并支持 IPv6
[*]Sub-1G 频段,传输距离远,穿墙性能更好
[*]兼容 Arduino 接口,灵活接入更多传感器,加速产品原型设计的验证
[*]基于 RT-Thread 3.0 物联网操作系统,丰富的组件及设备驱动,开发更容易
[*]支持动态运行 Python 脚本,极强的可玩性
[*]软件代码(Eclipse/IAR/Keil(暂不完整))、硬件设计资料全部开源,量产级要求,高质量开源
应用场景
[*]远距离、多节点数据采集
[*]无线信号穿墙性能要求较高的设备间通信
[*]支持 Sub-1G 频段的多功能网关
项目展示
原理图http://static.zybuluo.com/armink/18z3mhf8k1w6ut0hgjcqngn5/image.png
项目开源硬件的引脚关系图http://static.zybuluo.com/armink/s9axrdfdy0l46mbrgugrldr9/image.png
测试节点全家福http://static.zybuluo.com/armink/nx7jcxyrtxwmt6rbbnv2p641/image.png
无线通信测试http://static.zybuluo.com/armink/szqtvslykzqnqlmjbftnqswg/communication_test.gif
边界路由:节点树http://static.zybuluo.com/armink/6ftgnaxc12ddu97x7dwg1ye9/image.png
边界路由:ping 节点http://static.zybuluo.com/armink/pnfe2orf4fn9d4r777fn73at/ping6_test.png
应用层:CoAP 通信演示http://static.zybuluo.com/armink/g5h0frifd0jzs2x3aqa27qlh/node_coap_server%20-%20%E5%89%AF%E6%9C%AC.png
IAP 在线升级http://static.zybuluo.com/armink/0wr3m4osl8jbxmh94vk6n9f9/iap.gif
MicroPython 固件演示http://static.zybuluo.com/armink/hq3hrifsnvk5b704273cq4k5/micropython_getting_started.gif
文档Markdown 格式,位于 /docs 下。在线文档:https://github.com/ART-6LoWPAN/art-6lowpan/tree/master/docs/zh
下载实时最新代码及资料请关注 GitHub 仓库:https://github.com/ART-6LoWPAN/art-6lowpan本坛下载:
提示:配套的开发板硬件目前存货很少。大家如果配套开发板硬件,请将需求数量跟帖留言。
后续如果量大,可以考虑小批量或者众筹一下。 大家注意一下,楼主位压缩包内的 PCB 文件近期有更新,最新版位于 GitHub:https://github.com/ART-6LoWPAN/art-6lowpan ,务必去 GitHub 下载最新版本。 正想研究这个呢 支持楼主 支持,大写的服{:lol:} 不错,收藏先,最近物联网有点火 厉害了 楼主每次都带来神作啊,强!!! 大牛啊, 牛x,这些功能楼主都参与实现了,还是一部分? 这个楼主真是强大,关注你好几年了。只要上来就是重磅炸弹 赞楼主的开源精神,发布了好多实用的资料 楼主大牛,好东西啊,谢谢 谢谢分享。。。。。。。 只有我一个人看到的图片是这样的吗 sub 1ghz 传输距离一般是多少 支持,学习了,mark 这个强大 楼主牛! 学习啦!!! 很强大,强烈支持 红红火火 先加入收藏了 恭喜楼主 厉害,技术大牛! 谢谢分享 ibichao 发表于 2018-7-22 22:58
牛x,这些功能楼主都参与实现了,还是一部分?
都参与了。甚至很多技术的实现都是世界首创,比如:
Contiki 这类协程式 OS 与 RTOS 的融合
MicroPython 在 RT-Thread 上的移植 honami520 发表于 2018-7-22 22:59
这个楼主真是强大,关注你好几年了。只要上来就是重磅炸弹
哈哈,以前都是纯软件类开源项目呢。这个项目周期有点长,主要时间花在了射频调试及协议栈部分。
等底层基础做好了,应用层直接用 CoAP 这类协议,确实很方便呢。 机器人天空 发表于 2018-7-22 23:22
只有我一个人看到的图片是这样的吗
重新刷新试试呢?我在手机和电脑上看都没有问题呢。 赞楼主的开源精神 支持个,前一段时间研有个项目要使用这个,然后研究了下,后面放弃了,太复杂了,有没有详细的资料 sunnydragon 发表于 2018-7-23 08:25
重新刷新试试呢?我在手机和电脑上看都没有问题呢。
用IE打开没有问题 solojimes 发表于 2018-7-22 23:32
sub 1ghz 传输距离一般是多少
距离还是相当可观的,按照 模块厂家的 说法 100mW 功率 1km 是没有问题。
选择 sub 1ghz 主要原因是穿墙性能好,项目要应用于大楼中,普通的 2.4G 通信一堵实体墙就差不多不行了。
这里的 sub 1ghz 用的 433M 频段,100mW 功率情况,实测 3 堵半米厚的实体墙都没有问题。
在加上软件层面上,还有自组网协议,较远的节点可以跳传,所以覆盖面又大大提高了。 楼主又出精品了 收藏了 Gohome_soon 发表于 2018-7-23 08:28
支持个,前一段时间研有个项目要使用这个,然后研究了下,后面放弃了,太复杂了,有没有详细的资料 ...
你指的是 6LoWPAN 协议栈吗?
我建议先从应用入手,比如使用 CoAP 发送 设备传感器 数据到边界路由,再在电脑上查看。
主观上对 6LoWPAN 能实现的功能有一定认识以后,再去深入了解底层。 不错厉害! 正想搞无线自组网,感谢楼主! 赞一个,好好加油 楼主出品必属精品,关注围观 sunnydragon 发表于 2018-7-23 08:20
都参与了。甚至很多技术的实现都是世界首创,比如:
Contiki 这类协程式 OS 与 RTOS 的融合
板子有卖不? 楼主是中国开源界的大神啊!超赞! 感谢共享,楼主必是RT-Thread的技术大牛或元老之一! 楼主出品,必属精品。 楼主牛人,膜拜中。。。 大作品,谢谢分享,改天研究一下 6LoWPAN部分能否做出RTT的一个包呢,然后能跑RTT的硬件都可以跑6LoWPAN了? 膜拜一下,打算使用lora模块,如果不用他们的网关芯片,组网起来很麻烦。考虑是不是可以换个方案{:lol:} 感谢楼主 之前就看到了 一直不见楼主宣传 sup888 发表于 2018-7-23 09:24
膜拜一下,打算使用lora模块,如果不用他们的网关芯片,组网起来很麻烦。考虑是不是可以换个方案 ...
硬件用LORA,软件用6LAWPAN可以吧 楼主这个做的不错,很给力。 lghtjpu 发表于 2018-7-23 10:49
硬件用LORA,软件用6LAWPAN可以吧
lora声称的距离的确是远,实际上感觉也缩水的厉害。 wsg 发表于 2018-7-23 11:10
lora声称的距离的确是远,实际上感觉也缩水的厉害。
距离远之后,空中速率慢的难以接受。 太牛了,我又要站到巨人的肩膀上了。 lghtjpu 发表于 2018-7-23 10:49
硬件用LORA,软件用6LAWPAN可以吧
lora用在物理层可以!但感觉怪怪的,loraWAN用lora主推星型网的! 6666,收藏了
这东西开发的牛!!! 厉害,很给力,666 机器人天空 发表于 2018-7-22 23:22
只有我一个人看到的图片是这样的吗
只有你这样,啥浏览器. 好东西,!!!!!!!!!! hyz_avr 发表于 2018-7-23 15:58
只有你这样,啥浏览器.
尴尬,win10自带IE 楼主大神出了不少精品了,早都记住armink这个名字了 dswkl11 发表于 2018-7-23 08:52
板子有卖不?
暂时没有。你需要几块,可以先记录着,后续量大,可以考虑小批量一下。 jacktau 发表于 2018-7-23 09:04
感谢共享,楼主必是RT-Thread的技术大牛或元老之一!
呵呵,用 RT-Thread 确实有一些年头了。
从 2010 年的 0.3.2 版本就一直开始用了。RT-Thread 带来的技术改变确实非常大。 rerainings 发表于 2018-7-23 09:11
这个板子有卖的?
暂时没有。你需要几块,可以先记录着,后续量大,可以考虑小批量一下。 lghtjpu 发表于 2018-7-23 09:23
6LoWPAN部分能否做出RTT的一个包呢,然后能跑RTT的硬件都可以跑6LoWPAN了?
后续是有这样的计划呢。
正好 RT-Thread 最近刚刚新推出的 SAL (Socket 抽象层)组件,跟这个项目结合起来,简直是绝配。 sup888 发表于 2018-7-23 09:24
膜拜一下,打算使用lora模块,如果不用他们的网关芯片,组网起来很麻烦。考虑是不是可以换个方案 ...
lora 在国家层面都逐渐被和谐掉了,继续选用确实要慎重呢。
而 IPv6 接下来这 10 年会是国家大力发展的方向。 小应电子 发表于 2018-7-23 09:46
感谢楼主 之前就看到了 一直不见楼主宣传
哈哈~~一直没有发布,也是想让产品尽可能多多测试。我更看重稳定成熟的技术。
射频和协议栈之前都很少接触,调试测试起来确实也花了很长的时间。 lghtjpu 发表于 2018-7-23 10:49
硬件用LORA,软件用6LAWPAN可以吧
固定频率后,理论上是可以。可是这不是又违背了 LoRa 扩频特性的初衷嘛。
再说 LoRa 慢慢被国家边缘化,后续继续使用要慎重呢。 just_lou 发表于 2018-7-23 13:49
lora用在物理层可以!但感觉怪怪的,loraWAN用lora主推星型网的!
是的。星型网络与 6LoWPAN 这种网状网络还是各有各的使用场景。 楼主大牛,谢谢分享!mark 加上USB口的话,可以跑mircopython了 大神,关注你的github很久了。。 报个名!
板子需求数量:3 太厉害了,标记学习 膜拜大神
膜拜大神。出学习套件吧。我要一套。 期待楼主的套件,我预定3套。 这个看上去不错 支持一下{:handshake:} 支持支持 感觉是未来的趋势啊 Mark,有时间一起研究一下 楼主开源的都是重量级资料,很早就fellow楼主了,你这个项目刚在github上建立的时候我就关注了,没想到进展这么快,楼主这次当带头大哥直接做小批量把,统计每个人要多少套提前付款给你们,我要5套 不错,收藏先{:smile:}{:smile:}{:smile:} 楼主,请半蹲下来...否则,我如何爬到巨人的肩膀上... 在线参观大神 这个不错,正在做lora项目。远距离无线自组网通信是个大趋势。有套件的话,来3块玩玩。 学习了。也想来块板子学习下。求3块,众筹或生产时带我一个{:lol:} 赞楼主的开源精神,发布了好多实用的资料
想请教下,一个网络可以容纳多少个节点呢?通讯速率又是怎样? 如果几百个节点的情况下通讯延时会怎样? 求3块。学习下。 不错,一直关注! 不错,支持楼主!!! 厉害,持续关注项目发展情况 关注中,学习,支持楼主 厉害,收藏先! pulan 发表于 2018-7-24 09:14
加上USB口的话,可以跑mircopython了
不用 USB 也可以的哦~~
这里用的经过 RT-Thread 深度定制版本的 MicroPython ,有些功能甚至比原生的 STM32 MPY固件还好玩。
这里有一些介绍 https://www.rt-thread.org/document/site/rtthread-development-guide/micropython/docs/README/ talkingbeast 发表于 2018-7-24 15:14
楼主开源的都是重量级资料,很早就fellow楼主了,你这个项目刚在github上建立的时候我就关注了,没想到进 ...
多谢支持哈~这个项目其实除了 6LoWPAN 之外,还有些其他有意思的技术,学习和 DIY 两不误{:lol:} lghtjpu 发表于 2018-7-24 18:19
想请教下,一个网络可以容纳多少个节点呢?通讯速率又是怎样? 如果几百个节点的情况下通讯延时会怎样? ...
同一网内理论上的节点数是 65536
通讯速率可以根据 15.4 标准限制来设定,这里用的是 10K
几百个节点如果在同一网内,时延没有测试过,可以想象到延迟肯定会比较夸张。一般这么多节点都要分组组网,组与组之间再通过其他方式连接上。 sunnydragon 发表于 2018-7-25 08:28
不用 USB 也可以的哦~~
这里用的经过 RT-Thread 深度定制版本的 MicroPython ,有些功能甚至比原生的 ST ...
那通过接口放置python的那几个文件呢?好像也没办法生成hex文件啊 pulan 发表于 2018-7-25 08:42
那通过接口放置python的那几个文件呢?好像也没办法生成hex文件啊
要使用 RT-Thread 的 ENV 工具,基于现有的 6LoWPAN 工程,生成带有 MicroPython 功能的新工程。
这里也有说明: https://www.rt-thread.org/document/site/rtthread-development-guide/micropython/docs/01-Getting_Started_Guide/ 看看先,谢谢楼主分享 基于 STM32 + RT-Thread 的 6LoWPAN 无线自组网方案 牛 学习一下