您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 用手机控制Arduino上的LED灯(使用ESP8266模块的AT指令方式)
用手机控制Arduino上的LED灯(使用ESP8266模块的AT指令方式)ESP8266的设置方法五花八门,网上各种都有,让人眼花缭乱。对于Arduino新手来说ESP8266入门的话相对有点复杂。一时半会儿难以理解。不过,这不能影响到ESP8266的强大,通过对ESP8266无线模块在Arduino上的AT指令方式的学习,我们知道了,ESP8266可以设置成自动进入透传模式。让ESP8266无线模块做服务端,来实现我们所需要的功能。现在,我们将通过这一个功能,让手机和ESP8266进行互相通信,并控制Arduino上的LED灯。(原理是让手机和ESP8266无线模块在同一个WIFI网络里,连接同一个路由器,ESP8266为客户端、手机建立服务端)。通过此教程示例让创客进一步了解和掌握ESP8266的使用。所需材料:arduino主控板一块ESP8266无线模块一个LED发光二极管一个220欧姆电阻一个小面包板一个杜邦线若干手机一部(安卓手机)第一步:通过USB-TTL连接ESP8266设置AT指令,保存透传模式。(整个实验的关键!!)==接线方式==*VCC—-3.3*GND–GND*CH_PD–3.3*RX–TX*TX–RX==设置方式==AT指令(按照您的模块固件版本,选择AT指令进行设置):ESP8266-AT固件版本V1.0以上版本(ESP8266为最新AT固件版本:1.5.4.1)//设置WiFi应用模式为StationAT+CWMODE=3//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码AT+CWJAP=SSID,Password//连接单连模式AT+CIPMUX=0//设置为透传模式AT+CIPMODE=1//进入透传模式,并保存(进入后模块就一直为透传模式,需要退出则取消发送新行,发送+++),IP地址为远端设备地址,例:我用手机控制,那么我的手机在路由器WIFI上的IP地址为192.168.1.110AT+SAVETRANSLINK=1,”192.168.1.110”,8080,”TCP”ESP8266-AT固件版本V0.9.5.2版本(老版本固件)//设置WiFi应用模式为StationAT+CWMODE=1//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码AT+CWJAP=SSID,Password//连接手机端服务器,IP地址为远端设备地址,例:我用手机控制,那么我的手机在路由器WIFI上的IP地址为192.168.1.110AT+CIPSTART=TCP,192.168.1.110,8181//设置为透传模式AT+CIPMODE=1//进入透传模式(进入后模块就一直为透传模式,需要退出则取消发送新行,发送+++)AT+CIPSEND上述设置完成后,模块自动成为透传模块。↑↑第二步:将Arduino上传LED控制程序。(注意板子型号和COM口号不要选错)==Arduino控制程序==intled_pin=7;//定义一个10字节的字符型数组变量chcharch[10];voidsetup(){pinMode(led_pin,OUTPUT);Serial.begin(115200);}voidloop(){if(Serial.available())//检查是否至少有一个可用字符{for(inti=0;i9;i++)//此时i只能取前9位,第10位是结束符\0{ch[i]=char(Serial.read());//读取串口数据delay(1);}if(strncmp(ch,on,2)==0)//判断ch前2个字符是否是on{digitalWrite(led_pin,HIGH);//点亮LEDSerial.println(ON);//串口打印ON}elseif(strncmp(ch,off,3)==0)//判断ch前2个字符是否是off{digitalWrite(led_pin,LOW);//熄灭LEDSerial.println(OFF);//串口打印OFF}}}第三步:将ESP8266、LED灯Arduino连接。(接线不要接错了)在Arduino上再连接一个LED灯,我程序中使用的是PIN7引脚。(连接LED灯需要在正极连接一个220欧姆的电阻)。*VCC—-3.3*GND–GND*CH_PD–3.3*RX–TX*TX–RXD11——LED正极GND—–LED负极第四步:打开“有人网络助手”APP(版本不同可能略有差异),添加一个TCPSERVER,端口号要保持一致(检查设置)1、打开网络调试助手,点击TCPSERVER—-配置-设置端口号2、当开启服务端后3、当开启服务端后,AT指令在PC端设置连接手机服务器4、在发送框内发送”on”即可点亮Arduino板载LED灯。4、在发送框内发送”off”即可熄灭Arduino板载LED灯。提醒事项:1、如果ESP8266没有出现在服务端(手机端),请检查手机和ESP8266是否连接在同一路由器上。2、该小实验中:透传模式一定要记得保存,不保存的话,重新上电就没法自动进入透传模式了,建议您可以先去了解一下ESP8266的使用方法后再尝试本实验。3、IP地址为手机在路由器WIFI上的IP地址,不要填错了。4、手机上的网络调试助手,发送框发送的为小写的”on”、“off”,反馈为大写的”ON”、”OFF”。实验思维扩展:通过此次小实验,我们成功的实现了,手机控制LED灯,同样的道理,我们可不可以接一个其他模块,修改Arduino控制代码,是否一样能控制。如果连接一个继电器,我们是否可以控制家里的大功率用电器了呢?往后我们要尝试更多的模块,实现更多的功能。
本文标题:用手机控制Arduino上的LED灯(使用ESP8266模块的AT指令方式)
链接地址:https://www.777doc.com/doc-4249744 .html