在本篇文章中,我們將學(xué)習如何將LoRa模塊SX1278與ESP32結(jié)合使用。在這里,我們將使用兩個LoRa模塊-一個連接到ESP32,另一個連接到Arduino開發(fā)板。ESP32 LoRa設(shè)置將從任何給定城市的API請求天氣數(shù)據(jù),并將其發(fā)送到Arduino LoRa設(shè)置。然后Arduino LoRa將接收數(shù)據(jù)并將其顯示在LCD顯示屏上。因此ESP32 LoRa部分將作為發(fā)射器,而Arduino LoRa部分將充當接收器。在ESP32上還連接了OLED,實現(xiàn)在發(fā)射器顯示溫度和濕度。
所需的組件
● ESP32控制器
● Arduino Uno開發(fā)板
● Arduino Lora擴展版
● LoRa-02 SX1278模塊
● LCD模塊1602
● OLED顯示模組
● 面包板
● 跳線
電路原理圖
以下是LoRa發(fā)射器/服務(wù)器和接收器/客戶端部分的電路圖。在本文中,我們將使用LoRa SX1278模塊將天氣數(shù)據(jù)從ESP32模塊發(fā)送到Arduino Uno開發(fā)板。溫度和濕度數(shù)據(jù)將使用API從Internet讀取,然后從ESP32模塊使用LoRa模塊發(fā)送到Arduino。
發(fā)射器部分 - ESP32與LoRa模塊的連接圖
在發(fā)送端,我們將ESP32連接到LoRa模塊和OLED顯示屏。電路圖如下所示。
下表列出了ESP32和SX1278模塊之間的完整連接。
LoRa SX1278模塊 | ESP32 |
---|---|
3.3V | 3.3V |
GND | GND |
NSS | D5 |
DIO0 | D2 |
SCK | D18 |
MISO | D19 |
MOSI | D23 |
RST | D14 |
接收器部分 - LoRa模塊與Arduino UNO的連接
在接收器方面,我們使用一款A(yù)rduino Lora擴展板。該擴展板由SX1278模塊和一個LM317穩(wěn)壓器設(shè)計的3.3V穩(wěn)壓器組成。擴展板直接插在Arduino上面,為其提供LoRa功能。LoRa Arduino擴展板的完整電路圖如下:
獲取天氣數(shù)據(jù)的API鏈接
如前所述,我們需要API鏈接才能從Internet請求天氣數(shù)據(jù)。在這里,我們將使用WeatherAPI,該API具有非常簡單易用的API,可讓我們檢索天氣信息。因此,首先在網(wǎng)站上注冊賬戶以獲取API鏈接。
注冊后,轉(zhuǎn)到“My Account”并獲取API。API密鑰用于發(fā)出獲取數(shù)據(jù)的請求。
現(xiàn)在返回并單擊“ API Explorer”
現(xiàn)在,在“API Explorer”頁面上,輸入API和城市名稱。
然后向下滾動并單擊“Show Response”按鈕制作一個請求。它將為您提供API密鑰。
現(xiàn)在,將您的API URL粘貼到新的瀏覽器標簽中,查詢的輸出將如下所示(JSON數(shù)據(jù)):
獲取JSON數(shù)據(jù)后,生成代碼,我們可以通過該代碼讀取JSON數(shù)據(jù)并根據(jù)需要對其進行斷句設(shè)置。轉(zhuǎn)到ArduinoJson Assistant,然后將JSON數(shù)據(jù)粘貼到Input部分中。
現(xiàn)在向下滾動到解析程序,然后復(fù)制對您有用的代碼部分。
ESP32 LoRa發(fā)射器代碼
-
API
+關(guān)注
關(guān)注
2文章
1501瀏覽量
62034 -
LoRa模塊
+關(guān)注
關(guān)注
5文章
134瀏覽量
13924 -
ESP32
+關(guān)注
關(guān)注
18文章
971瀏覽量
17279
發(fā)布評論請先 登錄
相關(guān)推薦
評論