4.2 模块介绍

本项目主要包括主程序模块(自动控制与遥控模块、机械传动模块)、蓝牙环境采集分析模块、WiFi环境采集分析模块。下面分别给出各模块的功能介绍及相关代码。

4.2.1 主程序模块

本部分包括主程序模块(自动控制与遥控模块、机械传动模块)的功能介绍及相关代码。

1.功能介绍

通过红外遥控器对实现的功能进行选择。当输入“0”时进入自动行驶状态,通过超声波的回波时间进行距离测量(svt/2),当直行到达预警值时,控制车轮停止倒退,并左转一定时间,直到车头到墙面的距离大于预警值,继续运行。当输入方向键时,根据直流电机驱动的函数决定驱动方式,进而实现手动遥控。

以上均用到了NEC编解码协议,电路如图4-4所示(图中只画出2个直流电机,实际使用4个直流电机,每2个直流电机并联)。

图4-4 主程序模块电路图

2.相关代码

4.2.2 蓝牙环境采集分析模块

本部分包括蓝牙环境采集分析模块(环境数据采集模块、蓝牙传输模块)的功能介绍及相关代码。

1.功能介绍

本部分通过DHT11传感器采集环境的温湿度数据(传感器保存数据为32位高低电平数组),执行相关函数对数组的值进行处理。HC-05蓝牙模块将得到的温度(temp)、湿度(humi)与校对码(tol)上传至与蓝牙模块连接的SPP串口助手(手机端)上。若环境指标异常,上传“DANGER!”。为验证蓝牙模块是否工作正常,设置了一个蓝牙开关,对车上的蓝色LED进行控制,电路如图4-5所示。

图4-5 蓝牙环境采集分析模块电路图

2.蓝牙模块简介

蓝牙模块引脚如图4-6所示。

图4-6 HC-05蓝牙模块引脚图

HC-05模块需要先连接USB-TTL转接口,利用AT指令进行调试(sscom42串口助手),电路如图4-7所示,蓝牙模块调试示意如图4-8所示。

图4-7 蓝牙模块调试电路图

图4-8 蓝牙模块调试示意图

调试结束后,与Arduino开发板连接,通过蓝牙将环境数据上传至SPP蓝牙串口助手(前提是手机端已经与HC-05蓝牙模块配对)。

蓝牙模块的灯可以反映其工作状态:快速闪烁表示接入成功;每隔2s闪烁表示AT模式;每隔2s快闪2次表示连接其他蓝牙设备成功。

关于蓝牙模块波特率选择的说明:当用户使用AT指令与HC-05蓝牙模块通信时,波特率为38400;当HC-05蓝牙模块与其他蓝牙设备通信时,波特率为9600。为方便使用,将HC-05波特率统一设置为38400。实测表明,当HC-05波特率为38400时,收到数据误码率更低。

3.SPP蓝牙串口助手简介

SPP蓝牙串口助手有聊天、终端、键盘、开关等功能,在使用前需要先点“连接”与蓝牙设备连接,软件界面示意如图4-9所示。此后,可以在串口监视器、聊天、终端收到传输的数据,串口监视器收到传输数据如图4-10所示,SPP终端页收到传输数据如图4-11所示,蓝牙开关设置如图4-12所示。

图4-9 SPP设备连接界面

图4-10 串口监视器收到传输数据

图4-11 SPP终端页收到传输数据

图4-12 蓝牙开关设置示意图

4.相关代码

4.2.3 WiFi环境采集分析模块

本部分包括WiFi环境采集分析模块(环境数据采集模块、WiFi传输模块)的功能介绍及相关代码。

1.功能介绍

通过DHT11传感器采集环境的温湿度数据(传感器保存数据为32位高低电平数组),执行相关函数对数组的值进行处理。然后,ESP8266模块在MCU模式下,将得到的温度、湿度等数据上传至OneNET云平台。云平台上的内置应用根据收到的数据,绘制折线图与仪表图,且当环境达到危险值时执行触发器,向邮箱发送预警邮件,电路如图4-13所示。

图4-13 WiFi环境采集分析模块电路图

2.WiFi模块简介

在使用ESP8266模块实现功能时,Arduino开发板搭载传输数据成功后,尝试脱离Arduino开发板利用ESP8266传输数据,也可以成功上传,如图4-14所示。

图4-14 ESP8266 WiFi模块引脚图

搭载Arduino开发板时,ESP8266模块需要先连接USB-TTL转接口,利用AT指令进行调试。

调试分为三部分:客户端调试(sscom42串口助手)、数据传输调试(串口助手+NetAssist)、透传调试(USR-TCP232)。调试结束后,即可与Arduino开发板连接,在透传模式下将环境数据以JSON数据流上传至OneNET云平台。

不搭载Arduino开发板时:需要先对ESP8266模块进行固件烧录(烧录软件为ESP8266 Flasher,网上有integer与float型的固件,本项目选择了前者),固件烧录软件示意如图4-15所示,电路如图4-16所示。

图4-15 固件烧录软件示意图

图4-16 固件烧录电路图

烧录后,安装ESPlorer(或NodeMCU Studio),无须调试,即可通过lua程序实现功能,传输示意如图4-17所示。

图4-17 ESPlorer软件数据传输示意

3.OneNET云平台简介

OneNET云平台由中国移动公司开发,注册后进入“开发者中心”,即可开始使用,如图4-18所示。

图4-18 开发者中心页示意图

1)项目创建

单击“创建产品”,顺次填写各项内容,其中在“设备接入协议”中,默认是HTTP,作为WiFi模块开发,还可以选择EDP、MQTT协议。创建产品结束后,进入产品页,如图4-19所示。

图4-19 产品页示意图

2)数据设置

单击“设备管理”,添加新设备(设备编号可任意填写),添加后获得设备ID,如图4-20所示。数据流可以不添加,数据传输成功后会根据程序自动设置关联数据流。

图4-20 设备管理示意图

为将数据上传至云平台,需要的关键信息为:服务器地址(183.230.40.33)及端口号(80)、设备ID、API Key、Host地址(api.heclouds.com)。

3)数据分析

单击“触发器管理”,可以添加触发器。在数据达到设置的临界值时,即可通过邮箱或URL发送预警信息。云平台添加触发器示意如图4-21所示,触发器预警邮件示意如图4-22所示。

图4-21 云平台添加触发器示意图

图4-22 触发器预警邮件示意图

单击“应用管理”,创建应用。根据自己的喜好进行设置,可以将数据以不同的统计形式进行展示。环境数据展示(折线图)如图4-23所示,环境数据展示(仪表盘)如图4-24所示。

图4-23 环境数据展示(折线图)

图4-24 环境数据展示(仪表盘)

4.相关代码