WiFi-ESP8266入门开发(三)-网页客户端

来源:互联网 发布:阿苏拉捏脸数据 编辑:程序博客网 时间:2024/05/16 18:29

ESP8266可以直接作为一个网页客户端来使用,封装的库中提供函数以快速配置ESP8266为一个网页客户端,能够直接获取网页服务端的代码。例如打开百度首页,通过串口返回所有html代码。这里暂未设置DNS服务因此需要通过IP直接访问。

程序流程:

1、连接NodeMCU板子,打开Arduino IDE,选择好开发板型号和串口号。

2、新建ino文件,添加头文件。

  1. #include <Arduino.h>  
  2. #include <ESP8266WiFi.h>  
  3. #include <ESP8266WiFiMulti.h>  
  4. #include <ESP8266HTTPClient.h>
3、以宏定义的形式设定地址,端口和wifi名称,密码。

  1. #define HTTPIP      "14.215.177.37"   //baidu的ip  
  2. #define HTTPPORT    80  
  3. #define WIFINAME    "你的wifi名称"  
  4. #define WIFIPW      "wifi密码"</span>

4、配置串口并尝试连接Wifi。

  1. Serial.begin(115200);  
  2.   Serial.println();  
  3.   Serial.println("Connecting");  
  4.   WiFiMulti.addAP(WIFINAME,WIFIPW);  
  5.   while(WiFiMulti.run()!=WL_CONNECTED)  
  6.   {  
  7.     delay(500);  
  8.     Serial.print(".");  
  9.   }  
  10.   Serial.println("Connected!");
5、连接指定的网页服务器IP,这里的"/"是指页面文件名称,例如"index.jsp""main.PHP"等。

  1. http.begin(HTTPIP,HTTPPORT,"/"); 
6、获取代码,如果返回值为200则表示请求网页成功,打印页面。

  1. int Code = http.GET();  
  2. if(Code)  
  3. {  
  4.     Serial.printf("HTTP Code:%d\n",Code);  
  5.     if(Code == 200)  
  6.     {  
  7.       String payload = http.getString();  
  8.       Serial.println(payload);  
  9.     }  
  10.     else  
  11. {  
  12.    Serial.println("Couldn't link to server");  
  13. }
整体代码如下:

  1. #include <Arduino.h>  
  2. #include <ESP8266WiFi.h>  
  3. #include <ESP8266WiFiMulti.h>  
  4. #include <ESP8266HTTPClient.h>  
  5. ESP8266WiFiMulti WiFiMulti;  
  6.   
  7. #define HTTPIP      "14.215.177.37"//baidu  
  8. #define HTTPPORT    80  
  9. #define WIFINAME    "*******"  
  10. #define WIFIPW      "*****"  
  11.   
  12.   
  13. void setup() {  
  14.   // put your setup code here, to run once:  
  15.   Serial.begin(115200);  
  16.   Serial.println();  
  17.   Serial.println("Connecting");  
  18.   WiFiMulti.addAP(WIFINAME,WIFIPW);  
  19.   while(WiFiMulti.run()!=WL_CONNECTED)  
  20.   {  
  21.     delay(500);  
  22.     Serial.print(".");  
  23.   }  
  24.   Serial.println("Connected!");  
  25.     
  26. }  
  27.   
  28. void loop() {  
  29.   // put your main code here, to run repeatedly:  
  30. HTTPClient http;  
  31. Serial.println("Try link to http.");  
  32. http.begin(HTTPIP,HTTPPORT,"/");  
  33. int Code = http.GET();  
  34. if(Code)  
  35. {  
  36.     Serial.printf("HTTP Code:%d\n",Code);  
  37.     if(Code == 200)  
  38.     {  
  39.       String payload = http.getString();  
  40.       Serial.println(payload);  
  41.     }  
  42.     else  
  43. {  
  44.   Serial.println("Couldn't link to server");  
  45. }  
  46. }  
  47.   
  48.  delay(5000);  
  49. }  




原创粉丝点击