APP下载

基于Android移动平台的远程控制系统设计与实现

2020-12-01陈鑫李叶龙

电脑知识与技术 2020年29期
关键词:远程控制

陈鑫 李叶龙

摘要:以ESP8266-NodeMCU模块为核心硬件,以Android手机为控制终端,以SG90型舵机为被控对象,设计一种远程控制系统。本设计采用Blinker app及Arduino IDE作为软件开发工具,利用物联网接人工具Blinker app在手机端搭建人机交互界面,利用Arduino IDE提供的舵机函数实现舵机的转速控制,利用Arduino lDE提供的Blinker函数库中的WIFl连接函数实现ESP8266-NodeMCU模块与网络服务器的连接,并借助互联网与手机端的人机界面建立关联,由此实现手机对舵机的远程控制。

关键词:远程控制;NodeMCU;WIFl;Android

中圖分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)29-0080-02

随着现代信息技术的飞速发展,“互联网+”思想正逐步融各行各业,目前,信息技术已在企业、服务行业以及家庭生活等领域得到一定程度的应用。互联网是信息的重要传递媒介,智能移动平台被人们广泛使用,基于智能移动平台的远程控制技术,因其使用的便利性而被广泛应用于智能家居等领域。利用智能移动平台进行远程控制涉及多种技术,对于一般的电子爱好者而言,较难以在短时间内掌握。为此,以Android手机为控制终端,以ESP8266-NodeMCU WIFI模块为核心硬件,以舵机为被控对象,设计实现一种远程控制系统,进而为广大电子爱好者提供一种快速掌握该技术的借鉴案例。

1 总体方案

系统主要由Android手机、ESP8266-NodeMCU WIFI模块(简称NodeMCU模块)、SG90型舵机等硬件构成。其具体实现方案为:首先将舵机与NodeMCU模块的GPIO端子进行连接,可视其为舵机的驱动器,然后将NodeMCU模块与WIFI进行连接,实现NodeMCU模块与网络服务器间数据互通,最后用户在Android手机端通过人机界面,以互联网为媒介,向在线的NodeMCU模块发送指令,NodeMCU依据指令驱动舵机,进而实现对舵机远程控制。

2 核心硬件

2.1 NodeMCU模块

ESP8266-NodeMCU WIFI模块是一开源的物联网开发板,引脚如图1所示。内置了ESP8266-12型WIFI模块和NodeM-CU驱动模块,通常使用方便快捷的Lua语言或者Arduino IDE进行开发,在结构上设计了一个方便的USB数据线接口,可用micro USB数据线进行上传代码及供电,不需独立电源,使用方便(其原始版本的ESP8266-OIS型号,需进行FTDI转USB或USB转串口的开发步骤,且需要独立电源进行供电)。另外,其具有3.3V的电压调节器,可以被3.3V以上的电源驱动运行,共有30个不同功能的引脚,其有多个串口可以选用,有五处接地引脚GND,五处以上的vcc引脚,13个GPIO(通用1/0端口)引脚中除了GPI016只能进行读写以外,每个引脚都可以进行中断PWM或者I2C等功能。

本设计主要运用该模块强大的IOT(Internet of Things)功能,区别于一般的单片机,其最大的特点就在于,它可以连接互联网,可从服务器当中读取信息回传并处理,然后输出。

2.2 舵机及其控制原理

1)舵机结构

舵机主要由舵盘、位置传感器、减速齿轮组、直流电机、内部控制电路板(主体为信号调制芯片)构成。本设计采用SG90型舵机。工作时,其内部控制电路板对输入信号进行调制处理,驱动电机,带动变速齿轮,在输出轴上输出动作,位置检测器(角度传感器)是它的输入传感器,该传感器会对输出轴所获得的速度及方向进行反馈,控制电路板依据反馈信息实时调节输入信号,从而实现舵机的闭环式控制方式,提高了控制精度。其控制原理如图2所示。

2)舵机控制方式

本设计中采用脉宽调制((PWM)信号控制舵机,即脉冲信号。舵机的控制信号周期为20 ms的脉宽调制信号,其中脉宽为0.5ms-2.5ms,相应的舵盘位置从0-180 度,二者间满足线性关系。当给予舵机一定的脉宽时,舵机的输出轴就会保持一定的对应角度,无论外接转矩在安全范围内如何改变,直到接收到下一个脉冲信号才会输出新的对应角度。脉宽与转角间对应关系如图3所示。

3 系统软件部分

3.1 Arduino IDE

本设计采用Arduino IDE作为开发工具,进行舵机驱动程序的开发。Arduino IDE提供了一种集成化的开发环境,包括代码编辑器、编译器、调试器、串口监视器、图形用户界面等,提供了代码编写、分析、编译和上传等一体化的服务功能。其用户界面如图4所示。使用时,只需要在白色区域内,编辑好程序代码,点击(√)功能按钮,软件便开始编译程序,若编译无误,则可以连接USB数据线,点击(→)后开始上传,上传完成后,界面也会显示“上传成功”字样。

Arduino IDE本身集成了十分丰富的库文件、例程等,编写程序十分方便。本设计中主要使用其提供的Blinker函数库及舵机函数库(Servo.h)。利用舵机函数库(Servo.h)实现舵机的转速控制,该函数库已将各个脉宽对应的角度整理恰当,只需要使用者在其函数中输入需求的角度,就可以轻而易举的精确操控舵机。另外,在调整舵机转速方面,Arduino IDE并没有专门的库文件可以调用,为此利用for函数编写延时程序的方式实现调速目的。

在Blinker函数库中,使用者可以轻松调用WIFI连接函数,在函数内输入WIFI的SSID以及密码,模块上电工作时就可自动连接对应WIFI,在Blinker的按键函数中,输入按键的“数据键名”,以及舵机所对应的运行代码,此“数据键名”需与手机端人机交互界面内“按键名”相对应,在这些函数的帮助下,即可以轻松连接至互联网。

3.2 手机端应用界面开发

Blinker app是一款专业的物联网接人工具,可在人机之间搭建高效的交互平台,使用Blinker可以方便、快捷的控制硬件设备,非常适合以Arduino,ESP8266-NodeMCU,Raspberry Pi(树莓派)等为核心的智能家居项目的开发。其用户自定义界面如图5所示。

在Blinker中,用户可以根据需要对控制界面进行编辑,首先选择所需的自定义界面,进入到自定义界面之后,依据需要添加按键,并根据开发板程序内部的“数据键名”,定义各按键的键名,于是当手机端与互联网连接后,使用者只需进入用户界面,点击按键,Blinker App将对应按钮的数据键名以及其所包含的信息上传至服务器,而另一端与互联网连接的NodeM-CU开发板读取服务器上变动的按键数据,并运行数据键名所对应的子程序,由此实现对硬件的控制。

4 系统实现过程

首先将Arduino IDE中写好的Blinker例程、舵机驱动代码写入ESP8266-NodeMCUWIFI模块,断电后再上电,稍等片刻,模块即可自动连接到设置好的WIFI;将手机连接WIFI(4G网络),打开应用界面,进行按键操作,按键信息上传至服务器,ESP8266-12子模块读取服务器上按键信息并回传NodeMCU子模块,NodeMCU模块收到按键信息后,运行该按键信息所对应舵机驱动代码,进而实现对舵机的远程控制。系统实现流程如

参考文献:

[1]寇世文.一種基于NodeMCU的智能锁控制系统[Jl.电子技术与软件工程,2018(10):100.

[2]戴宇轩.基于NodeMCU与Arduino的远程控制智能家居系统的设计与实现——以电热水器远程温控为例[J].电脑知识与技术,2018,14(9):176-177,181.

[3] Tasong A C,Abao R P.Design and development of an IoT ap-plication with visual analytics for water consumption monitor-ing[J].Procedia Computer Science,2019,157:205-213.

[4]陈玲君.基于物联网的远程控制智能家居系统设计与实现[J].山东农业大学学报f自然科学版),2016,47(1):88-91.

[5]李玮琳.远程智能家居控制系统的设计与实现[J].数字技术与应用,2015(12):183.

[6]陈国童,邱兴阳.基于WIFl的Android手机智能家居控制[J].辽宁大学学报(自然科学版),2020,47(1):91-96.

【通联编辑:唐一东】

作者简介:陈鑫(1999-),男,本科生,研究方向为机械制造及其自动化;通信作者:李叶龙(1978-),男,讲师,博士,主要从事机电一体化技术研究。

猜你喜欢

远程控制
基于GSM的远程控制系统