使用LoRa模塊SX1278實(shí)現(xiàn)兩臺(tái)Arduino之間的LoRa通信
目前有許多通信技術(shù)可用于物聯(lián)網(wǎng)設(shè)備之間的交互,最流行的是Wi-Fi和藍(lán)牙。但Wi-Fi和藍(lán)牙技術(shù)的問題是高功耗。它們也有其他限制,比如有限的范圍,有限的接入點(diǎn)等。ESP8266模塊是物聯(lián)網(wǎng)設(shè)備中最流行的Wi-Fi模塊,我們之前已經(jīng)使用它構(gòu)建了很多物聯(lián)網(wǎng)項(xiàng)目。
蜂窩網(wǎng)絡(luò)也有同樣的問題,即高功耗,局域網(wǎng)和蜂窩網(wǎng)絡(luò)都是相當(dāng)昂貴的,以覆蓋廣泛的區(qū)域。物聯(lián)網(wǎng)行業(yè)引入了許多技術(shù),但它們都不適合物聯(lián)網(wǎng)設(shè)備,因?yàn)樗鼈冃枰诓皇褂锰喙β实那闆r下遠(yuǎn)距離傳輸信息,直到LoRa技術(shù)引入。LoRa技術(shù)可以實(shí)現(xiàn)超低功耗的超遠(yuǎn)距離傳輸。
在本文中,我們將學(xué)習(xí)LoRa技術(shù)和Arduino LoRa通信。這里我們將SX1278 Lora模塊與Arduino接口,并在兩塊Arduino Uno板之間建立Lora通信。
LoRa是什么?
LoRa(遠(yuǎn)程)是一種無線技術(shù),可為M2M(機(jī)器對機(jī)器)和物聯(lián)網(wǎng)應(yīng)用提供遠(yuǎn)程、低功耗和安全的數(shù)據(jù)傳輸。LoRa是由chirp擴(kuò)頻(CSS)技術(shù)發(fā)展而來的擴(kuò)頻調(diào)制技術(shù)。LoRa可用于無線連接傳感器、網(wǎng)關(guān)、機(jī)器、設(shè)備等。
LoRa是由一家名為Semtech的公司推出的。LoRa Technologies在不同國家的不同頻段工作:在美國,它運(yùn)行在915 MHz頻段,在歐洲地區(qū),它運(yùn)行在868 MHz頻段,在亞洲地區(qū),它運(yùn)行在865至867 MHz, 920至923 MHz頻段。
LoRa的工作更像是一種蜂窩通信。LoRa通信框圖如下所示。LoRa節(jié)點(diǎn)發(fā)出的信號通過LoRa網(wǎng)關(guān)傳送到另一個(gè)節(jié)點(diǎn)。網(wǎng)絡(luò)服務(wù)器從LoRa網(wǎng)關(guān)接收信號,通過應(yīng)用服務(wù)器發(fā)送給終端用戶。
根據(jù)官方信息,當(dāng)節(jié)點(diǎn)和網(wǎng)關(guān)之間沒有障礙物時(shí),LoRa可以實(shí)現(xiàn)715公里的距離。
組件的要求
?2×Arduino Uno
?2×LoRa SX1278模塊
?DHT11傳感器
?LCD 16×2模塊
?跳線
線路圖
LoRa發(fā)射端和接收端電路圖如下。在這個(gè)項(xiàng)目中,我們將使用LoRa SX1278模塊將溫度和濕度值從一個(gè)Arduino發(fā)送到另一個(gè)Arduino。DHT11傳感器連接到發(fā)送端Arduino。因此,這個(gè)Arduino將從DHT11獲取溫度和濕度值,然后通過LoRa SX1278模塊將其發(fā)送到另一個(gè)Arduino。這些濕度和溫度值將打印在連接到第二個(gè)Arduino的LCD上。
我們之前使用DHT11溫度和濕度傳感器與Arduino和樹莓派來構(gòu)建基于物聯(lián)網(wǎng)的氣象站。
發(fā)送端- LoRa與Arduino UNO的接口
在發(fā)送端,我們將使用帶有LoRa模塊和DHT11傳感器的Arduino UNO。Arduino UNO與LoRa和DHT11的接口如下圖:
LoRa模塊由16個(gè)引腳組成,其中6個(gè)引腳是GPIO引腳,4個(gè)是接地引腳。這個(gè)LoRa模塊工作在3.3V,因此LoRa上的3.3V引腳連接到Arduino UNO板上的3.3V引腳。完整的連接見下表。DHT11傳感器連接Arduino的A0引腳。
下面是Arduino Lora發(fā)射器的硬件設(shè)置:
接收端- LoRa SX1278與Arduino UNO接口
對于接收端,我們將使用帶有LoRa模塊和16×2 LCD顯示模塊的Arduino Uno。Arduino與LoRa和LCD模塊連接的電路圖如下圖所示
除了LCD模塊與Arduino連接外,連接方式與transmitter相同。完整的連接見下表。
下面是Arduino Lora Receiver的硬件設(shè)置:
Arduino LoRa作為發(fā)射器的編程
在本教程的最后給出了Arduinos(發(fā)射器和接收器)的完整程序,在這里我們解釋了代碼的幾個(gè)重要部分。
通過添加所需的庫和初始化引腳來啟動(dòng)程序。在此代碼中,SPI和LoRa庫用于LoRa模塊。DHT11傳感器模塊連接Arduino的A0引腳。您可以從這里下載Lora庫
在void setup()函數(shù)中,我們啟動(dòng)串行監(jiān)視器。在我的情況下,433E6 (433 MHz)是我的LoRa工作頻率,您可能必須根據(jù)您使用的模塊類型更改它。
在void循環(huán)函數(shù)中,我們使用DHT.readTemperature()和dht . read濕度()函數(shù)計(jì)算溫度和濕度值,并開始傳輸這些值。在接收端,將這些值打印在16x2液晶顯示器上。我們使用關(guān)鍵字“c”提示接收器在第2行打印以下信息。
本文編譯自iotdesignpro