2025/12/11

CrowPanel ESP32 5.79" 電子紙開箱+PlatformIO 實作教學(含天氣 API 範例)

前言

大家好,我是 Stonez56。這篇文章要帶大家一起來看看 Elecrow 推出的 CrowPanel ESP32 5.79 吋電子紙 HMI Display,並示範如何把官方 Arduino Demo 改成 PlatformIO 專案,最後成功顯示 OpenWeather 的即時天氣資訊。

如果你習慣用 VS Code + PlatformIO 開發 ESP32,這篇文章會非常適合你。



✅ 一、CrowPanel ESP32 5.79" 電子紙開箱

這次收到的是一片 5.79 吋的 E‑Paper HMI Display,內建 ESP32‑S3,支援 Wi‑Fi 與 Bluetooth,並提供多種介面:

  • SPI

  • UART

  • GPIO

  • TF/SD 卡

  • USB

  • 電池接頭

電子紙本身是黑白顯示,適合做低功耗、長時間顯示的應用。

📦 盒內內容

  • CrowPanel ESP32 5.79" 電子紙模組

  • USB 連接埠

  • SD 卡槽

  • 三個操作按鈕(Home / Back / Dial Switch)

✅ 二、內建 Demo 介紹

接上電後,電子紙會自動跑內建 Demo,包括:

  • 圖片顯示

  • 簡單 UI 操作

  • 情境控制(Scenario)

    • Living Room

    • Bedroom

    • Dining Room

    • Kitchen(可切換 On/Off)

電子紙在更新畫面時會閃爍一下,這是正常現象。



✅ 三、產品規格整理

項目規格
顯示尺寸5.79 吋
解析度272 × 792
顯示顏色黑 / 白
驅動 ICSSD1683 × 2(並排)
MCUESP32‑S3
Flash / PSRAM8MB
介面SPI / UART / GPIO / TF 卡 / USB
電壓2.2V – 3.7V
特點Partial Refresh、低功耗、廣視角


✅ 四、電子紙的特性與注意事項

✅ 1. 低更新速度(Low Refresh Speed)

電子紙更新畫面時需要閃爍幾次,因此比較適合:

  • 靜態畫面

  • 少量更新的資訊(例如:天氣、溫度、濕度)

✅ 2. 高對比度(Contrast)

在光線充足的環境下非常清晰。 但在昏暗環境下需要外部光源。

✅ 3. 無灰階、無彩色

電子紙只有黑白兩色。 灰階可以透過「抖動(dithering)」方式模擬。



✅ 4. Partial Refresh

可以只更新某個區塊,省電又快速。

✅ 五、開始實作:把官方 Arduino Demo 改成 PlatformIO 專案

官方提供的 Demo 在 GitHub 上,但原始結構是 Arduino IDE 用的。 我們要做的是:

✅ 下載 Demo ✅ 改成 PlatformIO 專案格式 ✅ 加入 credentials.h ✅ 修改城市與 API Key ✅ 編譯、燒錄、顯示天氣資訊

✅ Step 1:下載官方 Demo

官方 Wiki 提供 Arduino 範例:

程式碼
5.79_wifi_http_openweather

你可以從 Elecrow Wiki 或 GitHub 下載。 我也把整理過的版本放在自己的 GitHub Repo,方便直接使用。

✅ Step 2:建立 PlatformIO 專案

  1. 開啟 VS Code

  2. 點 PlatformIO

  3. New Project

  4. 專案名稱:epaper

  5. 開發板:esp32-s3-devkitm-1

✅ Step 3:整理檔案結構(PlatformIO 必做)

Arduino Demo 通常是 .ino,但 PlatformIO 需要:

  • .cpp 放在 /src

  • .h 放在 /include

✅ 你需要做:

  1. 5.79_wifi_http_openweather.ino 改名為: main.cpp

  2. 所有 .cpp/src

  3. 所有 .h/include

✅ Step 4:新增 credentials.h(存放 Wi‑Fi 與 API Key)

/include 新增:

程式碼
credentials.h

內容格式:

cpp
#define WIFI_SSID "你的 Wi-Fi 名稱"
#define WIFI_PASSWORD "你的 Wi-Fi 密碼"
#define OPENWEATHER_API_KEY "你的 API Key"


✅ 這樣可以避免把敏感資訊寫死在 main.cpp 裡。

✅ Step 5:修改 main.cpp(城市與國家代碼)

找到:

cpp
String city = "Hsinchu";
String countryCode = "TW";

改成你自己的城市與國家代碼。

如果不知道代碼,可以問 AI 或查 OpenWeather 網站。

✅ Step 6:編譯與燒錄

  1. 接上 USB

  2. 點 PlatformIO → Upload

  3. 等待燒錄完成

  4. 開啟 Serial Monitor(建議 delay 設 10 秒)

✅ 六、成果展示:電子紙顯示即時天氣

燒錄成功後,電子紙會顯示:

  • 溫度

  • 濕度

  • 可見度

  • 風速

  • 天氣狀態(Mist、Clouds…)

你影片中示範的是新竹的天氣資訊,顯示效果非常清晰。



✅ 七、結語:這片電子紙可以做什麼?

CrowPanel ESP32 5.79" 電子紙非常適合:

  • 天氣看板

  • IoT Dashboard

  • 電子標籤(Shelf Label)

  • 智慧家庭控制面板

  • 低功耗資訊顯示器

如果你有想做的應用,也歡迎在影片底下留言分享。


No comments:

Post a Comment