基于Arduino和巴法云平台的远程空调控制系统

夏亮

五邑大学 广东 江门 529020

全球气候变暖,夏季越发炎热,随着城市化的加快和中国人生活水平的持续提高,人们从追求温饱到追求生活品质[1],空调成为避暑的不二之选。特别是对于多汗人群,只要一离开空调就汗流浃背,而一直开着空调可以把室内控制在一个恒定的温度,让人感觉更舒适。传统的空调控制通过遥控器短距离控制,当超出有效距离即无法控制,且只有手动开启空调才能维持室内温度。恰逢智能家居兴起,联网远程控制成为人们大力追捧的方向,传统的家居物联网需要自行搭建服务器,无疑开发难度大、花费成本高。面对这些不足,本文采用易开发维护的Arduino,同时利用家中现有的网络环境辅以模块化的传感器及WIFI模块,将数据储存在开放的云平台上,使用者可以随时随地控制空调及监测室内环境信息,且无须手动开启空调维持舒适温度,从而有效地降低成本、节约资源。

本远程空调控制系统的主要功能是能够根据室内外温度变化远程智能控制空调,若用户开启温控模式,空调会智能控制室内温度维持恒定。整个系统分为控制端、云端及用户端三部分。控制端由ArduinoUNO为主控,搭配DHT11实现对环境温湿度的捕获[2];
HC-SR501检测环境是否有人,若环境有人且室温超过预设阀值则自动开启空调;
VS1838B和3mm红外发射管遥控空调;
ESP8266联网建立与路由器的通信,并通过MQTT协议将数据上传至云平台以供用户实时查看并控制。云端使用巴法云在用户端和控制端之间建立通信,并储存数据以供用户端调用查询。用户端则基于微信小程序实现交互功能,具备遥控,查询等实用功能。该系统适合居家使用以及需要温控的场景。系统框图如图1所示。

图1 系统框图

2.1 主控模块

主控模块使用以Atmega328p为处理器,串口芯片为CH340的创客Arduino主板,主板所有的IO口用2.54排针引出,无须再添拓展板。其编程语言类似C/C++,具有模块化、跨平台、简单、清晰、开放性等优势,利于后期维护以及模块化设计,近年来广受电子爱好者的追捧[3]。

2.2 传感器检测模块

2.2.1 温度采集模块采用DHT11数字温湿度传感器。量程湿度为5%到95%RH,温度-20℃到+60℃,此温湿度量程可适用于多场景。传感器含有温湿度复合传感器,输出已校准数字信号。它采用专用数字模块采集技术和温湿度传感技术来保证测温准确,具有较高的可靠性和稳定性。它包括一个电阻式湿敏元件和一个NTC热敏元件,且搭配一个高性能8位单片机。因而具有快响应、强抗干扰能力、高性价比等优势[4]。

2.2.2 人体传感模块采用HC-SR501被动红外探测器。HCSR501有3个输出引脚分别是输出,VCC和接地,它内包含稳压器,因此可以通过4.5-20V的任何DC电压(通常使用5V)供电。当工作时自动感应,有无人进入感应范围所得出的电平不一致,可通过电位变化区分,若有人则高电平,反之则低电平。它的低功耗,低成本,耐用可靠,具有宽广的镜头范围,易于连接并且在电子爱好者中非常受欢迎。

2.2.3 红外遥控模块采用VS1838B和3mm红外发射管组合。VS1838B内含高速高灵敏度PIN发光二极管和低功耗、高增益前置放大IC,同时采用环氧树脂封装外加外屏蔽抗干扰设计,在红外遥控模块中充当接收器使用,可在2.7-5.5V下工作,具有低功耗、宽工作电压,强抗干扰能力等优势,适用于控制多种家电产品。其电路如图2所示

图2 VS1838B电路图

2.3 传输模块

传输模块采用ESP8266物联网Wi-Fi芯片。它可以独立作为一个核心控制板控制传感器,或作为一个传感器实现Wi-Fi功能,当它在自己搭载应用并作为系统唯一的核心控制板时,能够直接启动于外界闪存,内置的高速缓冲储存器有效降低了系统的内存需求,提高了系统的性能。当他作为传感器实现Wi-Fi功能时,可以搭配任意核心控制板,连接简单可靠性高,只要从SPI/SDIO接口或AHB中央处理器桥接口连接即可[5]。ESP8266的高集成度决定了其仅需要少量的外部电路,极大地减少了占用的PCB空间,可使得整体系统的空间利用率提高。在本系统中ESP8266作为传感器实现Wi-Fi功能,建立控制端与云端的通信。

3.1 云端设计

云端采用巴法云物联网平台,它支持TCP创客云、MQTT设备云、图储存等多模式的数据交互,可多种环境下兼容使用。官方提供详细支持文档,有利于开发者短时间内部署应用,将万物互联的概念快速融入产品中。用户只需在官网注册账号即可进入平台部署项目,部署流程如图3所示。创建完成之后保存主题名、端口、私钥,以便程序设计时按照接入文档调用。

图3 部署流程

3.2 控制端程序设计

Arduino核心控制板通电后,Arduino、各个传感器以及Wi-Fi模块初始化,经串口传输AT指令给ESP8266物联网芯片,通过检测返回值保障ESP8266与巴法云服务器的正常通信,并根据巴法云平台提供的API和各类参数(包括网址、密匙、端口、设备ID等),将其按照接入文档所示格式封装成链接请求包,对室内温度进行采集、上传及接受云端发出指令,控制相应的感应器进行工作。温湿度数据采集后储存在变量temperature和humidity中,然后通过MQTT协议以字符串形式上传采集数据至云端;
人体传感数据通过传感器检测,若有人则输出高电平,然后通过MQTT协议上传数据,云端接收到高电平即通过微信通知用户有人在室内;
红外遥控模块只需要通过ESP8266Wi-Fi模块将MQTT协议的Connetct(连接云端)控制报文连接至巴法云平台,再利用Subscribe(订阅主题)控制报文接收微信交互端对云端发布的指令,当微信交互端Publish(发布)控制报文给云端时,ESP8266从云端接收到数据并传输给Arduino,经过Arduino对数据的指令判断并分离指令中的参数id,然后再将参数传送给红外模块,再由红外模块根据读取参数的不同执行对应的预设空调控制指令[6-7]。

3.3 微信交互端

微信交互端采用的是微信小程序,微信小程序采用Javascript,Wxss,Wxml作为前端框架,它不限制打开设备或多终端使用,一端多用,免去了开发者在面对不同客户端的开发困难。仅需要在微信公众平台(https://mp.weixin.qq.com/)[5]注册成为用户后,开启开发者模式,在开发者管理设置中添加Request合法域名https://api.bemfa.com(巴法云数据调用地址1)、https://bemfa.com(巴法云数据调用地址)[8]、https://www.tianqiapi.com(天气API调用地址),以供小程序获取当前所在地的天气及温度,同时提供近七天的天气预报和穿衣建议。

设计好后,将编写好的控制端代码烧录进Arduino中,小程序代码上传至微信公众平台,并将控制端安装放置在距挂壁式空调3米处避免直吹,在微信小程序中按下空调开关按钮空调随即被开启,按下空调开关按钮随即被关闭,此时走出房间再走进来,让红外模块感应到人的存在,空调随即开启,经过多次测试温度测量值与实际误差在±0.5℃;
湿度值误差在3%-5%RH之间;
红外遥控模块随按随开,但偶尔会有网络延迟,总体误差小,测量值较为准确,可靠性高。

本文研究的远程空调控制系统设计,利用ESP-8266Wi-Fi物联网模块、巴法云物联网平台和Arduino与多项传感器结合实现智能物联网功能。采集室内温湿度、人体感应、通过算法智能控制室内温度恒定、红外控制空调,以达到不在家仍能了解家中情况,根据室内外温度智能开启空调,控制室内温度恒定等功能,以达到有效的合理利用空调,提高居家舒适度,满足用户的需求。该系统通过适配可使用其他具备红外通信的传统家用电器,以实现在传统家用电器基础上云接入智慧物联,从而具备了一定的普适性。

猜你喜欢云端温湿度红外网红外卖环球时报(2022-05-23)2022-05-23温湿度控制器在回收砂冷却系统中的应用装备制造技术(2021年5期)2021-08-14闪亮的中国红外『芯』金桥(2021年4期)2021-05-21云端之城现代装饰(2020年5期)2020-05-30基于DSP的多路温湿度监测系统漳州职业技术学院学报(2019年1期)2019-11-16TS系列红外传感器在嵌入式控制系统中的应用电子制作(2019年7期)2019-04-25基于温湿度控制的天气预测装置电子制作(2018年11期)2018-08-04行走在云端初中生(2017年3期)2017-02-21云端创意小学生优秀作文(趣味阅读)(2017年3期)2017-02-11蒸发冷却温湿度独立控制空调系统的应用西安工程大学学报(2016年6期)2017-01-15

推荐访问:控制系统 空调 平台