상품 설명
ESP32 OTA およびシリアル アップローダー
このプロジェクトは、OTA (Over-The-Air) およびシリアル アップロード方式で ESP32 ファームウェアを更新するための GUI ツールを提供します。
このツールは利便性と使いやすさを考慮して設計されており、ユーザーはファームウェア ファイルを選択し、デバイスの IP アドレスを指定し、手動のコマンド ライン操作なしでアップロードを実行できます。
※本アプリは同人ソフトウェアの為ユーザーに不利益があった場合でも保証は致しかねます。予めご了承ください。
※本ソフトウェアは全てChatGPTによってコーディングされています。
動作は確認の上公開していますが不具合があった場合は使用を中止し報告ください。
※動作確認はM5stamps3でOTA、USBシリアルの書き込みをテストしました。
使い方
ESP32FarmwearUploader.exeを起動してください。
OTAアップロード
1.OTA UpdateのBrowseからfirmwere.binを選択しESP32のIPアドレスを入力 例 192.168.0.4
2.OTA Updateを押すとアップロードされます。
3.アクセス許可が出たら許可してください。
シリアルアップロード
1.対応するUSBドライバをインストール 例 CH340 CP201x
2.通信用USBケーブルでESP32とPCを接続
3.デバイスマネージャのCOMポートでESP32のCOMポート番号を調べる
4.SerialUpdateのBrowseからそれぞれbootloader.bin、patitions.bin,firmwere.binを選択
5.3で調べたCOMポート番号を一覧から選択。表示されていなければRefreshを押す
6.select Baud Rateは基本そのままで問題ない。
7.Serial Updateを押すとアップロードされます。
その他
ESP32FarmwearUploader.exe単体では使えません。
espota.py、esptool.exeを含めてください。
ファームウェア配布側の使い方
以下を参考にESP32のファームウエアをOTAアップロードに対応させてください。
OTAアップロードの場合のファームウェア配布
VScode、PlatformIOでビルドした場合ログにfirmwere.binのパスが表示されます。
firmwere.binをZipなどでバージョンが分かる名前にして配布してください。
firmwere.binは名前を変更しないでください。
Serialアップロードの場合のファームウェア配布
VScode、PlatformIOでビルドした場合ログにfirmwere.binのパスが表示されます。
同じフォルダ内にbootloader.bin、patitions.binがあると思うのでbootloader.bin、patitions.bin,firmwere.bin
の3つをセットにしZipなどでバージョンが分かる名前にして配布してください。
--------------------------------------------------------------------------------
#include <WiFi.h>
#include <WebServer.h>
#include <ArduinoOTA.h>
// WiFi設定
const char* ssid = "Your_SSID"; // WiFi SSIDを設定してください
const char* password = "Your_PASSWORD"; // WiFiパスワードを設定してください
void setupOTA() {
// OTAの初期化
ArduinoOTA.onStart([]() {
String type;
if (ArduinoOTA.getCommand() == U_FLASH) {
type = "sketch";
} else { // U_SPIFFS
type = "filesystem";
}
// OTAの開始時にシリアル出力
Serial.println("Start updating " + type);
});
ArduinoOTA.onEnd([]() {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) {
Serial.println("Auth Failed");
} else if (error == OTA_BEGIN_ERROR) {
Serial.println("Begin Failed");
} else if (error == OTA_CONNECT_ERROR) {
Serial.println("Connect Failed");
} else if (error == OTA_RECEIVE_ERROR) {
Serial.println("Receive Failed");
} else if (error == OTA_END_ERROR) {
Serial.println("End Failed");
}
});
ArduinoOTA.begin();
Serial.println("OTA ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void setup() {
// シリアル通信の初期化
Serial.begin(115200);
// WiFi接続の初期化
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" Connected!");
// OTAの初期化
setupOTA();
}
void loop() {
// OTAのハンドリング
ArduinoOTA.handle();
// ここに他のコードを追加できます
delay(1000);
}
--------------------------------------------------------------
ソースコード公開
GitHubで公開しています。
https://github.com/Kirisame-Nanoha/ESP32-OTA-Serial-Uploader/tree/main
アップデート履歴
公開したけどpythonがインストールされてない環境で動作しない報告頂いたので一時非公開
espota.pyではなくespota.exeをビルドこちらを参照するようにしてOTAアップロードは出来るようになりました。
USBシリアルのesptool.exeはどうやら破損していた見たいです
正常な奴と差し替えてます
pythonのインストールされていないPCでOTAアップロードとUSBシリアルアップロードできるのを確認しました
모든 리뷰
더보기리뷰 등록
리뷰를 작성하려면 로그인이 필요합니다.
로그인하고 리뷰 쓰기