- Arduino项目开发:智能生活
- 李永华 彭木根
- 2131字
- 2021-03-29 08:27:06
4.2 模块介绍
本项目主要包括主程序模块(自动控制与遥控模块、机械传动模块)、蓝牙环境采集分析模块、WiFi环境采集分析模块。下面分别给出各模块的功能介绍及相关代码。
4.2.1 主程序模块
本部分包括主程序模块(自动控制与遥控模块、机械传动模块)的功能介绍及相关代码。
1.功能介绍
通过红外遥控器对实现的功能进行选择。当输入“0”时进入自动行驶状态,通过超声波的回波时间进行距离测量(s=vt/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.相关代码