前言:
作为现今物联网体系中的重要成员,LoRa已经得到了越来越多的应用,例如我们常用的sx1278等。便宜的价格,超长的通信距离,以及超低的功耗(sx1278),我们很多时候将其应用于简单的单播的组网通信。在此之前我查阅了很多网络上的LoRa组网方案,成功案例大多采用多个sx1278,使用网关加节点的星型网络。利用网关节点的设备轮询实现时间同步,达到时分码址的作用,确保同一时刻,所在通信频点只有一条数据在传输。并且也根据传送门这位博主的思路实现了自己的多个sx1278 LoRa组网。而对于LoRaWan的方案,公开方案多见于官方提供的树莓派方案。按照官方教程我们很容易就实现了LoRaWan的部署,也很容易使用官方开源方案将sx1301移植到其他linux平台。本篇博文用于记录SX1301移植到MT7628的过程(模拟spi),小弟linux刚入门,不当之处希望大牛多多指点。感兴趣的小伙伴可私信我。
1 方案介绍
采用MT7628主控芯片,辅之openwrt操作系统,该网关具有更高效的硬件和软件系统组成,更低的成本。该方案网关部分参数列表如下:
2 方案实施
本方案共分为4个环节分别如下:
2.1 Openwrt MT7628 设备树开启GPIO复用功能
2.2 编写Openwrt GPIO控制驱动
2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试
2.4 替换LoRaWan 官方库底层spi驱动
3 服务器网关转发服务
严格按照第二章步骤操作以后,lorawan开源程序成功的在MT7628上跑起来了(sx1301发热量有点大 O__O "…
),虽然我也有使用开源的lorawan服务器,经过我单独测试以后发现,终端节点入网偏慢,出现了大概率数据库丢包情况。因此我花了两天时间,完成了一个较好的兼容mt7628的数据处理服务器程序。在这里只做简单的功能介绍和成果演示:该程序所涉及的知识点有:mysql(client)、json、base64、MQTT、进程通信(IPC)、多进程。功能结构图如下图所示:
功能作用:该程序适合硬件受限的场景使用,实现了自主校验节点数据、自主接入相同属性节点、自主创建节点表格、实时预警并使用MQTT协议发布预警信息。
4 人机交互界面
前面章节分别介绍了lorawan平台移植搭建、服务器网关转发程序,接下来介绍人机交互界面。人机交互界面功能结果框图如下所示:
实际软件效果图:
晒出本系统系统结构框图:
5 结语
本篇博文完整介绍了一个基于lorawan的物联网传感器信息收集网络解决方案。重点介绍了将sx1301移植到MT7628平台。简单提及其他周围配套设计。第一次写博客存在很多的问题,希望大家多多指教!!!