用arduino IDE开发esp8266
被临时通知开发一个网络传输数据,于是用起我好旧不用的esp8266,记得当初大一时候第一次使用网络使用是stm32+esp8266,比现在用乐鑫的node mcu难,这玩意就像python一样,真不难。说实话第一次使用并且直接上手,在此记录一下。
一个实例,下面是代码,可以先让你体验一下。有注释
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#ifndef STASSID
#define STASSID "your-ssid"
#define STAPSK "your-password"
#endif
const char* ssid = "HUAWEI Mate X2"; //你的WIFI名字
const char* password = "jidianchedui"; //密码
const char* host = "192.168.1.109"; //你电脑的IP地址
const uint16_t port = 8080; //你使用的端口号
ESP8266WiFiMulti WiFiMulti;
void setup() { //相当于Init()吧,初始化的
Serial.begin(115200);
// We start by connecting to a WiFi network
WiFi.mode(WIFI_STA);
WiFiMulti.addAP(ssid, password);
Serial.println();
Serial.println();
Serial.print("Wait for WiFi... ");
while (WiFiMulti.run() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
delay(500);
}
void loop() { //我觉得相当于main()
Serial.print("connecting to ");
Serial.print(host);
Serial.print(':');
Serial.println(port);
// Use WiFiClient class to create TCP connections
WiFiClient client;
if (!client.connect(host, port)) { //等待连接
Serial.println("connection failed");
Serial.println("wait 5 sec...");
delay(5000);
return;
}
client.println("hello from ESP8266");//连接成功后将会发送这个"hello from ESP8266"
Serial.println("receiving from remote server");//读取你通过电脑网路助手发送的一行值
String line = client.readStringUntil('\r');
Serial.println(line);
Serial.println("closing connection");
client.stop();
Serial.println("wait 5 sec...");//延时5s
delay(5000);
}
注意事项:
const char* host = “192.168.1.109”; //你电脑的IP地址
const uint16_t port =8080; //你使用的端口号
你电脑的IP是路由器动态分配的,所以你电脑每次开机IP值可能不一样,查看电脑IP值可以:cmd+输入命令ipconfig
,端口号的话可以自己设置,一般设置8080就行了,保证最后和PC的网络调试助手端口助手一致就行
具体调试的时候可以用一个串口助手一个网络助手,这样就可以看信息啦。
网络有两个模式AP,STA
简单说一下吧
AP模式: Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。AP和AP之间允许相互连接
Sta模式: Station, 类似于无线终端,sta本身并不接受无线的接入,它可以连接到AP,一般无线网卡即工作在该模式。