Arduino:ESP32 WIFI Webページのコンテンツを取得してOLEDに表示

ESP32がネットワークを介してWebサーバーの指定されたWebページにアクセスし、コンテンツを表示画面に表示するのは、非常に実用的なアプリケーションシナリオです。

今日は家で休んでいますが、私はこの実験を行うためのRaspberry Piと小さなOLEDを持っています。Raspberry Piを自宅のWIFIに接続し、sudo apt-get install apache2を使用して、Raspberry PiをWebサーバーとして機能させます。/ 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);
}

122件の元の記事を公開 61のよう 訪問数530,000以上

おすすめ

転載: blog.csdn.net/ki1381/article/details/88625039