资讯详情

【IoT毕设.下】STM32+机智云AIoT+实验室安全监控系统

上一篇文章包括1系统内容、2、元器件选择、3、系统硬件设计等。请参考:提示信息 - 机智云 单片机的主要开发环境是Keil5,Keil C51系列与单片机C语言软件开发系统兼容。实验室安全监控系统使用的芯片STM32.使用的语言是C语言,所以Keil5刚刚好可以使用。同时它还有很多优点,比如有着很强大的系统,可读性比较强,调试时很方便…… Keil5是一个很好的开发平台。它可以通过C语言和汇编语言编写程序,也可以通过设置断点来调试程序。在编译过程中,它可以提醒编写错误和不规范的编写。此外,它与不同的语言兼容,许多人可以通过Keil该平台使用不同的语言开发软件。 单片机数据上行流程图如图4所示.1.首先初始化所需的函数,然后初始化所需的引脚。通过调用各种函数来测量温度和湿度、烟雾浓度和丙烷浓度,然后判断测量的数据是否超过阈值。如果超过蜂鸣器,请报警。然后将蓝牙主机收到的数据和测量的数据发送到服务器上。 当手机APP当有执行指令时,如打开风扇指令,将指令发送给服务器,服务器将指令发送给下位机。当下位机收到指令时,相应的引脚位置高或低,流程图如图4所示.2所示。 当需要收集温度和湿度时,调用程序。若单片机检测到DHT11的存在将返回0判断单片机的条件,否则将不进行下一步。当检测到它时DHT11存在后,开始阅读DHT11上传的温湿度最终通过验证和解码获得正确的温湿度。数据读取为5字节,前2字节为湿度的整数和小数和,再2字节为温度的整数和小数和,最后1字节为验证和。流程图如图4所示.3所示。 4.1.4气体浓度采集程序 首先,测量烟雾传感器的电压值,即烟雾传感器的模拟输出引脚,为了减少误差,烟雾传感器的电压应通过多次测量平均值来获得。将电压转换为3.3V4096份,即12位精度ADC,烟雾传感器的体电阻最终通过公式计算Rs、电阻R0。最后,校准系统执行时间,用公式计算实验室烟雾浓度。丙烷气体浓度采集原理相同。流程图如图4所示.4所示。 图4.4 烟浓度采集程序流程图 MQ6的原理也是如此,其流程图如图4所示.5所示。 图4.5 丙烷浓度采集流程图 当人体感应模块在感应范围内感应到人的活动迹象,就会输出高电平。因此需要读取与单片机相连接的人体感应模块的输入引脚的电平,若该引脚为高电平,则证明有人存在,若是低电平,则证明无人存在。其流程图如图4.6所示。 图4.6 人体感应传感器采集流程图 当水浸传感器探头检测到水的存在时,通过转换电路读取电压。因此,只需读取与单片机相连的水浸传感器转换电路的输出引脚即可。流程图如图4所示.7所示。 图4.7 水浸传感器采集流程图 4.1.7蓝牙从机发送程序 蓝牙需要向主控系统报告副控制系统收集的门窗入侵和地面泄漏情况。使用不同的数据代表不同的情况发送给主控制系统,当有人时发送数字1;当没有人时,数字2;当地面没有泄漏时,发送字母C;当地面漏水时,发送字母D。流程图如图4所示.8所示。 图4.8 蓝牙从机发送程序流程图 当蓝牙主机和从机顺利配对后,从机将采集到的数据发送给主机进行处理。单片机将接收到的数据存储起来,然后再一一读取,利用不同的数字和字母,判断门窗入侵、地面漏水情况。其流程图如图4.9所示。 图4.9 蓝牙主机接收流程图 4.2 手机APP程序设计 4.2.定时器定时程序 发送到服务器的数据应定期发送,否则服务器将无法正常接收,因为数据发送太快,新数据覆盖旧数据太快。如果数据发送太慢,就不利于手机APP读取数据。所以选择定时6秒,每6秒上传一次数据到服务器。流程图如图4所示.10所示。 图4.10 定时器定时程序流程图 发送到服务器的数据不仅是主控系统收集的信息,也是副控系统收集的信息。当串口1收到副控制系统发送的信息时,判断并发送给服务器。不同的数字和字母代表不同的含义。例如,蓝牙从机器发送的数字1表明门窗有入侵。然后调用各种函数,读取温湿度、烟雾浓度和丙烷浓度,并将这些信息发送到服务器。流程图如图4所示.11所示。 图4.11 程序流程图数据上传 当手机APP接到指令时,指令发送到服务器,服务器将指令发送到主控制系统,主控制系统判断是否操作指令。例如,如果你想远程打开排烟风扇,你只需要在手机上APP点击打开风扇,指令将发送到服务器,服务器将信息发送到单片机,单片机执行指令并打开风扇。流程图如图4所示.12所示。 图4.12 数据下行程序流程图 对于智能云,下级机接入智能云需要开发人员开发一些功能。首先,在开发人员中心注册,选择成为个人开发人员或企业开发人员,然后根据接入智能云等需求创建产品、开发设备、开发应用程序,最终进入产品调试。经过一个过程,APP可调试使用。 图5.1 机智云接入流程 对于手机APP在设计方面,首先要设置的是显示APP上界面,即上传到服务器的数据。实验室安全监控系统需要设置多个数据点。 在机智云开发者中心创建新产品。首先选择产品分类作为其他自定义,填写产品名称,选择技术方案Wi-Fi/移动网络方案,选择通信模式作为移动网络,数据传输模式变长,功耗类型正常,最终保存。这样,新产品就创造出来了。 新产品建成后,机智云将分配两个密钥,一个密钥连接下位机4G连接手机的模块APP。它们是独一无二的,机智云在连接时会自动区分和连接。如图5.2所示。 图 5.2 产品基本信息 创建产品后,需要设置产品中的数据。在创建的产品中,选择新的数据点,如图5所示.3所示。什么是数据点?数据点是产品中的数据,想要上传到服务器中的数据,这些数据在服务器和代码中一一对应,从而避免数据错误。这些数据的定义包括标识名,即在产品中显示的名称,包括读写类型、数据类型和备注。可以更改这些数据。更改后,还需要更改代码中的内容,否则数据格式将不正确,云平台与下位机之间的通信将出现问题。如表5所示.1所示。 因此,根据实验室安全监控系统的需要,分析硬件开发的需要,设置数据点,配置数据点APP如表5所示,设计的重中之重.2所示。 对于机智云来说,它的优点是开发者不需要写作APP代码,不会有很多错误的问题,可以使用他的自动生成代码服务,方便快捷。这些代码通常包括通信协议、通信数据转换逻辑等。在手机上添加相应的开发措施APP指令发送后,指令将变成事件发送到服务器,服务器发生到下位机,驱动下位机实现相应的功能。在这里选择硬件方案是独立的MUC硬件平台选择其他平台,然后选择产品Product Secret填写相应位置的参数,然后生成代码包,如图5所示.4所示。将生成的代码包移植到下位机的代码中。 图5.4 MCU SDK开发 首先,在机智云开发者中心创建一个新的移动应用程序,填写应用程序名称APP应用包名的名称应该是唯一的名称,而不是其他产品的名称。类型可以选择智能家居,平台可以选择ios和android,如图5.5所示。 图5.5 移动应用界面新建 新建移动应用程序后,点击进入移动应用程序。在其个性化选项中,选择相关产品,点击+号,将以前创建的产品与当前创建的移动应用程序相关联,您也可以选择您最喜欢的主题,更改图标等。 关联号产品完成后,应配置产品应用证书。在构建应用程序的选项下,选择应用程序证书,然后配置证书。这里只配置了Android证书,如图5.6所示。 图5.6 Android证书的配置 在同样的选项下,选择应用构建,点击构建测试版,等待APP可以构建APP构建后,会生成二维码,用手机自带的游览器扫描,下载构建的APP,正常安装即可。 5.5 连接上下位机 当下载好APP之后,我们需要将就APP联系下位机。使用软件GAgent_Debugger配置手机APP联系下位机。在设备中,我们选择新添加服务器平台”为国内服务器,将产品的Product Key和Product Secret参数填入,选择“设备类型”为单品,选择“通信方式”为移动网络。成功配置好服务器之后,就如图5.7所示。 5.7 配置成功界面 在工具选项中,选择设备二维码,将Product Key参数填入,以及4G模块的IMEI号也填入,选择“服务器域名”为国内服务器,然后点击“二维码生成”,就会生成一个二维码,如图5.8所示。将手机APP打开,点击扫描设备二维码,扫描设备二维码,即可将手机APP与下位机绑定。在这里要注意的是,APP在绑定时下位机必须连接到机智云。在下位机正常工作时,APP则可以查看各种信息。 图5.8生成设备二维码 首先使用的推送功能基于机智云平台,因此先向机智云申请开通。首先申请的是规则引擎这个功能。当提交申请之后,等待机智云平台开通,之后就可以使用其功能。 成功开通规则引擎之后,在创建好的产品内,服务选项下,多了D3 Engine选择。 点击D3 Engine,进入配置界面,点击编辑推送的平台,如图5.9所示。  

图5.9 编辑推送平台
在这里选择的推送平台是百度,应用平台选择的是安卓,将在百度平台申请到的API Key和Secret Key填入相应的位置,如图5.10所示。

 

图5.10推送平台的绑定
同样是在D3 Engine功能下,选择项目列表,新建项目。在新建的项目内,构建自己需要的功能,其中左边的框图就是选择的数据、触发动作等,右边是建立的编辑区域。如图5.11所示。

图5.11 编辑推送功能 首先将设备数据拖到编辑区域,编辑其触发方式为设备上报状态,如图5.12所示。然后选择逻辑规则的编写,比较参数1就是想报警的数据,比较参数2就是设定的阈值,比较符号则是这两个参数之间的关系,如图5.13所示。最后编辑邮件的推送,填写好邮件的标题、内容以及推送的邮箱即可,如图5.14所示。   图5.14邮件推送功能的编辑 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所示。 图6.1 主机设置配置 设置从机,先将从机的名字设置为Y1,再将它设置为从机模式,配置配对密码7890,绑定蓝牙主机的地址,设置其波特率为9600,将蓝牙的连接模式改为0,即指定蓝牙地址连接模式。最终结果如图6.2所示。在这里要注意的是,蓝牙主机、从机的名字、配对密码、波特率必须一致,否则就会设置不成功。如果不将蓝牙的连接模式设定为指定,而是设置为其他模式,但是只有蓝牙之间就不是一对一发送了,因此最好设置为指定模式。 图6.2 从机设置配置 当蓝牙成功配置之后,在工作之前,他们会自动配对,观察蓝牙的指示灯从快闪变为慢闪时就代表以及成功配对。当成功配对之后,从机从串口1发送数据,主机从串口1接收数据并打印出来,利用串口调试助手查看从机发送的数据即可,如果打印的数据和发送的数据一致则证明蓝牙的通信正常。在发送数据时,尽量不使用汉字,防止乱码现象发生。 如何确定服务器与下位机成功连接上?将给4G模块供电,不要与主控系统的5V电压相连接,而是单独给4G模块供电,因为主控系统的5V无法驱动4G模块运行。将4G模块与串口3连接,TXD连接串口3的RXD,RXD连接串口3的TXD。同时不要忘记将锂电池的地、4G模块的地与单片机的地连接起来,否则4G模块无法正常工作。当4G模块成功工作时,其电源指示灯亮起,连接云端指示灯闪烁。与此同时,可以通过云端查看4G模块是否成功连接上云端,如果在机智云的设备日志中,可以发现设备的IMEI号、设备ID以及是否在线的状态,如图6.3所示。 图6.3 连接云端界面 当主控系统与服务器连接成功之后,对于上传的数据是否成功,就可以通过服务器的设备日志来观察。服务器会主动记录通过下位机上传的数据,在上传数据的同时将这些数据通过串口1打印出来,将云端接收到的数据与串口1打印出来的数据进行对比,如果数据正常就表明通讯成功。 当数据成功上传到云端时,如何表明云端数据的成功发送。利用机智云的DEMO软件与自己创建的手机APP同时打开,也同时打开串口调试助手查看串口1的数据,将这三者一起对比,如果说数据一致则表明云端数据的发送正常,没有丢包现象发生。当上传数据时,一定要记住定时发送,这个时间不可以太快,快了后面的数据会把前面的数据覆盖住,太慢导致数据的更新不正常,容易空包。因此最好定时6秒,每6秒给云端发送一次数据,云端接收的数据如图6.4所示。 图6.4 云端接收的数据 如图7.1所示,该电路为气敏传感器的基本电路,该电路只需要施加VH和VC。由该电路可知 其中RL取4.7K欧姆,VC为回路电压,VRL为AO口输出电压,RS为传感器在气体中的电阻值。 图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所示。 图7.2 MQ2灵敏度特性曲线 表7.1 RS/R0与烟雾浓度的关系 图7.3 烟雾浓度散点图与计算公式 丙烷浓度的计算同理可得,如图7.4、表7.2和图7.5所示。 图7.5 丙烷浓度散点图与计算公式

标签: 01usb型温湿度传感器变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台