Arduino项目开发:智能生活
上QQ阅读APP看书,第一时间看更新

4.1 功能及总体设计

本项目实现自动避障与红外遥控,环境数据的采集、统计、播报与预警的功能。用户通过红外遥控器实现手动控制,利用超声波模块实现自动驾驶;此外,用户既可以选择在手机端接收环境数据的实时播报,也可以选择在计算机端接收环境数据的统计分析结果。当环境指标异常时,可通过邮件与推送收到预警。

要实现上述功能需将作品分成五部分进行设计,即输入部分、处理部分、驱动部分、传输部分和输出部分。输入部分为直流电机驱动与Arduino开发板供电,红外遥控器输入红外信号,温湿度传感器采集温湿度数据;处理部分通过Arduino开发板与NodeMCU程序实现;驱动部分通过直流减速电机驱动实现车轮差速转动;传输部分选用了ESP8266模块、HC-05模块与Arduino开发板实现温湿度数据传输;输出部分选择在OneNET云平台、蓝牙APP助手上输出环境数据。

1.整体框架图

整体框架如图4-1所示。

图4-1 整体框架图

2.系统流程图

系统流程如图4-2所示。

图4-2 系统流程(主程序)

在主程序流程图中,关于手动的实现,采用红外遥控按键的方式进行控制:当按下“0”键时,执行“否”状态,实现自动避障的功能;按方向键(上、下、左、右)时,执行“是”状态,控制直流电机实现小车的运动;当按下“OK”键时,小车停止运动;当不按键或按键无效时,维持上一按键的状态。在环境数据采集分析部分的流程图中,为方便控制,统一采用红外遥控手动控制小车运动的模式。

3.总电路图

系统总电路如图4-3所示,引脚连接如表4-1所示。本项目选用了两块Arduino开发板(Ⅰ、Ⅱ),一块供给主程序(Arduino开发板Ⅰ),另一块供给蓝牙环境采集系统(Arduino开发板Ⅱ)。

图4-3 系统总电路图

表4-1 引脚连接表