Tag - 台灣物聯網應用

LoRa 無線傳輸模組 SX1278/1276 LoRa 8000m擴頻技術

【ESP32 教學】打造 LoRa 超長距離無線感測器 (附完整程式碼)

您是否曾經想打造一個能覆蓋整座農場、整棟廠房,甚至穿越山谷的無線感測網絡,卻總是苦於市面上 Wi-Fi 或藍牙模組那短短數十公尺的「訊號距離」限制?

這篇文章,就是為了解決這個核心痛點而生。我們將帶您使用兩大神器——ESP32 開發板 的超低功耗模式,以及傳輸距離遠達 8 公里E32 系列 LoRa 無線模組,一步步打造一個真正能實現超長距離通訊的無線感測節點。

  • 專案目標: 打造一個由電池供電的 LoRa 無線溫濕度感測器。
  • 核心功能: 每 10 分鐘自動發送一次數據,然後進入深度睡眠以節省電力。
  • 所需時間: 約 30 分鐘。
  • 技術難度: ★★☆☆☆ (初學者友好)

一、為什麼選擇 ESP32 + E32 LoRa 模組?

  • ESP32 的「深度睡眠 (Deep Sleep)」模式:樂鑫科技 (Espressif) 開發,內建超低功耗模式,可將電池壽命延長數月甚至數年。
  • E32 LoRa 模組的「超長距離」與「簡易 UART」特性: 這款 1W (30dBm) 高功率 LoRa 模組,採用 UART 串列埠通訊,接線和程式設計遠比傳統的 SPI 介面更簡單。

二、專案實作:從零件到成果的完整步驟

步驟一:硬體準備

  1. 主控板: Arduino Nano ESP32 開發板 x 1 (或其他您偏好的 ESP32 開發板)
  2. LoRa 模組: LoRa 無線傳輸模組 (1W 30dBm) x 2 (發送端與接收端各需一片)
  3. 感測器: DHT22 溫濕度感測器模組 x 1
  4. 電源: 3.7V 鋰聚合物電池 (LiPo) x 1 (選配)
  5. 其他: 杜邦線麵包板

關於電池供電的選擇

我們推薦的 Arduino Nano ESP32 是一塊功能強大且小巧的開發板,但請注意它沒有內建鋰電池充電接口。如果您希望打造一個可重複充電的裝置,建議您可以選擇帶有電池座或充電電路的 ESP32 開發板,或是額外搭配一片 TP4056 鋰電池充電模組 來使用。

步驟二:軟體與函式庫設定

請確保您的 Arduino IDE 已經安裝了 ESP32 的開發板支援。由於我們選用的 E32 LoRa 模組是透過 UART 通訊,我們不需要安裝任何複雜的第三方 LoRa 函式庫!您唯一需要安裝的,只有感測器的函式庫:

步驟三:硬體接線

由於採用 UART 介面,接線變得非常簡單!我們將使用 ESP32 的第二組硬體序列埠 (Serial2)。

E32 LoRa 模組 ESP32 開發板 說明
VCC 5V / 3V3 電源 (請參考模組規格)
GND GND 接地
RXD GPIO 17 (TX2) 接收端 ↔️ ESP32 的發送端
TXD GPIO 16 (RX2) 發送端 ↔️ ESP32 的接收端
M0 GND 設為傳輸模式 (接地)
M1 GND 設為傳輸模式 (接地)
DHT22 DATA GPIO 13 DHT22 感測器數據線

【接線防呆提示】 UART 通訊就像兩個人說話,A 的嘴巴 (TX) 要對著 B 的耳朵 (RX),B 的嘴巴 (TX) 則要對著 A 的耳朵 (RX)。所以接線時,請務必將模組的 TXD 接到 ESP32 的 RX2,模組的 RXD 接到 ESP32 的 TX2,交叉連接!

⚠️ 【重要】請確認您的 LoRa 頻率!

這款模組提供 433MHz、868MHz、915MHz 等多種頻率版本,它們無法互相通訊!請務必確認您的「發送端」和「接收端」使用的是完全相同頻率的模組。

步驟四:上傳程式碼 (發送端)

將以下程式碼上傳到您的 ESP32 開發板。它會讀取 DHT22 數據,透過 LoRa 發送,然後讓 ESP32 進入深度睡眠 10 分鐘。


#include <HardwareSerial.h>
#include "DHT.h"

// --- E32 LoRa (UART) ---
HardwareSerial LoRaSerial(2); // 使用 ESP32 的 Serial2 (GPIO 16, 17)

// --- DHT22 設定 ---
#define DHTPIN 13
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// --- Deep Sleep 設定 ---
#define uS_TO_S_FACTOR 1000000ULL
#define TIME_TO_SLEEP  600         // 睡眠 600 秒 (10 分鐘)

void setup() {
  Serial.begin(115200);
  while (!Serial);
  Serial.println("ESP32 LoRa Long-Range Sensor Node");

  LoRaSerial.begin(9600);
  dht.begin();
  delay(1000); // 等待感測器穩定
  
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
  } else {
    String dataToSend = "Temperature: " + String(temperature, 2) + " C, Humidity: " + String(humidity, 2) + " %";
    Serial.print("Sending data: ");
    Serial.println(dataToSend);
    LoRaSerial.println(dataToSend);
  }
  
  Serial.println("Going to sleep now for 10 minutes...");
  Serial.flush(); 
  
  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  esp_deep_sleep_start();
}

void loop() {
  // This part is not executed after deep sleep
}

步驟五:上傳程式碼 (接收端) 與最終測試

光有發送端還不夠,我們還需要一個接收端來驗證訊號是否成功發出。請將以下程式碼,上傳到您作為「接收端」的另一塊 ESP32 開發板上(接線方式與發送端相同,但可以不接 DHT22)。


#include <HardwareSerial.h>

HardwareSerial LoRaSerial(2);

void setup() {
  Serial.begin(115200);
  while (!Serial);
  Serial.println("ESP32 LoRa Receiver");
  LoRaSerial.begin(9600);
}

void loop() {
  if (LoRaSerial.available()) {
    String receivedData = LoRaSerial.readString();
    Serial.print("Received packet: '");
    Serial.print(receivedData);
    Serial.println("'");
  }
}

完成後,為您的發送端接上電池,並將接收端連接到電腦。打開 Arduino IDE 的序列埠監控視窗,您應該就能每 10 分鐘看到一次從遠方傳來的溫濕度數據了!


透過本篇教學的實作,您會發現,使用 UART 介面的高功率 LoRa 模組,其價值不僅在於強大的傳輸距離,更在於它極大地簡化了開發流程。這意味著您可以從複雜的底層通訊中解放出來,更專注於應用本身的創新,將您的物聯網創意,真正部署到任何過去訊號無法到達的角落。

本文由 台灣物聯科技 技術團隊,根據自家販售產品實測經驗分析彙整。

延伸閱讀

 什麼是嵌入式系統 (Embedded System)?一篇給新手的白話文終極指南

您是否想過,為什麼智慧手錶能偵測心率?為什麼洗衣機能自動選擇洗衣模式?為什麼汽車的倒車雷達會發出警示聲?這些智慧功能的背後,都藏著一個強大而精巧的大腦——那就是「嵌入式系統 (Embedded System)」。

這篇文章就是一篇為您準備的白話文懶人包,將帶您深入淺出地了解這個無所不在卻又充滿神秘感的科技核心。

一、什麼是嵌入式系統?一個隱藏的專家

簡單來說,嵌入式系統就是一個「為了特定任務而生,被『嵌入』到大型裝置中的微型專用電腦」。

它和我們桌上的個人電腦 (PC) 最大的不同在於:個人電腦是「通用」的,可以用來上網、打遊戲、做報告;而嵌入式系統是「專用」的,它的生命中通常只有一項或幾項特定任務,例如冷氣的嵌入式系統只負責控制溫度,汽車的嵌入式系統只負責處理引擎數據。


二、嵌入式系統的三大核心組成

一個完整的嵌入式系統,主要由三個部分組成,就像一個人的「身體、靈魂與神經」:

  • 🧠 硬體 (Hardware):身體
    核心是一顆被稱為「微控制器 (Microcontroller, MCU)」的晶片,它整合了 CPU、記憶體和各種輸出入接口。這就是系統的「大腦與四肢」。我們熟悉的 ArduinoESP32 開發板,其核心就是一顆微控制器。
  • 💻 軟體 (Software):靈魂
    這是在硬體上運行的程式,也稱為「韌體 (Firmware)」。它定義了嵌入式系統的所有行為和邏輯,告訴硬體在什麼情況下該做什麼事。
  • ⚡ 即時作業系統 (RTOS):神經系統 (選配)
    對於更複雜的系統(例如汽車或工業機器人),還會運行一個 即時作業系統 (Real-Time Operating System)。它負責管理多個任務,並確保最重要的指令能在規定的時間內(例如 0.001 秒內)被執行,就像我們的神經系統能讓我們瞬間做出反應一樣。

三、生活中有哪些嵌入式系統?

事實上,我們每天都被數十個甚至上百個嵌入式系統所包圍:

🏠 消費性電子

智慧手錶、藍牙耳機、數位相機、洗衣機、微波爐、電視遙控器。

🚗 汽車工業

引擎控制單元 (ECU)、防鎖死煞車系統 (ABS)、GPS 導航、倒車雷達。

🏭 工業控制

工廠產線上的機器手臂、CNC 工具機、自動化倉儲系統。

❤️ 醫療設備

心律調節器、血糖監測儀、自動注射泵。


四、如何開始學習嵌入式系統?

學習嵌入式系統最快的方式,就是「動手做」!您完全不需要從打造一顆 CPU 開始。透過像 Arduino 或 Raspberry Pi 這樣的開發平台,您可以直接跳到最有趣的「軟體與應用」層面。

  • 第一步:選擇一塊入門開發板
    我們強烈建議新手從 Arduino Uno 開始。它的社群最大、教學資源最豐富,能讓您在幾小時內就完成第一個專案(例如:點亮一顆 LED),建立巨大的成就感。
  • 第二步:連接感測器與致動器
    為您的開發板裝上「五官」(感測器) 和「手腳」(馬達、繼電器),讓它能與真實世界互動。
  • 第三步:撰寫程式碼
    透過簡單的 Arduino IDE,將您的邏輯寫成程式碼,上傳到開發板中,看著您的想法變成現實!

為了讓您無痛入門,我們也準備了包含所有必需品的「學習教學套件組」,是您踏出第一步的最佳選擇。


五、常見問題 (FAQ)

Q1: Arduino 或 Raspberry Pi 算是嵌入式系統嗎?

A: 是的,它們都是典型的嵌入式系統開發平台。Arduino 是一個微控制器系統,更接近傳統的嵌入式;而 Raspberry Pi 則是一個更強大的微處理器系統,能運行完整的作業系統,屬於高階的嵌入式應用。

Q2: 學習嵌入式系統需要用什麼程式語言?

A: C 和 C++ 是最傳統、最主流的語言。但現在,越來越多的平台(如 ESP32、Raspberry Pi)也支援使用 MicroPython 或 Python,大大降低了學習門檻。

Q3: 嵌入式系統的處理器架構是什麼?

A: 目前絕大多數的嵌入式系統,其核心都採用了 Arm 架構(例如 Cortex-M 系列),以其高效能與低功耗的特性著稱。


本文由 台灣物聯科技 技術團隊,根據多年產業知識與實測經驗分析彙整。

延伸閱讀

全球 73% 企業準備拚物聯網!TAIWANIOT 深入剖析第三平台戰略部署

行動刻不容緩:73% 企業已就位,IoT 佈局進入執行階段

行動裝置發展已臻成熟,全球科技產業的目光正聚焦於下一階段新技術:物聯網 (IoT)。我們 台灣物聯科技 (TAIWANIOT) 觀察到,物聯網不再只是規劃,技術發展已逐步邁入執行階段

根據國際研調機構 IDC 最新調查顯示,全球已有高達 73% 的企業準備好發展 IoT (Internet of Things) 解決方案,並計畫在未來 12 個月內積極佈局。這個數據清晰地向 IT 業界發出信號:物聯網已由概念期轉為佈局期,錯過即失去先機。

核心觀點:IoT 是全球第三平台,而非單純的技術選項

IoT 究竟是否有發展價值?IDC 今年 7、8 月針對全球 15 個國家、2,350 名 IT 主管級人員進行調查,結果顯示 IT 高階主管普遍認同:物聯網不僅是一個概念,未來將會演變成全球繼 PC 時代、網路時代之後的 第三平台

  • 戰略轉變: 調查數據顯示,有 58% 的受訪者認為物聯網是一項戰略新舉措,另有 24% 則將其視為是變革
  • 高價值產業領跑: 醫療保健產業最重視 IoT 的戰略性地位,其次是交通業與製造業

🎯 佈局兩大先鋒:零售與製造業

雖然高價值產業將 IoT 視為戰略核心,但在具體佈局意願上,IDC 點名:零售業、製造業是最有意願發展 IoT 技術的兩大產業。

這場變革要求企業能支撐大量的 IoT 端點連結數。IDC 提醒,企業能投入多少經費、能佈建多少端點,將會決定其在物聯網的發展契機。

挑戰與 TAIWANIOT 的硬體優勢

IDC 報告總結,與去年相同的是,物聯網的 「安全」 仍被視為一項挑戰。除此之外,IoT 的 前期建置成本後續養護成本也成為了未來各大企業佈建 IoT 時的主要挑戰項目。

面對這些挑戰,台灣物聯科技 (TAIWANIOT) 提供了關鍵的解決方案:

IDC 指出挑戰 TAIWANIOT 解決方案與產品優勢
前期建置與養護成本高昂 我們提供 樹莓派 (Raspberry Pi)、Arduino高性價比、開源硬體,能大幅降低 PoC (概念驗證) 階段的門檻與投入成本。
軟體快速超越硬體 我們代理 SparkFunSeeedDFRobot 等國際品牌,提供模組化、易於程式設計的硬體,讓您的開發團隊能專注於軟體和數據分析,加速解決方案的疊代速度。

IDC 預測,雖然零售業在 IoT 佈局方面處於劣勢,但未來 2 年之內會有相當大的轉變,不容輕忽。

 TAIWANIOT 呼籲:啟動您的 IoT 戰略

企業必須掌握 IoT 端點連結 的能力,才能在未來的市場競爭中取得領先。台灣物聯科技 是您實現 IoT 解決方案的最佳硬體夥伴。我們提供最齊全的開發板、感測器和擴展模組,讓您的企業能以最經濟、最有效的方式,參與這場全球 73% 企業共同參與的技術革命!

立即訪問 TAIWANIOT 網站,為您的 IoT 佈局選擇最堅實的硬體基石。