1 系统内容要求
(1)测量实验室内的温湿度、烟雾浓度、丙烷浓度; (2)检测地面漏水情况,若漏水则开启水泵排水; (3)检测门窗入侵情况; (4)具有多种报警方式; (5)手机APP远程操控。 2 元器件选择 3 系统硬件设计
3.1 硬件部分组成框图
3.1.1主控硬件部分组成
主控电路如图3.1所示,由以下几部分组成:以STM32作为处理中心,烟雾传感器测量烟雾浓度,丙烷传感器测量丙烷浓度,温湿度传感器测量空气中的温度、湿度,蓝牙主机接收副控发送的数据,风扇1电路、风扇2电路、声光报警电路在满足条件下触发,4G模块则将测量到的数据传输至云服务器,同时接收手机APP的下行指令。
图3.1 主控硬件组成 3.1.2副控硬件部分组成
副控电路如图3.2所示,由以下几部分组成:以STM32作为处理中心,水浸传感器检测地面是否存在漏水情况,人体感应传感器感应是否有人经过,蓝牙从机将副控收集到的信息发送给主控,声光报警电路、水泵电路在满足条件下触发。
图3.2 副控硬件组成
3.2 人体感应传感器
选用人体感应传感器HCSR505来感应是否有人经过,从而判断门窗入侵情况[2]。该传感器基于红外线,当有人在感应角度内移动,就会输出高电平,延时时间为8秒,否则为低电平。如表3.1可以对于人体感应传感器的一些参数有所了解,其工作状态也可以选择,适用于不同的场合。
如表3.2所示,可以知道应该给VCC接5V电压供电,然后GND接地共地,OUT引脚接到单片机引脚上,接线电路如图3.3所示。当有人在感应范围内移动,就会改变红外光谱的检测距离,信号引脚就输出高电平,反之低电平。通过读取所连接的单片机引脚状态,就可以了解有没有人经过,从而得知实验室的门窗入侵情况。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif 图3.3 HCSR505接线图 3.3 电极式水浸探头
选取水浸探头来探测重点地面是否漏水,使用的是电极式水浸探头,该探头是接触式的,意味着它要与水接触才可以感应到。如表3.3所示,对于电极式水浸探头的工作状态以及材质可以有所了解。
表3.3 水浸传感器产品参数 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif
图3.4 水浸传感器接线图
由图3.4可以看出,水浸传感器的工作原理,当水浸传感器的探头探测到水时,信号经过转换电路,三极管的集电极的电压为低电平,如果没有水则输出高电平。将该输出端连接到单片机的引脚上,通过读取该引脚的状态,则可以知道地面有没有漏水,如果漏水了就开启水泵,没有则不开启。
3.4 蓝牙无线模块选取蓝牙模块HC05来给主控和副控通信,通过蓝牙的连接,可以彼此互发数据,进行数据的传输[12]。通过参数的设置可以发现蓝牙模块的工作状态以及工作原理,其基本参数如表3.4所示。
表3.4 蓝牙模块HC05的参数说明
表3.5 HC05引脚说明 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif
图3.5 HC05接线图
由表3.5可以知道蓝牙模块HC05的接线方法。从目前来说,蓝牙与单片机的连接只需要连接4线,VCC连接5V,GND接地,蓝牙的接收端连接单片机的串口1的发送端,发送端连接单片机的串口1的接收端,如图3.5所示。
3.5 声光报警电路
利用NPN型晶体三极管S9012作为控制核心,当单片机给予指令为低电平0V时,三极管的发射极E为5V,基极B为0V,而三极管导通的条件则是基极B和发射极E之间的电压差超过0.7V即可,因此给予0V低电平满足了该条件,三极管导通,发光二极管满足导通条件亮起。三极管导通之后,蜂鸣器正负极的电压差约足够,满足运行所需要的电压差3V,发出报警声。如果单片机给的是高电平,就不满足三极管导通的条件,发光二极管不亮,蜂鸣正负极之间因为没有电压差而哑巴。其声光报警电路如图3.6所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif
图3.6 声光报警电路 3.6 继电器电路
继电器使用的型号是SRD-05V-DC-SL-C,它有5个引脚:输入引脚1、输入引脚2、公共端3、常开端4、常闭端5。1、2引脚连接控制电压5V,当单片机给高电平3.3V的时候,三极管基极B和发射极E之间满足导通电压0.7V,发光二极管满足导通条件发光。常开端4和公共端3导通,而风扇的正极连接继电器的常开端4,负极接地,在常开端4和公共端3导通之后,有足够的电压驱动风扇工作,否则常闭端5和公共端3导通,风扇没有足够的电压驱动。二极管IN4148的作用就是在单片机给高电平指令的那一瞬间,避免因电压突然变高而烧坏三极管。其继电器电路如图3.7所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif 图3.7 继电器电路 3.7 指示灯电路
对于实验室安全监控系统来说,指示灯电路是不可缺少的,如图3.8所示。当单片机给高电平的时候,发光二极管导通亮起;给低电平的时候,发光二极管不导通[5]。单片机给定的高低电平由测量到的数据决定。而发光二极管没有办法直接承受3.3V的电压,所以需要电阻进行分压。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif 图3.8 指示灯电路 3.8 气敏传感器
很多人都知道大部分金属都有导电率,而气敏传感器就是利用该原理对气体浓度进行测量的,不同的传感器对不同的气体产生变化的电导率不同[7]。比如MQ2烟雾传感器对空气中的烟雾浓度就比较敏感,因此适合用来测量烟雾浓度。首先要认识气敏传感器的引脚以及产品参数,如表3.6和表3.7所示。 表3.6 MQ2/MQ6的产品参9数
产品参数 | | | | | | | | | | | | | | | | | | | | | | | Rs (in air)/Rs (2000ppm C3H8) | | | 2.5V~4.0V(in 2000ppmC3H8) | | | ≤0.6(R3000ppm/R1000ppm C3H8) | | | | | Dc:5.0V±0.1V; VH:5.0V±0.1V | | |
表3.7 MQ2/MQ6引脚说明 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif
图3.9 MQ2接线图
由表3.7可知,需要读取实验室的气体浓度,所以需要连接的是模拟信号输出引脚AO,再通过单片机内部的AD转换成数字显示出来[9],GND接地,VCC连接5V给它供电[1],如图3.9所示,使它工作。而另一个气敏传感器MQ6的工作原理、接线图也是如此。
3.9 温湿度传感器
其引脚说明如表3.8所示,因此只需要连接好正负极,然后连接好模拟量输出的引脚即可。接线电路如图3.10所示。
表3.8 DHT11引脚说明 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif
图3.10 DHT11电路图
3.10 电源接入电路
对于所有产品来说,供电是必不可少的。因此我们需要接入稳定电压的电源,如图3.11所示,可以看见接入的电源底座是P2,可以通过USB电源转DC直流数据线直接连接到平时所用的家庭电源,给系统供到5V电。当6脚自锁开关SW1按下时,引脚2、3导通,接入的电源就可以驱动实验室安全监控系统工作。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif 图3.11 电源接入电路 3.11 4G模块接入电路
对于4G模块来说,它以Cat模组ML302为核心,支持的频段有LTE-TDDB34/B38/BB39/B40/B41、LTE-FDD B1/B3/B5/B8,其平均功耗为1W。它定期向监控平台发送数据,实时监视[11]。引脚说明如表3.9所示。
表3.9 4G模块引脚说明
因此,将4G模块连接到STM32最小系统板时,将TXD、RXD连接到串口3的接收、发送引脚,GND连接的单片机的GND。同时要将锂电池的正极接入4G模块的VCC,给其供电,负极接入单片机的GND,其接线如图3.12所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif
图3.12 4G模块接入电路
4 系统软件设计
4.1 单片机程序设计
4.1.1单片机程序开发环境
单片机的主要开发环境是Keil5,KeilC51是51系列兼容单片机C语言软件开发系统。实验室安全监控系统使用的芯片是STM32,使用的语言是C语言,因此Keil5刚刚好可以使用。同时它还有很多优点,比如有着很强大的系统,可读性比较强,调试时很方便……
Keil5是一个很好的开发平台,它可以通过C语言、汇编语言等编写程序,还可以通过设置断点等对程序进行调试,在编译时可以提醒编写错误、编写不规范等行为,而且对于不同的语言来说,它是兼容的,很多人可以通过Keil5这个平台使用不同的语言开发软件。
4.1.2单片机程序总体流程图
单片机的数据上行流程图如图4.1所示。先将需要用到的函数初始化,再将需要的引脚初始化。通过调用各种函数测量温湿度、烟雾浓度、丙烷浓度,再判断测量到的数据是否超过阈值,如果超过了蜂鸣器就报警。再将蓝牙主机接收到的数据和测量到的数据发送至服务器上。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif 图4.1 数据上行流程图
当手机APP有执行的指令时,比如打开风扇指令,该指令被发送给服务器,服务器将该指令发送给下位机。当下位机接收到指令时,就将相应引脚置高或置低,其流程图如图4.2所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif 图4.2 指令下行流程图 4.1.3温湿度采集程序设计
当需要采集温湿度的时候,就调用该程序。如果说单片机检测到DHT11的存在,就返回0给予单片机判断的条件,否则不进行下一步,当检测到DHT11的存在后,就开始读取DHT11上传的温湿度,通过校验、解码,最终获得正确的温湿度。一次数据的读取为5字节,前2字节为湿度的整数和、小数和,再2字节是温度的整数和、小数和,最后的1字节是校验和。其流程图如图4.3所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif 图4.3 温湿度采集程序流程图
4.1.4气体浓度采集程序
首先要先对烟雾传感器的电压值即烟雾传感器的模拟输出引脚进行测量,并且为了减小误差,采取多次测量取平均值的方法获取烟雾传感器的电压。再将该电压转换成3.3V下的4096份,即12位精度的ADC,最后通过公式计算烟雾传感器的体电阻Rs、电阻R0。最后对系统执行的时间进行校准,利用公式计算出实验室内的烟雾浓度。而丙烷气体浓度也是同样的原理进行采集的。其流程图如图4.4所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif 图4.4 烟雾浓度采集程序流程图
MQ6的原理也是如此,其流程图如图4.5所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image030.gif 图4.5 丙烷浓度采集程序流程图 4.1.5人体感应模块采集程序
当人体感应模块在感应范围内感应到人的活动迹象,就会输出高电平。因此需要读取与单片机相连接的人体感应模块的输入引脚的电平,若该引脚为高电平,则证明有人存在,若是低电平,则证明无人存在。其流程图如图4.6所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image032.gif 图4.6 人体感应传感器采集程序流程图 4.1.6水浸传感器采集程序当水浸传感器的探头检测到水的存在,即存在漏水情况,经过转换电路,读取电压。因此只需要读取与单片机相连接的水浸传感器转换电路的输出引脚即可。其流程图如图4.7所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image034.gif 图4.7 水浸传感器采集程序流程图 4.1.7蓝牙从机发送程序
蓝牙从机需要将副控系统采集到的门窗入侵、地面漏水情况报告给主控系统。利用不同的数据代表不同的情况发送给主控系统,当有人的时候,就发送数字1;当没人的时候,就发生数字2;当地面没漏水的时候,就发送字母C;当地面漏水的时候,就发送字母D。其流程图如图4.8所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image036.gif 图4.8 蓝牙从机发送程序流程图
4.1.8蓝牙主机接收程序
当蓝牙主机和从机顺利配对后,从机将采集到的数据发送给主机进行处理。单片机将接收到的数据存储起来,然后再一一读取,利用不同的数字和字母,判断门窗入侵、地面漏水情况。其流程图如图4.9所示。
图4.9 蓝牙主机接收程序流程图file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image038.gif
4.2 手机APP程序设计4.2.1定时器定时程序
发送至服务器的数据要定时发送,否则会因为数据发送太快服务器没办法正常接收,新的数据太快会覆盖了旧数据。如果数据发送得太慢则不利于手机APP对数据的读取。因此选择定时时间为6秒,每6秒上传一次数据至服务器。其流程图如图4.10所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image040.gif
图4.10 定时器定时程序流程图 4.2.2数据上传程序
发送至服务器的数据不单单是主控系统采集到的信息,还有副控系统采集到的信息。当串口1接收到副控系统发送过来的信息,就对此进行判断并发送给服务器,不同的数字、字母代表不同的含义,比如蓝牙从机发送了数字1,就表明门窗存在入侵情况。然后调用各种函数,读取温湿度、烟雾浓度、丙烷浓度,将这些信息发送至服务器。其流程图如图4.11所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image042.gif 图4.11 数据上传程序流程图 4.2.3数据下行程序
当手机APP接收到指令时,该指令被发送至服务器,服务器再将该指令发送给主控系统,主控系统则做出判断,是否操作该指令。例如想远程打开排烟风扇,只需要在手机APP上点击开启风扇,该指令就会被发送到服务器,服务器就把这个信息发送给单片机,单片机就执行该指令,开启风扇。其流程图如图4.12所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image044.gif 图4.12 数据下行程序流程图
5 手机APP的设计5.1 机智云AIoT的接入流程
对于机智云来说,下位机接入机智云需要开发者进行一些功能的开发。首先是在开发者中心注册,选择成为个人开发者或者企业开发者,然后根据需求比如接入机智云的方式等创建产品、开发设备、开发应用,最终进入产品调试。一个流程之后,APP就可以调试使用了。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image046.gif 图5.1 机智云接入流程
5.2 产品的创建
对于手机APP的设计来说,首先要设置的是显示在APP上的界面,即上传到服务器的数据。据实验室安全监控系统来说,需要设置多个数据点。
先要在机智云的开发者中心创建新产品。先将“产品分类”选择为其他中的自定义,填好产品的名称,“技术方案”选择的是Wi-Fi/移动网络方案,选择“通讯方式”为移动网络,“数据传输方式”为变长,“功耗类型”为正常,最后保存即可。这样,一个新的产品就创建好了。当新建好产品之后,机智云会分配两个密钥,这两个密钥一个连接下位机的4G模块,一个连接手机APP。它们是独一无二的,在连接时,机智云会自动分辨、连接。如图5.2所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image048.gif 图 5.2 产品的基本信息
创建好产品后,需要对产品中的数据进行设置。在创建好的产品中,选择新建数据点,如图5.3所示。什么是数据点?数据点就是产品中的数据,想上传至服务器的数据,这些数据在服务器与在代码中是一一对应的,因此避免出现数据错误的现象。这些数据的定义包括了标识名,就是在产品中要显示的名字,包括了读写类型、数据类型,包括了备注。这些数据可以更改,在更改之后,也需要更改代码中的内容,否则数据格式会不正确,云平台与下位机之间的通讯就会出现问题。具体描述如表5.1所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image050.gif 图5.3 新建数据点界面
表5.1 数据点基本内容 内容 | | | |
| | |
| | | | | | 设备端可上报该数据点数据;云端/客户端可对该数据点数据做出下发控制 | | | | | | | | | | | | | | |
| | |
| |
因此,根据实验室安全监控系统的需求,分析硬件开发的需求,将数据点设置好,数据点的配置是APP设计的重中之重,如表5.2所示。 表5.2 实验室安全监控系统数据点
5.3 MCU开发
对于机智云来说,它的优势就是不需要开发者之间写APP的代码,就不会存在很多错误问题的发生,可以使用他的自动生成代码服务,方便快捷。这些生成的代码通常包括了通讯协议、通讯数据的转换逻辑等。在代码中添加相应的开发措施,在手机APP发送指令之后,指令就会变成事件发送到服务器中,服务器发生给下位机,驱动下位机实现相应的功能。这里选择“硬件方案”的是独立MUC方案,“硬件平台”选择的是其他平台,然后将产品的Product Secret参数填入相应位置,然后生成代码包,如图5.4所示。最后将生成的代码包移植接入下位机的代码中。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image052.gif 图5.4 MCU SDK开发 5.4 移动应用的设置
首先要在机智云的开发者中心创建一个新的移动应用,填入应用名称,即APP的名字,“应用包名”要选择一个唯一的名字,不该和其他产品的名字一样。“类型”选择智能家居即可,“平台”就选择ios和android,如图5.5所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image054.gif 图5.5 新建移动应用界面
新建好移动应用之后,点击进入该移动应用。在其个性化选项中,选择关联产品,点击“+”号,把先前创建的产品与现在创建的移动应用关联起来,也可以选择自己喜欢的主题,更改图标等。
关联号产品之后,要对产品的应用证书进行配置。在构建应用的选项下,选择应用证书,然后就可以配置证书了。这里只配置了Android证书,如图5.6所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image056.gif 图5.6 Android证书的配置
在同样的选项下,选择应用构建,点击构建测试版,等待APP的构建即可。当APP构建好之后,会生成一个二维码,利用手机自带的游览器扫描,就可以下载构建好的APP,正常安装即可。
5.5 上下位机的连接
当下载好APP后,我们需要将APP与下位机联系起来。使用软件GAgent_Debugger配置手机APP与下位机的联系。在该设备中,选择“新增”,我们选择“服务器平台”为国内服务器,将产品的Product Key和Product Secret参数填入,选择“设备类型”为单品,选择“通信方式”为移动网络。成功配置好服务器之后,就如图5.7所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image058.gif 5.7 配置成功界面
在工具选项中,选择设备二维码,将Product Key参数填入,以及4G模块的IMEI号也填入,选择“服务器域名”为国内服务器,然后点击“二维码生成”,就会生成一个二维码,如图5.8所示。将手机APP打开,点击扫描设备二维码,扫描设备二维码,即可将手机APP与下位机绑定。在这里要注意的是,APP在绑定时下位机必须连接到机智云。在下位机正常工作时,APP则可以查看各种信息。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image060.gif 图5.8生成设备二维码 5.6 手机APP的推送首先使用的推送功能基于机智云平台,因此先向机智云申请开通。首先申请的是规则引擎这个功能。当提交申请之后,等待机智云平台开通,之后就可以使用其功能。
成功开通规则引擎之后,在创建好的产品内,服务选项下,多了D3 Engine选择。 点击D3 Engine,进入配置界面,点击编辑推送的平台,如图5.9所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image062.gif 图5.9 编辑推送平台
在这里选择的推送平台是百度,应用平台选择的是安卓,将在百度平台申请到的API Key和Secret Key填入相应的位置,如图5.10所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image064.gif 图5.10推送平台的绑定
同样是在D3 Engine功能下,选择项目列表,新建项目。在新建的项目内,构建自己需要的功能,其中左边的框图就是选择的数据、触发动作等,右边是建立的编辑区域。如图5.11所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image066.gif 图5.11 编辑推送功能
首先将设备数据拖到编辑区域,编辑其触发方式为设备上报状态,如图5.12所示。然后选择逻辑规则的编写,比较参数1就是想报警的数据,比较参数2就是设定的阈值,比较符号则是这两个参数之间的关系,如图5.13所示。最后编辑邮件的推送,填写好邮件的标题、内容以及推送的邮箱即可,如图5.14所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image068.gif 图5.12 设备数据的编辑
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image070.gif 图5.13 逻辑规则的编辑
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image072.gif 图5.14邮件推送功能的编辑
6 系统调试6.1 主从机蓝牙的配置与通信
对于蓝牙来说,其设置是通过AT指令来配置蓝牙的名称、波特率、绑定地址等。因此要先了解蓝牙常用的AT指令,如表6.1所示。 表6.1蓝牙常用AT指令
在正式配置蓝牙的主从机之前,我们要先做好准备,将蓝牙与USB转TTL连接,将蓝牙的使能端置高电平,再给模块上电,这样蓝牙就进入了AT模式,波特率固定为38400,可以直接发送AT指令,不需要发送一次指令就将使能端置高一次。进入AT指令模式后,先将两个蓝牙恢复到默认出厂设置,同时获取他们的蓝牙地址,即本机MAC地址。在发送每一条AT指令的时候,要记住在指令后加一个回车,如果没有回车,AT指令就会发送失败。当成功发送一条AT指令的时候,蓝牙测试软件就会回复OK,如果没有回复OK,则表明该指令没有成功发送。
设置主机时,先将主机的名字设置为Y1(蓝牙的名字可以随便),再将它设置为主机模式,配置配对密码7890(配对密码可以随便),绑定蓝牙从机的地址,设置其波特率为9600,将蓝牙的连接模式改为0,即指定蓝牙地址连接模式。最终结果如图6.1所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image074.gif 图6.1 主机设置配置
设置从机,先将从机的名字设置为Y1,再将它设置为从机模式,配置配对密码7890,绑定蓝牙主机的地址,设置其波特率为9600,将蓝牙的连接模式改为0,即指定蓝牙地址连接模式。最终结果如图6.2所示。在这里要注意的是,蓝牙主机、从机的名字、配对密码、波特率必须一致,否则就会设置不成功。如果不将蓝牙的连接模式设定为指定,而是设置为其他模式,但是只有蓝牙之间就不是一对一发送了,因此最好设置为指定模式。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image076.gif 图6.2 从机设置配置
当蓝牙成功配置之后,在工作之前,他们会自动配对,观察蓝牙的指示灯从快闪变为慢闪时就代表以及成功配对。当成功配对之后,从机从串口1发送数据,主机从串口1接收数据并打印出来,利用串口调试助手查看从机发送的数据即可,如果打印的数据和发送的数据一致则证明蓝牙的通信正常。在发送数据时,尽量不使用汉字,防止乱码现象发生。
6.2 云端数据的接收与发送
如何确定服务器与下位机成功连接上?将给4G模块供电,不要与主控系统的5V电压相连接,而是单独给4G模块供电,因为主控系统的5V无法驱动4G模块运行。将4G模块与串口3连接,TXD连接串口3的RXD,RXD连接串口3的TXD。同时不要忘记将锂电池的地、4G模块的地与单片机的地连接起来,否则4G模块无法正常工作。当4G模块成功工作时,其电源指示灯亮起,连接云端指示灯闪烁。与此同时,可以通过云端查看4G模块是否成功连接上云端,如果在机智云的设备日志中,可以发现设备的IMEI号、设备ID以及是否在线的状态,如图6.3所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image078.gif 图6.3 连接云端界面
当主控系统与服务器连接成功之后,对于上传的数据是否成功,就可以通过服务器的设备日志来观察。服务器会主动记录通过下位机上传的数据,在上传数据的同时将这些数据通过串口1打印出来,将云端接收到的数据与串口1打印出来的数据进行对比,如果数据正常就表明通讯成功。
当数据成功上传到云端时,如何表明云端数据的成功发送。利用机智云的DEMO软件与自己创建的手机APP同时打开,也同时打开串口调试助手查看串口1的数据,将这三者一起对比,如果说数据一致则表明云端数据的发送正常,没有丢包现象发生。当上传数据时,一定要记住定时发送,这个时间不可以太快,快了后面的数据会把前面的数据覆盖住,太慢导致数据的更新不正常,容易空包。因此最好定时6秒,每6秒给云端发送一次数据,云端接收的数据如图6.4所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image080.gif 图6.4 云端接收的数据
7 参数测量7.1 气体浓度测量
如图7.1所示,该电路为气敏传感器的基本电路,该电路只需要施加VH和VC。由该电路可知 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image082.gif (7-1) 其中RL取4.7K欧姆,VC为回路电压,VRL为AO口输出电压,RS为传感器在气体中的电阻值。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image084.gif 图7.1 基本电路
如图7.2所示,该特性曲线的横坐标为气体浓度,单位为ppm,即1立方厘米/1立方米,纵坐标为RS/R0。由该曲线可知这两者之间的关系,列出表7.1,并画出散点图,模拟散点图之间点与点之间的关系,得到公式y=33607x^(-2.998),其中y为ppm,x为RS/R0。利用该公式计算出ppm,理论ppm与计算ppm之间的误差就可以计算。如表7.1和图7.3所示。
file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image086.jpg 图7.2 MQ2灵敏度特性曲线
表7.1 RS/R0与烟雾浓度的关系 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image088.gif 图7.3 烟雾浓度散点图与计算公式
丙烷浓度的计算同理可得,如图7.4、表7.2和图7.5所示。 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image090.jpg 图7.4 MQ6灵敏度特性曲线
表7.2 RS/R0与丙烷浓度的关系 file:///C:/Users/mars/AppData/Local/Temp/msohtmlclip1/01/clip_image092.gif
图7.5 丙烷浓度散点图与计算公式
|