LoginSignup
3
2

More than 3 years have passed since last update.

自作WebAPIとESP32との通信:ESP32編

Posted at

はじめに

この記事はArduino Advent Calendar 2020の13日目の記事です。
前回の記事 WebAPI編をまだ見ていない方は、そちらを先にどうぞ。

本題(復習)

  • 前にESP32と自作WebAPIとの通信をやったので、そのやり方的なもの。
  • やることとしては、ESP32から自作WebAPIに値を送り、レスポンスを返すという簡単なもの。

用意するもの(復習)

  • PC(python3やESP32、git等の開発環境はセットアップ済み)
  • GitHubのアカウント
  • ESP32(Arduino互換)

ソースコード

#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid     = "ルータのssid";
const char* password = "ルータのパスワード";
const String URL = "https://[herokuのアプリ名].herokuapp.com/a=";
void setup() {
  Serial.begin(115200);
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
}

void loop() {
  if (Serial.available()) {
    String a=Serial.readStringUntil(',');
    String b=Serial.readStringUntil('\n');
    String sendStr=URL+a+",b="+b;
    HTTPClient http;
    http.begin(sendStr);
    int Get = http.GET();
    if (Get > 0) {
      String httpStr = http.getString();
      Serial.println(httpStr);
    }
    http.end();
  }
}

説明

シリアルモニタ2,3というデータをESP32に送り、結果を表示するデモです

setupについて、

インターネットにつなぐ処理をしています
ほとんどおまじないです

loopの2,3行目

    String a=Serial.readStringUntil(',');
    String b=Serial.readStringUntil('\n');

シリアルからの入力をとり、
 aにカンマまでの文字列を、
 bにカンマから改行までの文字列を
代入する。

loopの4行目

    String sendStr=URL+a+",b="+b;

sendStrにURLと送る値を代入

loopの6行目

    http.begin(sendStr);

自作WebAPIに接続

loopの7-11行目

    int Get = http.GET();
    if (Get > 0) {
      String httpStr = http.getString();
      Serial.println(httpStr);
    }

自作WebAPIからGETが帰ってきたら、WebAPIからの出力をシリアルモニタに出力

まとめ

WebAPI編に比べてとても簡素になってしまいました。

今回の技術を使えば、AIでの解析やLAN外からのESP32の操作が実現できます
実際、自分がやろうとしたきっかけはAIでエアコンを制御するためでした
 (やってないけど...)

1回目と2回目の記事なので見づらい所が多々あったと思いますが、誰かの役に立てば幸いです

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2