差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
open:mol:iot [2024/06/12 19:42] wenchin |
open:mol:iot [2025/01/10 13:33] (目前版本) wenchin |
||
---|---|---|---|
行 1: | 行 1: | ||
- | <text type="warning">勞動部勞發署 產業人才投資方案 ~ 委辦職訓課程規劃草案</text> | + | <text type="warning">勞動部勞發署 產業人才投資方案 ~ 委辦職訓課程規劃草案 ~ 2025 年版</text> |
+ | |||
+ | ====== 物聯網 IoT 整合平臺 應用實務班 ====== | ||
+ | === 原: 微控板、物聯網、車隊管理 整合平臺應用實務班 === | ||
+ | \\ | ||
+ | ---- | ||
+ | <collapse id="syllabus"></collapse> | ||
+ | ===== 課程大綱 ===== | ||
+ | ==== 🔸 2025 版 (8天) ==== | ||
+ | * 總時數: <text type="warning">48 小時 (8 天,每天 6 小時)</text> <WRAP> | ||
+ | <panel type="danger"> | ||
+ | * <badge><text type="warning">day 1 ~ am</text></badge> | ||
+ | * 課程內容介紹 | ||
+ | * 物聯網通訊技術、系統架構、應用領域、及資訊安全簡介 | ||
+ | * MQTT 通訊協定 與 WebSocket 應用簡介 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 1 ~ pm</text></badge> | ||
+ | * TCP Socket / CoAP 網路通訊協定 簡介 (使用 Python 實作) | ||
+ | * RTSP 即時串流協定 應用簡介: | ||
+ | * 透過 App 將 手機 變身為 IP Camera | ||
+ | * 使用 Python + OpenCV 擷取 RTSP 或 M-JPEG 影像串流 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 2 ~ am</text></badge> | ||
+ | * HTTP 通訊協定 與 RESTful API 簡介 (使用 Python 實作): | ||
+ | * Flask 網頁應用框架 簡介 | ||
+ | * 採用 Flask 執行 HTTP Server 以提供 RESTful API 服務 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 2 ~ pm</text></badge> | ||
+ | * 實作 Line Bot Webhook (使用 Python 及 ngrok 反向代理) | ||
+ | * Open Data 開放資料 應用簡介 | ||
+ | * 採用 JSONPath 剖析、過濾 Open Data JSON 格式中所需的部份資料 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 3 ~ am</text></badge> | ||
+ | * Node.js 開發工具安裝及應用簡介 | ||
+ | * Node-RED 安裝及基本操作 | ||
+ | * Node-RED 擴充模組管理工具 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 3 ~ pm</text></badge> | ||
+ | * 使用 Node-RED 中的「網路」類型的節點與外部系統交換訊息 | ||
+ | * 在 Node-RED 中使用 Dashboard 儀表板,快速產製各式表單、圖表、及網頁地圖 | ||
+ | * 在 Node-RED 中解析 Open Data / API 回傳的特定資料格式,如:CSV, JSON, HTML | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 4 ~ am</text></badge> | ||
+ | * Node-RED Dashboard 儀表板 範例實作: | ||
+ | * 猜數字 互動遊戲 | ||
+ | * 臺北市 河川水位監控 與 自動告警通知 | ||
+ | * Node-RED World Map 網頁地圖 範例實作: | ||
+ | * 顯示 YouBike 各站點位置 與 可借可還的車輛數 | ||
+ | * 顯示 新北市垃圾車 的即時位置及移動軌跡 | ||
+ | * 顯示 手機 的即時位置及移動軌跡 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 4 ~ pm</text></badge> | ||
+ | * MySQL / MariaDB Database 安裝 | ||
+ | * 在 Node-RED 中存取 SQL Database | ||
+ | * 採用 Node-RED 實作 Line Bot Webhook,並將互動訊息存入 Database | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 5 ~ am</text></badge> | ||
+ | * 常見的 微控板 及 週邊感測裝置 簡介 | ||
+ | * 通用型輸入輸出介面 GPIO 簡介: | ||
+ | * Digital, Analog, Touch, PWM, UART, I2C, SPI 等。 | ||
+ | * 微控板應用程式開發工具簡介: | ||
+ | * C++ @Arduino IDE | ||
+ | * MicroPython @Thonny | ||
+ | * YAML @ESPHome | ||
+ | * 課程硬體材料發放、組裝、腳位配置說明 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 5 ~ pm</text></badge> | ||
+ | * 安裝 ESP32 微控板專用的 USB 驅動程式 | ||
+ | * 安裝 Python + ESPHome Module 編譯工具、將 Firmware 燒錄至 ESP 微控板 | ||
+ | * 課程作品(微控板及所有週邊感測裝置)接電實測、及 ESPHome 應用範例解說 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 6 ~ am</text></badge> | ||
+ | * MicroPython 開發環境準備: | ||
+ | * 微控板專用之 MicroPython 直譯器 | ||
+ | * Thonny ~ MicroPython IDE 整合開發環境 | ||
+ | * MicroPython @ ESP32 GPIO 各類型腳位應用: | ||
+ | * Digital 一般 I/O 腳位 ~ 繼電器、按鍵、接近感應開關、光敏感測開關、LED 燈、紅外線發射/接收器 | ||
+ | * Digital IC 協定控制腳位 ~ 溫濕度計、超音波測距、LED 全彩燈條、LED 數字鐘 | ||
+ | * Analog 腳位 ~ 亮度感測器 | ||
+ | * PWM 腳位 ~ 無源蜂鳴器、Servo 伺服馬達 | ||
+ | * I2C Bus 腳位 ~ OLED 顯示幕 | ||
+ | * SPI Bus 腳位 ~ RFID / NFC 感應模組 | ||
+ | * UART 腳位 ~ 與外部進行有線通訊 | ||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 6 ~ pm</text></badge> | ||
+ | * MicroPython @ ESP32 網路通訊 應用: | ||
+ | * Wi-Fi 無線通訊、 | ||
+ | * 透過 TCP Socket / MQTT / HTTP 網路通訊協定 與外部系統整合。 | ||
+ | * MicroPython @ ESP32 其他無線通訊 應用: | ||
+ | * Bluetooth (BLE) 無線通訊、 | ||
+ | * ESP-NOW 專屬 無線通訊協定。 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 7 ~ am</text></badge> | ||
+ | * MicroPython @ ESP32 中文字型顯示在 OLED 面板。 | ||
+ | * MicroPython Multi-Threading 多執行緒(多工/非同步/非同線程) 應用。 | ||
+ | * 在 Node-RED 與 ESP32 微控板 之間,透過 MQTT 來交換訊息。 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 7 ~ pm</text></badge> | ||
+ | * 定位追蹤、車隊管理、網頁地圖 應用簡介。 | ||
+ | * 自製 JavaScript 網頁地圖,透過 MQTT 接收經緯度座標,並更新至網頁中。 | ||
+ | * Traccar 定位追蹤系統 應用簡介: | ||
+ | * Traccar Server 安裝操作、 | ||
+ | * Traccar Client 手機 App (或 GPS 座標發送裝置/車機) 操作說明、 | ||
+ | * 透過 Node-RED 或以其他 RESTful API Client 方式,連入 Traccar Server。 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 8 ~ am</text></badge> | ||
+ | * 分組專題 選題討論。 | ||
+ | * 分組專題 製作。 | ||
+ | |||
+ | \\ | ||
+ | * <badge><text type="warning">day 8 ~ pm</text></badge> | ||
+ | * 分組專題 展示。 | ||
+ | * 討論、補充 & 回饋。 | ||
+ | |||
+ | </panel> | ||
+ | </WRAP> | ||
- | ====== 微控板、物聯網、車隊管理 整合平臺應用實務班 ====== | ||
\\ | \\ | ||
---- | ---- | ||
行 32: | 行 174: | ||
\\ | \\ | ||
=== 2. 知識: === | === 2. 知識: === | ||
- | * 本課程涵蓋四大單元,分別為:㈠ 基礎導論、㈡ ESP32 微控板 + MicroPython 應用程式開發、㈢ OwnTracks / Traccar 人車追蹤管理平臺、㈣ Node-RED 物聯網整合平臺,並於結訓前採分組方式進行專題製作及展示。 | + | * 本課程涵蓋四大單元,分別為:㈠ 基礎導論、㈡ Node-RED 物聯網整合平臺、㈢ ESP32 微控板 + MicroPython 應用程式開發、㈣ OwnTracks / Traccar 定位追蹤系統、並於課程結束前採分組方式進行專題製作及展示。 |
- | * 課程設計旨在將「微控板、物聯網、車隊管理」等同一系列的相關技術,整併於一個課程中來加以闡述及實作,以使學員能融會貫通物聯網的相關知識及應用。 | + | * 課程設計旨在將「物聯網、微控板、車隊管理」等同一系列的相關技術整併於一個課程中來加以闡述及實作,以使學員能融會貫通物聯網的相關知識及應用。 |
- | * 單元一:先從各類微控板及感測裝置的組裝配線講起,然後介紹常用的微控板開發工具,再談到物聯網常用的幾種通訊協定。 | + | * 單元一:物聯網導論,並介紹物聯網常用的幾種通訊協定。 |
- | * 單元二:採用 MicroPython 來開發應用程式,以示範微控板如何驅動各類型的感測裝置,並展示如何透過各種網路通訊協定來與外部系統連結,以形成物聯網架構。 | + | * 單元二:引用 Node-RED 視覺化 IoT 應用程式開發工具,它是以 Web Application 的形式來扮演 IoT 的訊息控制中心,並提供簡易且可客製化的頁面設計,為「物聯網中央控制平臺」提供了快速導入的解決方案。 |
- | * 單元三:介紹了 OwnTracks App 和 Traccar 平臺,分別用於 人員定位追踨 及 車隊管理,將物聯網的應用推及至「人車即時位置的感知」層面。 | + | * 單元三:先從各類微控板及感測裝置的組裝配線講起,然後介紹幾款常用的微控板應用程式開發工具。首先以 ESPHome 開發基本應用範例,隨後採用 MicroPython 來開發客製化的應用程式,並示範微控板如何驅動各類型的感測裝置,也展示了如何透過各種網路通訊協定來與外部系統連結,以形成物聯網架構。 |
- | * 單元四:引進了知名的 Node-RED 視覺化 IoT 應用程式開發工具,它是以 Web Application 的形式來扮演 IoT 的訊息控制中心,並提供簡易且可客製化的頁面設計,為「物聯網中央控制平臺」提供了快速導入的解決方案。 | + | * 單元四:介紹 Traccar 平臺,分別用於 人員定位追踨 及 車隊管理,將物聯網的應用推及至「人車即時位置的感知」層面。 |
* 課程最後,再透過分組專題實作來集思廣益、應證所學,並期許學員回到工作崗位上能應用在其他相關的領域,如:智慧能源、智能農業、智慧工廠、環境監測、車隊追蹤、智慧家居、智能零售、智慧物聯網 等。 | * 課程最後,再透過分組專題實作來集思廣益、應證所學,並期許學員回到工作崗位上能應用在其他相關的領域,如:智慧能源、智能農業、智慧工廠、環境監測、車隊追蹤、智慧家居、智能零售、智慧物聯網 等。 | ||
行 44: | 行 186: | ||
\\ | \\ | ||
=== 3. 技能: === | === 3. 技能: === | ||
+ | * 能架設 Node.js 後端 JavaScript 程式開發工具,亦能架設 Node-RED Server。 | ||
+ | * 能透過 Node-RED 視覺化開發工具,來建置各類 IoT 應用程式的 Flow 流程。 | ||
+ | * 能客製化 Node-RED Dashboard 儀表板,來與使用者進行互動,或與外部系統整合。 | ||
+ | * 能使用 Node-RED 開發 MVC 架構的網頁應用程式,並將感測器資料存入資料庫中。 | ||
* 能理解各類微控板及感測裝置的各種 GPIO 引腳配置、規格、及用途,如:Digital, Analog, Touch, PWM, UART, I<sup>2</sup>C, SPI 等。 | * 能理解各類微控板及感測裝置的各種 GPIO 引腳配置、規格、及用途,如:Digital, Analog, Touch, PWM, UART, I<sup>2</sup>C, SPI 等。 | ||
* 能操作 Thonny 或 Arduino Lab for MicroPython 整合開發工具,來管理或執行 微控板中的 MicroPython 程式。 | * 能操作 Thonny 或 Arduino Lab for MicroPython 整合開發工具,來管理或執行 微控板中的 MicroPython 程式。 | ||
行 52: | 行 198: | ||
* 能在網頁中透過 MQTT over WebSocket 取得資料來源中的經緯度座標,並更新至網頁地圖上。 | * 能在網頁中透過 MQTT over WebSocket 取得資料來源中的經緯度座標,並更新至網頁地圖上。 | ||
* 能架設 Traccar Server 建構車隊管理系統,在網頁地圖中實現車輛的位置追蹤、資料收集和管理。 | * 能架設 Traccar Server 建構車隊管理系統,在網頁地圖中實現車輛的位置追蹤、資料收集和管理。 | ||
- | * 能架設 Node.js 後端 JavaScript 程式開發工具,亦能架設 Node-RED Server。 | ||
- | * 能透過 Node-RED 視覺化開發工具,來建置各類 IoT 應用程式的 Flow 流程。 | ||
- | * 能客製化 Node-RED Dashboard 儀表板,來與使用者進行互動,或與外部系統整合。 | ||
- | * 能使用 Node-RED 開發 MVC 架構的網頁應用程式,並將感測器資料存入資料庫中。 | ||
行 146: | 行 288: | ||
==== 🔸 訓練費用編列說明 ==== | ==== 🔸 訓練費用編列說明 ==== | ||
* 材料費估計: <text type="warning">每位學員約 $666 ~ $700</text> | * 材料費估計: <text type="warning">每位學員約 $666 ~ $700</text> | ||
- | * [[stuff_iot | 課程使用之材料清單]] | + | * [[:open:mol:stuff_iot | 課程使用之材料清單]] |
- | |||
- | \\ | ||
- | ---- | ||
- | <collapse id="syllabus"></collapse> | ||
- | ===== 課程大綱 ===== | ||
- | ==== 🔸 課程進度/內容 ~ 最新版 (8天) ==== | ||
- | * 總時數: <text type="warning">48 小時 (8 天,每天 6 小時)</text> <WRAP> | ||
- | <panel type="danger"> | ||
- | * <badge><text type="warning">day 1 ~ am</text></badge> | ||
- | * 課程主題及課綱說明、使用硬體材料清單、作品展示。 | ||
- | * 常見的 微控制器(MCU) 及 微控板 簡介。 | ||
- | * 通用型輸入輸出介面(GPIO)簡介:Digital, Analog, Touch, PWM, UART, I2C, SPI 等。 | ||
- | * 微控板應用程式開發工具 C++ @Arduino IDE、MicroPython @Thonny、YAML @ESPHome 簡介。 | ||
- | * 物聯網概論:通訊技術、運作概念、系統架構、應用領域、及資訊安全議題 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 1 ~ pm</text></badge> | ||
- | * 物聯網常用的網路通訊協定 TCP Socket / MQTT / HTTP / CoAP 簡介,並使用 Python 實作。 | ||
- | * 應用 Line Notify 發送文字、照片、螢幕截圖、或即時影像 至 LINE App。 | ||
- | * 應用 Python Flask 框架,執行 HTTP Server 以提供 RESTful API 服務 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 2 ~ am</text></badge> | ||
- | * 使用手機 App 來模擬 Web Camera / USB Camera / IP Camera。 | ||
- | * 常用的視訊串流協定 RTSP / M-JPEG 簡介,並使用 Python 實作。 | ||
- | * 使用 Python + OpenCV 擷取 Camera 影像 或 Media Streaming 媒體串流。 | ||
- | * 課程硬體材料發放、組裝、腳位配置說明 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 2 ~ pm</text></badge> | ||
- | * 安裝 ESP32 專用的 USB 驅動程式 | ||
- | * 安裝 Python + ESPHome Module 以編譯 YAML 代碼、並將 Firmware 燒錄至 ESP 微控板 | ||
- | * 課程作品 接電實測及解說 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 3 ~ am</text></badge> | ||
- | * MicroPython 開發環境安裝、準備。 | ||
- | * 管理、執行 微控板中的 Python 程式碼。 | ||
- | * MicroPython IDE 整合開發環境 Thonny 簡介、安裝。 | ||
- | * MicroPython 基礎應用,搭配:\\ LED、繼電器、手觸按鍵、紅外線接近感應開關、光敏感應開關、溫濕度感測器、超音波測距模組、LED 全彩燈條、數字時鐘 LED 顯示器、紅外線發射器/接收器、亮度感測器。 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 3 ~ pm</text></badge> | ||
- | * MicroPython 應用在 PWM 介面,包含:PWM 呼吸燈、使用無源蜂鳴器撥放 RTTTL 旋律、Servo 伺服馬達。 | ||
- | * MicroPython 應用在 Touch 介面,包含:七彩水果燈、水果電子琴。 | ||
- | * MicroPython 進階應用,包含:\\ 在 OLED 螢幕中顯示文字及圖檔、RFID / NFC 感應模組、經由 UART 與其他微控板進行資料傳輸。 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 4 ~ am</text></badge> | ||
- | * MicroPython 網路通訊應用程式開發:TCP Socket / MQTT / HTTP / CoAP :?: | ||
- | * MicroPython 範例實作:網路校時、發送 LINE Notify 圖文訊息。 | ||
- | * 在 ESP32 微控板中使用 Bluetooth (BLE) 與手機通訊。 | ||
- | * 在 ESP32 微控板中使用 ESP-NOW 專屬協定來與其他 ESP 微控板進行無線通訊。 | ||
- | * MicroPython Multi-Threading 多執行緒(多工/非同步/非同線程) 應用。(僅供參考) | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 4 ~ pm</text></badge> | ||
- | * 擷取 Open Data 開放資料,來模擬 IoT Sensor。 | ||
- | * 採用 JSONPath 剖析、過濾 Open Data JSON 格式中所需的部份資料。 | ||
- | * Mobile Device Tracking 軌跡追蹤 (by OwnTracks 手機 App ~ MQTT) | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 5 ~ am</text></badge> | ||
- | * 安裝 Traccar Server 開源軟體,應用在 Fleet Management 車隊管理。 | ||
- | * 手機安裝 Traccar Client App,以回報經緯度座標至 Traccar Server。 | ||
- | * <del>在 Browser 取得「經緯度座標」並更新在網頁地圖上。(僅供參考)</del> | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 5 ~ pm</text></badge> | ||
- | * Node.js 開發工具 簡介、安裝、及 npm 套件管理。 | ||
- | * Node.js 後端 JavaScript 範例程式實作。 | ||
- | * 採用 Node.js 的 http 或 https 套件來實作 Web Server 網頁服務 及 HTTP Client Rquest 網頁請求。 | ||
- | * Node-RED 簡介、線上學習資源、執行環境安裝、啟動。 | ||
- | * Node-RED 基本操作 ~ Node 節點、Flow 流程、Icon 圖 | ||
- | * Node-RED Manage Palette ~ 管理擴充模組 Modules 以加入更多樣的 Node 節點 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 6 ~ am</text></badge> | ||
- | * 在 Node-RED 中使用 Dashboard 儀表板,快速產製各式表單或圖表。 | ||
- | * Node-RED 進階操作 ~ 「功能」類型的節點 | ||
- | * 使用 Node-RED 內建的網路通訊 Node 節點,如:TCP, UDP, MQTT, Websocket, HTTP 等,來與外部系統交換訊息。 | ||
- | * 使用 Node-RED 發送 LINE Notify。 | ||
- | * 在 Node-RED 中解析 Open Data / API 回傳的特定資料格式,如:CSV, JSON, HTML。 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 6 ~ pm</text></badge> | ||
- | * 透過 Dashboard 儀表板客製化的 UI 來與 外部系統 交換訊息 | ||
- | * 應用 Dashboard 儀表板的互動式表單,來查詢 Open Data / Open API、並顯示結果,如:\\ YouBike、河川水位、各縣市人口密度等範例。 | ||
- | * 定時讀取 Open Data / Open API 以繪製圖表: :?: | ||
- | - 臺北市河川之水位 即時資料,並以 Line Chart 定時更新顯示「某河川的水位變化狀況」。 | ||
- | - 臺灣 各鄉鎮市區人口密度 資料集,並以 Bar Chart 顯示「臺北市 各行政區 人口數」。 | ||
- | - YouBike 2.0 臺北市公共自行車 即時資訊,並以 Pie Chart 定時更新顯示「某站點之可借車、可還車數量」。 | ||
- | - 將 YouBike 2.0 臺北市公共自行車 所有站點的即時資訊,透過 web-worldmap 節點,展現在網頁地圖中。 | ||
- | * 更多 Flow & Dashboard 範例實作、展示 | ||
- | * 使用 Node-RED 的 Template 節點,來製作客製化的全版頁面。 | ||
- | |||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 7 ~ am</text></badge> | ||
- | * 在 Node-RED 與 ESP32 微控板 之間,透過 MQTT 來交換訊息 | ||
- | * Node-RED -> ESP32 微控板 | ||
- | * ESP32 微控板 -> Node-RED | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 7 ~ pm</text></badge> | ||
- | * 將來自 感測器 或 Open Data 的資料存入 Database 資料庫中。 | ||
- | * 在 Node-RED 中開發 MVC 架構的網頁應用程式。 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 8 ~ am</text></badge> | ||
- | * 分組專題 選題討論。 | ||
- | * 分組專題 製作。 | ||
- | |||
- | \\ | ||
- | * <badge><text type="warning">day 8 ~ pm</text></badge> | ||
- | * 分組專題 展示。 | ||
- | * 討論、補充 & 回饋。 | ||
- | |||
- | </panel> | ||
- | </WRAP> | ||