👋
ESP32 Lチカ遠隔動作確認(WiFi接続)
ESP32 FREENOVA ピン配置
(参考)https://github.com/Freenove/Freenove_ESP32_S3_WROOM_Board/tree/main?tab=readme-ov-file
GPIO01にLED(+)接続
curl GETで確認
curl <IPアドレス>
(参考)https://apidog.com/jp/blog/curl-get-post-put-delete/
Arduinoコード
//ライブラリを準備
#include <WiFiManager.h>
#include <WiFiClientSecure.h>
#include <ESPmDNS.h>
//#include <SPI.h>
//#include "Adafruit_MAX31855.h"
//#define DEBUG
WiFiClientSecure client;
WiFiManager wifiManager;
WiFiServer server(80);
//#define MAXDO 19
//#define MAXCS 5
//#define MAXCLK 18
//Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO);
void setup() {
Serial.begin(115200);
pinMode(1, OUTPUT); //LED
digitalWrite(1, LOW); //LED
//不揮発性メモリを読みに行って設定があればそのままWiFiに接続する。
//なければアクセスポイントが立ち上がり,設定をしなければならない。
Serial.println(wifiManager.autoConnect());
IPAddress ipadr = WiFi.localIP();
Serial.println(WiFi.SSID());
if (!MDNS.begin("ESP32Temp")) {
while (1) {
delay(500);
}
}
server.begin();
MDNS.addService("http", "tcp", 80);
Serial.println("End Setup");
}
void loop() {
bool flag = 0;
String buff = "";
char c;
//Serial.print("STAND BY");
//Serial.println(thermocouple.readInternal());
//double temperature = thermocouple.readCelsius();
#ifdef DEBUG
if (isnan(temp)) {
Serial.println("Something wrong!");
} else {
Serial.print("C = ");
Serial.println(temp);
}
#endif
WiFiClient client = server.available();
if (client) {
while (client.connected()) {
//アクセスがあった場合リクエスト内容を1文字ずつ読む
if (client.available()) {
while (1) {
c = client.read();
buff += c;
if (c == '\n') break;
}
//HTTPのバージョンは気にしないので空白で置き換えて削除
buff.replace("HTTP/1.1", "");
buff.trim();
//メソッドがGETorPOSTのときだけ"200 OK"ないし現在の状態を返す
//それ以外のメソッドは405を返す
if (buff.startsWith("GET") or buff.startsWith("POST")) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: application/json");
client.println();
//client.println("{\"Temp\":" + (String)temperature + "}");
digitalWrite(1, HIGH); //LED ON
delay(3000);
digitalWrite(1, LOW);
client.println();
buff = "";
break;
} else {
client.println("HTTP/1.1 405 Method Not Allowed");
buff = "";
break;
}
}
}
client.stop();
}
delay(1);
}
Discussion