- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
⽤⼿机控制Arduino上的LED灯--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应⽤模式为Station
AT+CWMODE=3
//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码
AT+CWJAP=SSID,Password
//连接单连模式
AT+CIPMUX=0
//设置为透传模式
AT+CIPMODE=1
//进⼊透传模式,并保存(进⼊后模块就⼀直为透传模式,需要退出则取消发送新⾏,发送+++)
,IP地址为远端设备地址,例:我⽤⼿机控制,那么我的⼿机在路由器WIFI上的IP地址为192.168.1.110
AT+SAVETRANSLINK=1,”192.168.1.110”,8080,”TCP”
ESP8266-AT固件版本V0.9.5.2版本(⽼版本固件)
//设置WiFi应⽤模式为Station
AT+CWMODE=1
//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码
AT+CWJAP=SSID,Password
//连接⼿机端服务器,IP地址为远端设备地址,例:我⽤⼿机控制,那么我的⼿机在路由器WIFI上的IP地址为192.168.1.110
AT+CIPSTART=TCP,192.168.1.110,8181
//设置为透传模式
AT+CIPMODE=1
//进⼊透传模式(进⼊后模块就⼀直为透传模式,需要退出则取消发送新⾏,发送+++)
AT+CIPSEND
上述设置完成后,模块⾃动成为透传模块。↑↑
第⼆步:将Arduino 上传LED控制程序。(注意板⼦型号和COM⼝号不要选错)
==Arduino控制程序==
int led_pin = 7;
//定义⼀个10字节的字符型数组变量ch
char ch[10];
void setup()
{
pinMode(led_pin,OUTPUT);
Serial.begin(115200);
}
void loop()
{
if (Serial.available())// 检查是否⾄少有⼀个可⽤字符
{
for(int i=0;i9;i++) // 此时i只能取前 位,第10位是结束符\0
{
ch[i]= char(Serial.read());// 读取串⼝数据
delay(1);
}
if(strncmp(ch,on,2)==0)// 判断ch前2个字符是否是on
{
digitalWrite(led_pin, HIGH);// 点亮LED
Serial.println(ON);// 串⼝打印ON
}
原创力文档


文档评论(0)