基于 ELF 1S 开发板完成的物联网开源
![基于ELF 1S开发板完成的物联网开源](https://static001.geekbang.org/infoq/52/5260cfcb56883716bab33210e63f167a.png)
关于这个项目的思维导图,如下图所示:
![](https://static001.geekbang.org/infoq/52/5260cfcb56883716bab33210e63f167a.png)
接下来,将会从云-网-边-端的物联网体系架构出发,描述整个开源项目的开发过程,整个开源项目的系统框架,如下图所示:
![](https://static001.geekbang.org/infoq/6b/6b3594dc702e0eccf4021edd76986ebe.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
1 – 云(涂鸦云服务器)
开源项目是采用涂鸦云作为云服务器的,之所以采用涂鸦云,主要是涂鸦的 IoT 生态体系很友好,并且对于初学者来说涂鸦云的学习门槛和接入门槛是比较低的,无需企业账号,无需太高的设备购买费用,即可接入涂鸦云。
ELF 1S 开发板边缘中控是通过 Tuya Link SDK 接入云服务器的,这个 SDK 采用标准的 C 语言进行编写,移植的时候非常方便,具体可以参考官方提供的移植文档。
在涂鸦云服务器上建立好产品,完成功能定义,完成设备交互面板设计,移植完 Tuya Link SDK,等一系列操作后,就可以让 ELF 1S 开发板具备接入云服务器的能力。
产品建成后,具体的功能定义如下图所示:
![](https://static001.geekbang.org/infoq/36/36e7fa1794eb51260269382294764f00.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
2 – 网(Wi-Fi 无线连接)
要让 ELF 1S 开发板接入云服务器,就要先让开发板的硬件具备连接互联网的能力,接入互联网的方式有:4G 网络,Wi-Fi 无线连接,RJ45 有线网络连接,这几种方式都可以选用,由于 ELF 1S 开发板默认板载了一个 RTL8723DU1 无线 Wi-Fi 模块,因此,本项目选用 Wi-Fi 无线连接方式,让开发板接入互联网。
十分方便的是,ElfBoard 官方已经提供了一个联网脚本,elf1_cmd_wifi.sh,应用程序开发工程师可以很方便地调用这个脚本进行互联网链接,对于使用嵌入式 Linux+Qt 开发的应用程序,ElfBoard 官方也提供了参考例程,程序开发的时候直接参考使用即可。
本项目关于 Wi-Fi 联网的部分参考代码,如下图所示:
![](https://static001.geekbang.org/infoq/7f/7f57806c6bfb03a2c3e4bed0c59d4ef5.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
3 – 边(ELF 1S 开发板中控)
边缘计算设备(边缘中控)采用 ELF 1S 开发板进行设计,运行嵌入式 Linux 操作系统,采用 Qt 进行 UI 界面开发,应用程序采用 C/C++语言进行编写。
边缘计算设备(边缘中控)通过一个 USB 无线扩展模块,与端侧设备进行无线通信。
USB 无线扩展模块支持 AT 指令集,支持从机设备管理,支持控制命令透传,等等。感兴趣的小伙伴还可以修改这个扩展模块的固件(代码已开源),让其扩展更多创意的功能。
![](https://static001.geekbang.org/infoq/cd/cde7dcad1a0a6c650bc4dd54974e00be.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
整个边缘计算设备的 Qt 应用程序,共提供了 5 个应用界面,初学者可以在这 5 个应用程序界面,自由扩展自己的创意想法,以下是这 5 个应用界面的功能介绍。
![](https://static001.geekbang.org/infoq/a4/a4ebeab006e937b96c8ecbd0f668ca72.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
界面 1 是一个电器控制界面,通过这个界面,可以对端侧的电器设备进行无线控制,比如 RGB 三色灯的开关和亮度调节,灯光总开关的控制,远程继电器开关的控制,等等。当端侧无线设备有按键事件触发的时候,可以即时把按键值通过无线方式上报到边缘中控设备,并把按键事件在信息窗口进行显示。
![](https://static001.geekbang.org/infoq/3c/3cdb89cc4332cc989543f49c21df217d.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
界面 2 是一个环境监测界面,在这个界面,可以把开发板上面的温湿度传感器数据(客厅是实际值,卧室是模拟值)和环境亮度数据在界面上面实时显示出来,这个界面还可以扩展到土壤数据监测,空气颗粒物监测,环境噪声监测,等等。
![](https://static001.geekbang.org/infoq/a1/a1a1f8e1280bf17c4a0a31e0a6627092.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
界面 3 是一个云服务器连接界面,通过【连接涂鸦云】按钮,把边缘中控 ELF 1S 开发板接入涂鸦云服务器,然后通过手机端【智能生活 APP】扫描二维码,即可完成手机 APP 与设备的绑定操作,并且在信息窗口显示连接状态,手机 APP 通过云端转发的控制指令,也可以实时在信息窗口进行显示。
![](https://static001.geekbang.org/infoq/3b/3bbdc98cd08f702c9774cbfba28382e0.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
ELF 1S 开发板边缘中控还可以把手机 APP 的控制指令转发到无线端侧设备执行,也可以把环境监测里面的传感器数据,上报到云服务器,然后在手机 APP 界面进行实时显示。
界面 4 是一个有线网络界面,这个界面实现了一个远程抄写电表数据的功能,通过 RS485 总线和 Modbus-RTU 软件协议,让 ELF 1S 开发板边缘中控连接一个虚拟电表,虚拟电表的用电数据不断更新(模拟用电过程),然后实现电表数据的实时读取,并在信息窗口进行显示。
![](https://static001.geekbang.org/infoq/3a/3aa7413c6c291e47e53243d6e1caef7b.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
界面 5 是 ELF 1S 开发板边缘中控的参数设置界面,在这个界面里面,可以对开发板边缘中控本身进行程序升级(未完成),同步网络时间,设置 USB 无线模块,端侧从机扫描,以及重置 USB 无线模块,开发者还可以在这个界面扩展更多有趣好玩的参数配置功能。
4 – 端(采集与执行设备)
端侧设备主要是以下三种类型的设备:支持 Modbus-RTU 协议的有线从机设备,具备 2.4GHz/433MHz 无线通信功能的网络模块,以及手机 APP 应用程序。
关于 Modbus-RTU 的有线从机设备,可以使用电脑端的 Modbus-Slave 软件进行虚拟,Modbus-Slave 软件是一款精美小巧的 Modbus-RTU 从机调试软件,使用它可以虚拟出任何支持 Modbus 协议的从机设备,具体软件界面如下图所示:
![](https://static001.geekbang.org/infoq/35/35e46a0f4f5ae43db34f6c5040dace8a.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/9e/9eac6d119fc97147f609b3a297624db9.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
除了以上两种端侧设备之外,手机 APP 应用程序,也是属于端侧显示设备。手机 APP 应用是通过涂鸦云的间接转发方式,与 ELF 1S 开发板边缘中控进行端对端通信的,开发板边缘中控可以转发手机 APP 的控制指令到无线网络模块,以及接收边缘中控上报的环境监测数据。
![](https://static001.geekbang.org/infoq/3a/3a5d95c1cbaafd04362cdeae7119f0d0.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
整个项目已经开源到 Gitee,欢迎各位嵌入式初学者或爱好者进行 Fork 和 Star ,
项目的开源地址:https://gitee.com/embediot/elfboard-iot-project(复制到浏览器后打开)
版权声明: 本文为 InfoQ 作者【芯动大师】的原创文章。
原文链接:【http://xie.infoq.cn/article/9fcc4d1269cda11f8566587d9】。文章转载请联系作者。
评论