ESP32-WROOM-32 电影管理页从零到上線上 – daonidedie – 博客园

0
ESP32-WROOM-32 电影管理页从零到上線上 – daonidedie – 博客园


一、背景

何年もの間、玩园子はまだ看园子の記事に残っていますが、私はそれを自分で書いた方法を書きませんでした。この 2 日間、私は数年前に esp32 開発ボードを購入したことに突然気づきました。数年前に用意しました。ナノ私がやったフレームワークは、何回かやりました。双モ、BLEスキャン、MQTT送信、串口インタラクション、ピン制御、システム設定、唚至用LED GPIO2の使用もしました。光データ伝送—— カメラに 30fps で中国語のテキストをサンプリングさせます。

フロントエンドはHTMLチップ+JSで動作します。チップのフラッシュサイズは90Kです。リアエンドはRustを使用します。

実際にスムーズに動作させるには (実際には、Bluetooth を開く、MQTT を開く、STA を開く、LED の光学式レポートのテキストを開くとまだハングする可能性があります)、特に多くの落とし穴を踏みました。メモリ接続番号2 つの ESP32 的命门。

2、環境

2.1 コンポーネントリスト

  • ESP-IDF 5.2.8(電影与库)
  • さびxtensa-esp32-espidf ゴールesp-idf-svc フレームワーク、標準モード
  • コンパイラ:`xtensa-esp32-elf-clang`(esp-clang) 電影 C 側
  • スクリプトツールtools/build.sh(英語)/ tools/flash.sh(烧能)——裸を禁止する cargo build / espflash flash

環境: crates.io / static.crates.io sparse+https://rsproxy.cn/index/これも私のこだわりですRust への依存関係は一切ありません根本的な原因。

2.2 コンパイル

cd H:/Aiprojects/esp32/rust
bash tools/build.sh release
# 成功标志:末尾 ===PIPE_RC=0=== 且无 error:
# 产物 ELF:H:/esp32bld/xtensa-esp32-espidf/release/esp32-manage

全量C重编有杀自生機 .tmp 文書が原因 cc1: Permission denied 的坑,build.sh 内蔵 自動で5回; 量設計はこれらからのものではありません。

2.3 録音

bash tools/flash.sh release COM6 90   # 90 = 手动按键窗口秒数
  • 串口 CH340 / COM6 / 115200;烧能前关掉占有COM6の串口劉助/WebSerial/Arduino。
  • 写す 0x0 整片擦除(MicroPython 才写 0x1000,别混)。
  • 板子電影電影電視、手動ダウンロードモードが必要です按住 BOOT → 点一个 EN/RST → 松开 BOOT,完了点 EN/RST が起動します。
  • –erase-all 会得 NVS 下ダウンロード清掉 → 安全出厂(ログイン名卡回デフォルト,WiFi/MQTT 設定递重任)。
ESP32-WROOM-32 电影管理页从零到上線上 – daonidedie – 博客园

図 1 電影電視页:ESP32-WROOM-32 排针、USB 串口 CH340

三、ページ機能概要

  • 装置: モジュールが 3 つ動作中 (通常 = 主色 / 電気 = 青 / 非安全 = 灰)、MQTT はすでに接続されており、安全でない灰に電気を使用します。ポイントモジュールジャンプは電気を発生させます。
  • Wi-Fi管理:AP/STA 双モ、STA クライアントを修復しました同ネットワークセグメントIP(如 192.168.71.x)しかし非電影在 192.168.4.x 問題。
  • BLEスキャン:0 通常、結果は無線周波数環境のみで、エラーはありません。
  • MQTT 收発行:接続 + 購読/解放 + 回覧確認。
  • 串口端子esp32:~$ ラベル入力 + クイックコマンド(help/status/wifi/ble/mqtt/mem/pin/restart)状況即発。
  • 制御ピン: 排针图モデル修正 ESP32-WROOM-32(室家データシート),今花上 USB串口 CH340,開発ボードのレイアウトと比較してください。
  • システム構成→構成管理:ログブックを要求し、パスワードを変更し、終了します。
画像

図 2 设计拓支主设计:モジュール连線 + 串口端子 + RAM メモリ明绿卡石

図3 串口ターミナル:esp32:~$电影符と「电影公司」の高速タグ

画像

四、前端方法教字:なぜ 1 を使いたいのですか

4.1 質問:ソケット用光の要件

IDF httpdです選択された単一のスレッドmax_open_sockets 制限付き (本体 6 顧客 + 内部 3 個)。ただし、ページ イベント/ステータス/メモリ/LED の複数のタイマーが相互に知られていないため、同時に操作することができます。

4.2 スキーム:安全串行方法设计

  • 恒常 1 今発行:同時に1人だけ送信、残りは並び、httpd「1人1回処理」自然マッチング。
  • 去結果会: 同じ GET 未名名は、排他時に古いままにし、内容を避けます。
  • 時間をかけて独立する: 各リクエストは 10 秒 + AbortController、永続サポート時間切れになります。
  • キャンセル可能: 現在のリクエストを停止します。キューは自動的に次のリクエストを実行します。

4.3 轮軍收流 + バックグラウンド一時停止

  • イベント1秒→2秒、状態2秒→3秒
  • ドキュメント.非表示:安全を切り取る小型車、これは即時、小型占有です。

4.4 リクエストのログ記録

  • ログ: 最近 1000条已消/超時/出错整行红/琥珀高輝度。
  • 汇总:总/完了/已消時/超時/出错/技术/ピークタイム、カウントを蓄積、リフレッシュ才清零,1000 の上限の影響を受けません。
画像

図 4 「リクエストログ与汇总」カード: 累積汇总 + 最近の 1000 条ログ(超時/出错高亮)

五、特徴的な機能:GPIO光データ伝送(LED)

画像

図5 LED光伝送ページ:GB2312直発行、直多面護設計及び可設定(方法端プログラミング)

  • コード:GB2312 查表(自家建行、無新方名)直播中文,また手机摩剷。中文=2。中文=2〗节=1、节バイト、空格=0x20。
  • フレームフォーマット[F5 0A][N][data][XOR 校验]、ビット数 66ms、フレーム間隔 333ms、MSB 先行。
  • リンクを確認する: など MQTT テーマ ack/led/decode 回月 {"原始报文":"...","服务端确认收到":"1"}、=1 で文書が開始されます。5 秒間自動で最大 3 回再生できます。

中文便如统计小坑:前端算「文字/バイト/ビット」時中文字师三按 2バイト老、多くの人が漏れる可能性があります。

六、过坑去盘

坑1:剪贴板ボタン「説明を複製」点了没性

現象:「説明をコピー」ボタンは完全に無効です。
根因:navigator.clipboard 只在 https/localhost 等安全安全最高;file:// 存在しない場合に開き、要素の textContent Throw TypeError を参照して画像アニメーションを許可します。
解決:改用テキストボックスを読んでください自動書き込みと全選択、ユーザー Ctrl+C。 定義:フロントエンド画像共通の試聴可能な電源、クリップボード API を使用。

坑2:ESP32のPSRAMトリガーなしOOMクラッシュ(最も深刻)

現象:整机送信後の LED 光学系は再起動をキャンセルします。
ログ:

I (888955) [APP] [MEM] 空闲 1KB(历史最低 0KB,最大连续块 1KB)
I (889959) [APP] [MEM] 空闲 0KB
memory allocation of 118 bytes failed
abort() was called at PC 0x4013657a on core 0
rst:0xc (SW_CPU_RESET)

根因:PSRAMなし、利用可能容量約230KB;WiFi + NimBLE(BLE常开)+ std + TLS + httpd 分完只剩约 59KB(原通電影 7KB).LED送信(12KB栈電影+几无時)+前端高镇轊轊轊轊握约118B小電影失敗即取消。
鍵:httpd 45062 ESP_ERR_HTTPD_RESP_SENDerror in send:11 のみ OOM 症状、非初凶

解決:①送信前に記憶障壁(空闲<30KB 兄運動方式);② LED電視栈 12KB→6KB;③ 要件收遥降镇+全部氛壌+(台氛偗+䘟雲来业) /api/v1/mem 按蓄積分地(DEFAULT/8BIT/EXEC/DMA/INTERNAL)管理 + 定作拓支「RAMメモリ明美」卡 + 蓄積<16KB i䪸动扦䪀动 BLE 30KB 蓄積、解除可能(定动山、園全量重编、你电影)。

坑3:リクエストハンドルソケットhttpd占满

現象:リフレッシュは同時に複数のインターフェイスを実行します。根本原因/解決策:同 4.1/4.2(上天串行時恒常1 今発行+去重+超時+可消)。

坑4:全生「电影中」电影条新方道

現象:名前電影「電影中 GET /events …」 心。
根因:トリガー条件 太松——キューが存在するキューのみが表示され、ほぼすべてのキューが連続してキューにあるイベント/ステータスが表示されます。
解決:先改「电影偏遅才手机」(通常通話>2.5秒、アクティブ操作>0.7秒)、最後に、削除全体が削除されます、安全な電影を取得するには、「規定管理→録画時間方法」を参照してください。

坑5:電影页電影電視 + USBエラー

現象:電気的効果を排除し、電気的効果 (ESP32-DevKitC V4) を使用し、USB 位置がなく、オブジェクト対上にありません。
解決:以下公式文書代最後成 ESP32-WROOM-32(标题/设计/可以电影电影),下下缘花画 USB串口 CH340

ピット6:さび

  • 32位Xtensaは使用できません AtomicI64、 変化 AtomicI32
  • Mutex::lock() しなければならない .unwrap()
  • anyhow! しなければならない use anyhow::anyhow;
  • 必要がなければ、また必要ありません。
坑 7:烧能报「COM6 がアクセスを拒否しました」(PermissionError 13)

現象:espツールレポート Could not open COM6 ... PermissionError(13)
根因:電影被瞬态占用(串口助/電影/上未柄句感记)。
解決:確認は占有なし、必要な時間の実行は次のリストに続き、等句文の内容の後に再試行するとすぐに成功します。PnP は CH340 をさらに多く設定して完全に健全です。

七、収穫とアドバイス

経験 要点
堆は最初のリソースです PSRAM なしの場合 WiFi+BLE+std すでに一部、すべての機能を削除可能、先見 BLE/伊公開/tmp バッファ
httpd シングルスレッド フロントエンドはプロアクティブである必要があります握报発行去成 1、加超時、制指望设计端
観察 メモリ ゾーニング統計 + リクエスト ログ,比事後猜快快交
構成 > 全量重编 変更された sdkconfig (BLE の禁止など) は万字/スタックを許可しますが、これらは長い設定、权バランス再起動です

以下にダウンロードできます。 PSRAM のモジュールを無効にするか、BLE をオフにして、残量を確保してください。

Leave a Reply

Your email address will not be published. Required fields are marked *

李伟 张静 王秀英 刘敏 陈强 杨磊 赵洋 黄勇 周杰 吴浩 徐艳 孙莉 马超 朱博 胡婷 郭鹏 何琳 彭浩 高飞 林涛 罗晨 梁悦 宋波 郑欣 谢辉 韩冰 唐雷 冯芳 于峰 董瑞 萧雨 程亮 曹晶 袁威 邓健 许凡 傅雪 沈丹 曾宇 彭浩 春日花园生活指南
城市夜晚的美丽风景
探索自然世界的秘密
现代家庭生活小技巧
秋天森林里的故事
每天学习新的知识
传统美食文化分享
快乐周末旅行日记
简单健康生活方式
发现城市隐藏的角落
清晨阳光与咖啡时光
阅读带来的无限乐趣
山川湖泊摄影记录
创意家居设计灵感
夏日海边旅行故事
探索古老文化与历史
厨房里的美味时光
数字时代生活观察
世界各地风景记录
温暖家庭故事分享
未来科技发展趋势
安静午后的阅读时间 春天里的绿色花园
城市生活的新发现
美好生活从今天开始
森林深处的自然风光
简单实用的生活知识
寻找生活中的小幸福
夏日阳光下的故事
传统文化艺术之旅
探索世界自然奇观
快乐家庭生活日记
清晨时光与美好心情
发现身边有趣的事情
秋日旅行摄影记录
健康生活每日分享
安静午后的读书时光
现代城市建筑之美
寻找自然中的宁静
世界美食文化探索
冬日温暖生活指南
艺术与创意生活空间
山间小路旅行故事
未来科技改变生活
海边日落摄影分享
每天一个生活小知识
周末家庭休闲时光
探索历史文化故事
生活中的艺术灵感
花园里的四季变化
寻找城市里的安静角落
晨光花园里的宁静时刻
城市文化探索笔记
夏日微风与自然风景
美好生活灵感分享
森林漫步旅行故事
秋季花海摄影日记
温暖家庭生活点滴
探索世界艺术之美
每日健康饮食指南
静谧湖边的美丽风景
创意设计生活空间
清晨阅读与咖啡时光
发现自然奇妙世界
传统手工艺术分享
旅行中的快乐回忆
山谷里的宁静生活
美食与文化交流日记
花园四季变化记录
简单快乐生活方式
古镇历史文化漫游
海边日出摄影分享
现代科技生活观察
安静午后的书香时光
自然风景与旅行灵感
幸福生活每日小贴士
清晨森林里的阳光故事
传统文化与现代生活
寻找城市中的美好瞬间
春季花园生活记录
探索山川自然之美
快乐家庭周末时光
生活中的创意小发现
秋日森林摄影笔记
现代家居设计灵感
每日阅读带来的快乐
城市夜景摄影日记
简单健康的生活方式
古老建筑文化探索
夏天海边的温暖记忆
发现自然中的奇妙世界
午后咖啡与阅读时光
美食文化探索之旅
未来城市生活观察
山间清晨旅行日记
温馨家居生活分享
四季花草种植笔记
艺术世界里的奇妙发现
湖边安静的下午时光
探索历史留下的故事
快乐旅行生活指南
冬日阳光下的温暖生活
创意手工制作分享
绿色生活与自然探索
星空下的美丽夜晚
春日湖畔的宁静时光
城市花园生活新发现
森林深处的自然故事
清晨咖啡与阅读日记
传统艺术文化探索之旅
简单快乐的家庭生活
秋日山林摄影故事
探索生活中的创意灵感
现代城市建筑观察
夏日海岸美丽风景
每日健康生活小知识
寻找城市隐藏的故事
花园里的四季色彩
世界美食文化分享
温暖午后的阅读时间
探索山川湖泊之美
创意家居装饰灵感
冬日阳光生活记录
历史建筑背后的故事
绿色自然生活方式
夜晚星空摄影笔记
美好周末旅行回忆
发现艺术世界的魅力
乡村生活自然风光
每日生活创意分享
古老文化探索笔记
海边清晨散步日记
现代科技与未来生活
森林小屋的温暖故事
旅行路上的美丽风景
春日清晨的花园故事
森林深处的宁静生活
城市夜晚摄影记录
探索传统文化的魅力
夏季海边生活日记
简单健康生活新方式
秋天山谷里的美丽风景
温暖家庭生活分享
现代艺术与创意空间
湖边午后的阅读时光
发现生活中的小惊喜
四季花园种植笔记
世界美食文化探索
快乐周末旅行故事
自然世界里的奇妙发现
冬日阳光与温暖时光
古老建筑历史故事
山间小路旅行随笔
未来科技生活观察
清晨咖啡生活随想
绿色自然与美好生活
城市街头艺术发现
星空下的安静夜晚
春日山谷里的美好时光
城市清晨生活随笔
探索森林深处的秘密
传统美食制作日记
温暖阳光下的花园
现代生活创意分享
秋日湖畔摄影记录
寻找城市里的文化故事
快乐家庭周末生活
自然风景旅行随笔
午后阅读与安静时光
探索艺术世界的色彩
冬季森林生活故事
每天发现新的生活灵感
古老街道历史漫步
健康饮食与快乐生活
海边日落摄影故事
创意家居生活空间
星空下的宁静夜晚
四季自然变化记录
未来科技生活探索
山间小屋的温馨故事
晨曦中的绿色山谷
城市街角的温暖故事
春天花园里的新发现
传统手工艺术的魅力
夏日森林散步日记
现代家庭生活灵感
山间清晨的宁静时光
发现世界文化之美
快乐生活每日小记录
秋日湖边摄影故事
自然风光探索笔记
午后咖啡与书香时光
城市建筑创意观察
四季花草生活笔记
美食文化与生活故事
冬日暖阳下的回忆
寻找古老街道的故事
绿色生活创意指南
海边黄昏摄影随笔
艺术世界里的色彩故事
简单健康的每日生活
星空下的森林小屋
探索历史文化的足迹
雨后花园的清新时刻
春日河畔的悠闲时光
古城街巷里的文化故事
清晨森林自然观察笔记
家庭花园四季生活记录
寻找生活中的艺术灵感
秋日山间旅行故事
现代家居创意设计分享
午后阳光与阅读时刻
探索世界美食文化
夏夜星空摄影日记
城市公园里的绿色生活
传统工艺背后的故事
海边黄昏的温暖记忆
简单快乐的日常生活
山谷里的自然风景记录
城市建筑与创意空间
冬日午后的咖啡时光
探索历史文化的记忆
雨后森林里的清新世界
创意生活每日小发现
湖边小屋的温馨故事
绿色植物与家庭生活
夜晚城市灯光摄影记录
健康饮食与生活方式
四季自然色彩观察
快乐周末家庭日记
古老艺术文化探索
清风中的田园生活故事
春天花园里的清新早晨
森林小路上的自然故事
城市夜色中的温暖灯光
传统文化艺术探索笔记
夏日湖边的悠闲时光
现代生活中的创意灵感
秋季森林摄影生活记录
快乐家庭的周末故事
探索古老建筑的魅力
午后咖啡与阅读随想
自然世界里的奇妙色彩
简单健康生活每日分享
山谷清晨旅行摄影日记
创意家居空间设计灵感
世界美食文化生活记录
冬日阳光下的美好时刻
城市街角艺术发现之旅
绿色植物与生活美学
海边黄昏的宁静记忆
四季自然风景观察笔记
古老街道里的历史故事
星空下的安静阅读时光
雨后山林的清新世界
春日山野里的清新空气
城市清晨的生活故事
森林深处的绿色世界
传统文化艺术生活笔记
夏日湖边摄影时光
现代家庭创意生活指南
秋天森林里的温暖故事
寻找自然世界的色彩
快乐周末阅读生活记录
古老街道文化探索日记
午后花园里的宁静时刻
山川湖泊自然摄影分享
健康饮食与简单生活
海边黄昏旅行随笔
未来科技生活新发现
冬日咖啡与书香时光
创意家居设计生活灵感
四季花草自然观察笔记
城市建筑背后的故事
雨后森林里的漫步时光
世界美食与文化探索
星空下的乡村生活故事
艺术世界里的创意发现
清晨河边的安静时光
绿色生活每日小知识
古镇历史文化漫步记录
温暖阳光里的幸福生活
春日花园里的悠闲时光
城市夜色与灯光故事
森林清晨自然观察笔记
传统手工文化探索之旅
夏日湖畔的温暖记忆
创意家庭生活新灵感
秋季山林摄影随笔
寻找古老街巷的故事
午后阅读与咖啡生活
自然世界中的美丽色彩
健康生活每日新发现
海边黄昏摄影故事
现代城市建筑艺术观察
冬日森林里的宁静时光
世界美食与文化生活
山间小屋的温馨故事
四季花草种植生活记录
艺术世界里的奇妙发现
清晨河畔的绿色风景
简单快乐家庭生活日记
历史建筑文化漫步记录
星空下的安静阅读时刻
绿色生活与自然探索
雨后城市的清新早晨
创意家居设计生活分享
乡村田野里的美好时光
古典艺术与现代生活
湖边日落的温暖故事
春日森林里的清晨阳光
城市生活中的艺术发现
秋日花园的温暖故事
探索古老文化的魅力
湖边午后的阅读时光
现代家庭生活创意分享
夏日山谷自然摄影日记
简单快乐的每日生活
传统手工艺术探索笔记
城市夜晚的美丽灯光
绿色生活与自然故事
冬日咖啡与温暖时刻
世界美食文化生活记录
山间小路旅行随笔
星空下的宁静生活
创意家居空间设计灵感
四季花草自然观察记录
雨后森林里的清新空气
历史建筑背后的文化故事
清晨河畔的悠闲时光
艺术世界里的奇妙色彩
乡村田野的美好记忆
健康生活每日小知识
海边日落摄影生活日记
古镇街巷文化漫步
花园里的快乐生活故事
探索自然世界的新发现
午后阳光里的安静时光
现代城市生活观察笔记
春日湖边的悠闲生活
城市街角的艺术故事
清晨森林里的自然声音
传统文化生活探索笔记
夏日花园摄影故事
现代家庭创意空间
秋日山谷里的温暖阳光
寻找生活中的美好瞬间
午后咖啡与书香生活
世界美食文化探索日记
冬日森林的宁静故事
绿色植物与家居生活
山间小路旅行随想
古老建筑里的历史记忆
快乐周末生活记录
星空下的安静阅读时间
四季自然色彩摄影笔记
创意艺术与生活灵感
雨后花园里的清新时刻
简单健康的每日生活
城市夜晚灯光摄影记录
乡村田园里的幸福时光
探索艺术世界的新发现
海边清晨的温柔阳光
花草世界自然观察日记
古镇街巷里的生活故事
春日森林里的温暖阳光
城市街头艺术生活记录
清晨湖畔的宁静故事
传统文化与生活美学
秋季山谷自然摄影笔记
现代家庭创意生活分享
夏日花园里的美好时光
探索古老艺术文化故事
午后咖啡与阅读生活
绿色植物自然观察日记
冬日小屋里的温馨故事
世界美食文化探索笔记
星空下的安静阅读时光
四季花草生活新发现
雨后森林的清新世界
创意家居设计灵感分享
海边黄昏的浪漫风景
古镇街道里的历史记忆