基于NodeMCU与Arduino的远程控制智能家居系统的设计与实现
摘要:计算机信息技术日新月异,人民对美好生活的向往日益增长。智能家居系统快速发展,成为引领家居生活的新风尚。随着开源硬件平台的发展,以其作为主控系统,构建智能家居远程控制系统成为可能。基于NodeMCU和Arduino开发板,运用Arduino IDE开发软件,通过温度传感器采集水温数据,以智能手机作为移动控制终端,对电热水器实施远程温控。系统的顺利构建,为电子爱好者设计个性化的智能家居系统提供了一定的借鉴。
关键词:智能家居;NodeMCU;Arduino;Blynk;远程控制
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)09-0176-02
Abstract: The computer information technology is changing with each passing day, and the people's yearning for a better life is growing day by day. The rapid development of smart home system has become a new style for leading home life. With the development of open source hardware platform, it is convenient and possible to build a remote control system for smart home automation with a main control system. Based on NodeMCU and Arduino development board, the Arduino IDE development software is used to collect water temperature data through temperature sensor. Then, a smart phone as mobile control terminal is adopted to implement remote temperature control for electric water heater. The construction of this system can provide some suggestions or guidance for the design of personalized intelligent home system for the electronic enthusiasts.
Key words: Smart home automation; NodeMCU; Arduino; Blynk; Remote control
智能家居(Smart Home)是以住宅槠教ǎ利用综合布线技术、网络通信技术、音视频技术将家居生活有关的设施集成,构建高效的管理系统,提升家居安全性、便利性和舒适性。智能家居概念的起源很早,但一直未有具体的建筑案例出现,直到1984年美国联合科技公司将建筑设备信息化、整合化概念应用于美国康乃迪克州哈特佛市的CityPlaceBuilding时™,才出现了首栋的“智能型建筑”,从此揭开了全世界争相建造智能家居的序幕[1]。
智能家居通过物联网技术将家中的各种设备连接到一起,实现家电控制、防盗报警、环境监测等多种功能。其核心在于在控制端将用户需求转换成计算机语言,计算机语言又通过一定的网络通讯方式传输到设备受控端,受控端再根据所接收到的计算机语言,转换成相应的控制指令,控制家居设备。
进入新时代,随着计算机信息技术、移动互联网技术、物联网技术的快速发展,同时与人民日益增长的美好生活需要相适应,智能家居系统步入发展的快车道,成为引领家居生活的新风尚。2003 年以来,海信、清华同方等公司也相继加入到智能家居的研究行列。2014年以来,海尔、小米、阿里巴巴等企业相继推出了商业化的智能家电产品,比如,智能空调、智能冰箱、智能洗衣机จ、天猫精灵等。但目前的智能家居系统还缺乏统一明确的国际标准,许多公司开发出 ツ的产品都是基于自己组建的网络和信息交换协议,很多产品是针对特定的组网环境开发的,部分核心技术没有对外公布,技术复杂,直接导致了使用范围的局限性。由于缺乏对应的第三方产品,各个接入设备之间不能兼容,互操作性差,不利于产品的扩充[2]。目前智能家居系统的控制方案与实现的功能都很多,但一般都过于复杂和闭源,电子爱好者们难以对其进行扩展和创新。随着开源平台、开源共享库GitHub以及多种传感器模块的出现,电子爱好者完全可以通过开源硬件搭建个性化的智能家居系统[3]。
智能手机是指像个人电脑一样,具有独立的操作系统,独立的运行空间,可以由用户自行安装第三方服务商提供的程序,并可以通过移动通讯网络来实现无线网络接入手机类型的总称[4]。智能手机的拓展性深得用户青睐,开发者可以通过设计各种应用程序实现智能手机的智能化与个性化。智能手机的逐渐普及,促进了移动互联网技术的发展。互联网走向即时类型后,人人能够随时随地接入在线,智能手机成为大众生活必备品。智能手机的飞速发展,使之作为智能家居系统的控制终端成为可能。用户只需加装一个APP,就可以轻松自如的实现家居控制,操作界面友好,简单易用实用。在实践中,手机与接收命令的单片机控制端可以采用不同的方式进行通信,例如WIFI、蓝牙或红外等。
本文主要介绍一个基于NodeMCU和Arduino的电热水器智能远程温控系统。该系统基于开源的NodeMCU和Arduino开发板,运用Arduino IDE开发软件,通过温度传感器采集水温数据,利用蓝牙、互联网等传输和管理数据,以智能手机作为控制终端,对电热水器实施远程温控。 1系统功能
本温控系统主要实现对“带电加热模块的电热水器”加热电源的开关控制。通过系统综合运行,主要实现3项功能:
1)利用智能手机终端,远程实时查看家中电热水器水温。
2)利用智能手机终端,直接远程开启或关闭热水器电源。
3)利用智能手机终端,远程设定电热水器目标温度。当热水器实际水温低于目标温度,自动开启电源加热;当热水器实际水温达到或高于目标温度,自动关闭电源。
2系统架构
为实现上述系统功能,本文搭建的电热水器智能远程温控系统的总体架构(如图1所示),电器端主要由水温采集处理模块、数据传输模块、系统受控模块三部分构成。远程端由智能手机充当控制模块。
3水温采集处理模块
水温采集处理流程如图2所示。该模块硬件包括水温传感器和ArduinoNano开发板。水温传感器实质是热敏电阻,负责采集水箱内的水温。ArduinoNano开发板是温度处理的核心。本文主要用到了其模拟输入、计算和串口通信功能。利用电阻分压原理,将传感器测得的电压连接至ArduinoNano开发板的模拟☿引脚,以获取电压的数值;电压值经过开发板内程序换算后,得到转换后的摄氏度水温数据。
温度采集处理模块的软件部分,由Arduino IDE程序设计,写入开发板,实现温度数据的读ศ取和处理。
4数据传输模块
数据传输模块包括本地数据传输和远程数据传输两部分。本地数据传输是指将温度数据从水温采集处理模块传输至系统受控模块,由蓝牙主机HC-05和{牙从机HC-06构成,通过蓝牙一收一发实现。主、从蓝牙经过设置、配对后,蓝牙模块可直接与开发板的串口连接,实现方便的模块间传输数据。采用蓝牙传输数据,是考虑到热水器水温传感器的连接处会与热水器电源有一定距离,减去了布线的麻烦。远程数据传输是指将温度数据由系统受控模块传输至远程云服务器。由作为系统受控模块核心的NodeMCU自带的Wi-Fi功能模块承担。
5系统受控模块
系统受控模块的硬件由NodeMCU开发板和电源控制电路构成。NodeMCU使用串口通信功能,从本地数据传输模块接收水温数据,自身的Wi-Fi模块将水温数据通过互联网传输至Blynk云服务器,并从Blynk云服务器接收控制指令。具体原理是通过预先设定目标水温,通过比较目标水温和实际水温,决定是否需要烧水,或直接决定是否开关电源,进而发出控制指令,按照指令,NodeMCU开发板通过数字引脚控制继电器的吸合,进而控制热水器电源的开关,实现自动/手动温度控制。(如图3所示)
智能手机可以通过预先安装Blynk应用访问Blynk云服务器,进而控制热水器电加热的电源和温度设定,以实现热水器的远程温控。
6 Blynk云服务器和Blynk手机应用
选择使用Blynk云服务器,主要是考虑到该云服务器有专业维护,且提供免费服务。Blynk是一种能够通过互联网来远程监测、控制的物联网框架。
本系统的远程控制终端直接采用了基于智能手机的Blynk APP应用。Blynk APP是一款适合小型开发板的实用组合配套工具。可以使用Blynk创建精美的界面和挂件来控制微型计算机。在智能手机的Blynk APP应用界面上,创建“热水器控制”模块(如图4所示)。该模块能实时显示远程热水器的水温;能预设热水器加热目标温度;能创建热水器电源“虚拟开关”。通过安装在智能手机上的Blynk应用程序,可随时随地查看传感器数据,并控制远程开关。
7结束语
本文采用开源NodeMCU开发板、Arduino开发板、智能手机终端和Blynk APP应用,构建小型电热水器远程温控系统,获得了较好的实际效果。将此设计应用于自家的“带电加热模块的太阳能热水器”,方便日常生活使用,操作简单、系统稳定、运行可靠、成本低廉。本设计的顺利实现,为电子爱好者构建个性化的远程智能控制平台提供了一定的参考价值。
因为NodeMCU、Arduino系统开源,使得系统构建简单快捷;两种开发板性价比高、易于取得,使得系统经济、灵活、实用;移动互联网飞速发展,数据传输高速高效,使得系统稳定、有效;Blynk界面友好,使得系统操作简便。总之,系统具有良好的经济性、扩展性、稳定性和普及性,应用前景广泛。展望未来,对待不同的家居电器设备的开关、同一电器多模式的开关、多场景的应用、多变量的采集传输等其他较为复杂的功能实现,还需要在以后的学习生活中进一步的研究和实践。
参考文献:
[1] 强静仁,张,王斌.智能家居基本原理及应用[M].武汉: 华中科技大学出版社,2017.
[2] 崔阳.一种基于Arduino的智能家居控制系统[J].电子技术应用,2014,40(4):123-125.
[3] 汪震,杨小兰.基于Android和Arduino智能家居系统设计[J]. 软件导刊,2014,13(12):94-96.
[4] 詹忠山.新编智能手机原理与维修培训教程[M].北京: 电子工业出版社,2015.
[5] 孙玉娟.智能家居借势突围从智慧城市到美丽中国[J].中国住宅设施,2013,43(1):86-87.
[6] 林若玺.基于ESP8266平台的汽车蓄电池电量远程监控系统设计[J].电脑编程技巧与维护,2016,24(2):35-56.
[7] 禹谢华,邓林茂,张晓云,等.基于Android和Arduino智能家居控制系统的设计与实现[J].山东农业大学学报:自然科学版,2017,48(4):532-536.
[8] 朱江,吉顺如,李渊.基于Arduino的智能家居系统设计[J].轻工科技,2015,4(4):77-78.