项目分享|基于ELF 1S开发板完成的物联网开源项目

ElfBoard作为飞凌嵌入式旗下教育品牌,自成立以来,持续吸引着各界的瞩目,其中也赢得了一些工程师的青睐。今天,就和各位小伙伴分享一位杰出工程师借助ELF 1S开发板完成的嵌入式物联网项目,见证智慧与技术的火花。

关于这个项目的思维导图,如下图所示:

图片

接下来,将会从云-网-边-端的物联网体系架构出发,描述整个开源项目的开发过程,整个开源项目的系统框架,如下图所示:

图片

1 – 云(涂鸦云服务器)

开源项目是采用涂鸦云作为云服务器的,之所以采用涂鸦云,主要是涂鸦的IoT生态体系很友好,并且对于初学者来说涂鸦云的学习门槛和接入门槛是比较低的,无需企业账号,无需太高的设备购买费用,即可接入涂鸦云。

ELF 1S开发板边缘中控是通过Tuya Link SDK接入云服务器的,这个SDK采用标准的C语言进行编写,移植的时候非常方便,具体可以参考官方提供的移植文档。

在涂鸦云服务器上建立好产品,完成功能定义,完成设备交互面板设计,移植完Tuya Link SDK,等一系列操作后,就可以让ELF 1S开发板具备接入云服务器的能力。

产品建成后,具体的功能定义如下图所示:

图片

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联网的部分参考代码,如下图所示:

图片

3 – 边(ELF 1S开发板中控)

边缘计算设备(边缘中控)采用ELF 1S开发板进行设计,运行嵌入式Linux操作系统,采用Qt进行UI界面开发,应用程序采用C/C++语言进行编写。

边缘计算设备(边缘中控)通过一个USB无线扩展模块,与端侧设备进行无线通信。

USB无线扩展模块支持AT指令集,支持从机设备管理,支持控制命令透传,等等。感兴趣的小伙伴还可以修改这个扩展模块的固件(代码已开源),让其扩展更多创意的功能。

图片

整个边缘计算设备的Qt应用程序,共提供了5个应用界面,初学者可以在这5个应用程序界面,自由扩展自己的创意想法,以下是这5个应用界面的功能介绍。

图片

界面1

界面1是一个电器控制界面,通过这个界面,可以对端侧的电器设备进行无线控制,比如RGB三色灯的开关和亮度调节,灯光总开关的控制,远程继电器开关的控制,等等。当端侧无线设备有按键事件触发的时候,可以即时把按键值通过无线方式上报到边缘中控设备,并把按键事件在信息窗口进行显示。

图片

界面2

界面2是一个环境监测界面,在这个界面,可以把开发板上面的温湿度传感器数据(客厅是实际值,卧室是模拟值)和环境亮度数据在界面上面实时显示出来,这个界面还可以扩展到土壤数据监测,空气颗粒物监测,环境噪声监测,等等。

图片

界面3

界面3是一个云服务器连接界面,通过【连接涂鸦云】按钮,把边缘中控ELF 1S开发板接入涂鸦云服务器,然后通过手机端【智能生活APP】扫描二维码,即可完成手机APP与设备的绑定操作,并且在信息窗口显示连接状态,手机APP通过云端转发的控制指令,也可以实时在信息窗口进行显示。

ELF 1S开发板边缘中控还可以把手机APP的控制指令转发到无线端侧设备执行,也可以把环境监测里面的传感器数据,上报到云服务器,然后在手机APP界面进行实时显示。

图片

界面4

界面4是一个有线网络界面,这个界面实现了一个远程抄写电表数据的功能,通过RS485总线和Modbus-RTU软件协议,让ELF 1S开发板边缘中控连接一个虚拟电表,虚拟电表的用电数据不断更新(模拟用电过程),然后实现电表数据的实时读取,并在信息窗口进行显示。

图片

界面5

界面5是ELF 1S开发板边缘中控的参数设置界面,在这个界面里面,可以对开发板边缘中控本身进行程序升级(未完成),同步网络时间,设置USB无线模块,端侧从机扫描,以及重置USB无线模块,开发者还可以在这个界面扩展更多有趣好玩的参数配置功能。

4 – 端(采集与执行设备)

端侧设备主要是以下三种类型的设备:支持Modbus-RTU协议的有线从机设备,具备2.4GHz/433MHz无线通信功能的网络模块,以及手机APP应用程序。

关于Modbus-RTU的有线从机设备,可以使用电脑端的Modbus-Slave软件进行虚拟,Modbus-Slave软件是一款精美小巧的Modbus-RTU从机调试软件,使用它可以虚拟出任何支持Modbus协议的从机设备,具体软件界面如下图所示:

图片

关于无线网络模块,它支持继电器开关、RGB三色灯、按键事件等功能,具体可以参考文章最下方的资料文档《key_rgb_relay_board硬件说明文档.pdf》。

图片

除了以上两种端侧设备之外,手机APP应用程序,也是属于端侧显示设备。手机APP应用是通过涂鸦云的间接转发方式,与ELF 1S开发板边缘中控进行端对端通信的,开发板边缘中控可以转发手机APP的控制指令到无线网络模块,以及接收边缘中控上报的环境监测数据。

图片

整个项目已经开源到Gitee,欢迎各位嵌入式初学者或爱好者进行 Fork 和 Star ,项目的开源地址:

https://gitee.com/embediot/elfboard-iot-project

(复制到浏览器打开)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/698469.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!

前言 我们之前肯定已经见过了很多文本生成图片、文本生成声音以及AI翻唱歌曲 等多种AI产品(模型)。 其实音乐和图片从某种意义上来说都是艺术创作的一种形式,它们可以相互配合,共同呈现出一种更加丰富、感性的表达方式。 将图片…

全国大学生数学建模竞赛【集训营E题】丨 近5年赛题实现,模拟参赛体验

全国大学生数学建模竞赛E题集训营即将开营 基于Python的近5年E题数学建模基础巩固 近5年E题赛题实现 模拟参赛体验与作品评审

双星号(**)和单星号(*)在Python参数传递中的妙用

在Python中,参数传递是一个非常重要的概念,它允许函数接收任意数量的参数。而双星号(**)和单星号(*)在参数传递中扮演着关键角色。本文将详细讲解这两个符号的用法,并通过示例代码帮助初学者理解它们的工作原理。 单星号(*) 单星号(*)用于函…

MySQL_DDL语句

1.Data类临时数据的弊端 我们之前在将ServletJSP配合处理请求的过程中 数据库起到一个存取数据的作用 但是我们之前的案例中 数据是在Data类中临时定义的 并不是从数据库中获取的 这样做是不好的 因为每一次服务器关闭之后 那么部署在其上的类也会随着卸载 紧接着和类相挂钩的静…

气膜建筑为何能够建在楼顶—轻空间

近年来,随着体育设施建设的推进和政策支持,越来越多的体育从业者将目光聚焦到了楼顶,希望通过在楼顶加盖气膜馆来充分利用有限的土地资源。那么,为什么气膜建筑能够建在楼顶呢?轻空间将从气膜建筑的结构特点、安全性、…

Pyhanlp安装详细教程!!!(指令无报错安装!!)

我使用的是anaconda 然后我的环境python版本是3.8.5 安装的还是比较顺利地,用指令安装的,当然我的编译环境是没什么问题的 Microsoft C 、Visual Studio 2019 这些都是好的 如果大家没有安装,这里面有下载地址 Microsoft C 、Visual Stu…

iOS xib知识总结

一、bug总结 1.could not insert new outlet connection 解决办法:操作步骤就是选中出问题的.m和.h文件,点删除键,然后选“Remove Reference”,这样就不会真正删除文件。接着选“File -> Add Files to …”菜单,在…

Linux之内存管理-malloc \kmalloc\vmalloc\dma

1、malloc 函数 1.1分配内存小于128k,调用brk malloc是C库实现的函数,C库维护了一个缓存,当内存够用时,malloc直接从C库缓存分配,只有当C库缓存不够用; 当申请的内存小于128K时,通过系统调用brk&#xff…

C++的相关知识集

1、C概述 1 两大编程思想 c语言在c语言的基础上添加了面向对象编程和泛型编程的支持。c继承了c语言高效,简洁,快速和可移植的传统。 2 起源 与c语言一样,c也是在贝尔实验室诞生的,Bjarne Stroustrup(本贾尼斯特劳斯特卢普)在2…

#自学习# 记一次py脚本打开浏览器页面

在项目总结中,遇到系统后台利用浏览器拉起一个已知路径页面的需求,趁着机会整理下。实现起来比较简单,浏览器默认谷歌。 一、技术原理 Selenium:Selenium 是一个用于自动化 Web 浏览器的工具,可模拟用户在浏览器中的各…

电脑怎么分盘?简单3步轻松搞定!

在使用电脑时,将硬盘进行分盘是一种常见的操作,可以帮助用户更好地管理数据和文件。通过分盘,用户可以将不同类型的数据存储在不同的区域,提高数据的管理效率和安全性。本文将介绍电脑怎么分盘的3种方法,帮助您了解如何…