對于剛開始入手LoRa的Maker,可能沒甚么信心可以抓住重點,但事實上,LoRa架構(gòu)很簡單,只要Node與Gateway頻道的頻率設(shè)定相同,以及與Server新增裝置的 key設(shè)定一樣,就可以成功做數(shù)據(jù)傳輸?shù)膭幼髁恕?/p>
本專案用AcSip群登 S76S LoRa模塊做CO感測,作為一個簡單范例。
材料
1. AcSip S76S LoRa積木式模塊與0dB天線
2.MQ-9一氧化碳CO感測模塊
3.Arduino Mega 2560
4.一些公對母、公對公杜邦線
5.一臺LoRa Gateway;道理就像一般所使用的網(wǎng)關(guān)一樣,只是從不同網(wǎng)段的轉(zhuǎn)送,變成LoRa與因特網(wǎng)間的轉(zhuǎn)送。我們這次用Kiwitec TLG2901 High Capacity Gateway。
說明一下:LoRa若要能夠接通必須要有兩個關(guān)鍵。如前述所言,一個是頻率、一個是Key,像是AcSip S76S這個LoRa積木式模塊出廠時設(shè)定為868MHz,但能用韌體調(diào)整為915MHz,所以使用上請先記得參考LoRa模塊以及Gateway的說明書確定。
硬件接線
對于MQ-9一氧化碳感測模塊,可以參考下表:
以下為AcSip S76S LoRa積木式模塊的腳位圖,接線的方式如下圖。
特別提醒一下,S76S模塊內(nèi)部已經(jīng)有跳線將TX、RX能直接對應(yīng)到用戶的電路上,所以請勿反接。
軟件部分
LoRa傳輸?shù)臅r候,LoRa node上的程序有三個項目要做:
A. 加入ABP,Key與Server設(shè)定的Device相同,就能成功把payload解密
B. LoRa node決定用哪個Port用來發(fā)送訊息
C. 決定用確認(cnf)或非確認(ucnf)的方式來傳輸訊息給LoRaServer
我們采用非確認的方式,Port在我們這里是設(shè)定為2。至于傳輸?shù)拿盥铩透高^Serial把字符串輸出給device一樣,夠容易吧!
參考程序代碼如下
#include <SoftwareSerial.h>
SoftwareSerial lora(5, 4);
#define TX_PORT 2 // Up to gatewaydefinition #define RX_PORT 1
char dat[64];
void setup() { // put your setup code here,to run once: Serial.begin(9600); lora.begin(115200); delay(1000);
lora.print(“mac join abp”); // Join your ABPdelay(5000); }
void loop() { int len = lora.a(chǎn)vailable();if( len > 0 ) { lora.readBytes(dat, len); for(int x=0; x < len; x++) {Serial.print((char)dat[x]); } }
// put your main code here, to runrepeatedly: float sensor_volt; float RS_gas; // Get value of RS in a GAS floatratio; // Get ratio RS_GAS/RS_air int sensorValue = analogRead(A0); float R0 =2.10;
sensor_volt=(float)sensorValue/1024*5.0;RS_gas = (5.0-sensor_volt)/sensor_volt; // omit *RL
/*-Replace the name “R0” with the value ofR0 in the demo of First Test -*/ ratio = RS_gas/R0; // ratio = RS/R0/* ———————————————————————–*/
Serial.print(“sensor_volt = “);Serial.println(sensor_volt); Serial.print(“RS_ratio = “);Serial.println(RS_gas); Serial.print(“Rs/R0 = “); Serial.println(ratio);
Serial.print(“”);
sprintf(dat, “mac tx ucnf %d %04d”,TX_PORT, sensorValue); lora.print(dat);
delay(30000); }
作者:賴建宏
-
傳感器
+關(guān)注
關(guān)注
2561文章
52286瀏覽量
762278 -
傳感測試
+關(guān)注
關(guān)注
0文章
3瀏覽量
7731 -
LoRa
+關(guān)注
關(guān)注
351文章
1747瀏覽量
234101
發(fā)布評論請先 登錄
評論