Day 1|一塊板子,兩個腦袋 用 Arduino UNO Q 製作一套兼顧現場控制與遠端管理的智慧路口 Edge Box Arduino 從微控制器走向...
App Lab : 同時包含MCP和MPU程式開發 傳統 Arduino IDE 主要處理 Sketch,將 C++ 程式編譯後送進微控制器,App Lab...
上一篇我們已建立 Edge Box 的完整目錄,MCU、Python 與網頁檔案都有固定位置,我們今天要修改 MCU 端程式,讓 D2 腳位 LED 成為智慧...
點亮 LED 只是第一步,接下來更重要的問題是:當現場按鈕與遠端命令都能操作這盞燈時,誰來記住它現在究竟是亮還是滅?接下來要為號誌燈建立統一的狀態管理方式,讓...
Day 3|先看懂 Edge Box 專案結構檔案 建立完整專案骨架,確認 MCU、Python 與網頁檔案都放在正確位置。 專案目錄 UNO Q 的 A...
狀態區與按鈕已經出現在頁面上,今天要用 CSS 把畫面整理成控制台。 CSS 負責外觀而不是結構 HTML 說明頁面有哪些元素,CSS 則決定這些元素如何排...
現在號誌燈的狀態已經有了統一的管理方式,但真正的控制箱不能每次都靠修改程式來操作,今天要加上一顆實體按鈕,讓現場人員只要動手一按,就能直接向 MCU 下達指令...
第一個 HTML 頁面已能開啟,今天要放上狀態顯示區與遠端切換按鈕。 管理畫面需要兩個核心元素 狀態區負責呈現 MCU 回報的結果,按鈕則是未來發出遠端操作...
前一天我們發現只要按住按鈕,燈號就會持續切換,問題在於程式只知道按鈕目前被按下,還分不出是「剛按下」還是「持續按住」,今天要讓程式記住按鈕前一次的狀態,只在...
Python 已經能在 MPU 上執行,今天要把未來會收到的兩種訊息,一種是 MCU 回報狀態,一種是 Web 要求切換分別歸到兩個處理入口。 函式讓訊息...
我們已讓按鈕操作變得穩定,但當現場按鈕與遠端系統都能控制同一盞燈時,新的問題也隨之出現:燈號狀態到底該聽誰的?今天要讓 MCU 來統一管理燈號狀態。 交給...
上一篇我們已經讓號誌只在按鈕被按下瞬間切換一次,但實體按鈕並不總是乖乖配合,偶爾按一次,訊號卻可能跳動好幾次,今天要加入簡易去彈跳處理,讓每一次按下都能得到...
Web 按鈕已能控制實體 LED,今天要讓網頁等 MCU 回報後再更新狀態。 Python 推送固定資料格式 Day 16 已建立 {"stat...
由 MCU 主控的 Edge Box 1.0 已完成驗收,今天要啟動 UNO Q 的另一個大腦 MPU,有請 Python 閃亮登場。 從現場控制走向上層...
ON/OFF 已經有清楚顏色,今天要讓遠端按鈕看起來真的可以操作。 按鈕要看得出可以操作 控制介面的按鈕需要足夠大的點擊範圍,文字與背景要有清楚對比,游標...
現在我們已經完成 LED 輸出、實體按鈕、按下判斷、去彈跳與燈號狀態管理,第一階段的 MCU 現場控制功能已經到位,今天進行整合驗收,確認完成 MCU 現場...
MCU 已經會回報真正狀態,今天要把 Python 收到的布林值整理成 ON/OFF。 從布林值轉成人能閱讀的文字 Python 的條件運算式可以根據真假...
MPU 已經能要求 MCU 切換燈號,今天要讓 MCU 把真正結果回報給 Python。 回報必須放在共同切換入口 實體按鈕與 MPU 命令都會進入 to...
Edge Service 已能持續待命,今天要讓 MPU 第一次向 MCU 下達切換命令,實現遠端程序呼叫RPC。 Bridge 以名稱連接兩端 Brid...
管理畫面已經置中,今天要讓 ON 與 OFF 一眼就能分辨。 id 與 class 各有不同用途 Day 19 的狀態元素同时具備 id="st...
JavaScript 已找到按鈕,今天要接住使用者每一次點擊。 瀏覽器以事件驅動互動 網頁程式不會一直詢問按鈕是否被按下,而是先登記一個 click ca...
驗收一|現場控制 啟動 App 後,確認 D2 依 ledState 初始值顯示熄滅,管理頁面開啟,Python Edge Service 保持待命。 按下...
下行控制、上行回報與狀態格式都已完成,今天先驗收沒有網頁的雙大腦系統。 驗收下行控制與回程 先執行 Day 16 程式,Python 啟動後會呼叫一次 o...
靜態管理畫面已完成,今天開始讓 JavaScript 找到畫面上的元素。 DOM 是 JavaScript 看到的頁面 瀏覽器讀取 HTML 後,會將標籤...
訊息入口已經分好,今天要讓 Edge Service 不再印完就結束,而是留在 MPU 上等待事件。 一般腳本與邊緣服務不同 一般 Python 腳本會按...
六條狀態規則 最終系統固定遵守以下規則。 ledState 只由 MCU 保存。 D9 與 Web 都呼叫 toggle_led()。 Python 不建...
瀏覽器已能接住點擊,今天要把這個操作送到 Python,再交給 MCU。 Socket.IO 負責傳送瀏覽器事件 JavaScript 需要先建立 Soc...
雙大腦系統已通過驗收,今天開始建立瀏覽器能看見的管理頁面。 Web UI 是第四個執行位置 目前專案已包含 MCU 的 sketch/sketch.ino...
驗收前固定初始條件 重新啟動 App,確認 D2 依 ledState = false 初始化為熄滅,管理頁面初始顯示 OFF,Python Edge Ser...
驗收前開啟兩個觀察位置 啟動 App 並開啟管理頁面,同時保留 Python Console,先以頁面目前文字與 D2 實體狀態建立基準。 本日不要先點擊 W...