![Arduino项目开发:智能生活](https://wfqqreader-1252317822.image.myqcloud.com/cover/214/31476214/b_31476214.jpg)
4.2 模块介绍
本项目主要包括主程序模块(自动控制与遥控模块、机械传动模块)、蓝牙环境采集分析模块、WiFi环境采集分析模块。下面分别给出各模块的功能介绍及相关代码。
4.2.1 主程序模块
本部分包括主程序模块(自动控制与遥控模块、机械传动模块)的功能介绍及相关代码。
1.功能介绍
通过红外遥控器对实现的功能进行选择。当输入“0”时进入自动行驶状态,通过超声波的回波时间进行距离测量(s=vt/2),当直行到达预警值时,控制车轮停止倒退,并左转一定时间,直到车头到墙面的距离大于预警值,继续运行。当输入方向键时,根据直流电机驱动的函数决定驱动方式,进而实现手动遥控。
以上均用到了NEC编解码协议,电路如图4-4所示(图中只画出2个直流电机,实际使用4个直流电机,每2个直流电机并联)。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P122_3447.jpg?sign=1738806783-Z2hu6huvR1BYeujS5LRgxpGoLOenNMAj-0-a9ae78270ce34eef13a2c1c64d626ee7)
图4-4 主程序模块电路图
2.相关代码
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P122_12855.jpg?sign=1738806783-N1o4F27tFXvGbn1U01lpawgxqXSfCo6B-0-d4b4b70f45b4902b07b3ef42161aa485)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P123_3466.jpg?sign=1738806783-dGtq7IRxJzuFIGa6KEjuLKznvdsCYLbV-0-4ad3035391fdce8fb6db8ff11fb3246d)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P124_12857.jpg?sign=1738806783-biyme9Yzp8mxVl5sNsIXEfTxDlOH2yC3-0-9e03d3d001a130cdb932909be8e4c2d9)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P125_3476.jpg?sign=1738806783-DHQInP5wyfMTroaE3pVLX76nCbxNxS4W-0-986f55e8f2c8c8dd67d705a85f22bc5a)
4.2.2 蓝牙环境采集分析模块
本部分包括蓝牙环境采集分析模块(环境数据采集模块、蓝牙传输模块)的功能介绍及相关代码。
1.功能介绍
本部分通过DHT11传感器采集环境的温湿度数据(传感器保存数据为32位高低电平数组),执行相关函数对数组的值进行处理。HC-05蓝牙模块将得到的温度(temp)、湿度(humi)与校对码(tol)上传至与蓝牙模块连接的SPP串口助手(手机端)上。若环境指标异常,上传“DANGER!”。为验证蓝牙模块是否工作正常,设置了一个蓝牙开关,对车上的蓝色LED进行控制,电路如图4-5所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P125_3479.jpg?sign=1738806783-wW6iv5lL341VCoAAmTwIGMCoZnPV5yjW-0-e0394757d660ee2fffebe1fe77c95420)
图4-5 蓝牙环境采集分析模块电路图
2.蓝牙模块简介
蓝牙模块引脚如图4-6所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P126_3485.jpg?sign=1738806783-uK1n5MNIt1JUUXZTtiY2wkWjqLMOyCXF-0-40311aeda0e1fa7627b81e6f1a0c77b1)
图4-6 HC-05蓝牙模块引脚图
HC-05模块需要先连接USB-TTL转接口,利用AT指令进行调试(sscom42串口助手),电路如图4-7所示,蓝牙模块调试示意如图4-8所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P126_3489.jpg?sign=1738806783-06Kj8yZaxpyUDNqgWvE9lw6fV6gEgixa-0-d633c4ceb9517eb6398f20f81d206f0f)
图4-7 蓝牙模块调试电路图
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P126_3492.jpg?sign=1738806783-jBETjAkxPfQrFEXg48ZblekvBasVywTq-0-7d74d553ea85a3ee61470ad4709c4d2d)
图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所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P127_3499.jpg?sign=1738806783-NqiAOjMqh2v9DRmkEkAozEwNQAUmVwvj-0-2abe10f1d1d286f3a7da9828488a91cf)
图4-9 SPP设备连接界面
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P127_3503.jpg?sign=1738806783-Lt6QSYeQVCnz60dhEsLGOGWZflWpooFZ-0-c91375d94fac5ef28c54de98e5dfdc69)
图4-10 串口监视器收到传输数据
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P127_3506.jpg?sign=1738806783-ytEmeSOUjKeNpTwHI8z1WXQCqzRG6CEn-0-bddf8653f5ab2dec1e528ee12576f0ac)
图4-11 SPP终端页收到传输数据
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P127_3510.jpg?sign=1738806783-mzvkaR1Vm3LBjJGQapScaQoCA5rILanh-0-bd9f98f47e2a093028cbf316131bc16b)
图4-12 蓝牙开关设置示意图
4.相关代码
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P128_12860.jpg?sign=1738806783-fuclet8jbbVXxlJMaFUpQzpTLPExwmC2-0-885d83075d89fb9a3a12666c23d2e572)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P129_12862.jpg?sign=1738806783-oUjBvMT27MCSucS01oF1JerkW0fDt0pL-0-d41781b498c5a726db53c505cb83d5f3)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P130_12863.jpg?sign=1738806783-SoQhMEiUcyukigy7Y71UKA26GGYR4Eia-0-4b64e9ce35155cafa89c2da068f498c8)
4.2.3 WiFi环境采集分析模块
本部分包括WiFi环境采集分析模块(环境数据采集模块、WiFi传输模块)的功能介绍及相关代码。
1.功能介绍
通过DHT11传感器采集环境的温湿度数据(传感器保存数据为32位高低电平数组),执行相关函数对数组的值进行处理。然后,ESP8266模块在MCU模式下,将得到的温度、湿度等数据上传至OneNET云平台。云平台上的内置应用根据收到的数据,绘制折线图与仪表图,且当环境达到危险值时执行触发器,向邮箱发送预警邮件,电路如图4-13所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P131_3565.jpg?sign=1738806783-jUe1zeZW2gnl4eFllTdMt30I2Vx7gYpl-0-a893382dba90d67199e9cd530f77574e)
图4-13 WiFi环境采集分析模块电路图
2.WiFi模块简介
在使用ESP8266模块实现功能时,Arduino开发板搭载传输数据成功后,尝试脱离Arduino开发板利用ESP8266传输数据,也可以成功上传,如图4-14所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P131_3569.jpg?sign=1738806783-S4WsU15bj2uMXqGh7wrqJWHVHLoj9yER-0-24debdaaf4d18c24995e4afe4c58dfd5)
图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所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P131_3573.jpg?sign=1738806783-v6trAnrNOROPUYY8eSGFT8tYRI4aSNFu-0-f7ef7418e1f8a025366360638e961373)
图4-15 固件烧录软件示意图
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P132_3578.jpg?sign=1738806783-UyPI8QDIlCAagkr2eTaKgUFQwYBw5heU-0-22f0787cceee7cb83de66e54a47057db)
图4-16 固件烧录电路图
烧录后,安装ESPlorer(或NodeMCU Studio),无须调试,即可通过lua程序实现功能,传输示意如图4-17所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P132_3582.jpg?sign=1738806783-SgNJQwiUNUZ2SMZsHmJMQQ1INVgqGR1P-0-967208d911836e4dd47c699080201379)
图4-17 ESPlorer软件数据传输示意
3.OneNET云平台简介
OneNET云平台由中国移动公司开发,注册后进入“开发者中心”,即可开始使用,如图4-18所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P132_3586.jpg?sign=1738806783-Z1QLCSqFIEcuWebLiMwlOVHAVQT2Sggb-0-36cccd72b2bea297ee576940165aed36)
图4-18 开发者中心页示意图
1)项目创建
单击“创建产品”,顺次填写各项内容,其中在“设备接入协议”中,默认是HTTP,作为WiFi模块开发,还可以选择EDP、MQTT协议。创建产品结束后,进入产品页,如图4-19所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P133_3592.jpg?sign=1738806783-Ix2EdmXr9nQUfdxyi7FNfZMDIUcj1dSa-0-c14e5924eb9ef4de945c0bc57c9192c5)
图4-19 产品页示意图
2)数据设置
单击“设备管理”,添加新设备(设备编号可任意填写),添加后获得设备ID,如图4-20所示。数据流可以不添加,数据传输成功后会根据程序自动设置关联数据流。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P133_3596.jpg?sign=1738806783-FNh6XbPNyPM9aN5i9F2c0uSLDuWNI0dO-0-82150cd0fee055f66db620cada8d23d5)
图4-20 设备管理示意图
为将数据上传至云平台,需要的关键信息为:服务器地址(183.230.40.33)及端口号(80)、设备ID、API Key、Host地址(api.heclouds.com)。
3)数据分析
单击“触发器管理”,可以添加触发器。在数据达到设置的临界值时,即可通过邮箱或URL发送预警信息。云平台添加触发器示意如图4-21所示,触发器预警邮件示意如图4-22所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P134_3602.jpg?sign=1738806783-0Fay0bgAS3HpqxtgPfHOlHAdaAFioJzn-0-d591f9d2768d4c436706a817231a5045)
图4-21 云平台添加触发器示意图
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P134_3606.jpg?sign=1738806783-bujMcOwqnqJ620H1MMjkUTTBJL1ZzClD-0-7bead4102f8e7d670228f3f95ce528cf)
图4-22 触发器预警邮件示意图
单击“应用管理”,创建应用。根据自己的喜好进行设置,可以将数据以不同的统计形式进行展示。环境数据展示(折线图)如图4-23所示,环境数据展示(仪表盘)如图4-24所示。
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P134_3610.jpg?sign=1738806783-5zKvxfsugc3DMSfZp2ZxkXcEXToDqJ2J-0-74ea3ecb6035f987e02667d9a1ebe1e7)
图4-23 环境数据展示(折线图)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P135_3615.jpg?sign=1738806783-nrBd3wf6fJCmGoVJRcfmjQ33CWrjPXYC-0-fdaba21f0c2d332107a29788805dca4e)
图4-24 环境数据展示(仪表盘)
4.相关代码
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P135_12864.jpg?sign=1738806783-DwCgprWUfz6jCvm10RdFmLoKC1qGOSGr-0-18093f7b426634552674e2830368c82a)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P136_12865.jpg?sign=1738806783-CsQbGnn3y4gwJD8wQwCyc3jYP65lePY5-0-e56c820aeca5ea6cd62c9eaaa7f87c7c)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P137_12866.jpg?sign=1738806783-DIChRGQ7TRK3t8IFgJjB6E1D8S7jFCfg-0-451017989cb8417b686574eb826b9e42)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P138_3658.jpg?sign=1738806783-QJ8BNpFHi0l4pTbUMFH3zmh6CMQqpvlG-0-a94f9762317364da09ea183da08cd85e)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P139_12868.jpg?sign=1738806783-qw4YDR50vEV33QZNF6mix2bMAvhsjf4p-0-5f6bb3ccd85e22ef451a6ed76856d8ce)
![](https://epubservercos.yuewen.com/5CF817/17035792905331106/epubprivate/OEBPS/Images/Figure-P140_12870.jpg?sign=1738806783-p3aBe4wHJO7WuJCjdax62Ne8w6YwZOyT-0-1578f2d6950ce1c6701f092ef3309ccb)