esp8266部分
-
环境配置
第一次在Arduino IDE中使用esp8266需要进行环境配置:
为ESP8266安装Arduino IDE -
烧写程序(手机热点需要是打开状态)
#include <ESP8266WiFi.h>
#include <Arduino.h>
#include <Wire.h>
/*** 该工程可以在2.4.0版本esp8266库中运行,没在更高版本库中进行测试 ***/
const char *ssid = "iPhone";//自己热点或者wifi名称
const char *password = "11111111";//自己热点或者wifi密码
WiFiServer server(8888);//随便设置的数据
void setup()
{
Serial.begin(115200);
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(" connected");
server.begin();
Serial.printf("Web server started, open %s in a web browser\n", WiFi.localIP().toString().c_str());//在串口中查看ip地址,这个后面要用到
}
void loop()
{
server.begin();
while (WiFi.status() == WL_CONNECTED)
{
WiFiClient client = server.available(); //尝试建立客户对象
client.setTimeout(1);
if (client) //如果当前有客户可用
{
while (client.connected()) //如果客户端建立连接
{
if (client.available()) //等待有可读数据
{
String wifiClientData=client.readString();//电脑-->单片机
Serial.print(wifiClientData);//esp-->单片机
client.write("good");
}
}
}
}
}
- 电脑连接到热点或者wifi
- 打开网络调试助手进行电脑客户端和esp8266服务端的连接
款选部分进行设置,ip地址可以在arduino的串口监视器里查看,也可以通过电脑的ipconfig查看。如图为红色状态就是电脑端和esp8266连接成功了。
- 到这里esp部分的操作就完成了,可以断开esp和电脑之间的数据线,然后连接esp8266与Arduino了。
硬件连接部分
Esp8266--------arduino
3.3v--------------3.3v
GND-------------GND
TX----------------RX(软串口:13)
RX----------------TX(软串口:12)
Arduino部分
这一部分主要是写代码
-
写代码之前需要把开发板设置成自己的Arduino板,COM端口也要进行设置
-
代码:
void setup() {
Serial.begin(115200);
Serial.println("Hello,serial!");
// set the data rate for the SoftwareSerial port
Serial3.begin(115200);
Serial3.println("AT");
}
void loop() { // run over and over
if (Serial3.available()) {
Serial.write(Serial3.read());
}
if (Serial.available()) {
Serial3.write(Serial.read());
}
}//将其中的结束符调为NL和CR 波特率调为115200 发送AT时会收到回复OK
我这里使用的是硬串口,如果没有多余的硬串口可以设置软串口,代码如下:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(13, 12); // RX, TX,接esp的Tx,Rx
void setup() {
Serial.begin(115200);
Serial.println("Hello,serial!");
// set the data rate for the SoftwareSerial port
mySerial.begin(115200);
mySerial.println("AT");
}
void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}//将其中的结束符调为NL和CR 波特率调为115200 发送AT时会收到回复OK
- 编译后可以通过电脑无线发送数据给Arduino了,我这里还是用网络调试助手来调试:
注意,需要将红色框部分选择为如图模式。
END
版权声明:本文为CSDN博主「baiyangbeizi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baiyangbeizi/article/details/122168594
暂无评论