物联网云平台选择
智能垃圾回收箱属于物联网设备,多数物联网设备都具备联网、与手机 APP 交互等功能,这些功能需要一个良好的后台运行环境,而云平台的选择至关重要。
目前常用的云服务系统有以下几种:ARM 公司做出了 Mbed 系统以适应物联网的发展,这款系统可以高效灵活的设计出用户所需要的项目原型;微软公司开发出了Windows 10 LOT,其物联网移动企业版不仅为用户体验提供了功能,还可以给企业级安全性和可管理性的业务线移动设备提供功能。华为研发的 Lite OS 由敏捷控制器、操作系统和敏捷物联网网关三部分构成,能够快速建立物联网基础设施,有利于设备智能化。
机智云平台的物联网运营管理以及技术都很适合智能垃圾回收箱云平台的开发,图 4.1 是机智云平台工作运行的简图,机智云可以和手机 APP、微信、无线网络联合使用,通过 GAgent 和设备控制器 MCU 交互,MCU 控制前端设备的运行。
机智云平台可以给广大用户群体提供云端服务和硬件开发工具,该平台的 API 与SDK 服务能力使智能物联网设备的开发难度降低,减少了开发成本,加快了设备的研发速度。
机智云平台架构与功能介绍
机智云可以提供较完整的智能服务系统,拥有丰富的 AIoT 应用场景,主要分为以下几个板块:
(1)IoT 设计研发:提供模块化、组件化物联网开发工具,可移植、可复用 IoT微服务组件库,快速构建工业 APP 和应用服务。
(2)IoT 设备物联:IoT 云平台接入协议 GAgent、APPSDK 和模组 SDK,设备管理、过程监测、维保规划、数据采集、统计分析。
(3)设备远程运维:IoT 设备实时数据在线监测,物联网设备售后运行状态实时可视化,构建远程诊断管控、维保管理协同。
(4)设备故障诊断:基于物联网设备运行参数、故障参数、远程数据采集分析,实现 IoT 设备健康故障诊断,预防性维护。
机智云官网提供的平台架构如图 4.2 所示,在开发者栏里,分为设备接入、手机应用和企业应用三部分。智能垃圾回收箱采用的是 STM32 主控系统,所以设备接入部分选用 MCU 接入云平台;企业将智能垃圾回收箱投产后,电源模块使用太阳能充电,不需要专门的充电设备,这里只需要机智云的企业管理系统。
机智云 5.0 架构如图所示,图中的 SaaS 平台即为后台,在居民投放垃圾前,可以对用户的卡号进行验证,也可以将用户卡号上传第三方平台进一步验证。
机智云 C-AEP(协同应用开发平台)是机智云针对物联网行业属性打造的中台架构,C-AEP 包括技术中台、业务中台和数据中台。技术中台提供物联网端到端技术框架和便捷化工具集合,包括连接中台、APP 框架、产测工具等;业务中台对物联网设备、用户的通用业务提炼形成服务,供有物联网属性的各类应用使用,快速上线新业务,以达到快速物联网化和满足日益变化的海量业务诉求;数据中台对物联网数据进行标准化建模,设备数据、业务数据上传到云端后经过数据治理存储在数据中台的主题库中,包括用户中台、设备中台、应用中台等。
机智云的开发工具
近几年来,国内市场上比较热的云服务平台有阿里的阿里云、腾讯推出的 QQ 物联、百度的百度物联、机智云等,这些云服务平台都具有设备管理、SaaS 业务服务、物联网大数据平台等。硬件产品需要与物联网共同使用,才能够实现智能化。机智云平台与其它云服务平台相比,其最具优势的是能够提供智能设备所需要的硬件开发工具以及对应的软件服务平台。SDK 与 API 服务能力使得开发变得更加容易,能够缩短整个物联网的开发周期,将智能垃圾回收箱硬件设备和物联网更快地连接,建立更稳定的联系。
机智云提供的几种模块化开发工具
(1)RTDB 实时大数据统计;
(2)企业 API、OPEN API;
(3)产品互联(Echo 接入等);
(4)Snoti 服务;
(5)自动化产测工具;
(6)OTA 固件升级;
(7)MCU 代码自动生成工具;
(8)APP 代码自动生成工具;
(9)标准 GAgent 串口通讯协议。
在以上模块中,标准 GAgent 串口通讯协议作用最大。GAent 是机智云开发用于快速搭建物联网框架的固件,主要的作用是实现数据之间的互通,是设备数据、机智云、应用端(APP)的数据交互桥梁。为方便智能垃圾回收箱硬件设备快速联网,机智云自研串口通信协议 GAgent,兼容市面上 70 多种 4G、WiFi 模块,arduino 爱好者只需购买支持接入机智云的模组,烧写相应的 GAgent 固件,即可让 Arduino 设备具备联网能力,图 4.4 是机智云、GAgent 和手机 APP 之间的关系图,GAgent 烧写教程可以在机智云 APP 官网中找到。
连接云端步骤
要实现一个智能产品的投入使用,就要建立用户、企业、设备之间的联系,智能垃圾回收箱只有联网之后才具备各种各样的功能,否则就无法正常使用。目前的智能化产品中,除了室内设备一般使用有线连接外,大多数室外产品使用的是无线连接,智能垃圾回收箱也是如此。
首先需要注册成为一个开发者,然后创建自己所需的产品,下一步进行设备开发和应用开发,开发过程中机智云能够自动生成所需功能的程序,随后产品调试成功后就可以申请发布,投入使用了。
智能垃圾回收箱主控制器软件设计
软件设计流程
智能垃圾回收箱的主控器为 STM32F103ZET6,主控制器需要对硬件部分的传感器进行收集,然后对执行机构发出控制命令。设备信息采集后经过 GAgent 串口协议上报给云端,同时后台也能对前端箱体下发命令。软件设计流程图如图所示。
STM32 与机智云平台联系
在云平台可以创建智能垃圾回收箱设备,选择通讯方式后,机智云可以将 Product Secret 和 Product Key 两种参数分配给该设备。机智云的服务器和其它平台服务器对接时会用到 Product Secret 参数,在智能垃圾回收箱的主控板中写入 Product Key 参数,并将此信息传达给 4G DTU 模块。
智能垃圾回收箱的功能通过 STM32 上传给机智云平台,通过数据点可以实现此功能,云平台的数据点对应的是智能垃圾回收箱的功能点。功能点能够描述出智能垃圾回收箱的功能,同样在机智云平台建立每个功能的数据点,两者通过 4G DTU 模块进行数据传输。图 4.7 是数据点作为媒介的示意图
对软件系统而言,需要创立众多数据点来实现设备功能,在此只列举五个小功能
创建,如表所示。
在服务器中,数据点由功能点名称、英文标识名、读写类型、数据类型和备注共同组成。数据点的每个小功能实现后即可实现大功能,例如智能垃圾回收箱的位置信息可由数据点定义的经度和纬度来确定。表 4.1 中的标识名一般为英文简称,读写类型和数据类型根据功能来选择。只接受前端设备信息是读写类型为只读,云端需要发出指令使设备运作时的读写类型为可写,报警装置的读写类型为报警;系统接受设备准确数据的数值类型为数值,其它类型为布尔值。
DTU 模块接入 STM32 MCUSTM32 主控制器是通过 4G DTU 模块和云平台建立联系,两者连接具体实现方法如下:
第一步,在机智云平台创立一个新的产品,如图 4.8 所示在产品界面可以看到开发中的产品有 GR515、ZigBee Sub、Mesh Sub 等通信模块的产品,选择 GR515 进行开发,选择数据点,设置 DTU 的基本内容。
第二步,在 MCU 开发栏选择独立的 MCU 硬件方案。选择型号为 STM32F103 系列的硬件平台,可以自动生成 MCU 程序,也可以对自动生成的 MCU 程序进行修改,以适应不同型号的主控制器。
第三步,在完成硬件接线后,能够生成模组日志和 MCU 日志。这些生成的模组会和平台建立绑定关系,此时绑定 GR515 可通过 APP 实现,该平台串口助手的小工具能够生成对应的绑定码。
第四步,完成设备绑定。用 APP 发出数据信息,再通过 GR515 的串口将这些数据信息输出。
第五步,利用不同串口实现模组的通讯、打印微控制器的日志、输出数据信息等,接入完毕。
智能垃圾回收箱模块程序设计
在进行模块化程序设计之前,需要选择一款软件工具。本系统的主控芯片为STM32F103ZET6,使用 ARM 官方提供的 KEIL-MDK5 作为系统的开发软件。
称重模块程序设计
称重功能的程序流程图。
居民将垃圾投入时,软件系统需要先搜寻接口地址,地址回应正确时将接口初始化,过滤以往称重信息,然后称重传感器对数据检测,若称重数据没有超重,则将垃圾质量数据上传。此过程中,地址回应错误或无回应、垃圾超重时,系统都会发出报警信号,提醒工作人员处理。
超声波测距模块程序设计
超声波测距模块的工作流程图如图所示。
在硬件部分,已经选用了性能稳定、精度较高的 HC-SR04 超声波传感器模块,主控系统只需要为该模块提供超过 10us 以上的脉冲触发信号即可。首先,需要对定时器和通用型输入输出(GPIO)初始化,然后 HC-SR04 模块能够发射 8 个高频率信号,在回波信号返程的时候,模块也会立即发送回响信号,回响信号与测得信号的脉冲宽度是正比例关系[57]。定时器的作用是用来记录回响信号,从而通过回响时间就可以知道距离。数据采集成功后被上传至云端,若检测失败,则重新返回到初始化的环节,直到距离数据采集完成。
光幕传感器程序设计
光幕传感器的软件工作流程图如图所示,用户投放垃圾过程中,箱门处于开启状态,此时系统检测光幕传感器的红外线是否被遮挡。若传感器正常接受红外线,则系统发出正常信号,箱门正常关闭;若红外线被遮挡,则系统发出异常信号给STM32,STM32 控制电机反转,再次回到检测出光幕状态,直到红外线不被遮挡时,箱门才会正常关闭,此装置和防夹手机构配合,能提升安全系数。
烟雾报警程序设计
烟雾报警模块与其他模块不同,烟雾报警模块需要随时随地的监控回收箱内的烟雾报警信息,所以程序需要一直运行,防止出现火灾后无人处理。在设计烟雾报警软件系统时,需要满足以下几点要求:
(1)能够通过通信协议上传烟雾报警器的报警信息;
(2)能够随时联网并完成 DTU 模块的初始化;
(3)能够读取烟雾传感器电路输出的高低电平信号。
对于以上要求,设计了如图 4.12 是烟雾报警模块的程序流程图。开始时的系统初始化包括 STM32 时钟、中断分组、IO 口的初始化。时钟初始化的主要作用是把外部 8Mhz 的晶振时钟调到 72Mhz。中断分组的初始化是由函数的调用实现的,其目的是获得优先级,IO 口的初始化目的是将收集到报警信号的 IO 口设定成具有上拉电阻的输入工作状态。
若烟雾传感器检测到烟雾生,此端口读取高电平信号;若烟雾传感器处于正常工作状态,此端口读取低电平信号[58]。DTU 模块通过 4G 联网,系统会判断联网是否正常,联网正常后会读取烟雾传感信号。如有报警信号,由 STM32 串口将此报警信号发出,DTU 模块通过 4G 信号传递到远程控制平台。
电源模块程序设计
系统电源电压电流模块检测的流程图如图所示,系统电源采用小区电源供电。先对各 ADC 通道的引脚电压进行检测,然后将对应的引脚电压结合电路换算成电压、电流的数据。
显示模块程序设计
居民投放垃圾时,箱体上的 LCD 显示屏会显示垃圾投递过程、垃圾称重信息、和防夹手等文字提示。显示模块的软件程序流程如图所示,系统初始化之后首先需要编写显示文字的 X,Y 位置坐标,以确定文字在显示屏中的位置。其次,要对文字赋予颜色已经显示屏其它图像,系统此时对显示信息做出判断,显示正常后有会定时显示,提醒用户在规定时间完成投放,若显示异常,则返回重新启动程序。
语音模块程序设计
本系统采用的 DY-SV17F 模块实现语音播报功能,支持 UART 串口控制语音播报,STM32 通过 GPIO 与该模块连接。UART 串口模式是采用波特率为 9600 的全双工串口通信,语音模块作为从机处理。在上电后该模块是待机状态,全部的语音播放功能都是由主机实现的,主机也会控制通信功能。使用串口可以存放 65535 首曲目(需要注意模块只有 4m 内存),通过通信指令可以实现多种模式播放。
在编写好文本指令信息后,按顺序将文本信息排列,通过特定的时序,往模块发送 0 码或 1 码的组合实现模块的语音播报,每一条文本指令都设置有固定的指令码。例如智能垃圾回收箱开门时语音“垃圾分类,家园更美”每个字或者词组都可以在系统里找到对应的指令码,然后根据下一字段播出的时间设置定时,定时过后可播放下一段语音,语音模块和显示模块配合,更加方便了居民的投递操作,使智能垃圾回收箱的功能更加完善。系统流程如图所示
GPS 定位模块程序设计
设备的 GPS 定位需要用到 NMEA 协议,一般的电子设备都有规范的制定格式NMEA(National Marine Electronics Association),NMEA-0183 协议格式是 GPS 数据上传、关联的标准格式,该协议主要传输语句有
GPRMC、$GPGGA、$G-PGSV 等。智能垃圾回收箱的时间、经纬度等信息包含在$GPRMC 语句中,只需找到对应的$GPRMC 帧,并进行数据提取和处理。
该模块进行数据传输时,需提前建立好结构体,结合机智云的数据点功能,这里所建立的子项目名称也要与数据点功能名称对应。例如数据点中的 Location latitude代表的是纬度,Location longitude 代表的经度,在经纬度方面还可以再往下细分。具体设计步骤如下:
(1) 找到 STM32 对应串口,选择引脚作为浮空输入;
(2) 创建一个定位类型的结构体数据;
(3) 在远程后台植入数据点类型与该结构体数据对应;
(4) 创建 GPS 时间信息 time;
(5) 创建 GPS 总位置信息;
(6) 在总位置信息下创建经度信息和纬度信息;
(7) 继续在位置经度信息下创建东西经度差别信息,在纬度下创建南北纬度差别信息。
(8) 创建位置高度信息。
(9) 将数据信息发送至我方后台,实现后台定位。
智能垃圾回收箱的定位系统需要一天 24 小时连续工作,为超重报警、火灾报警、设备初始投入时绑定到固定小区等重要功能提供了便利,让设备、后台、工作人员三方的配合更加高效,提高了设备的安全性。
电机模块程序设计
设备在开关门时,需要用到步进电机驱动,电机正反转可控制箱门的启闭。开关门之间会有时间限制,若规定时间内完成垃圾投递操作,则箱门正常关闭;反之系统关闭时可能会触碰到卡在门口的物体,在第二章进行防夹手机构设计时提出了行程开关的触发过程。若物体被挤压,回收门在运动小段距离后行程开关会被触发,此时电机再次正转,回收门打开。
系统利用主控制器的定时器发出的 PWM 信号使电机被驱动,定时器会控制PWM 的占空比和周期,之后把 GPIO 口配置完成用以输出 PWM 信号。定时器在进行初始化时,选择时钟频率 TIM4CLK 是 72MHz 的定时器 TIM4。
用户信息识别与投放过程
智能垃圾回收箱需要前端箱体、用户信息(通过二维码识别)、后台、第三方后台以及我方平台的配合才能正常使用,在整个投放流程中,各个平台都起着至关重要的作用,系统信息识别与投放的流程如图 。
主要的判断过程如下:
(1)前端箱体判断:智能垃圾回收箱设备通电后,会在 LCD 显示屏中显示“欢迎使用智能分类箱体”的字样,并伴随有语音提示。用户在投放垃圾时,智能垃圾回收箱对用户的二维码进行识别,以确定用户的身份。首先需要确定用户的信息是否正确,采用卡号验证的方式进行判断,我方前端箱体只需进行本地判断,判断为合法卡号后才能进行下一步的垃圾投递操作。回收门关闭过程中,设备会自动进行防夹手检测、防挤压检测、满溢检测。最后称重模块对垃圾重量称重后,前端设备会上传设备编号、用户卡号、重量信息到我方后台。
(2)后台判断:智能垃圾回收箱后台分为两部分:我方后台与第三方后台。前端箱体在对用户的卡号进行判断的同时,会将卡号信息同时发送到我方后台。一方面后台会自动判断来自前端箱体的用户卡号信息是否正确,另一方面会再次将卡号上传到第三方后台。只有当我方前端箱体、我方后台和第三方后台都判断卡号正确时,智能垃圾回收箱才能打开回收门。若有其中一个平台判断卡号失败,都会导致本次垃圾投放不成功。另外,垃圾投放完成称重后,我方后台会保存设备编号、用户卡号、重量信息等。
小结
本文介绍了系统软件设计的详细方案,对云平台对比后,选择机智云平台开发了智能垃圾回收箱后台控制系统,建立了云平台和设备的联系,对系统的各功能模块的底层软件进行了详细设计。将数据远程传输、云平台控制等物联网技术应用于智能垃圾回收箱中,提高了垃圾回收效率,实现了投放智能化。