知识关注:搭建一个物联网平台
发布时间:2022-12-03 17:30:15 文章来源:综合网络
项目介绍什么是物联网平台​ 要搭建之前,一定要先搞明白一个概念,那就是什么是物联网平台。笔者作为一个准备入门的小白自然也是两眼一抹...

项目介绍

什么是物联网平台

​ 要搭建之前,一定要先搞明白一个概念,那就是什么是物联网平台。笔者作为一个准备入门的小白自然也是两眼一抹黑。在笔者大致查了些资料,实际上手使用一些物联网平台后,大致搞明白,物联网平台可以实现的功能有一下大致几点

终端设备接入

数据上报

数据持久化

终端设备管理

命令下发

搞明白了目标之后,我就在脑中考虑出了系统的雏形,大致分为以下几部分

MQTT协议

​ 在web开发中,我们常见的是 HTTP/HTTPS 协议,这是一种短连接,即在请求和响应完成之后会关闭连接。这种连接有一个弊端,那就是只能由客户端主动联系服务端,而不能由服务端主动联系客户端。但是一定存在客户端与服务端需要长时间互相交换数据的场景。在早期,人们使用 轮询/长轮询 ,后来出现了webSocket协议,这是一种很接近MQTT的协议,一旦建立连接,双方就可以长时间进行双工通讯。后来就出现了在物联网领域应用极其广泛的MQTT协议,相比于WebSocket,MQTT更复杂,但更能更加强大。很多时候两种协议甚至可以混用。

​ MQTT采用 订阅/发布 的模式。MQTT的客户端既可以订阅消息,又可以发布消息,而MQTT的服务器 被称为broker,负责接受客户端发布的消息,并将其发送给订阅了该主题(topic)的客户端,从而实现客户端之间的交互。

​ 关于MQTT的协议,可以访问 太极创客的官方网站了解更多,这里笔者不再赘述

零基础入门学用物联网 – MQTT基础篇 – 目录 – 太极创客 (taichi-maker.com)

项目实现

连接协议

本项目使用MQTT协议进行数据上传和下发,使用HTTP协议进行数据交互

Broker

​ 关于MQTT服务器,我选用了 EMQX开源版

关于emqx的使用,官方文档写的很清楚,这里不再赘述。emqx提供了丰富的api,可以通过http请求实现一些列功能。

由于这里使用的是emqx开源版,所以服务器本事并不提供数据持久化等一系列高级功能。但是其中有些功能可以使用其他方法实现。

emqx官方文档: EMQX 文档

后端服务器

后端服务器这里使用的是 nodejs+express.js+mqtt.js

笔者写过的几个项目,后端使用的都是nodejs,因为nodejs简单易用,性能尚可,有非常丰富的第三方工具包,非常适合小型项目

也因为笔者不会用java写后台

作用

​ 后端服务器在本项目中主要起到一下作用:

向web端以及小程序端提供api

通过MQTT协议订阅设备发布的收集到的信息,并将其持久化

通过MQTT协议向设备下发命令

实现不同的api功能,如命令下发

代理emqx提供的api,向web端以及微信小程序端提供统一的api

代码实现

备注

前文中,笔者介绍道,没有使用小程序端直接连接终端设备,是因为规范问题

其实这里还有一个原因,就是遇到了一些技术上的问题。就是微信小程序使用npm包的问题。

一开始笔者也想直接连接,毕竟简单方便,相较于http请求,在笔者看来,mqtt连接似乎更容易

一些,但是当笔者使用npm安装了mqtt.js工具包,并引用时报了错误。后来去网上搜搜查查,说

是要打开一个使用npm包的选项,这个选项在较新的微信开发者工具中已经取消了。在新版本

中,要打开 工具->构建npm 这个选项。

上述一些操作,在各大搜索引擎中都能搜到相关博客,这里笔者就不放链接了。

但是,在进行了一系列操作之后还是不行,后来又查资料发现,引用的包必须遵守微信小程序的

规范。后来又找到了一种方法,是直接把全部的代码放进单独的一个js文件中,然后在引用。在

一番操作之后连接成功了,但是最终笔者也没有采用这种方法

最后一种方法见:微信小程序mqtt实现 - 简书 (jianshu.com)

本项目中,为什么只进行了温湿度数据的收集,以及LED灯珠的控制

因为本项目笔者把它定性为,物联网平台,所以接入设备只是试验性质的,只要证明平台可用即可。

web端

作用

web端在本系统中承担的作用主要是:

数据可视化展示

未来可能会继续完善,加入接入终端设备管理功能

代码实现

因为本项目是带有实验性质的,所以很多方便笔者尽量采用了简化方法,而只保留的骨干,故本工程只有一个html文件及css文件,本章节只展示 index.html

本工简单引用了 vue以及echarts组件,旨在快速创建一个相对完善且美观的页面。

备注

​ web端作为数据可视化展示,是物联网平台不能缺少的一部分,但是目前也只完成了可视化展示,其他的数据管理功能,例如查询、更改、导出等都没有完成,后续可能会对其进行完善。

​ 如果过于深入的介绍web端的技术实现,就有些偏离本文档的初衷了,故在此不过多赘述。

关键词:

乐活HOT

  • 四川正式启动三级保供电调控措施保障民生用电 优化各类电源发电计划
    四川正式启动三级保供电调控措施

    继8月11日、14日连续两次召开电力保供工作紧急视频会议后,8月15日,四川再次召开电力保供调度会。记者从会上获悉,预计全省最大用电负荷将

  • 前7月四川能源项目累计完成投资493亿元 油气类项目完成投资159亿元
    前7月四川能源项目累计完成投资4

    今年以来,四川积极扩大能源领域有效投资,前7月能源项目累计完成投资493亿元、同比增长4%。8月15日,省能源局相关负责人介绍,前7月煤炭类

  • 四川加力加劲坚决遏制事故多发频发态势 有效提升预报预警水平
    四川加力加劲坚决遏制事故多发频

    8月15日,全省防汛减灾、森林草原防灭火工作电视电话会议召开,深刻汲取彭州8·13山洪灾害教训,分析研判当前形势,安排部署下一步重点工作

  • 四川攀枝花推动打造职业能力建设工作品牌 提供人才广阔展示舞台
    四川攀枝花推动打造职业能力建设

    8月9日,攀枝花技师学院实习工厂里,焊花四溅,机器声此起彼伏。身穿工作服的教师周树春,在一间间操作室里进进出出,指导学生们焊接。过去

  • 上半年湖南物流需求平稳增长行业运行平稳 快递业务量完成10.3亿件
    上半年湖南物流需求平稳增长行业

    记者从省发改委获悉,上半年全省物流需求平稳增长,行业运行总体平稳。全省社会物流总额64096 2亿元,同比增长4 4%;全省物流业总收入为2270

  • 湖南各地工业企业忙生产全力以赴稳增长 生产线全力运转
    湖南各地工业企业忙生产全力以赴

    在全球最大地下工程装备制造基地,掘进机生产计划已排到年底;千亿级工程机械产业园区边建设边生产,打造智能制造标杆……时已立秋,三湘大

  • 江西赣州医疗卫生服务体系进一步完善 完善“三医”联动机制
    江西赣州医疗卫生服务体系进一步

    上犹县水岩乡卫生院医生蔡昌才驱车前往金盆村为村民骆运招治病。以往,每月去医院就诊不仅路途远,还要排队。这几年有了家庭医生后,直接送

  • 江西坚持问题导向推进药品安全专项整治走深走实 持续完善投诉举报渠道
    江西坚持问题导向推进药品安全专

    今年2月以来,省药监局深入开展药品安全专项整治行动,坚持问题导向,以严厉打击违法犯罪行为、全面排查风险隐患为手段,推进专项整治行动

  • 江西九江多举措为创业者营造良好创业贷款环境 就业创业事项一次性办
    江西九江多举措为创业者营造良好

    没想到,现在直接在窗口就能办理,真是太方便了。蒋琼在九江市经营一家造型工作室,近期有意扩大生意规模,需要资金周转。她带齐资料来到九

  • 上半年江西新余全市外贸进出口总值同比增长84.3% 外贸主体活力持续激发
    上半年江西新余全市外贸进出口总

    记者从新余海关获悉,今年上半年,新余市外贸取得了较好成绩,全市外贸进出口总值184 3亿元,同比增长84 3%,高出全国平均水平74 9个百分点

  • 南昌高新区多举措推动重点项目建设加速跑 完善重大重点项目推进机制
    南昌高新区多举措推动重点项目建

    作为南昌市第二季度集中开工的重大项目之一,南昌数谷产业园项目总投资100亿元,计划2024年5月完工交付使用,拟引进字节跳动、华为(南昌)工

  • 安徽淮南颁发优才卡落实高层次人才服务保障制度
    安徽淮南颁发优才卡落实高层次人

    淮南市向中国工程院院士、安徽理工大学校长袁亮颁发了第一张淮南市高层次人才优才卡。为深化我为人才办实事实践活动,落实高层次人才服务保

  • 宿州市埇桥区细化工作举措筑牢防汛“安全堤”
    宿州市埇桥区细化工作举措筑牢防

    连日来,宿州市埇桥区不断细化各项工作举措,压实防汛各项责任,提升应急救援保障能力,筑牢防汛安全堤。目前,该区防汛物资已储备到位,全

  • 安徽无为市“交地即交证”优化营商环境政策正式落地
    安徽无为市“交地即交证”优化营

    近日,无为市自然资源和规划局、无为市福渡镇人民政府在无为润峰中海置业有限公司项目部现场举行交地即交证颁证仪式,标志该市交地即交证优

  • 安徽全椒县推动农村寄宿制学校试点工作
    安徽全椒县推动农村寄宿制学校试

    设施齐全的卫生食堂、水冲式的独立卫生间、楼道墙体粉刷一新的宿舍……走进安徽省全椒县武岗学校,已经运行满一年的农村特色寄宿制学校成果

娱乐LOVE