物联网ppt
物联网ppt
身体部位英语-推荐信出国留学
2023年3月20日发(作者:思想政治理论课)技术与应用*********************
为SIoT写一个物联网设备管理插件
谢作如浙江省温州中学
SIoT是一款简单易用的
MQTT服务器软件,也是“虚谷物
联”项目的核心软件之一。SIoT不用
安装,也不用注册、设置,一键运行
后,其他物联网设备(如掌控板)按
照一定的规范接入即可正常使用。
正因为这一点,SIoT得到创客教师
们的热捧,成为中小学物联网教学
的重要支撑软件。
但是,能不能用SIoT做一个真
实的物联网项目,如智慧农场、校园
气象站、门禁系统等?我们会发现,
功能实现并不难,但管理设备不太
方便。SIoT毕竟是通用的MQTT服
务器,在线设备管理之类的功能,
只能自行开发,这样难度就有点大。
因而,我冒出一个大胆的想法:能不
能为SIoT编写一个插件,让这个通
用的MQTT服务器变成可以商用的
物联网系统管理平台?
●
为SIoT编写网页插件的可
行性分析
作为SIoT开发团队的成员,我
对SIoT的原理还是比较清楚的。
SIoT运行后,会启动两种网络服
务:一是MQTT服务,作用是处理
MQTT消息;二是Web服务,用来运
行Web管理页面,实现在线管理。
具体工作流程如图1所示。
SIoT是一款绿色软件,主目
录下文件夹“static”中存放的是
SIoT的Web管理页面,如下页图2所
示。需要强调的是,SIoT的Web管
理页面和SIoT服务器之间是利用
WebAPI的方式交互数据的。也就
是说,和我们传统的动态网站开发
方式不同,Web管理页面并不是去
读数据库,而是发送特定的Web请
求,SIoT再返回相应的数据,实现
页面管理功能。这种软件设计能够
将不同的网络服务隔离,开发效率
更高。
用记事本打开“static”中的
HTML文件,如“”,
在源代码中可以看到其使用了目
前最热门的Web前端框架技
术,如下页图3所示。前端页面设计
和后端数据隔离,是现在最主流
的Web开发模式。那么,思路就呼
之欲出了:只要在SIoT的管理页面
上,按照既定的API规范,就能实现
我们预设的功能了。如果同样采用
编写,那和现有的Web页面
结合更加紧密。对于曾经开发过多
个网站的资深网管来说,编写这样
的页面,技术上不算太难。
●
SIoT的API功能简介
我曾经在SIoT的文档中,提
供过一个有趣的范例,即在PPT和
Doc中插入超链接,就能通过SIoT
控制掌控板的开灯、关灯,甚至可以
图1 SIoT的工作流程
生活·技术·探索
85APR.2021NO.07
技术与应用*********************
86中国信息技术教育
和Mind+中的角色互动。这一功能
的实现,其实就是利用了SIoT提供
的WebAPI。只要通过浏览器访问
特定的地址即可。
地址:SIoT的IP:8080/
publish?topic=xzr/001&msg=on
&iname=siot&ipwd=dfrobot。
这里的“SIoT的IP”指运行
SIoT的电脑IP地址,iname和ipwd
要替换为SIoT的用户名和密码。
那么,SIoT究竟提供了哪些
API?打开SIoT的使用文档,在“高
级操作技巧”的“”部分,
可以看到具体的WebAPI清单,如
右表所示。
SIoT文档地址:siot.
/
●
“智慧农场”管理插件的
编写
我准备利用SIoT来开发一个
学校智慧农场的项目。这个项目事
先定义了物联网协议MQTT的各
种细节,如每个物联网终端节点的
名称为“sf”加局域网IP地址的尾
号,终端上的传感器或执行器模
块,用连接的引脚编号来命名,如
a0、d2。这样一来,每一个模块都
有唯一的TopicID,如“sf88/a0”表
示名称为“sf88”的终端上的设备
“a0”。
其中,“a0”接光线传感器,
“a1”接土壤湿度传感器,“d2”接
电磁阀。这个插件的作用是,将所有
的终端信息显示在一个页面上,并
能够用网页按钮的方式进行浇水,
图2 SIoT的文件目录
图3 文件的代码
SIoT的WebAPI一览表
类别格式说明
发送消息
/publish?topic=xzr/001&msg
=on&iname=siot&ipwd=dfro
bot
向topicid(主题)“xzr/001”发送
内容为“on”的消息,其中“xzr”
是项目id,“001”是设备id
获取最新数据
/lastmessage?topic=xzr/001&i
name=siot&ipwd=dfrobot
获取topicid(主题)“xzr/001”
的最新一条消息
获取消息列表
/messages?topic=xzr/001&in
ame=siot&ipwd=dfrobot&pn
um=1&psize=10&begin=2019-
04-04&end=2019-07-01
获取topicid(主题)“xzr/001”
从“2019-04-04”到“2019-07-
01”的数据。其中时间可以省略
删除消息
/clearmsg?topic=xzr/001&ina
me=siot&ipwd=dfrobot
删除topicid(主题)
“xzr/001”的所有消息
获取项目列表
/projects?iname=siot&ipwd=
dfrobot
一个项目中包含多个设备
更新项目
/updateprj?pid=xzr&iname=s
iot&ipwd=dfrobot&desc=科学
测量
将名称为“xzr”的项目的备
注修改为“科学测量”
获取设备列表
/devices?pid=xzr&iname=siot
&ipwd=dfrobot
返回项目名称为“xzr”的设备列表
更新设备
/updatedev?pid=xzr&dname=
001&iname=siot&ipwd=dfrob
ot&desc=台灯控制
将项目名称为“xzr”、设备
名称为“001”的设备,备
注修改为“台灯控制”
删除设备
/deldev?topic=xzr/001&inam
e=siot&ipwd=dfrobot
删除名称为“xzr”的项目
技术与应用*********************
送一个内容为“1”的消息(如图5)。
第三步:效果测试
运行SIoT,打开Web管理端,
即可看到多了一个名为“智慧农场”
的栏目。点击后,就会看到所有的
设备都列出来了,在一个表格中显
示了最新的光照和土壤湿度数据。
点击“浇水”按钮,就能给相应的
TopicID发送消息。
●
插件编写给“虚谷物联”
带来了新玩法
这个“智慧农场”插件一经展
示,就赢得了很多教师的好评和关
注,有希望提供开发教程的,也有
提出新的需求的。毫无疑问,这种
开发插件的形式,给“虚谷物联”带
来了新拓展思路。例如:编写一个
校园气象站的插件,在一个页面上
呈现最新的温度、湿度、光照、风
向、风速等信息;编写一个会议室
门禁管理插件,可以远程开门,可
以遥控空调,还可以显示摄像头画
面;等等。
我始终认为,只有在真实的情
境中应用,创客作品的制作、STEM
项目的研究才显得更有价值。给
SIoT编写插件的最重要意义在于,
将技术门槛降低了,物联网技术的
应用显得越来越简单,开发真实应
用不再困难。目前,SIoT的开发人员
已经准备在下一版优化代码,让编
写插件的技术难度变得更低。到那
个时候,相信会有更多的中小学智
慧校园系统中,运行着中小学生自
主编写的各种智能应用。
图4 “”中修改后的代码
图5 代码
也就是给“sf88/d2”的TopicID发
送特定的消息。
第一步:新建网页
复制“”文
件,重命名为“”。然
后在“modules”文件夹中,也将
“”文件复制一份,改名
为“”。当然,每一个页面上
都要做好超级链接,这些都是最基
础的工作,不再赘述。
接下来,需要修改“sfarm.
html”文件。核心工作是修改
“”和“”
之间的内容。当然,这要求懂一点
HTML语法和。我也是边读
教程,边请教身边的专家,然
后照猫画虎写的,如图4所示。
第二步:编写js代码
设计好网页后,最难的工
作肯定是编写js代码。因为需要
写的内容有点多,这里重点介绍
“sendMsg_af”的函数。这是供
“”上的按钮来使用
的。如何实现“浇水”?其实就是发
87APR.2021NO.07