+ All Categories
Home > Documents > 基于 ESP8266 的远程控制插座设计 - paper.edu.cn ·...

基于 ESP8266 的远程控制插座设计 - paper.edu.cn ·...

Date post: 02-Mar-2020
Category:
Upload: others
View: 39 times
Download: 0 times
Share this document with a friend
15
12 6 Vol.12 No.6 2019 12 December 2019 基于 ESP8266 的远程控制插座设计 梁子寒,王晨升,杨 * (北京邮电大学自动化学院,北京 100876摘要本文设计了基于 ESP8266 的远距离控制插座体系,实现了具备远距离控制功能的电路设计、程序设计 及硬件实物设计。采用自带 WiFi 功能的 ESP8266 芯片作为主控芯片,通过对 ESP8266 的软件开发工具包 software development kitSDK)进行开发,与手机 App 结合来实现插座的远程控制功能。通过对基于 Arduino 环境下的 ESP8266 开发和物联网开发手机 App 两种不同方案的对比详细介绍 ESP8266 芯片实现的功能以及对 插座的控制原理。测试结果如下:先让芯片的通用型输入输出(general-purpose input/outputGPIO)口控制 发光二极管(light emitting diodeLED)灯,然后将 LED 灯换成继电器,待实物做成之后,经过系统测试, 在插座上面放置一电器(例如灯),当点击手机 App 的打开按钮,便可看到插座上的灯会亮,即继电器已经吸 合;再点击“轻触关闭”按钮,便可看到灯已经主动关闭,即继电器已经断开,说明调试已完成。 关键词:自动控制技术;NodeMCU 开发板;ESP8266;插座;远程控制 中图分类号:TP29 文献标识码:A 文章编号:1674-2850(2019)06-1029-15 Remote control socket design based on ESP8266 LIANG Zihan, WANG Chensheng, YANG Guang (School of Automation, Beijing University of Posts and Telecommunications, Beijing 100876, China) Abstract: A remote control socket system based on ESP8266 is designed in this paper, and the circuit design, program design and hardware physical design are realized with remote control function. In this design, ESP8266 chip with WiFi function is used as the main control chip through the combination of software development kit (SDK) development of ESP8266 and mobile phone App, to realize the remote control function of the socket. And the functions realized by ESP8266 chip and the control principle of the socket are introduced in detail by comparing the two different schemes, which are ESP8266 development and Internet of Things development mobile phone App based on Arduino environment. The test results are as follows: Firstly, the general-purpose input/output (GPIO) port of the chip can control the light emitting diode (LED) lamp, and then the LED lamp is replaced with a relay after being made in kind. After system test, an electrical appliance such as a lamp is placed on the socket. When clicking on the open button of the mobile phone App, you can see that the lamp on the socket is displayed as a state of charge, that is, the relay has been sucked. Click the touch button again to see that the lamp is not charged, that is, the relay has been disconnected, which indicates that debugging is complete. Key words: autocontrol technology; NodeMCU development board; ESP8266; socket; remote control 0 引言 过去几年中,单片机连接互联网,甚至连接局域网都是很困难的事情。随着科学技术的日益发展, 智能产业也被推动着向前进步。其中,插座的发展相对来说也很迅速,其进步不仅体现在功能化,还包 含艺术化、智能化和无线化 [1] 。未来的智能插座肯定会更加完美。智能插座最基本的功能是通过手机 App 作者简介:梁子寒(1996—),女,硕士研究生,主要研究方向:智能装配及系统设计 通信联系人:王晨升,副教授,主要研究方向:智慧控制、虚拟现实. E-mail: [email protected]
Transcript
Page 1: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

第12卷 第6期 Vol.12 No.6 2019 年 12 月 December 2019

基于 ESP8266 的远程控制插座设计 梁子寒,王晨升,杨 光*

(北京邮电大学自动化学院,北京 100876)

摘要:本文设计了基于 ESP8266 的远距离控制插座体系,实现了具备远距离控制功能的电路设计、程序设计

及硬件实物设计。采用自带 WiFi 功能的 ESP8266 芯片作为主控芯片,通过对 ESP8266 的软件开发工具包

(software development kit,SDK)进行开发,与手机 App 结合来实现插座的远程控制功能。通过对基于 Arduino

环境下的 ESP8266 开发和物联网开发手机 App 两种不同方案的对比详细介绍 ESP8266 芯片实现的功能以及对

插座的控制原理。测试结果如下:先让芯片的通用型输入输出(general-purpose input/output,GPIO)口控制

发光二极管(light emitting diode,LED)灯,然后将 LED 灯换成继电器,待实物做成之后,经过系统测试,

在插座上面放置一电器(例如灯),当点击手机 App 的打开按钮,便可看到插座上的灯会亮,即继电器已经吸

合;再点击“轻触关闭”按钮,便可看到灯已经主动关闭,即继电器已经断开,说明调试已完成。

关键词:自动控制技术;NodeMCU 开发板;ESP8266;插座;远程控制 中图分类号:TP29 文献标识码:A 文章编号:1674-2850(2019)06-1029-15

Remote control socket design based on ESP8266 LIANG Zihan, WANG Chensheng, YANG Guang

(School of Automation, Beijing University of Posts and Telecommunications, Beijing 100876, China)

Abstract: A remote control socket system based on ESP8266 is designed in this paper, and the circuit design, program design and hardware physical design are realized with remote control function. In this design, ESP8266 chip with WiFi function is used as the main control chip through the combination of software development kit (SDK) development of ESP8266 and mobile phone App, to realize the remote control function of the socket. And the functions realized by ESP8266 chip and the control principle of the socket are introduced in detail by comparing the two different schemes, which are ESP8266 development and Internet of Things development mobile phone App based on Arduino environment. The test results are as follows: Firstly, the general-purpose input/output (GPIO) port of the chip can control the light emitting diode (LED) lamp, and then the LED lamp is replaced with a relay after being made in kind. After system test, an electrical appliance such as a lamp is placed on the socket. When clicking on the open button of the mobile phone App, you can see that the lamp on the socket is displayed as a state of charge, that is, the relay has been sucked. Click the touch button again to see that the lamp is not charged, that is, the relay has been disconnected, which indicates that debugging is complete. Key words: autocontrol technology; NodeMCU development board; ESP8266; socket; remote control

0 引言 过去几年中,单片机连接互联网,甚至连接局域网都是很困难的事情。随着科学技术的日益发展,

智能产业也被推动着向前进步。其中,插座的发展相对来说也很迅速,其进步不仅体现在功能化,还包

含艺术化、智能化和无线化[1]。未来的智能插座肯定会更加完美。智能插座最基本的功能是通过手机 App

作者简介:梁子寒(1996—),女,硕士研究生,主要研究方向:智能装配及系统设计 通信联系人:王晨升,副教授,主要研究方向:智慧控制、虚拟现实. E-mail: [email protected]

Page 2: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

第12卷 第6期

2019 年 12 月 中国科技论文在线精品论文 1030

远程操作插座开关;另外,智能插座与电器设备配合,安装步调简单快捷,支撑 Android/iOS 等系统,

只需要烧录相应程序,实现定时开关功能即可。由于智能插座控制断电的绝对性,对某些待机功率较大

的电器,可以做到即用即开,节约电器耗电。远程控制插座的设计可以对家用电器进行远程控制,这样

也有利于绿色健康的节能活动的进行[2]。 以智能硬件为代表的智能家居和物联网行业势不可挡,根据各项智能市场调研,中国的智慧城市推

广、养老政策会成为未来的主要方向。2018 年智能产业至少有 6 000 亿的潜在市场。然而,某行业的兴

起又与国家经济的发展密不可分[3]。在全球经济复苏迟缓、中国经济发展放缓的大环境下,智能插座的

发展形势将不容乐观。通过对国内外市场的研究与对比,了解到国外市场比国内市场发展更成熟,消费

者对国外家居产品的认可度更高一点[4]。

1 总体方案设计 1.1 系统总体方案的确定

基于 ESP8266 的远程控制插座设计主要分为三个部分:硬件设备部分、网络通信部分及手机 App 客

户端。硬件设备中的 WiFi 模块是本设计的基点也是最重要的内容。通过软件开发芯片模块,开发出其

WiFi 功能,在 PC 端通过编写程序代码创建服务器,即完成了网络通信部分。手机 App 通过不同网络平

台开发,可以通过在软件上自行编写代码,也可以使用物联网平台生成的代码。继电器用来控制通断电,

插座中用于控制开关的便是继电器,手机 App 与模块通信后,继而控制继电器。 本设计的整体思路为通过手机 App 发送指令到云端,云端再传给 ESP8266 芯片,实现此功能的前提

为确保手机 App 和芯片连接到同一个服务器,之后芯片解码手机 App 发送的消息,并使输入输出

(input/output,I/O)口做出相应的动作[5]。硬件上令芯片模块与继电器模块相连,通过 I/O 口的变化引

起继电器的变化,从而实现对插座的远程控制。 基于此,查阅相关资料,发现此远程控制插座有多种方案,其中芯片的程序开发包括对 ESP8266 芯

片的 SDK 程序开发,包含 Non-OS SDK 和 RTOS SDK 两种,开辟出其 WiFi 模块功能;在 Arduino 环境

下对 ESP8266 的程序开发;使用 NodeMCU 开发板基于 Lua 脚本语言对芯片的开发;应用调制解调器

(attention,AT)指令对芯片的开发。其中,SDK 开发方案由乐鑫官方推出,有底层代码,用户只需学

习简单的代码即可上手,用起来比较便捷、占用空间也很小;在 Arduino 环境下对 ESP8266 的开发也比

较方便,用户可直接在 Arduino 环境下编写程序,并直接下载至开发板,Arduino 覆盖范围较广,功能较

强大,本文采用其软件环境;基于 Lua 脚本语言的芯片开发方案是这几种方案中较为简单的,在 Explore环境下编写 Lua 脚本语言并上传到开发板中,目前对 Lua 脚本语言的应用不是很广泛,但是其较易掌握[6];

AT 指令是最简单的,也是最早使用 ESP8266 芯片的,此方法只需在芯片外加一个微程序控制器

(microprogrammed control unit,MCU),并且只需用户了解几条基本的 AT 指令,即可完成对芯片的开

发与测试工作。 手机 App 开发也有多种途径,因为用户手机为安卓系统,所以此次采用安卓开发语言。在 App 开发

方面,既可以通过 E4A 软件对 App 进行开发,人工编写程序,又可以通过机智云直接创建产品,生成

代码,无需程序编写。此种方法可以与 SDK 开发方案在同一环境下操作,即都可在基于 Eclipse 的环境

下编译程序,生成地址[7]。还有较为简单的开发方案为直接采用官方生成的免费 App,用户只需利用手

机扫码即可安装基于不同网络平台的安卓安装包(Android package,APK),例如酱菜创客手机 APK、

设备云、AiSmart(利用 aicloud SDK 开发方案由乐鑫官方生成的 APK)、IT 王者-WiFi(利用物联网平台

Page 3: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

Vol.12 No.6

December 2019 梁子寒等:基于 ESP8266 的远程控制插座设计 1031

生成固件和 APK)、IOT ESPressif(利用 RTOS SDK 开发方案由乐鑫官方生成的 APK)等。系统的总控

制流程图如图 1 所示,经过软硬件方案的系统对比,最终确定本次远程控制插座设计方案有如下两种。 方案一:此设计包含三个模块,硬件模块、网络模块及手机 App. 硬

件模块采用 ESP8266 开发板即 NodeMCU 板,对 ESP8266 进行 SDK 开

发,手机 App 端下载 AiSmart 客户端,注册并登录后,在模块里面烧录

固件,确保 AiSmart 与手机连入同一网络后,App 就可以与模块进行通

信,App 设定的指令为“轻触打开”和“轻触关闭”,轻触打开后,芯片

GPIO16 口拉低,从而促使继电器断开;相反,点击“轻触关闭”指令,

GPIO16 口拉高,继电器也进行相应的动作,进而促成对插座的远距离

支配[8]。

方案二:与方案一所含模块相同,硬件模块也相同。此方案对

ESP8266 芯片的开发基于物联开发平台,采用酱菜创客的服务器,免费

提供接口,比较稳定。开发前先在酱菜创客注册申请 APIKey 并添加本

身所需设备,在程序上把账号都换成自己的,然后将程序烧到芯片内,

手机上下载酱菜创客的 APK,就完成了手机客户端和芯片之间的通讯[9]。

通过点击手机界面插座按钮,当显示设备在线时,点击按钮,芯片的 GPIO16 口拉高,继电器吸合,再

次点击按钮,GPIO16 口处于低电平状态,继电器断开。

1.2 WiFi 芯片选型

随着科学技术的进展,智能化产品也越来越多地出现在日常生活中。WiFi 技术的本质是将有线信号

转换成无线信号,使电脑、掌上电脑(personal digital assistant,PDA)等可以使用。内置 WiFi 芯片可使

手机及平板电脑功能更加强大,资源更丰富,可玩性更强。

据了解,ESP8266、MF-5870、AW-GH380、CC3200、MT7681 等芯片都具有对应的 WiFi 功能。

AW-GH380 是海华科技公司推出的融合了 WiFi 及蓝牙的新产品,它是一款消耗功率特别低的 WiFi 无线

输导芯片,采取先进集成电路(integrated circuit,IC)包装工艺,模块集成度高(外部电路仅需要天线和

晶振)[10]。

CC3200 具有图稿简易、低功耗 SimpleLink 无线连接的特点,该芯片内置了 WiFi 的协议站,可支持

802.11b/g/n 协议标准,使用 WPS/WPA2 加密方式,使用 SmartConfig 和 WPS 配置方式,工作温度为−20~

75℃,存储热度为−40~105℃. 该芯片内部集成 TCP/IP 协议栈,可降低编程负担。

ESP8266 芯片,既可外加 MCU,也可使用芯片中央处理器(central processing unit,CPU),支持

80 MHz和16 MHz两种频率。实际还有两个通用串行数据总线(universal asynchronous receiver/transmitter,

UART)口,以编写程序或将固件烧录到芯片,处理器可以运行开发者编写的程序代码,应用程序是使

用厂商供给的 ESP Flash Download Tools 经过 UART 烧写到连接芯片的 SPI Flash. ESP Flash Download

Tools 带有串行数字输入输出(serial digital input/output,SDIO)接口、GPIO 接口、I/O 接口,GPIO 接

口有脉冲宽度调制(pulse width modulation,PWM)的复用功能,UART 掌持流控,只有发射端口(transmit,

TX)用途[11]。芯片内部没有集成 Flash,需要外接 SPI Flash,当前支持 512,1 024,2 048,4 096 kb 四种

大小。

MT7681 是联发科技公布的解决智能家庭应用苦恼的一款产品。它含有协议栈,有利于开发,是目

图 1 远程控制插座流程图

Fig. 1 Flow chart of remote control socket

Page 4: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

第12卷 第6期

2019 年 12 月 中国科技论文在线精品论文 1032

前功率消耗最小的 Linux 平台 WiFi 系统级芯片(system on chip,SoC),仅为前面产品的 60%. 对比上述几种芯片,价格方面,ESP8266 较有优势,而 CC3200 价格比较贵,MT7681 处于中间。性

能方面,ESP8266 性能很弱,不如另外两个芯片,MT7681 有可能提供 MCU 运行的协议栈,CC3200 强

一点,与 MT7681 一样,有特定的 MCU 供用户使用[12]。综上所述,由于此次设计主要实现远程控制功

能,不需要其他复杂功能,再考虑价格因素,最终选择了 ESP8266 芯片作为主控芯片。

2 远程控制插座系统的硬件设计 2.1 ESP8266 芯片介绍

前面方案已经确定 ESP8266 作为控模块,ESP8266 是上海乐鑫研发的高性能 SoC. 该芯片具有价格

便宜、耐低压、社区支持性能好、功耗低、集成度高等优点,工作热度范围较宽(−40~125℃),有三种

运行模式:激活模式、睡眠模式和深度睡眠模式,而且有多种功效[13],可通过不同方式启动。ESP8266高度片内集成,包括天线开关、RF balun、功率放大器、低噪放大器、过滤器、电源管理模块,并且可

通过 GPIO 口控制其他设备,降低开发成本。并在运行中占用较少的系统资源。芯片引脚如图 2 所示。

图 2 ESP8266 芯片引脚 Fig. 2 ESP8266 chip pins

芯片管脚定义如下(没有全部指出)。 CHIP_PU:使芯片起头的部分。高电平有用,芯片正常开通;低电平,芯片不开通,电流很小。 GPIO0:SPI_CS2,GPIO0. UORXD:可用作烧写 Flash 时 UART Rx;GPIO3. UOTXD:可用作烧写 Flash 时 UART Tx;GPIO1;SPI_CS1. EXT_RSTB:外部重置信号(低电平有效)。 芯片主要技术参数如下。 WiFi 频率范围:2.4~2.5 GHz(2 400.0~2 483.5 MHz); 工作电压:2.5~3.6 V;

Page 5: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

Vol.12 No.6

December 2019 梁子寒等:基于 ESP8266 的远程控制插座设计 1033

工作电流:平均电流 80 mA; 软件部分用户配置:AT+指令集,云端服务器,Android/iOS App. 硬件连线有两种方案可供选择:NodeMCU 开发板和模组方案。NodeMCU 开发板只需一个 NodeMCU

开发板和一根 USB 数据线;模组方案需要一个 ESP8266 芯片模块、一个 USB 转数字集成电路

(transistor-transistor-logic,TTL)串口模块、几根杜邦线和一套焊接工具。当选用模组方案时,对芯片

进行烧录工作,GPIO0 口一定要拉低,待下载完成后对其进行拉高或悬空操作才可以使模块正常工作。

为简化连线图本设计,硬件设备选用开发板方案即 NodeMCU 开发板。 NodeMCU 引脚图如图 3 所示。NodeMCU 是一个开源的物联网平台,该平台的硬件是 ESP8266 WiFi

无线通讯模块,它是一款消耗功率很低的 UART-WiFi 透传模块,并且有很多的硬件接口[14],可撑持多种

接口,实现多种功效。ESP8266 模块支撑 STA/AP/STA+AP 三种体例。本文主要使用 GPIO0 口控制功能,

通过对 ESP8266 芯片的开发,使芯片与手机连接同一网络,从而实现手机对设备的远程控制作用。该平台

以 eLua 开源项目为基础,底层使用 ESP8266 SDK 0.9.5 版本。该平台使用了很多开源项目,例如 Lua-Cjson、spiffs. NodeMCU 包含了可以运行在 ESP8266 WiFi SoC 上的固件,以及基于 ESP-12 模组的硬件。

图 3 NodeMCU 引脚图

Fig. 3 NodeMCU pin figure

2.2 系统子模块设计

本次硬件设备主要包括三个模块,主控模块为以 ESP8266 为硬件载体的 NodeMCU 开发板、之后为

电源电路转换部分和继电器部分[15]。画出芯片的最小系统(最小启动系统如图 4 所示),具体流程为:

电源转换模块利用 ASM1117 进行供电转换电压处理,然后由继电器控制。

Page 6: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

第12卷 第6期

2019 年 12 月 中国科技论文在线精品论文 1034

图 4 ESP8266 芯片最小启动系统

Fig. 4 Minimum boot system of ESP8266 chip

本次制图软件采用的是 Proteus8,界面如图 5 所示。Poteus8 是一款制图加仿真软件。它的功能强大,

可以与软件连接进行编程并仿真。本次整个设计只是用该软件进行制图,从而确定硬件实物的连接图,

并没有进行相应的仿真。

图 5 Poteus8 界面

Fig. 5 Poteus8 interface

Page 7: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

Vol.12 No.6

December 2019 梁子寒等:基于 ESP8266 的远程控制插座设计 1035

2.2.1 电源电路模块设计

电源电路系统设计中,芯片作业电压为 2.5~3.6 V. 需要将 5 V 电源转成 3.3 V,而继电器正常状态

下所需电压为 5 V. 故这次设计中整体采用 AMS1117 芯片进行电源电压的转换。电源电路转换模块如图 6所示。

2.2.2 继电器模块设计

继电器模块电路设计如图 7 所示,用 8550 三极管与继电器相连。利用 PC817 光耦进行光电隔离,

进而确保 3.3 V 的开关量信号。为避免驱动继电器时所需的 5 V 电压对其产生干扰,也可直接用带有光

电隔离的 1 路继电器。此次设计未使用单独的光耦隔离,而是采用自带光耦的 1 路继电器[16]。

3 远程控制插座系统的软件设计 3.1 软件设计方案一

3.1.1 ESP8266 SDK 程序开发

据了解 ESP8266 软件的开发模式有许多种。本方案采用基于芯片的 SDK 程序开发方案。

SDK 的基础平台依照是否基于操作系统分为 Non-OS SDK 和 RTOS SDK 两种。Non-OS SDK 不基于

操作系统,提供支持 IOT_Demo 和 AT 的编译。Non-OS SDK 通过回调变量和定时器的方式实现不同功

能函数的嵌套,达到在不同条件下触及不同功能的目的。使用 ESPconn 接口实现网络操作,并进行相应

的软件开发。RTOS SDK 基于 FreeRTOS 系统,比 Non-OS SDK 上市晚,但其功能比 Non-OS SDK 多,

最近几年应用也比较广。

下面先介绍芯片开发所需环境及具体步骤。首先搭建一体化开发环境[17],乐鑫官方供应的一体化环

境为 ESP_ide,界面如图 8 所示;然后根据安信可科技提供的地址,下载官方 aicloud_plug;查阅 ESP8266

文档中心,下载 2C-ESP8266-SDK-API Guide;最后安装乐鑫官方提供的 Flash 下载工具,界面如图 9

所示。

Eclipse 是一款基于 Java 的可扩充的开发软件平台,目前已经扩展到其他多种语言,包括 C/C++语言、

COBOL、PHP、Android 等。该软件用途很广,除用于芯片开发环境外,还可用于除软件开发外的其他

编程环境。

图 7 继电器模块

Fig. 7 Relay module

图 6 电源电路转换模块

Fig. 6 Power circuit conversion module

Page 8: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

第12卷 第6期

2019 年 12 月 中国科技论文在线精品论文 1036

图 8 Eclipse 界面

Fig. 8 Eclipse interface

图 9 Flash 下载工具

Fig. 9 Flash download tool

3.1.2 通信程序设计

开发准备工作完成后,正式进行芯片的 SDK 开发。将下载好的 aicloud_plug 烧录到 Flash 中。在烧

录过程中,波特率、串口端号、字节一定要标注好,并且与芯片模块相匹配。因为本设计只想利用 SDK

方案实现模块中的一些基本功能,所以不需要掌握太好的编程技术,只需完成底层功能。当把固件烧录

到 NodeMCU 开发板以后,基本就完成了对芯片的 SDK 开发。此时 ESP8266 芯片已经可以使用 WiFi 功

Page 9: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

Vol.12 No.6

December 2019 梁子寒等:基于 ESP8266 的远程控制插座设计 1037

能。ESP8266 在开发过程中会有很多固件及官方提供的程序代码,开发过程中要先对其进行初始设置[18]。

该方案的初始化功能在 user_main.c 中实现。void user_init(void)是上传代码的进口函数,为用户提供初始

化接口,操作者可在这里实现想要执行的功能。aicloud_plug 软件包中的内容如图 10 所示。

解析内容如下。

_temp_by_dltool:固件;

app:在这里写想要的代码,里面的 main 函数可对代码进行初始化;

bin:编译后生成的文件、产生的地址,直接烧录到 Download Tools 中;

include:SDK 自带头文件,包括用户要用的相关 API 函数及其他宏定义,用户无需修改;

ld:链接时的脚本文件,通常采用默认值,对数据库影响不大;

lib:SDK 提供的库文件;

tools:在这里生成 BIN 文件,无需修改。

3.1.3 开发手机 App

手机 App 方面采用安信可提供的免费服务器 AiSmart,App 界面如图 11 所示。用户数据报协议(user

datagram protocol,UDP)传导,简单安稳,且含有非常多的程序例子和 PC 端上机调节对象。在手机上

通过识别二维码安装官方手机 App-AiSmart,注册完成后登录,此方案不用单独在 PC 端创建产品,而是

通过设置程序来完成的。

3.1.4 系统调试

基于软件的仿真图如图 12 所示,该图与图 13 中的实物图略有差别,此电路采用的是 ESP8266 的最

小系统,需要用 USB 转 TTL 串口连线从而使芯片与电脑相连,而实物电路采用的是基于 ESP8266 硬件

载体的 NodeMCU 开发板,直接用 USB 连接电脑与开发板即可,这里的按键未画出,因为图 13 中的

NodeMCU 按键是系统自带的,其他引脚连接均大致相同。

硬件实物图如图 13 所示,这里的实物图与仿真图不是很一致,实物图减少了连线,具体调试操作如

下:首先通过 USB 数据线连接 NodeMCU 开发板与 PC 端,然后将 aicloud SDK 官方代码烧录到 NodeMCU

开发板上,按“RST”键对模块重启,然后长按“Flash”按键,观察串口调试助手的信息,其界面如图 14

图 10 aicloud_plug 内容

Fig. 10 aicloud_plug content

图 11 AiSmart 界面

Fig. 11 AiSmart interface

Page 10: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

第12卷 第6期

2019 年 12 月 中国科技论文在线精品论文 1038

所示,当显示为 Key medium_pressing 时,打开 App,点击“添加新设备”按钮,填入当前手机所连 WiFi

及密码,点击“在线设备”,通过点击“轻触打开”及“轻触关闭”来观察继电器的动作,从而完成测试。

图 12 基于软件的仿真图

Fig. 12 Simulation diagram based on software

图 14 串口调试助手界面

Fig. 14 Serial debugging assistant interface

图 13 硬件实物图

Fig. 13 Hardware physical diagram

Page 11: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

Vol.12 No.6

December 2019 梁子寒等:基于 ESP8266 的远程控制插座设计 1039

3.2 软件设计方案二

3.2.1 Arduino 环境下对 ESP8266 的程序开发

本次芯片设计采用基于 Arduino 的开发环境。这类开发方式也是基于 SDK 的开发原理,不需要

Arduino 硬件,利用 Arduino 软件平台编译 ESP8266 的源码[19]。Arduino 的硬件原理图、电路图、ide 软

件及核心库文件都是开源的,用户可以在开源协议内修改代码。芯片程序开发时搭建开发环境即下载

Arduino ide,并且按照官方提示设置软件相关内容。

3.2.2 程序设计

编程时采用 Arduino 语言,直接在 Arduino 进行程序编写。Arduino 界面如图 15 所示,直接在程序

中设计了 WiFi 模式,调用定时函数。

图 15 Arduino 界面

Fig. 15 Arduino interface

Arduino 是一个有开放源代码的电子平台,包含硬件部分和软件部分,含有近似使用 Java 和 C 语言

的 Processing 开发环境。本研究利用 Arduino 的软件部份,即 Arduino ide. 该界面基于开放源代码,可以

免费下载利用。据了解,很多这种软件开发平台都是基于源代码的,便于用户使用。 在该程序中,包括网络设置模块: const char *ssid=""; 这里写入用户要连接的 WiFi ssid const char *password=""; WiFi 密码

Page 12: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

第12卷 第6期

2019 年 12 月 中国科技论文在线精品论文 1040

连接服务器模块: const char *host="www.jcckiot.com"; 酱菜创客服务器 IP const int httpPort=8266; 端口号 绑定设备模块: client.write("mode=bind&apikey=d9f955e9aae0e8b1&data={ck001000bind}\r\n"); 绑定 APIKey,

修改成自己的 APIkey 发送控制命令模块: if(line[5]=='3' & line[8]=='0' & line[9]=='1'); line 是收到的控制指令,sid 和 nid 是注册时自动生

成的,如果填写的 sid 和 nid 是 004 和 000,那么 line[5]=4,line[8]=0,line[9]就是开关命令 0/1 { digitalWrite(relay1,HIGH); Serial.println("led on"); } if(line[5]=='3' & line[8]=='0' & line[9]=='0') { digitalWrite(relay1,LOW); Serial.println("led off"); }

3.2.3 App 开发

首先进入酱菜创客官网,注册酱菜用户,登录后获得 APIKey,下载并

安装酱菜创客 APK,界面如图 16 所示,记住 APIKey,写入相应程序中。

3.2.4 系统调试

硬件实物连接图如图 17 所示,具体调试步骤如下:先将 NodeMCU开发板通过 USB 数据线与 PC 端相连,打开 Arduino ide,编译所需程序

代码;待编译完成后,上传到开发板,打开酱菜创客手机 App,点击“插

座”按钮,当设备显示在线时,等待一段时间后,GPIO0 口被拉高,继电

器闭合;再次点击“插座”按钮,设备显示不在线,此时 GPIO0 口被拉

低,继电器断开。

图 17 硬件实物连接图

Fig. 17 Hardware physical connection diagram

图 16 酱菜 APK Fig. 16 JC APK

Page 13: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

Vol.12 No.6

December 2019 梁子寒等:基于 ESP8266 的远程控制插座设计 1041

3.3 两种方案的对比

通过对上述两种方案的对比发现,以上两种方案都是很简单也很基础的基于 ESP8266 芯片的远程控

制插座的设计方案,两者在整体比较中既有相同点又存在差异。相同点:方案一和方案二的硬件电路图

完全相同,硬件设备也均是采用 NodeMCU 开发板。基本原理和功能也没有太大差异,最后都实现了通

过手机 App 客户端对插座的远程控制。软件方面,在开发时,采取的都是基于 ESP8266 的 SDK 开发方案。 不同点:两种方案的最大不同之处在于软件方面,在芯片开发过程中,第一种方案直接采用安信可

科技提供的官方 SDK 开发方案,比较常用,在 Eclipse 环境下编写程序,还要自行下载官方 Flash 工具,

而第二种方案,无需下载烧录工具,直接在 Arduino 环境下编程并上传到模块中;在手机 App 开发方面,

两种方案用两种不同的物联网平台,这两种物联网平台都可以直接作为服务器,为此设计带来了很大的

方便;在程序设计方面,方案一由于可以直接通过烧录官方固件实现模块的 WiFi 功能,所以程序设计比

较简单,只需某个特定模块或调用函数即可,而方案二则需要用户自己编写 Arduino 语言的程序代码;

在开发板引脚功能方面,方案一直接烧录固件,而固件默认的工作 I/O 口为 GPIO16 口,不好改动,方

案二在这一方面却很方便,只需改动程序中定义动作的 I/O 口即可;接入服务器的方式也是不同的,方

案一是通过烧录固件开发出开发板的 WiFi 功能,通过手机 App 与路由器直接连接,确保手机与模块之

间的通信,而方案二是通过改变烧录到模块里的程序使手机 App 和模块连接到同一网络,从而控制手机与

模块的通信。 方案一的服务器直接使用 AiSmart 手机的 App,先令手机和模块连接到同一个局域网建立第一次通

讯后手机才可以连接外网从而实现远距离控制。方案二是通过在模块里烧录自己建立的服务器程序,即

让模块作为服务器,通过注册的手机 App 的 APIkey 建立手机与模块之间的联系,然后手机在不与模块

连接同一局域网的情况下实现对插座的远距离控制。 通过对比发现,两种方案各有优势和劣势,但相对于其他远程控制方案,还是易懂且易操作的。

4 讨论与结论 本文先对 WiFi 功能的芯片进行介绍,并作出比较,结合各芯片的优缺点及其他因素,在综合比较中

最终确定采用 ESP8266 芯片。芯片选型结束后,硬件设备就已经接近准备好,并且对硬件部分的各个模

块做了详细介绍。最后只需将芯片模块、电源转换模块及继电器模块在印刷电路板(printed circuit board,PCB)上焊接到一起即可。硬件筹备完成后,然后进行软件部分的开发。其中,ESP8266 有多种开发方

式,通过比较选用了两种最基础的开发方式进行芯片开发,本次设计的手机 App 客户端都是采用官方平台

提供的免费服务器(乐鑫官方平台及酱菜创客),从而简化了开发手机 App 及自行编写程序代码这些操作。 此次设计因为选用了比较简单的方案,所以相对来说技术不是很成熟,主要可在以下几方面进行改进: 1)装备功能单一,只能实现最简单的开关控制功能,没有定时功能、检测功能等; 2)方案一只能通过 GPIO16 口进行控制,其他 I/O 口功能没有进行程序编码开发; 3)所选 NodeMCU 开发板体积大,不利于实物插座的安装; 4)此次设计只针对于一个插座,可以多控制几个 I/O 口动作,从而实现对某个插排的远程控制,方

便对某些电器的开关控制。 此次设计最大的问题是由于采用的手机 App 开发方案比较简单,所以导致系统测试过程中出现了结

果不稳定,时好时坏,也可能是由于线路接线不是很精确导致系统不稳定。希望以后能够做出更好的、

功能更多的智能插座,为人们的日常生活带来更大的便利。

Page 14: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

第12卷 第6期

2019 年 12 月 中国科技论文在线精品论文 1042

[参考文献] (References)

[1] 贾跃辉,金伟斌. 智能插座的发展及安全要求[J]. 日用电器,2017(S1):120-124.

JIA Y H, JIN W B. Development and safety requirements of intelligent sockets[J]. Electrical Appliances, 2017 (S1): 120-124.

(in Chinese)

[2] 王艳萍,迟宗涛. 基于手机 APP 的远程家电控制系统设计[J]. 单片机与嵌入式系统应用,2017,17(1):73-75.

WANG Y P, CHI Z T. Design of remote home appliance control system based on mobile phone APP[J]. Microcontrollers &

Embedded Systems, 2017, 17(1): 73-75. (in Chinese)

[3] 查鑫. 基于 Android 的移动智能终端远程控制系统的设计与实现[D]. 北京:北京邮电大学,2014.

ZHA X. Design and implementation of mobile intelligent terminal remote control system based on Android[D]. Beijing:

Beijing University of Posts and Telecommunications, 2014. (in Chinese)

[4] 高雄. 智能家居系统中智能插座的设计[J]. 信息技术,2016(10):168-171,174.

GAO X. Design of smart socket in intelligent home system[J]. Information Technology, 2016(10): 168-171, 174. (in Chinese)

[5] 刘继中. 一种基于 WiFi 的智能插座控制系统设计与实现[D]. 大连:大连海事大学,2016.

LIU J Z. Design and implementation of smart plug control system based on WiFi[D]. Dalian: Dalian Maritime University,

2016. (in Chinese)

[6] 陈海旺,张振娟,黄明. 智能家居中无线智能插座系统设计[J]. 电视技术,2013,37(21):80-83,91.

CHEN H W, ZHANG Z J, HUANG M. Design of wireless intelligent socket system in smart home[J]. Video Engineering,

2013, 37(21): 80-83, 91. (in Chinese)

[7] 屈良潘,唐曼玲,刘静. 基于 ESP8266 的 LED 灯无线远程控制设计[J]. 电子界,2017(9):179,181.

QU L P, TANG M L, LIU J. Design of LED lamp wireless remote control based on ESP8266[J]. Electronics, 2017(9): 179,

181. (in Chinese)

[8] 戴磊,李华,金翰林,等. 基于 ESP8266 的一种 WiFi 控制插座设计[J]. 装备制造技术,2017(4):12-13,23.

DAI L, LI H, JIN H L, et al. The design of a WiFi control socket based on ESP8266[J]. Equipment Manufacturing Technology,

2017(4): 12-13, 23. (in Chinese)

[9] 曹振民,陈年生,马强. 基于 ESP8266 的无线控制电路设计[J]. 工业控制计算机,2017,30(1):68-69.

CAO Z M, CHEN N S, MA Q. Design of wireless control circuit based on ESP8266[J]. Industrial Control Computer, 2017,

30(1): 68-69. (in Chinese)

[10] 刘奥川. 基于 WiFi 的智能插座检测系统[D]. 淮南:安徽理工大学,2016.

LIU A C. WiFi-based smart plug detection system[D]. Huainan: Anhui University of Science & Technology, 2016.

(in Chinese)

[11] 王浩,王东. 基于 NodeMCU 固件平台的 RGB 三色灯远程控制设计与实现[J]. 软件工程,2017,20(5):47-50.

WANG H, WANG D. Design and implementation of the RGB trichromatic lamp remote control based on the NodeMCU

firmware platform[J]. Software Engineer, 2017, 20(5): 47-50. (in Chinese)

[12] 纪亚萍. 基于 Wi-Fi SoC 的物联网平台设计[D]. 兰州:兰州大学,2015.

JI Y P. Design of internet of things platform based on Wi-Fi SoC[D]. Lanzhou: Lanzhou University, 2015. (in Chinese)

[13] GAO G H. Research and design on remote control of home furnishing automation based on the switch socket[C]//Proceedings of

the 2012 International Conference on Cybernetics and Informatics. Berlin: Springer-Verlag, 2012: 623-629.

[14] WANG Y Y. Remote control switch socket for intelligent home based on WiFi and PLC[J]. Advanced Materials Research,

2014, 971-973: 1304-1307.

[15] 宿迁学院. 基于 ESP8266 芯片的新型智能插座:中国,CN201620765331.9[P]. 2017-08-25.

Suqian College. New smart plug based on ESP8266 chip: China, CN201620765331.9[P]. 2017-08-25.

[16] 吕文雅. 基于 WiFi 技术的智能插座系统研究与设计[D]. 青岛:山东科技大学,2017.

Page 15: 基于 ESP8266 的远程控制插座设计 - paper.edu.cn · 者对国外家居产品的认可度更高一点[4]。 1 总体方案设计 1.1 系统总体方案的确定 基于ESP8266

Vol.12 No.6

December 2019 梁子寒等:基于 ESP8266 的远程控制插座设计 1043

LÜ W Y. Research and design of smart plug system based on WiFi technology[D]. Qingdao: Shandong University of Science

and Technology, 2017. (in Chinese)

[17] 孙岩. 人工智能、物联网背景下智能家居系统的思考[J]. 建筑电气,2019,38(8):60-63.

SUN Y. Thinking of smart home system under the background of artificial intelligence and Internet of Things[J]. Building

Electrical, 2019, 38(8): 60-63. (in Chinese)

[18] 花士林,陈雪娇,陈果. 智能家居自动打包垃圾桶设计[J]. 科技创新与应用,2019(25):39-41.

HUA S L, CHEN X J, CHEN G. Design of automatic packaging trash for smart home[J]. Technology Innovation and

Application, 2019(25): 39-41. (in Chinese)

[19] 刘龙飞. 基于物联网的智能家居系统安全可靠性研究[J]. 环境技术,2019,37(1):15-21.

LIU L F. Research on security and reliability of smart home system based on Internet of Things[J]. Environmental Technology,

2019, 37(1): 15-21. (in Chinese)

(责任编辑:段桃)


Recommended