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

注:对于ESP8266开源技术感兴趣的可以加群,我们一起探索交流学习,群号:579932824。群名:ESP8266开源技术交流群。

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

程序流程:

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

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

#include <Arduino.h>  
#include <ESP8266WiFi.h>  
#include <ESP8266WiFiMulti.h>  
#include <ESP8266HTTPClient.h>

3、以宏定义的形式设定地址,端口和wifi名称,密码。

#define HTTPIP      "14.215.177.37"   //baidu的ip  
#define HTTPPORT    80  
#define WIFINAME    "你的wifi名称"  
#define WIFIPW      "wifi密码"

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

  Serial.begin(115200);  
  Serial.println();  
  Serial.println("Connecting");  
  WiFiMulti.addAP(WIFINAME,WIFIPW);  
  while(WiFiMulti.run()!=WL_CONNECTED)  
  {  
    delay(500);  
    Serial.print(".");  
  }  
  Serial.println("Connected!");

5、连接指定的网页服务器IP,这里的"/"是指页面文件名称,例如"index.jsp""main.PHP"等。

http.begin(HTTPIP,HTTPPORT,"/"); 

6、获取代码,如果返回值为200则表示请求网页成功,打印页面。

int Code = http.GET();  
if(Code)  
{  
    Serial.printf("HTTP Code:%d\n",Code);  
    if(Code == 200)  
    {  
      String payload = http.getString();  
      Serial.println(payload);  
    }  
    else  
    {  
       Serial.println("Couldn't link to server");  
    }
}

整体代码如下:

#include <Arduino.h>  
#include <ESP8266WiFi.h>  
#include <ESP8266WiFiMulti.h>  
#include <ESP8266HTTPClient.h>  
ESP8266WiFiMulti WiFiMulti;  
  
#define HTTPIP      "14.215.177.37"//baidu  
#define HTTPPORT    80  
#define WIFINAME    "*******"  
#define WIFIPW      "*****"  
  
  
void setup() {  
  // put your setup code here, to run once:  
  Serial.begin(115200);  
  Serial.println();  
  Serial.println("Connecting");  
  WiFiMulti.addAP(WIFINAME,WIFIPW);  
  while(WiFiMulti.run()!=WL_CONNECTED)  
  {  
    delay(500);  
    Serial.print(".");  
  }  
  Serial.println("Connected!");  
    
}  
  
void loop() {  
  // put your main code here, to run repeatedly:  
  HTTPClient http;  
  Serial.println("Try link to http.");  
  http.begin(HTTPIP,HTTPPORT,"/");  
  int Code = http.GET();  
  if(Code)  
  {  
    Serial.printf("HTTP Code:%d\n",Code);  
    if(Code == 200)  
    {  
      String payload = http.getString();  
      Serial.println(payload);  
    }  
    else  
    {  
      Serial.println("Couldn't link to server");  
    }  
  }  
  
  delay(5000);  
}  

 

  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Lanson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值