版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Arduino的远程智能家居控制设计PAGEI1绪论1.1课题背景随着当今家居市场行业中家用设备数量的迅速增加,早期的机械控制方法几乎无法满足现代家居生活的需要,用户都想在家中安置个趋向智能化的家居系统。现在的一个智能家居系统中,家居除了可以保持和外界环境的顺畅沟通之外,人们的生活方式也得到了优化,家居设备更具安全性了,甚至可以节省各种能源成本。近几年来伴随物联网技术越来越成熟,很多智能家居的APP如雨后春笋般迅进入大众视野。和早期的家居相比,智能家居除了具备之前的居住功能之外,还拥有网络交互、自动感应等功能,给人一个舒适便利的居住环境,提供了全方位的沟通和互动功能。因此,该系统的市场发展潜力可以说是相当可观的。1.2国内外发展现状2003年以来,很多公司也慢慢加入到了智能家居的行列,如海信、清华同方等,但目前的智能家居系统都没有一个统一明确的国际标准,很多公司开发的产品是形成自己的网络和信息交换协议,大量的产品也为一个特定的网络环境开发,对外也只发表了部分技术,没有发表核心技术,还有它们实现的技术也相当复杂,直接导致了其使用范围的局限性。最重要的是由于缺乏与产品对应的第三方应用,接入的各个设备之间不能达到兼容,互操作性差,不利于产品的扩展及应用。系统结构分析2.1系统结构组成系统由两大部分组成:APP客户端、Arduino控制器模块(该模块由ESP8266-12FWIFI模块、AMS1117稳压器模块、继电器模块组成)。对各部分的组成分析如下:(1)AMS1117稳压器模块主要负责通过降压给ESP8266提供3.3V的电压输入;(2)核心模块ESP8266模组通过WiFi与外网相连接,再与智能手机通信,从而使移动端与家居实现双向控制;(3)继电器模块由ESP8266模组进行控制,从而实现对家居的控制;(4)APP客户端为第三方平台,通过阿里云进行通讯交互,从而去通过开发板去控制继电器上的IO口。2.2系统的基本功能系统能够实现的功能如下:可以接入第三方平台blinker平台通过ESP8266远程控制对电灯进行开和关,也能进行定时控制。接入了天猫精灵语音助手,天猫精灵接收到语音指令后,会按照指示的指令控制电灯开和关。同时也可以在APP端和开发板间实现双向控制。2.3系统的工作流程本设计的中心思想是由ESP8266通过第三方平台,接入阿里云进行通讯,通过从云端获取指令,从而控制继电器上的IO口来达到对照明设备的远程控制效果。系统的工作流程如图2.3所示:2.3系统工作流程框图硬件设计需要构成一个完整的智能家居控制系统,硬件是基础,也是系统的关键,它关乎到整个系统的稳定性、准确性,因为需要它来提供实时的反馈信息及控制。智能家居控制系统的硬件部分主要在Arduino控制器上实现控制。Arduino控制器Arduino由基于微控制器和开源代码的硬件平台以及ArduinoIDE开发环境组成。本设计硬件部分由ESP8266、I/O接口、继电器及相关电路组成。软件部分则包括标准的程序编译器和第三方平台软件,有使用和Java及C语言相类似的开发环境。与传统的单片机相比,Arduino的特点主要包括程序开源、扩展兼容性强、硬件开源(包括原理图和PCB图)、编程环境简单,所有资源都可以免费下载。需要进行修改时,可以直接在上面进行,它支持和各种各样的元件进行连接。主控制器在本设计中采用的是ESP8266-12F模组,ESP-12FWiFi模块是由安信可科技开发的,设计中最核心的模块就是ESP-12FWIFI模组,它将业界领先的Tensilica L106超低功耗32位微处理器集成在一个相当小的封装中,具有16位精简模式,主频支持80MHz 和160MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA和板载天线。这个模块不仅能够涵盖标准的 IEEE802.11 b/g/n 协议,也具备足够完整的TCP/IP协议栈。使用者能够很方便的通过这个模块将需要进行加入网络的设备加入进来或构建一个单独的网络控制器。ESP8266其实就是一个具有高性能的无线SOC,它以最低的成本给用户提供了最大的可用性,并且帮助用户将无线的功能加入到其他的系统中提供了充足的可能性。整个电路可以分成三个模块:AMS1117-3.3稳压器模块、ESP8266-12FWIFI模块、继电器模块。下面我们将从理论基础上对这三个电路模块展开逐一的分析。3.1.1AMS1117-3.3稳压器模块AMS1117-3.3是一种正向低压降稳压器,可以稳定输出3.3V的电压。其稳压管由pnp驱动的NPN管组成,内部集成了限流和过热保护电路,是便携式电脑和电池供电的最佳选择。ASM1117工作原理是采样输出电压,然后通过反馈来调节电路的阻抗,调节输出电平调节管。当输出电压较低时,降低输出级的阻抗,以减小调节管的压降。当输出电压高时,调节输出级的阻抗,增加调节管压降,保持输出电压稳定。由于是ESP8266系列,电源保证要输入为3.3V,因此要外接一个稳压器才能达到效果,接线方式如图3.1.1所示:3.1.1AMS1117-3.3稳压器模块接线图3.1.2ESP8266-12FWIFI模块本设计的核心模块就是ESP8266-12FWIFI模组,它是增强版ESP8266-12,外围电路完善,集成四层板技术,加强了阻抗匹配,输出信号更好,不管是抗干扰能力还是稳定性,专业实验室经过测试PCB天线,匹配度达到百分百,通过ROHS认证,都已经有很大提升。在ESP-12的基础上引脚又增加了6个IO端口和SPI端口,相比之下,使得开发更加方便,使用更加广泛了。本设计中的ESP8266串口的控制系统,主控板通过WiFi模块与外网相连接,再与智能手机通信,从而实现了移动终端与家居的双向控制。本系统集实时控制、数据传输、多媒体系统于一体,实现数据的采集与处理,并以媒体的形式发送到客户端服务器。多个系统相互关联,有效连接在同一局域网内,具有内部连通性,是一种整体布局模式,具备优越的稳定性和伸缩性。ESP8266模块在电路中连接方式如图3.1.2所示:3.1.2ESP8266-12F模块接线图3.1.3继电器模块继电器(relay)是一种电气控制装置,当它检测到有输入(激励)变化且满足要求时,会在输出电路中使受控量按照预定的步长发生变化的一种电器。它具有控制系统(也称为输入循环)和被控制系统(也称为输出循环)之间的交互作用,它实际上是一个“自动开关”,通常用在自动控制电路中,使用一个小电流来控制一个大电流的运行。因此,自动调节、安全保护和转换电路的作用就靠它来实现。继电器采用的是SRD-05VDC-SL-C,在电磁铁铁芯与衔铁间产生的吸力作用时,是一种可以利用输入电路内电流而工作的电磁继电器。电磁继电器的结构简单,成本几乎可以忽略不计,易于使用和维护,小容量(一般在SA一下)接触,如果接触的数量很大,也没有主次之分,没有灭弧装置,体积小,执行动作快且准确、具有敏感和可靠的控制,在低压控制系统被广泛运用。其工作原理如下,IN:控制信号输入端;GND:模块电源负极,也就是地电平端,控制信号和这共地;VCC:模块电源正极;常开:常开输出端,火线接用电器后接到此端,如果你想用电器平时没电接到此;常闭:常闭输出端,火线接用电器后接到此端,如果你想用电器平时有电接到此;公共端:接零线。本设计采用了四路继电器控制,其接线方式如图3.1.3所示:3.1.3继电器模块接线图软件设计4.1系统程序系统程序是在ArduinoIDE上进行编写的,程序部分采用模块化设计思想,本程序是用C语言编写的,结合了一些主要函数来实现各个模块的相应功能,调试完成后下载到ESP8266控制器中运行。程序设计中setup()函数、loop()函数和回调函数是本设计实现的主要函数。初始化和一次性操作主要通过setup()函数完成。软件程序需要完成以下功能:接收和判断命令,利用串口接收上位机的命令,分析处理和判断。系统主程序流程图如图4.1所示:开始开始初始化初始化上位机指令判断类型?上位机指令判断类型?继电器触发条件?继电器触发条件?照明或家电设备照明或家电设备4.1主程序流程图4.1.1初始化程序初始化以及一次性的操作主要由setup函数完成。/************************setup函数*********/voidsetup(){Serial.begin(115200);BLINKER_DEBUG.stream(Serial);//BLINKER_DEBUG.debugAll();pinMode(PIN1,OUTPUT);pinMode(PIN2,OUTPUT);pinMode(PIN3,OUTPUT);pinMode(PIN4,OUTPUT);pinMode(2,OUTPUT);//led指示灯pinMode(12,INPUT_PULLUP);//按钮digitalWrite(PIN1,LOW);digitalWrite(PIN2,LOW);digitalWrite(PIN3,LOW);digitalWrite(PIN4,LOW);digitalWrite(2,LOW);//ledBlinker.begin(auth,ssid,pswd);BlinkerAliGenie.attachPowerState(aligeniePowerState);BlinkerAliGenie.attachQuery(aligenieQuery);Blinker.attachHeartbeat(heartbeat);//心跳回调Button0.attach(button0_callback);//总开关Button1.attach(button1_callback);Button2.attach(button2_callback);Button3.attach(button3_callback);Button4.attach(button4_callback);attachInterrupt(BUTTON_PIN,singleClick,RISING);//按钮单击}4.1.2开关灯函数//开灯函数voidON(BlinkerButtonButton,uint8_t_pin){digitalWrite(_pin,HIGH);Button.color("#B22222");Button.print("on");BLINKER_LOG("open");}//关灯函数voidOFF(BlinkerButtonButton,uint8_t_pin){digitalWrite(_pin,LOW);Button.color("#000000");Button.print("off");BLINKER_LOG("close");}4.1.3天猫精灵回调函数/**********************天猫精灵回调函数*******************/voidaligeniePowerState(constString&state,uint8_tnum){BLINKER_LOG("needsetoutlet:",num,",powerstate:",state);if(state==BLINKER_CMD_ON){switch(num){case0:digitalWrite(PIN1,HIGH);digitalWrite(PIN2,HIGH);digitalWrite(PIN3,HIGH);digitalWrite(PIN4,HIGH);break;case1:digitalWrite(PIN1,HIGH);break;case2:digitalWrite(PIN2,HIGH);break;case3:digitalWrite(PIN3,HIGH);break;case4:digitalWrite(PIN4,HIGH);break;}BlinkerAliGenie.powerState("on",num);BlinkerAliGenie.print();oState[num]=true;}elseif(state==BLINKER_CMD_OFF){switch(num){case0:digitalWrite(PIN1,LOW);digitalWrite(PIN2,LOW);digitalWrite(PIN3,LOW);digitalWrite(PIN4,LOW);break;case1:digitalWrite(PIN1,LOW);break;case2:digitalWrite(PIN2,LOW);break;case3:digitalWrite(PIN3,LOW);break;case4:digitalWrite(PIN4,LOW);break;}BlinkerAliGenie.powerState("off",num);BlinkerAliGenie.print();if(num==0){for(uint8_to_num=0;o_num<5;o_num++){oState[o_num]=false;}}}}4.2APP端设计4.2.1blinkerAPP选用blinkerAPP作为第三方平台,是由于blinker有一套跨硬件、跨平台的物联网解决方案,能提供APP端、设备端、服务器端支持,可以使用公有云服务进行数据传输存储。APP端的主要功能是与ESP8266开发板进行配网连接,向IO串口发送数据,然后IO串口根据接收到的数据作出判断之后执行相应的动作。在程序的设计中需要去引用blinker的库文件,程序中也需写入获取外网WIFI名称和密码的代码。在接入设备的时候APP会给设备分配一个唯一的秘钥,在上传程序之前将秘钥填写到程序中再进行烧录。blinkerAPP端的运行界面如图4.2.1所示:4.2.1blinkerAPP端运行界面图4.2.2天猫精灵APP语音控制是通过接入天猫精灵实现,在天猫精灵上添加好设备,在对应开关组件下输入指示命令,当天猫精灵接收到指示后,就能通过之前输入的指示完成相应的动作。系统调试与测试5.1系统调试本设计是通过对硬件的部署,软件的编译,在整体设计的基础上运行。各部分的连接完成后,需仔细检查连接点的配线,地线和电源线,以免出现反向连接错误和连接错误。连接完成后,进行上电测试,检查ESP8266控制板的指示灯是否正常点亮,检查是否有警报等。如果发生意外,立即切断电源,进行逐步排查故障。系统中有几个部分需要重点进行关键调试:AMS1117-3.3稳压器模块首先使用万用表‘二极管’档不分‘极’随便三条腿之间看是否有任何短路,蜂鸣器响为坏,不响为好。然后,在没有电源的情况下,测试输入、输出、GND之间是否有短路。如果有短路,不需要测试。它一定坏了;如果没有短路,再上电测,测一下是不是可以稳定输出3.3V左右的电压,以及带载能力行不行。通过测试稳压器模块可以正常使用。ESP8266开发板该智能家居系统使用ESP8266开发板作为主控,首先接入电源后,控制板必须连接到第三方平台blinker才能进行通讯交互,所以在开发板和blinker之间要进行配网,如果配网失败就不能进行通讯,配网成功了才可以实现远程控制。由于ESP8266控制板可以具有过载自保护功能,如果控制板指示灯不亮,不仅需要检查每个功耗模块,还需要逐一检查ESP8266控制板的电路。通过调试开发板功能正常。继电器模块配网成功后,连接到blinker,通过blinker上的开关控件看能不能实现控制开发板上的照明设备,如果能实现控制,则继电器模块正常工作,如果不能,则要检查电路是否接错了。通过调试,继电器模块能正常工作。APP模块打开APP接入外网,将APP分配的秘钥填写到程序中进行编译,编译成功后然后再选择串口上传程序,程序上传完毕后,一定要注意ArduinoIDE的提示窗口。如果未显示“上传成功”,则需要检查已加载的程序。如果下载失败,则需要重新加载程序。然后在Arduino的工具栏下打开串口监视器,查看配网情况。通过调试,可以配网成功。5.2系统测试5.2.1系统程序下载点击编译按钮编译程序结果如图5.2.1所示:5.2.1程序编译图5.2.2系统整体测试首先确保开发板能连接到外网,再在blinkerAPP中点击右上角的“+”进入添加设备页面,之后可以看到有个Arduino设备模块,在上面进行点击再选择WIFI接入,然后将获取到的SecretKey复制到源程序中。之后再点击进入设备界面,右上角有一个编辑键通过点击进入界面编辑模式,再将四个开关组件添加上去,最后将源程序进行编译上传,之后接通电源,看能不能使用APP进行各路的控制,测试是可以用blinker进行控制的,测试结果如图5.2.2所示:5.2.2测试结果图也可以打开天猫精灵客户端,点击“我的”,然后点击“添加智能设备”,然后在页面上方搜索栏搜索blinker,选择需要加上去的设备类别。点击绑定账号,使用blinker账户登录,完成绑定,然后在blinkerAPP中查看配网成功的设备是否会出现在智能家居设备列表中,如果出现在列表中,还需要在开关组件下设置语音指令,方便使用这些指令可以执行对应的动作,然后尝试使用天猫精灵进行语音控制。总结与展望6.1总结本设计是基于Arduino的远程智能家居设计,主要通过ESP8266控制板对智能家居系统进行一系列控制的设计。花了半个月时间,通过查阅和搜集到充分的专业资料过后,才认定下这次总体的课题设计方案。在硬件电路设计中,和老师商讨过后,最终选用的是ESP8266作为系统的核心控制模块,第三方平台采用的是blinker。主要通过ESP-12WIFI模组为核心,接入第三方平台,与阿里云进行通讯交互从而控制继电器达到控制家居设备的目的。为了让系统体现的更加智能化,系统设计了可以接入天猫精灵,可以用它来实现语音控制。在软件编程设计中应用了更为简单易上手的ArduinoIDE开发工具。其语言是在C语言的基础上进行编写的,而且其显得更为简洁,所以最后选用Arduino语言进行编程。后面通过程序编译完成后可以直接烧入ESP8266开发板,由于ESP8266开发板本身具有WiFi模块,可以直接利用WiFi模块来进行无线传输和接收数据,用户在手机APP上可以直接看到家居设备的实时状态,使系统更加的便捷和人性化。经过近2个月的连续奋战,我终
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨境电商海外仓打包服务合同协议2025年合作版
- 【项目方案】光伏配500kW-1MWh集装箱式储能系统设计方案
- 2025年白内障术后家属护理合同协议
- 深度解析(2026)《GBT 39334.5-2020机械产品制造过程数字化仿真 第5部分:典型工艺仿真要求》(2026年)深度解析
- 深度解析(2026)《GBT 39260.2-2020用例方法 第2部分:用例模板、参与方清单和需求清单的定义》
- 镇消防整治面试题及答案
- 2025年下半年遂昌县部分机关事业单位招聘编外用工备考题库及答案详解(考点梳理)
- 东莞市城建工程管理局2025年公开招聘编外聘用人员备考题库及答案详解(新)
- 云南大学附属医院开展2026年校园招聘的备考题库及完整答案详解一套
- 2026年厦门市莲花小学25-26学年下学期顶岗音乐教师招聘备考题库及完整答案详解一套
- 2025榆林市旅游投资集团有限公司招聘(15人)考试参考题库及答案解析
- 广东省湛江市2024-2025学年高一上学期1月期末调研考试物理试卷(含答案)
- 山东省济南市2024-2025学年高二上学期期末学习质量检测物理试卷(含答案)
- 项目管理入门:WBS任务分解详解
- 花都区2024-2025学年第一学期六年级英语期末学业测评考点及答案
- 2025年iba事业单位面试题库及答案
- 【《77500WDT散货船总体结构方案初步设计》18000字】
- 【妇产科学9版】第18章外阴及阴道炎症
- 检验检测机构质量培训
- 2026四川农商银行校园招聘1065人考试笔试备考试题及答案解析
- 2025年Q2无人机航拍服务定价及市场竞争力提升工作总结
评论
0/150
提交评论