基于Arduino与Android的智能衣架设计

贝佳豪 沈茜
摘 要: 追求方便快捷的生活方式已经成为当代人的目标,设计一种基于环境自感知的智能衣架,实现对晾晒衣物的智能控制,将进一步方便人们的生活。以物联网技术为核心,采用Arduino作为主控系统,结合Arduino丰富的传感器探测周围天气环境,利用ESP8266 WIFI模块实现Arduino与Android之间的数据传输。Android客户端接入中国气象局数据中心,以JSON格式获取当地未来24小时内的实时天气数据,达到预知降雨概率、风力指数等信息,从而达到定时自动控制衣架的功能。
关键词:智能衣架;物联网;传感器;无线控制
中图分类号:TP311 文献标识码:A
Abstract:The pursuit of a convenient and fast life style has become the goal of contemporary people.We design an intelligent clothes hanger based on environmental self-detection to achieve intelligent control of clothing,which will further facilitate people's lives.Taking the Internet of things technology as the core,using Arduino as the main control system,combining with Arduino sensors to detect the surrounding weather conditions,we use ESP8266 WIFI module to achieve data transmission between Arduino and Android.The Android terminal connects with the data center of the China Meteorological Bureau and obtains simultaneously the local weather data in JSON format to achieve the automatic control of the hangers.
Keywords:intelligent hanger;Internet of things;sensor;wireless control
1 引言(Introduction)
随着我国经济实力的迅速发展,人们对于生活水平的要求也随之越来越高,方便快捷和简单易行的生活方式已经成为当代人的追求。如今市面上的传统衣架面对突发性气象变化并不具备实时快捷和简单易行的特点,当天气不利于衣服的晾晒时,如果人们不能及时从晾衣架收回衣物,晾晒效果就会受到影响,甚至衣物会受到损害。而智能衣架则可以解决在不同环境下衣物的晾晒问题。智能衣架通过Arduino主控板与其附带的多种传感器及时了解周边环境,来应对复杂多变的天气环境[1]。再通过wifi等方式将数据推送至Android等移动设备上,使用户能及时了解到衣物的情况。
2 智能衣架的设计(Design of the intelligent hanger)
2.1 总体设计
智能衣架总体设计分为硬件和软件两大方面。通过Arduino单片机和传感器模块使传统衣架变得智能化,衣架重点放在软件设计上。通过Arduino单片机,使其拥有如本地控制、遥控控制、手机远程控制、感应控制、网络控制、定时控制等功能。软件部分有Android客户端和Arduino控制程序。通过Android客户端连接中国气象局气象数据中心,来获取衣架所在地的天氣信息,使得智能衣架具有天气预测功能,提前对其做出预设操作,能更好地去应对各种天气环境[1]。智能衣架总体设计如图1所示。
2.2 硬件设计与选型
衣架硬件部分分为主控板、传感器模块、WIFI无线模块、电机模块、电源等五个模块。电源连接主控板为其供电,其余模块与主控板连接并通过主控板获得供电。主控板通过传感器获取外部数据,将数据通过无线模块发送至服务器并获取指令,从而控制电机驱动衣架的伸缩[2]。智能衣架硬件框架如图2所示。
(1)主控板
采用Arduino MEGA2560型号主控板当作衣架的主控板,使用Arduino官方提供的IDE进行开发。智能衣架主控板主要负责接收并处理传感器传输过来的数据,经过板内预先编写的程序逻辑进行判断,并最终输出是否驱动电机模块运行的动作命令。
(2)WIFI模块
WIFI模块是智能衣架与外界进行信息传递的模块。如今每个家庭基本都配备有WIFI,衣架通过WIFI模块,接入网络,与外界进行信息交互。
(3)电机
由于衣架需要在一定范围内进行伸缩移动、衣杆升降、风扇烘干,所以需要多种电机进行工作。由于伸缩移动需要较高精度,所以采用步进电机来控制衣架伸缩。衣杆升降及风扇无特殊精度要求,则采用直流电机。
(4)传感器
衣架使用温湿度传感器获取室外的温度和湿度数据,光敏传感器负责获取环境光的亮度。经实验,当光敏传感器获取的亮度低于200时,室外基本为阴天或夜晚;室外湿度高于50时,则为潮湿天气。主控板将获取到的数据进行处理来判断室外的天气情况,在晴天时启动步进电机驱动晾衣杆将衣架伸出室外,阴雨天气则回收晾衣杆并启动风扇对衣物进行烘干。
2.3 软件设计
由于室外天气环境复杂,有时候衣架无法迅速做出反应,所以智能衣架的工作还会接收来自客户端的天气预报,结合其数据进行判定。智能衣架的软件设计分布在衣架的主控板、WIFI模块和衣架配对的APP三端上。三端配合使智能衣架具有了本地控制、遥控控制、手机远程控制、感应控制、网络控制、定时控制等功能。各路传感器是衣架的感官器官,程序则是大脑,通过程序才能使衣架真正智能化起来。
(1)Android客户端软件设计
软件采用图形化操作界面,既简洁美观,又便于操作,有利于减少用户的学习成本,界面如图3所示。客户端接入中国气象局气象数据中心,以JSON格式获取智能衣架所在地天气数据,并将指令通过socket通讯以字符串形式回传给智能衣架,使衣架做出判定。考虑到有时我们需要手动操作智能衣架,我们将为衣架设计自动模式及手动模式。在自动模式下,衣架就会依据数据自行运行。在我们需要收衣物等情况下,我们可以切换至手动模式,自由控制衣架伸缩及晾晒,方便收取衣物。
(2)WIFI模块设计
WIFI模块与主控板通过TCP/IP串口连接在一起。主控板的数据通过串口发送至ESP8266 WIFI模块上,ESP8266则将通过socket通讯将串口数据以字符串形式发送至客户端,同时等待客户端的数据返回,最终再通过串口将数据发还至主控板。
(3)主控板设计
为使主控板能应对复杂的天气环境并迅速对突发天气做出判断,需要对衣架定制一套完整的判断条件。主控板通过Arduino的传感器获取到室外的天气环境,与所制定的命令进行比对,进而决定是否进行衣服的晾晒。如在下雨天,空气湿度会高于晴天,这时温湿度传感器捕捉到室外湿度过高,则会执行回收衣架的动作并打开风扇对衣物进行烘干。如出现复杂天气,如既下雨又是雾霾的天气,衣架则会合并两步操作,将衣架收回并同时开启烘干功能和紫外线杀菌功能。衣架动作判定条件如图4所示。
3 系统功能的实现(Realization of system functions)
3.1 硬件系统的实现
智能衣架的硬件结构是在普通拉杆式晾衣架两支撑杆改成导轨并装上滑块,再穿入同步带。同步带与下方的晾衣杆固定连接。钢丝绳的另一端连接到与步进电机相连的转轴上,通过电动机的正反转达到晾衣架的伸缩效果[3]。智能衣架配备有太阳能采集板,转化阳光为太阳能后,为各个智能化子系统提供动力,不需要外部电源。当阴天或者雾霾天时,紫外灯管和风扇开启,提供杀菌和晾干功能,保证产品正常工作。
智能衣架系统的接口设计依照国家和地区的相关标准进行,确保系统的扩充性和扩展性。在系统传输上采用标准的TCP/IP协议,保证不同产商之间系统可以兼容与互联。系统的前端设备是多功能的、开放的、可以扩展的设备,系统主机、终端与模块之间的通讯采用标准化接口设计,为外部系统厂商提供集成化平台。系统功能可以无缝扩展,当需要增加功能时,不必再开挖管网,简单可靠、方便节约。设计全部选用标准化产品或模块,未来新的第三方受控设备接入时,只需要遵守规定的接口和协议。
3.2 主控板功能实现
主控板主要通过获取来自传感器的数据,起到感知周围环境的效果,通过Mack block官方给的MeAuriga库来驱动硬件。在MeStepper类中封装有run()、move()、moveTO()等方法,通过这些方法达到驱动步进电机转动的效果。通过run()方法启动步进电机,move()让电机按一定的速度转动。当需要限定电机转动的距离时,则可以调用moveTo()方法,进行精确转动。如在阴雨天气需要让衣架回收至屋内时,通过stepper.run();stepper.moveTo(0);驱动电机并让电机回至原点就能达到回收衣架的效果。在晴天时则调用stepper.run();stepper.move(200);让步进电机按一定速度向外伸出。MeHumiture中getHumidity()用来获取环境湿度[4],通过感知湿度来判断是否需要驱动电机工作。如当空气湿度过高时,驱动电机回收衣架[5]。关键代码如下:
3.3 WIFI功能实现
WIFI模块负责收发数据,为主控板和客户端进行数据传输。WIFI模块在上电工作后,会持续通过Serial.available()确认是否有来自主控版的数据发送过来,再通过clients.write(data,len)将获取到的数据通过socket发送至客户端,同时通过server.available()监听客户端回传的数据,最终通过Serial.write(clients.read())将数据通过串口返回至主控板[6]。WIFI通讯关键代码如下:
3.4 Android客户端实现
Android客户端主要通过连接中国气象局获取天气数据,达到预测天气。结合气象局的数据及通过WIFI模块获取到的实际数据进行判断,将指令通过socket通讯回传至WIFI模块[7],关键代码如下:
4 结论(Conclusion)
使用Arduino等小型嵌入式控制芯片作为衣架设备的中央控制器,结合光电、温湿度等传感器感知周边环境,将传感器采集到的信息输入嵌入式控制芯片后进行分析,并驱动电机实现自动化晾晒,使用Android等移动设备远程控制和管理衣架,达到了实时掌握衣架及其衣物当前状况的目的。该智能衣架系统综合运用物联网、移动互联网等无线通讯技术,使用嵌入式开发及移动应用开发技术,经实验证明设计方案安全可靠,运行稳定。
参考文献(References)
[1] 陆兴华,吴恩燊,黄冠华.基于Android的智能家居控制系统软件設计研究 [J].物联网技术,2015,5(11):14-16
[2] 焦建兵.智能遥控晾衣架系统设计[J].中国新通信,2016,18
(12):160.
[3] 林舜杰.晾衣架智能控制的研究与实现[J].电子技术与软件工程,2016(13):149.
[4] 程晨.Arduino开发实战指南[M].北京:机械工业出版社,2012:
34-35.
[5] 小五义.利用ProtoThreads实现Arduino多线程处理[EB/OL].http://www.cnblogs.com/xiaowuyi/p/4355161.html,2017-08-16.
[6] 孙潇楠.C#实现串口监听[EB/OL].http://www.cnblogs.com/
sunxiaonan/archive/2010/10/23/1609449.html,2017-08-15.
[7] 郭霖.第一行代码Android[M].北京:人民邮电出版社,2014.
作者简介:
贝佳豪(1996-),男,大专生.研究领域:软件技术,计算机应用.
沈 茜(1976-),女,硕士,讲师.研究领域:人工智能,计算机视觉.
相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建