Arduino:ESP32 WIFI 获取网页内容并显示在OLED上

让ESP32通过网络访问Web Server指定网页,并将内容显示在显示屏上应该是个很实用的应用场景。

今天在家休息,手头正好有一台树莓派和一个小OLED做这个实验。树莓派连接到家里的WIFI上,并sudo apt-get install apache2,让树莓派充当网页服务器。在/var/www/html下新建了a.html,内容就写TEST,看看是啥结果。

#include <WiFi.h>
#include <HTTPClient.h>
HTTPClient http;

#include "SSD1306.h"
SSD1306 display(0x3c, 21, 22);

unsigned long startTime = millis();

void setup() {

  //Serial.begin(115200);

  display.init();
  display.setFont(ArialMT_Plain_16);
  display.drawString(0, 0, "Starting...");
  display.display();

  WiFi.mode(WIFI_STA); //设置为STA模式
  WiFi.disconnect();   //断开当前可能的连接
  delay(1000);

  const char *ssid = "WIFI名称"; //你的网络名称,区分大小写
  const char *password = "****马赛克****"; //你的网络密码

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) //等待网络连接成功
  {
    if (millis() - startTime >= 15000) // 15秒连接超时
    {
      //Serial.println("Timed Out...");
      display.clear();
      display.drawString(0, 0, "Timed Out...");
      display.display();
      
      break;
    }
    else
    {
      display.clear();
      display.drawString(0, 0, "Connecting....");
      display.display();      
    }

    delay(500);
  }

}

void loop() {

  if (WiFi.status() == WL_CONNECTED)
  {
    http.begin("http://192.168.1.9/a.html"); // 访问指定URL

    int httpCode = http.GET();
    if (httpCode == HTTP_CODE_OK) {
      String pageData = http.getString();

      //Serial.println(pageData); // 网页内容

      display.clear();
      display.drawString(0, 0, pageData);
      display.display();
    }
    else
    {
      display.clear();
      display.drawString(0, 0, "GET Error.");
      display.display();
    }

    http.end();
  }
  else
  {
    display.clear();
    display.drawString(0, 0, "WIFI Error.");
    display.display();

  }

  delay(5000);
}

  • 5
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ki1381

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

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

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

打赏作者

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

抵扣说明:

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

余额充值