试论基于云平台的物联网实验平台
2023-02-13王文超徐超高铭阳余国辉杨巍张祎
王文超,徐超,高铭阳,余国辉,杨巍,张祎
(天津理工大学中环信息学院,天津 300380)
随着网络通信技术的发展,网络的运用已经从人与人之间通信慢慢地发展成万物互联的时代。当下,网络通信不仅仅是通知人员信息,更多的是基于智能终端的服务搭建,还能对智慧物流园、智能家居等进行搭建和维护,同时,云平台的普及让开发者对所需要掌握的技术能力要求大幅降低,仅仅调用云平台所提供的人工智能接口就可以完成大部分智能搭建。
对于物联网的应用,在国内已经有非常多的案例,如京东的物流仓库、小米的智能家具,但是,对于学生来说,了解这些成体系的案例实在太难,而且人工智能的算法同样不简单,故本文介绍了一种基于云平台人工智能接口,以及云端所提供的服务和树莓派智能终端通过flask显示的虚拟现实相结合的实验平台。
如图1所示,本作品由终端设备识别出人脸后,送到百度云的库中进行比对,如果是公司员工,则不报警,自动开门;如果是陌生人,则将照片上传到阿里云 OSS 数据库中,并将此条信息传送仓库钉钉群,同时收集仓库环境信息,如果环境异常进行智能调度,同时上传环境信息到钉钉群中。
图1 整体流程图
1 平台介绍
1.1 阿里云
阿里云是阿里云计算有限公司发布的一个云平台,其中的物联网开发平台可以让初学者更好地学习物联网知识,同时,阿里云自主研发的“飞天”操作系统,大大提高了该系统的规模以及稳定性,所以阿里云物联网平台也成为某些企业进行服务器搭建时的选择。
1.2 百度云
百度云是百度发布的云平台,相对于阿里云,百度云则是大部分的经济与时间花费在人工智能算法与云存储上,所以调用百度云的人工智能接口,不仅可以使初学者快速地完成功能的搭建,而且正确率往往比自己写算法高很多。
1.3 Flask
Flask是一个对于开发环境没有过多要求且可以针对不同应用场景可以进行开发的框架,使用Python语言编写,相较目前主流运用Java的框架,编写更加容易,与其他的轻量级框架相比,Flask框架有很好的扩展性,这是其他Web框架不可替代的。可以使学生更快更灵活地去完成开发任务。
1.4 钉钉
钉钉是阿里巴巴集团专为中国企业打造的免费的沟通和协同的多端平台,提供PC版、Web版、Mac版和手机版,支持手机和电脑间文件互传。同时,钉钉内部的机器人接口支持开发,这样为消息提醒提供了可能。
2 实验部署
2.1 阿里云云端实验平台
在物联网开发中,必然少不了使用数据传输协议和数据库的建立,如果自己创立MQTT协议,必然少不了大量的代码编写和稳定的网络服务器,同时数据库会占用大量电脑本地内存,针对以下问题在阿里云云端实验平台,对物联网进行数据传输的协议MQTT和云存储服务(oss),MQTT协议的作用是将终端所连接的设备收集的信息发送到多个收集端而不是传送到单个地方,在此实验中发送到阿里云物联网平台中OSS数据库进行数据的查看和保存、flask所构建的窗口中进行设备状态的改变和查看中和钉钉机器人中对于数据的发送,使学习者可以学习物联网中的数据传输协议以及云数据库专业知识,同时,云平台提供的各种功能可以使学习者不需要过多地考虑设备版本以及操作难度,同时,阿里云实验平台良好的人机交互界面可以大大降低学习者对人机交互界面的开发和学习专业知识的成本。
2.2 百度云云端实验平台
在人脸识别方面,如果通过自己开发人脸识别会出现精度差、需要算法学习资源和对硬件设备的支持,所以在该实验中百度云云端实验平台主要目的是调用人工智能API接口,去实现人脸识别功能,完成智能打卡的功能,同时,通过钉钉去通知仓库内部人员。调用API接口可以降低系统各个部分的相互依赖,同时降低组成单元的耦合程度,从而可以便于系统的维护和扩展,学习者也不需要学习大量智能算法和调用大量算法学习资源。在百度云平台上同样提供了良好的人机交互界面,可以使学习者快速地学习。
2.3 钉钉机器人云端实验平台
对于通知方式的设计,无论是现在外界主流的通过手机短信还是通过一个固定网站的直接查看,都会出现提醒强度不够强大和无法确认是否所有人都已经了解仓库内部信息,然而,通过外界特定软件去开发,会出现开发较难和收费等现象,所以在本实验使用了钉钉机器人,钉钉中的机器人在钉钉中是一个独立的应用,其可以支持二次开发,同时,也不需要任何应用进行强制绑定,所以可以通过MQTT协议定期使钉钉发送仓库内部信息去通知内部工作人员,同时群内可以查看有多少人查看这个消息,对于钉钉,钉钉群就是良好的数据展示界面,同时,也是良好的提醒界面去提醒仓库内部人员。
2.4 flask
对于网站的设计,如果使用目前主流的开发语言JAVA,可能会学习成本较大,又因为所有开发都是基于python语言开发,所有可能会出现不兼容问题。所以该实验对于flask作用为制作一个可视化窗口,然后,将阿里云MQTT协议接入窗口中,使阿里云物联网开发者平台中的数据同步到web端,可以使使用者更好地查看仓库信息,同时,在web端也可以控制仓库设备状态。这样完成后可以更加直观地查看仓库环境,而且flask对于其他开发框架开发相对简单,可以使学习者更好地去学习。
在图2中,整体的数据流向为由硬件终端收集数据后,通过MQTT协议进行数据的传输将数据传输到阿里云物联网平台,之后再次通过MQTT协议将数据传输给OSS数据库、钉钉机器人和flask接口,分别用来存储数据、数据的提醒和展示数据。让实验者能够了解协议运行的机制,加强实验者的编程能力。
图2 数据走向
如图3所示,在终端收集数据后,将数据传输到阿里云物联网开发平台,数据在阿里云中进行数据的分配,在分配完成后,通过MQTT协议将数据传输到云数据库、钉钉端和web窗口,从而完成整体作品。
图3 作品整体图
如图4所示,在硬件终端收集数据后,将数据传输到阿里云物联网平台,同时阿里云物联网开发平台在注册设备信息后,传感器所收集的数据就如图4所示进行实时更新,可以让实验者通过后台更加直观地观看数据信息。
图4 阿里云物联网开发平台数据
如图5所示为在百度云调用API接口后,将接口上传到树莓派后,当树莓派收集到人脸信息后,如图5就会将人脸信息传输到人脸管理库,以便后期查看。
图5 百度云人脸识别平台
图6 所示为MQTT协议将数据上传到flask后,用flask搭建的网站窗口中将数据实时展示,同时下方报警状态可以在代码中设置一个阈值当超过阈值时进行报警,同时进行智能调控,在下方的状态提示中的交互按钮也可以手动去改变仓库内部智能设备的状态。通过这样的方式可以更加全面地了解物联网中的各种协议和运行方式。
图6 Flask
3 结语
本文所展示的实验平台,可以使学习者了解目前主流物联网应用搭建方式以及制作方法,首先,开发者可以通过终端的搭建了解树莓派和传感器的使用方法和代码的编写;其次,通过阿里云云平台去学习通信协议MQTT和云数据库的搭建,之后通过百度云去学习目前主流的人工智能学习算法;然后,通过flask的学习使自己学习对于前端交互界面的开发;最后,通过钉钉机器人去设计一个良好的消息通知平台。通过这些软件以及平台的学习,可以使学习者较为快速且压力较轻地去学习搭建一个完整的物联网开发平台,且开发者可以根据自己所想到的应用环境,去合理地使用不同云平台所提供的功能去搭建不同应用场景的物联网平台,模块化的实验可以使该实验的耦合度较低,从而使学习者不怕搭建平台途中出现错误从而导致整体实验的失败,但是,对于学习者来说,虽然相对于传统物联网开发来说学习难度大大降低,但是,所运用的平台和软件相对较多,所以在后期开发中,进一步将所有物联网功能集中到一个云平台中。