arduino使用esp2866

首先这里使用的是这一款
arduino使用esp2866_第1张图片
这里说明一下如何使用arduino的编译器
文件-首选项
arduino使用esp2866_第2张图片
在这里输入这样的网址:http://arduino.esp8266.com/stable/package_esp8266com_index.json
确定后在你选择开发板的地方进去开发板管理器
arduino使用esp2866_第3张图片
搜索esp8266后安装
arduino使用esp2866_第4张图片
我这里选的是这一块板子
在这里插入图片描述
这里是引脚对应的序号
在这里插入图片描述
接下来是代码

/*
 *  This sketch demonstrates how to set up a simple HTTP-like server.
 *  The server will set a GPIO pin depending on the request
 *    http://server_ip/gpio/0 will set the GPIO2 low,
 *    http://server_ip/gpio/1 will set the GPIO2 high
 *  server_ip is the IP address of the ESP8266 module, will be 
 *  printed to Serial when the module is connected.
 */

#include 

const char* ssid = "XX315_ACM_ICPC";//wifi名称
const char* password = "acm54321";//wifi密码


WiFiServer server(80);//开启80端口

void setup() {
  Serial.begin(115200);//开启串口监视器
  delay(10);

  // prepare GPIO2
  pinMode(2, OUTPUT);//设置2号(D4)输出
  digitalWrite(2, 0);//默认low
  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);//使用名称和密码链接wifi
  
  while (WiFi.status() != WL_CONNECTED) {//如果连接成功跳出循环
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Start the server
  server.begin();//开启服务器
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());//输出板子的ip
}

void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {//确认是否已经连接如果没连接则直接退出函数,进行下一次函数循环
    return;
  }
  
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){//等待接收到信息
    delay(1);
  }
  
  // 接收到信号
  String req = client.readStringUntil('\r');//把接收到的信息存储
  Serial.println(req);//打印
  client.flush();//清空流的缓存,防止阻塞接收下一个信号
  
  // 开始处理收到的信号
  int val;
  if (req.indexOf("/gpio/0") != -1)//后缀是0
    val = 0;
  else if (req.indexOf("/gpio/1") != -1)//后缀是1
    val = 1;
  else {//其他情况
//    Serial.println("invalid request");
//    client.stop();
//    return;
    val=1;
  }

  // Set GPIO2 according to the request
  digitalWrite(2, val);//控制亮暗
  
  client.flush();//情况流

  // 准备返回报文段
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "\n";

  // Send the response to the client
  client.print(s);//发送返回报文段
  delay(1);
  Serial.println("Client disonnected");
}

这样我们就可以传输0和1了,对于程序员来说能够传输0和1也就等于能够传输一切数据了

你可能感兴趣的:(esp8266)