Arduino 实现手机WIFI控制LED灯

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编号:

密级:内部公开《手机WIFI控制LED灯》技术说明

一、方案概要

WIFI模块的串口和Arduino控制板的2号串口连接,并将WIFI模块设定为AP模式,就可以通过手机连上此WIFI模块来控制Arduino控制板上的LED指示灯。

硬件准备:

1、Arduino MEGA 2560 控制板 --- 1块

2、WIFI模块(HLK-RM04) --- 1块

3、5V电源适配器 --- 1个

4、USB AB型转换线 --- 1根

5、RS232转USB转换线 --- 1根

6、杜邦线 --- 2根

7、手机

二、实现过程

WIFI模块调试:

Wifi模块相关资料已经归档到此技术方案的 [HLK-RM04 wifi模块] 文件夹中,可以参阅此wifi模块的其他功能。下面来说明实现此方案时,需要对该模块进行的具体调试方法(通过串口配置)。

步骤:

1、先确保模块是出厂默认值。恢复出厂设置方法,给模块上电,等待 35 秒钟。然后按住wifi模块上的Default按钮超过 6 秒钟即可。

图 1

2、重新给模块上电,等待重新给模块上电,等待 35s ,待模块上的灯闪烁后。用 DB9 串口和电脑的串口用直连线连接起来。或者直接用 USB 转串口线连接到 HLK-RM04 的底板。如图1所示。打开电脑的设备管理查看端口号,如图2所示。

图 2

3、短按“ E xit/ Default”按钮,打开配置软件,选择串口号,点击搜索模块按钮,打开配置软件,选择串口号,点击搜索模块,在命令执行与回复返回框里有 (:Found Device at COM1(115200)! 消息出现,证明找到模块。

图 3

4、配置参数:

工作模式选择:无线 AP 模式

网络协议选择: TCP 服务器

远端 IP:作为服务器的时候远端 IP 不起作用

端口:TCP 服务开启的监听端口设为 8080

串口参数:根据自己的需要修改成自己需要的参数

网络参数:IP: 这与默认的不同。默认的是子网掩码:如图4所示,选择好配置的参数后,提交配置。

图 4

5、等待几秒后,用手机搜索空间内的WIFI信号会发现,刚才所创建的WIFI,如图5输入设定的密码后就可以连上WIFI了。

图 5

6、现在可以进行wifi转串口的测试了。在电脑端打开串口通信软件,此例中使用的是Arduino IDE的串口监视器,注意串口波特率需和图4中的设置一致。手机端需下载TCP测试工具App。测试结果OK,如图6所示。

图 6

接线原理:

本实验的接线方式非常简单,将wifi模块的串口的RX、TX和Arduino控制板的2号串口的RX、TX进行交叉连接即可。wifi模块的RX接控制板的TX,wifi模块的TX接控制板的RX。

程序流程:

Arduino控制板的2号串口接收到“on”,控制板的13号脚输出高电平,点亮LED灯;当接收到“off”,控制板的13号引脚输出低电平,熄灭LED灯。下面是具体的代码。

String inString = "";

int LED = 13; // 控制13脚的LED灯

void setup() {

// put your setup code here, to run once:

pinMode(LED, OUTPUT);

(9600);

(115200);

}

void loop() {

// put your main code here, to run repeatedly:

while( () )

{

char c = ();

inString += c;

if( c == '\n')

(inString);

}

if( inString == "on" )

{

digitalWrite(LED, HIGH);

}

else if( inString == "off")

{

digitalWrite(LED, LOW);

}

else if(inString == "blink")

{

for(int i = 0; i <= 5; i++) {

digitalWrite(LED, HIGH); delay(500);

digitalWrite(LED, LOW); delay(500);

}

}

delay(1000);

inString = "";

}

附一张整体效果图:

相关文档
最新文档