搜尋程式碼

由13英里(21公里)外开启设备——终极离网LoRa项目,搭配WiFi LoRa 32!

呢一課係……嘅一部分: WiFi LoRa简介

由13英里(21公里)外开启设备——终极离网LoRa项目,搭配WiFi LoRa 32!

想像吓可以喺你偏遠嘅小屋開水泵、喺幾英里外開閘門、或者喺工場開暖爐——全部唔使Wi-Fi、唔使流動數據計劃、亦都唔使任何月費。呢個就係LoRa(長距離)技術嘅威力。喺呢個項目入面,我哋會用Heltec Wi-Fi LoRa 32模組嚟整一個安全、離網嘅遙控系統。我哋會整一個發射器,將安全訊號發送到接收器,距離遠達13英里(21公里),然後觸發繼電器去控制你揀嘅任何裝置。

 

呢個指南會帶你行完整個過程,由喺堅固外殼入面組裝硬件,到上載程式碼,再進行真實環境嘅距離測試。呢個唔單止係實驗室實驗;佢係一個適用於多種應用嘅實用方案。

  • 遙距農業:喺中央位置開動灌溉水泵或者溫室風扇。
  • 物業出入:當你接近時開關車庫門或者遙距閘門。
  • 離網自動化:控制小屋、船或者露營車入面嘅燈光、暖爐或者其他電器。
  • 保安系統:喺遠處啟動或者關閉保安警報或者攝像系統。
  • 野生動物監測:喺遠處觸發相機陷阱或者非致命驅趕裝置。

呢個項目嘅核心係Heltec Wi-Fi LoRa 32 V3模組,我哋會將佢裝喺一個專業嘅Meshnology N32外殼入面,配備3000mAh電池,真正做到便攜。我哋會探討繼電器同蜂鳴器嘅接線、解釋必要嘅程式碼配置,仲會教你點樣設定一個唔會干擾其他LoRa裝置嘅安全連結。最終成果係一個自給自足、強勁嘅遙距開關,完全免費運作,距離遠到傳統Wi-Fi或者藍牙方案根本做唔到。

硬件同零件

要整呢個項目,你需要以下零件。核心物品通常可以喺Meshnology嘅套件入面搵到,咁樣會簡化組裝過程。

  • 2x Heltec Wi-Fi LoRa 32 V3模組:主要嘅微控制器,內置LoRa、Wi-Fi同藍牙。(影片00:23位置)
  • 2x Meshnology N32外殼:一個堅固、專業嘅外殼,專為容納Heltec模組同大容量電池而設計。(影片02:00位置)
  • 2x 3000mAh 3.7V LiPo電池:提供持久、便攜嘅電力,適合離網操作。(影片02:14位置)
  • 1x 繼電器模組:一個5V繼電器模組,用嚟開關你嘅高功率負載(例如摩打、燈或者水泵)。
  • 1x 蜂鳴器(可選):一個5V有源蜂鳴器,用嚟提供聲音反饋,由2N2222晶體管驅動。
  • 1x 2N2222晶體管(可選):一個NPN晶體管,用嚟安全驅動蜂鳴器。
  • 1x 1kΩ電阻(可選):一個限流電阻,用喺晶體管嘅基極。
  • 2x 高增益天線:用嚟最大化傳輸距離同接收靈敏度。(影片04:35位置)
  • 各種電線同連接器:用嚟做必要嘅連接。

安裝Heltec ESP32開發板

將呢個路徑加入你Arduino IDE嘅偏好設定,好似影片入面咁做:https://resource.heltec.cn/download/package_heltec_esp32_index.json

所需程式庫

你一定要安裝 Robojax_HeltecLoRa32 函式庫。喺呢篇文章下面嘅連結下載佢。

喺上載任何程式碼之前,用Arduino IDE安裝呢個ZIP函式庫。

接線指南

呢個項目涉及兩個獨立電路:發射器同接收器。兩者嘅接線都好簡單。如果你用緊Meshnology外殼,你需要鑽一個細窿嚟將繼電器或者蜂鳴器嘅電線引到外面。影片示範咗一個整齊嘅組裝,但核心連接如下:

發射器:發射器用Heltec模組上內置嘅用戶按鈕。控制信號唔需要外部接線。只要確保喺開機之前連接好天線就得。

接收器:接收器嘅GPIO 4引腳用嚟控制繼電器或者蜂鳴器。接線如下所示。請注意,繼電器同ESP32係隔離嘅,所以你需要一個獨立電源嚟供電畀繼電器嘅負載電路。

繼電器連接:

  • 將Heltec模組嘅3.3V引腳連接到繼電器模組嘅VCC引腳(或者如果你需要穩定嘅5V,就接升壓轉換器嘅正極輸入)。
  • 將Heltec模組嘅GND引腳連接到繼電器模組嘅GND引腳。
  • 將Heltec模組嘅GPIO 4引腳連接到繼電器模組嘅IN(信號)引腳。(影片14:54位置)

蜂鳴器連接(用晶體管):ESP32嘅GPIO引腳唔可以提供足夠電流直接驅動蜂鳴器。晶體管充當開關嚟保護微控制器。(影片16:47位置)

  • 3.3V引腳連接到蜂鳴器嘅正極(+)端子。
  • 將蜂鳴器嘅負極(-)端子連接到2N2222晶體管嘅集電極
  • 將晶體管嘅發射極連接到GND引腳。
  • 將晶體管嘅基極連接到1kΩ電阻嘅一端。
  • 將電阻嘅另一端連接到GPIO 4引腳。
Heltec_Wifi_LoRA_32_wiring_uzzer
Heltec_Wifi_LoRA_32_wiring_uzzer
641_Heltec_Wifi_LoRA_Rotary_Encoder_wiring
641_Heltec_Wifi_LoRA_Rotary_Encoder_wiring
617_WiFi_LoRa32_Relay_wiring_boost
617_WiFi_LoRa32_Relay_wiring_boost

程式碼解釋

呢個項目嘅程式碼喺Robojax Heltec LoRa 32函式庫入面提供。你需要喺Arduino IDE入面安裝呢個函式庫同必要嘅板支援套件。設定過程喺影片入面有詳細講解。安裝好函式庫之後,你可以開啟範例草圖:發射器用Relay_Secure_TX_Sample,接收器用Relay_Secure_RX。(影片26:12位置)

發射器同接收器嘅程式碼頂部都有幾個用戶可配置嘅變數,你一定要設定好先可以確保正常通訊。呢啲變數係令項目喺你嘅特定設定下正常運作嘅關鍵。

// 用戶可設定變數
// ============================
bool debug = false; // 設為 true 可以啟用 Serial Monitor 輸出

// 發射器設定
const int userPin = 0; // 用戶按鈕嘅 GPIO 引腳
String relayOnText = "繼電器開啟"; // 顯示屏上顯示嘅文字
String relayOffText = "繼電器關閉"; // 顯示屏上顯示嘅文字

// 接收器設定
const int relayPin = 4; // 連接到繼電器或晶體管嘅 GPIO 引腳
int relayOnDuration = 3000; // 繼電器喺「Sample」代碼中保持開啟嘅時間(毫秒)

// 安全設定(兩個裝置必須完全一致)
String securityKey = "your_secret_key"; // 用於安全通訊嘅共享密鑰
String secret = "your_secret"; // 另一個用於增加安全性嘅密鑰

// LoRa 設定(兩個裝置必須完全一致)
#define LORA_FREQUENCY 915.0 // 頻率(MHz)(例如:歐洲用 868.0,美國用 915.0)
int power = 20; // 發射功率(dBm)(2 到 20)
// ============================

以下係每個設定嘅作用:

  • debug當設為 true 時,代碼會將詳細資訊打印到 Arduino IDE 嘅 Serial Monitor。呢個對排查問題好有用,但正常操作時應該設為 false 以節省電力。
  • userPin(發射器):呢個定義咗連接按鈕嘅 GPIO 引腳,你撳呢個掣就會發送信號。預設值係 0,即係 Heltec 模組上嘅內置用戶按鈕。
  • relayPin(接收器):呢個係輸出信號嚟控制繼電器或晶體管嘅 GPIO 引腳。預設值係 4。如果你將繼電器連接到其他引腳,就一定要改呢個值。
  • relayOnDuration(接收器):呢個用喺「Sample」代碼入面。佢決定收到信號之後繼電器保持開啟幾耐。例如,設為 1000 就會令繼電器開啟 1 秒。呢個對「瞬間」動作(例如開門)好有用。「Toggle」示例代碼會忽略呢個設定,每次撳掣都會切換狀態。
  • securityKeysecret呢啲係你 LoRa 連結嘅密碼。發射器同接收器上面必須完全一樣。咁樣可以防止未經授權嘅人控制你嘅裝置。(影片 27:19 有講)
  • LORA_FREQUENCY呢個設定無線電頻段。兩個裝置必須一樣,而且喺你嘅國家要合法(例如:歐洲用 868 MHz,北美用 915 MHz)。(影片 27:36 有講)
  • power呢個設定發射功率(dBm)。2 係低功率,用嚟測試;20 係最大功率,可以達到最遠距離。(影片 27:43 有講)

發射器代碼主要有三種類型:SampleToggleMomentary。「Sample」代碼會將繼電器開啟一段設定嘅時間。「Toggle」代碼每次撳掣都會切換繼電器嘅狀態(開/關)。「Momentary」代碼只會喺按住按鈕期間開啟繼電器。揀一個最適合你應用嘅。

實際項目同示範

喺影片入面,創作者分兩個階段示範呢個項目。首先,一個實驗室測試顯示系統可以正常運作,用繼電器控制摩打,同時用晶體管驅動蜂鳴器。繼電器同蜂鳴器成功由發射器電路板切換開關,證明咗基本功能同安全通訊連結都冇問題。

第二個階段更加犀利,係真實世界嘅距離測試。發射器放咗喺湖邊嘅三腳架上,接收器就帶到 13.04 英里(20.98 公里)外一個視線清晰嘅地方。影片顯示接收器顯示緊由遠處傳嚟嘅電壓值,成功喺超過 21 公里嘅距離接收到數據。呢個證實咗呢個項目可以免費控制好遠距離嘅裝置,完全唔需要依賴任何現有基建。

章節

  • [00:00] 離網 LoRa 控制簡介
  • [01:01] 項目概述同系列介紹
  • [01:57] 開箱同檢查硬件
  • [04:56] 了解 Heltec 模組同天線
  • [07:57] 組裝 Meshnology N32 外殼
  • [13:56] 接駁繼電器同蜂鳴器電路
  • [19:41] 最終組裝同外殼修改
  • [21:51] 安裝所需軟件同程式庫
  • [26:12] 設定發射器代碼
  • [28:46] 設定接收器代碼
  • [30:02] 現場示範:控制繼電器同蜂鳴器
  • [33:06] 真實世界 13 英里距離測試同總結

圖片

617_WiFi_LoRa32_Relay_wiring_boost
617_WiFi_LoRa32_Relay_wiring_boost
641_Heltec_Wifi_LoRA_Rotary_Encoder_wiring
641_Heltec_Wifi_LoRA_Rotary_Encoder_wiring
Heltec_Wifi_LoRA_32_wiring_uzzer
Heltec_Wifi_LoRA_32_wiring_uzzer
Heltec_WiFi_LoRa_32_V3_N35-1-package
Heltec_WiFi_LoRa_32_V3_N35-1-package
请提供需要翻译的文本。

文件📁

其他文件