Arduino+ESP8266WIFI(1)——模块测试

一直想用Arduino玩玩物联网这类的电路,现在一般用的是arduino+esp8266模块,之前在网上看到arduino好像推出了官方集成wifi模块的uno板子,见下图,就买了一块WeMos D1回来试试,但苦于资料太少,参考国外论坛上找的一些帖子,但始终还是没有做出来,wifi 连接上了,但是数据始终上传不上去,可能是板子的问题,可能是本身技术的问题,如果有网友有WeMos D1方面的开发经验,欢迎分享学习。

WeMos D1

由于用WeMos D1一直没做出来,只好用最原始的方法,Arduino+ESP8266wifi模块来实现。模块很小,见下图,功能很强大,价格十几块。

ESP8266

在使用它之前先对模块进行测试

所需工具:

软件:串口调试工具(点击下载
硬件:ESP8266+USB转TTL下载器

接线方式:

下图是ESP8266各引脚的名称

引脚

下图是ESP8266与下载器的连接方式:

TX–>RX GND–>GND
CH_PD–>3.3V /
/ /
VCC–>3.3V RX–>TX

接线方式

指令测试:

1.将ESP8266模块与电脑连接

在计算机设备管理器中查看端口,是否识别;打开串口测试软件sscom42.exe,设置端口和波特率(ESP8266模块有9600和115200两种波特率),打开串口。如下图:

这里写图片描述

2.AT指令:

在软件下方输入指令AT(大小写均可),点击发送,窗口返回OK,开始AT指令模式(AT指令集:点击下载

这里写图片描述

3.AT+RST

发送指令重启模块,返回以下信息(或相近信息)表示重启重成功

这里写图片描述

4.模式设置

ESP8266有三种模式
第一种是客户端模式:Station
第二种是接入点模式:AP
第三种是两种模式共存:Station+AP

发送指令:AT+CWMODE=3
返回:OK
表示切换到第三种模式(前两种模式切换方式一样)

5.测试连接wifi

发送指令:AT+CWJAP=”SSID的信号名”,”密码”

如:AT+CWJAP=”wuxiaolang”,”wuxiaolang123”
返回:

AT+CWJAP=”1072”,”w6z5x4w3s2g1”
WIFI CONNECTED
WIFI GOT IP
OK

则表示连接wifi成功。

建议:

在之后的实验中,可以先用手机热点或者电脑热点来测试,因为如果测试不通,不能确定是哪一步出了问题的情况下,手机热点至少可以查看是否有新的设备接入,如果没有设备接入,说明在wifi连接上出了问题。

参考资料:

http://www.geek-workshop.com/thread-25582-1-1.html
谢谢大神。


wifi系列下一篇:

《Arduino+ESP8266WIFI(2)——DHT11温湿度数据自动上传》
### ESP8266 WiFi模块Arduino集成开发 #### 一、环境配置 为了使ESP8266连接Wi-Fi并使用Arduino IDE编程,需先安装必要的软件包和支持库。打开Arduino IDE,在首选项设置中添加ESP8266板管理器URL[^1]。 ```plaintext http://arduino.esp8266.com/stable/package_esp8266com_index.json ``` 随后通过`工具 -> 开发板 -> 板子管理器`来安装ESP8266平台支持文件。完成上述操作之后可以选择对应的ESP8266型号作为当前使用的开发板。 #### 二、基本示例:连接至无线网络 下面给出一段简单的程序用于展示如何让ESP8266设备接入指定SSID和密码的Wi-Fi网络: ```cpp #include <ESP8266WiFi.h> const char* ssid = "your_SSID"; // 替换成实际路由器名称 const char* password = "your_PASSWORD";// 替换成对应密码 void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); } Serial.println("Connected!"); } void loop() {} ``` 此段代码实现了启动时尝试建立到给定AP热点之间的关联过程,并持续打印状态直到成功连网为止。 #### 三、高级应用:TCP客户端通信 对于更复杂的应用场景比如远程数据传输,则需要用到更高层次的功能——即创建一个TCP Client实例向服务器发送请求或接收响应消息。这里提供了一个利用`WiFiClient`类实现HTTP GET请求的例子[^2]: ```cpp #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> // 定义目标网站地址以及端口号 IPAddress serverIP(192, 168, 1, 177); // IP 地址形式的目标主机 int port = 80; // HTTP 默认端口 char* ssid = "your_SSID"; char* pass = "your_PASS"; void setup(){ Serial.begin(115200); WiFi.begin(ssid,pass); // 等待直至 Wi-Fi 成功连接... while(WiFi.status()!=WL_CONNECTED){ delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); } void loop(){ WiFiClient client; const String request="GET /index.html HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n"; if(client.connect(serverIP,port)){ Serial.println("connected."); client.print(request); while(client.connected()){ String line=client.readStringUntil('\r'); if(line=="\r"){ break; }else{ Serial.print(line); } } client.stop(); } delay(10000); // 每隔十秒执行一次查询动作 } ``` 这段脚本展示了怎样构建完整的HTTP协议报文并通过socket接口传递出去;同时也包含了处理来自webserver回复内容的方法。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值