野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2359|回复: 2

【鲁班猫创意大赛】基于鲁班猫1的智慧物联中控系统

[复制链接]
发表于 2023-5-20 09:47:20 | 显示全部楼层 |阅读模式
基于鲁班猫1的智慧物联中控系统

大信(QQ:8125036)
一、前言鲁班猫(LubanCat)是野火科技推出的Linux、Android卡片电脑系列品牌。 该系列卡片电脑硬件产品丰富,操作系统适配度高,开源资料众多,应用开发方便简单。
它有优越的性能以及多产品线覆盖教育、商业应用、工业控制等领域,具备广泛的应用场景。
笔者申请到的鲁班猫型号为LuBanCat-1,其硬件外形如下图,尺寸大约8cmx6cm,非常的小巧,这个小巧的板子下却隐藏丰富强大的功能。LubanCat-1有一颗包含四核Cortex-A55处理器、Mali G52 2EE图形处理器和高能效NPU的SOC, 搭配千兆网口、HDMI、USB3.0、MINI PCI-E、MIPI等外设,预留了USB、MINI PCI-E等通用接口,能够扩展到更多的使用场景。

1.png
根据其强大的性能与通信功能特点,笔者决定使用它来开发一款鲁班猫智慧物联中控设备。大家都知道现在IoT是越来越火热,从智能家居,到智慧办公,智慧工厂,智慧生产等,越来越多的硬件系统通过网络连接到一起,形成了智慧化的物联世界,通过彼此的连接,交换数据,完成协调统一的生产工作应用环境,协调的进行彼此的控制和响应,形成智慧化的物联世界。
二、项目创意与特点本项目名称为《鲁班猫智慧物联中控》,在面对越来越多的智能设备下,在一个典型的智慧物联场景里,如家庭环境,在家庭中有各个房间的温度,湿度,有各类的房间灯光照明,有空调,电动窗帘,冰箱,智能水表,智能电表,还有电视,手机等各类智能设备。在面向这些设备时,他们需要一个统一的互联互通的管理中心,这就是物联中控,它首先能够连接各个终端传感器,收集各个设备的信息数据,并且对各类设备发送相关的控制指令,同时还需要对外部进行联络和沟通。
鲁班猫智慧物联中控正是这个中控系统,它可以收集家居所有环境与设备的数据,它担负着对终端数据的采集,汇聚,存储,并按照设计的权限进行对外联络和报告。也对各类的智能应用管理提供统一的通信和控制命令转发等功能,并且能够跟云端进行沟通,根据需要把数据在云端保存或者处理。有了云端的数据,则可以互联网更广泛的应用对接,比如家庭能耗管理,远程自动控制,家居环境监测等。
本项目完成各类传感器数据采集与上报,本地数据可视化监控等功能。在以后的进一步开发中,可以使用鲁班猫强大的AI计算能力,对家庭内的设备进行智能化的控制,也可以对接手机等移动设备,完成远程的监控,管理和智能化的自动控制等需求应用。
该项目涉及到如下技术内容:

Httpd --  Http 服务提供基于c变量的模板http服务

C-CGI --  支持http在服务端RPC进程通

MQTT  --  基于TCP/IP的订阅、发布消息服务

TDEngine   -- 时序数据库
Websocket  -- 支持web端的二进制网络数据通信

EChat -- 一款开源的js前端可视化图形库

Javascript – web 开发语言,完成前端数据解析与可视化

三、项目材料LuBanCAT-1 鲁班猫,智慧物联中控
CH32V208 单片机,提供两路ADC采集数据并通过以太网上报数据
Hi-Spark 鸿蒙开发板,Iot开发套件,提供温度,湿度和天然气(甲烷)浓度检测数据
Ubuntu PC模拟电能采集站,提供每小时的家庭用电功率数据
WIFI 路由器,提供家庭有线网络的通讯和无线通讯
VMWare 虚机,提供鲁班猫开发环境

四、项目方案架构鲁班猫智慧物联中控系统架构如下图所示,图中设备A,B为Iot传感数据采集设备,D作为一个电能表数据采集模拟端,E作为上报数据的互联网服务终端。而C位则是本次的主角鲁班猫,作为整个系统的物联核心。

2.png

五、CH32V208上电压数据采集开发
3.png
使用CH32V208开发板的MQTT例程与ADC例程,整合两个例程,采集该芯片ADC0,与ADC1的数据,通过参考公司转换成电压值,测量范围为0V-12V,并设定在上报端口上把MQTT服务地址为鲁班猫的地址,端口为1883

4.png
使用ch32v208编译下载到ch32v208上运行

5.png
在板上运行后,就会自动的连接鲁班猫中控,并发布ADC1,和ADC2测量到的电压值,每1秒上报一次,发布到中控台上。


六、Hi_Spark 温度、湿度与燃气浓度传感采集
使用HiSpark_Hi3861开发板,接上燃气传感器模块,与Hi3861单片机,使用OpenNarmony开发采集温度,湿度与燃气浓度数据,并只用MQTT客户端通过 wifi连接路由器,将采集到的数据上发到鲁班猫。

6.png
编译下载到HiSpark上运行

7.png
下载到Hi-Spart 开开发板后,经过初始化,将会通过wifi 自动把探测到的环境温度,湿度和天然气浓度数据,通过MQTT协议上报到鲁班猫中控板上,鲁班猫收到该传感信息后,通过websocker实时发布到web端,完成可视化管理,同时根据策略,处理后发布到公网EMQX服务里,完成数据汇聚和存储。


七、鲁班猫物联中控软件设计开发鲁班猫开发板上,首先编译httpd工程,工程由jsoncpp和httpd组成,http是基于uHttp开源工程修改而来。主要需修改为增加了http与系统调用接口,支持通过C-CGI的方式,进行动态的网络渲染以及连接MQTT消息服务器,完成MQTT消息订阅并使用websocket转发给浏览器端。

8.png

分别在开发板上编译jsoncpp和httpd工程


9.png

再编译MQTT工程,这里使用的是mosquitto-2.0.9开源MQTT工程,该工程由CJSON,OpenSSL,mosquitto-2.0.9,子工程组成,只需要分别编译他们即可:


10.png
编译mosquitto-2.0.9工程,编译时需要把前面编译好的openssl和cjson动态库加入到mosquitto工程编译路径中。

11.png
把编译成功的MQTT服务程序和依赖的动态库,部署到bin目录下,并写一个mqtt配置文件和启动脚本文件。

创建好MQTT 运行用户后,即可启动运行MQTTBreaker服务:


12.png

八、EMQX服务公网部署完整的展示智慧物联的应用,还需要中控系统与外部交换数据,因此在这里在公网E服务器上,部署一个支持MQTT的消息管理服务端,这里选择使用EMQX开源服务。

wgethttps://www.emqx.com/zh/download ... .8-el8-amd64.tar.gz

tar -xvf emqx-5.0.8-el8-amd64.tar.gz
//启动
bin/emqx start
//停止
bin/emqx stop
//查看状态
bin/emqx_ctl status
在公网服务端E需要开通18083,1883等业务端口,部署完毕后,可以打开浏览器登录到EMQX服务站点已启动:

13.png
同时需要存储上报的物联数据,用于大数据的采集与分析,因此在公网服务器上部署物联网数据库。这里使用知名的时序数据库TDengine,用于永久存储上报的物联数据,执行如下命令,编译安装TDengine
git clone https://github.com/taosdata/TDengine.git
cd TDengine & build.sh

14.png

九、前端开发部署与效果前端整合Echat工程,并且加入websocket客户端,用于接收httpd发回的数据,

15.png
部署到鲁班猫上前面编译的httpd的页面目录下,httpd/www下,然后在本地页面访问鲁班猫的IP地址:
最终成功的加载出中控控制台的页面,并实时的显示出各个终端传感器的数据。
16.png



附:
项目视频已经放在B,欢迎关注三连:
https://www.bilibili.com/video/B ... b638e3cc29864ce3a9c



9.png
回复

使用道具 举报

发表于 2023-5-20 16:51:59 | 显示全部楼层
赞,但是你这个可以实现设备端下行命令再控制传感器就更好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-21 18:48:16 | 显示全部楼层
本帖最后由 ALSET 于 2023-5-21 18:49 编辑


这个主要是收集传感器信息,控制是另外一个目标了,控制家电和家居设备,是另外一个界面了。
MQTT 和 WEBsocket 都支持下行的,只是 web 暂时没加操作的界面。 控制的界面更精彩,以后会加上的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-27 19:40 , Processed in 0.061888 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表