PR

【ESP32】サーバー上のテキストファイルを読み取る方法

Rintaが書いた

こんにちは。今回はesp32でサーバー上のテキストファイル(.txt)を読み取る方法を書いていきます。
何か値を外部から読み取る際に最適です。

スポンサーリンク
スポンサーリンク
スポンサーリンク

解説

下記のコードでは、

  1. シリアル通信を115200で実行する
  2. wifiに接続する
  3. テキストファイルがあるサーバーurlを指定する
  4. リンク先に接続する
  5. 接続できたら(ステータスが200なら)“response”変数に代入する
  6. Serial.printlnする
  7. 接続を解除する

という流れで動いています。

コード

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

const char* ssid = "ssid"; // ご自身のSSIDに変更
const char* password = "pass"; // ご自身のパスワードに変更

void setup() {
    Serial.begin(115200);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
    Serial.println("\nWiFi connected.");
    Serial.print("IP address: ");
    Serial.println(WiFi.localIP());
}

void loop() {
    // テキストファイルのURL
    String txtFileUrl = "https://サーバーのリンク/hoge.txt";

    // HTTPリクエストを送信
    HTTPClient http;
    http.begin(txtFileUrl);
    int httpCode = http.GET();

    if (httpCode == HTTP_CODE_OK) {
        String response = http.getString();
        Serial.println("テキストファイルの内容:");
        Serial.println(response);
    } else {
        Serial.println("テキストファイルの読み取りに失敗しました。");
    }

    http.end();
}

応用例

テキストファイルの中身が”flash”なら22番ピンのLEDを光らせるというコードです。

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

const char* ssid = "ssid"; // ご自身のSSIDに変更
const char* password = "pass"; // ご自身のパスワードに変更

void setup() {
    Serial.begin(115200);
    pinMode(22,OUTPUT);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
    Serial.println("\nWiFi connected.");
    Serial.print("IP address: ");
    Serial.println(WiFi.localIP());
}

void loop() {
    // テキストファイルのURL
    String txtFileUrl = "https://ファイルurl.txt";

    // HTTPリクエストを送信
    HTTPClient http;
    http.begin(txtFileUrl);
    int httpCode = http.GET();

    if (httpCode == HTTP_CODE_OK) {
        String response = http.getString();
        Serial.println("テキストファイルの内容:");
        Serial.println(response);
        if(response == "flash"){
            digitalWrite(22,HIGH);
        }else{
            digitalWrite(22,LOW);
        }
    } else {
        Serial.println("テキストファイルの読み取りに失敗しました。");
    }

    http.end();
}

コメント

  1. ma より:

    わかりやすい&みやすい!グレードアップしすぎでびっくり

タイトルとURLをコピーしました