物聯網在近幾年有爆發之勢,大量普及的集合了許多因素,包括:晶片模組成本、終端設備、網路普及、應用服務、軟體技術等日趨完善有關,物聯網有「最後一哩」的難題。雖然用來收集與分析資料的雲端基礎架構早已就緒,但仍需要可用來連結大量裝置接上網路、且兼具傳輸距離、低功耗與低成本特性的LPWAN(Low-Power Wide-Area Network,低功率廣域網路)。
因此LPWAN有數種規格互相競逐,例如Lora、Sigfox、窄頻物聯網(Narrow Band-IoT, NB-IoT)等,NB-IoT亦稱為LTE Cat. NB1,為架構在行動通訊網路上的低功率廣域網路技術。可以使終端設備簡單有效地連接行動通訊網路,資料傳輸時具備行動通訊等級加密的可靠度,適合處理少量、不頻繁的雙向數據。
在感測器軟硬體方面,可以透過Arduino建構快速原型的製作,其為一個基於易於使用的硬體和軟體的開源電子架構,並可從簡單感測應用轉變為物聯網應用,可穿戴設備等嵌入式產品,而且所有Arduino都是完全開源的,開發者能夠獨立構建它們並最終使產品適應其特定需求。
鑒於Arduino和NB-IoT在物聯網產品開發上的優勢,資策會推出了結合兩者優勢的開源物聯網開發板 – DSI2598 NB-IOT開發板,使用國產晶片聯發科的NB-IoT MT2625模組,搭配Arduino原廠MCUATMEGA328P,為國內首款的Arduino NB-IoT開發板,輔以Arduino IDE為主要的程式開發環境,讓雛形打造簡單容易。
這次有幸受邀針對 DSI2598 NB-IoT 開發板做測試,並撰寫其測評文章,官方的作法很開放,完全不干涉我如何撰寫文章的內容,若您對於這片DSI2598 NB-IoT 開發板開發板有興趣,可透過這個網址進行申請(申請核准後將另行通知領取)。
只需不到短短一分鐘... 輸入您的信箱與ID註冊即可享有一切福利! 免費電子報 會員搶先看 主題訂閱 好文收藏會員福利
2020/12/11
您好,不好意思,
想請問您BC26的板子目前只能做上傳資料的功能嗎?
因為想做手機和電腦的無線控制,
因此想知道BC26可不可以接收訊息?
2020/12/11
有的, 推薦使用MQTT, 可參考B626原廠網站(需註冊),
應用指導-> Quectel_BC26&BC20_MQTT_應用指導_V1.1.pdf
https://www.quectel.com/cn/product/BC26.htm
2020/12/11
謝謝,
請問有相關範例嗎?
目前剛接觸BC26連網
所以不是很清楚應該如何修改……
2020/12/11
無相關範例, 建議參考以下這篇, B626的相關操作都是AT command來進行的. https://blog.csdn.net/qq_23327993/article/details/103566898
2020/04/27
我有申請到正在用,看來連線都正常了,不過我一直沒辦法順利下載那些PDF檔案(可能因為我都在學校的關係,不能隨便連結中國的網路),因此想是那些AT command、TCP(IP) command的說明書我都下載不成功
有辦法email給我嗎: laisan86@gmail.com
2020/04/27
已Mail給您, 請收信.
2020/03/11
您好詢問一下,目前我使用您的Source Code練習卻無法上傳資料至IDEAS Chain平台,AK、DID、SID已確認無誤,而Monitor並無明顯錯誤,但會有亂碼的情況發生(115200 baud)
之後便採用AT Command手動方式進行連接,能與150.117.122.166(PORT:7789)進行連接,但在AT+QSOSEND傳送後,會有亂碼或是完全無reply的情況發生(連接並無斷線),而資料也沒有上傳成功。
想詢問是否有遇過類似的解決方法,感謝您 !
開發版 : DSI2598(第二代)
網路狀態 : 已使用AT Command確認網路與取得IP
錯誤異常 : 無法順利上傳資料至IDEAS Chain平台
2020/03/11
您好, 看來問題在於Idea Hatch的服務150.117.122.166(PORT:7789)關閉導致, 建議向資策會反應此問題 https://www.ideas-hatch.com/contact.jsp 來取得相關API服務的IP與Port並更新到code裡
2020/01/07
您好,貴公司的DSI2598開發板我正與我指導教授討論是否購買與購買幾片中,這幾天就會寄予購物清單^^
可否再請教您們一個問題,我使用紅外線物體偵測、兩片Arduino UNO R3、兩片LoRaRYLR890、1片NBIOT:SIM7020E。
我將其分為傳送端與接收端:
傳送端(Tx):
1. 紅外線物體偵測器
2. Arduino UNO R3
3. LoRa:RYLR890
4. LED
接收端:(Rx):
1. Arduino UNO R3
2. LoRa:RYLR890
3. NBIOT:SIM7020E
4. LED
我的目的是要做一套模擬智能路燈的概念,當Tx端之紅外線偵測到物體時除本身LED燈亮燈之外還能透過LoRa傳達亮燈資料訊息給Rx端,並再把訊息透過NBIOT傳給IFTTT,最後IFTTT把訊息傳至手機。
但現在問題出在接收端之LED燈能夠確實亮燈,手機卻沒收到IFTTT之訊息。我推測是NBIOT的程式宣告部份發生了問題,而我檢查好幾日都查不到錯誤點,無計可施下只好請教NBIOT專業人士給予我寶貴建議!!!
這是我的接收端程式碼:
const int ledPin = 13;
#include //引用SoftwareSerial函式庫
SoftwareSerial LoRa(10, 11); //RX ,TX
SoftwareSerial NBIOT(3, 4); //RX ,TX
void setup() { //輸出入宣告區
pinMode(ledPin, OUTPUT);
Serial.begin(9600); //設鮑率為9600
NBIOT.begin(9600);
LoRa.begin(57600); //設LoRa傳輸率為57600
pinMode(9, OUTPUT); //設Pin 9() 為輸出
digitalWrite(9, HIGH); //設Pin 9為高電位
delay(300); //延遲0.3毫秒
LoRa.println(“AT+NETWORKID=12”); //把網路號碼設為12
delay(300);
LoRa.println(“AT+NETWORKID?”); //詢問網路號碼
delay(300);
LoRa.println(“AT+ADDRESS=34”); //把裝置號碼設為34
delay(300);
LoRa.println(“AT+ADDRESS?”); //詢問裝置號碼
delay(300);
//while(LoRa.available()){ //把累積的回應全部印出來
// Serial.println(“ok”);
// Serial.write(LoRa.read());
//}
}
void loop() {
String rxData, lengthChar; //宣告rxData,lengthChar為字串
char rxByte, state = 0;
int k, header = 0, tail=0, strLength, payloadLength;
if (LoRa.available()){
while(LoRa.available()){ //讀取字串 (如果BaudRate太低,while迴圈內應加入適當的delay)
rxByte = LoRa.read();
rxData += rxByte;
}
Serial.println(“\n \nRx AT command:”); //印出原始command字串
Serial.println(rxData);
if (rxData.startsWith(“+RCV=”)) { //判斷字串頭是否為”+RCV”?
strLength = rxData.length();
for(k = 5; k < strLength; k++){ //尋找資料段落所在
if (state == 0) {//尋找第1個','
if (rxData.charAt(k) == ',')
state = 1;
}else if (state == 1) { //讀取並換算Payload長度,根據長度尋找資料段落所在
if (isDigit(rxData.charAt(k))){ //讀取Payload長度字串
lengthChar +=rxData.charAt(k);
}else if (rxData.charAt(k)==',') { //Payload長度字串結束
header = k+1; //Payload開始位置
payloadLength = lengthChar.toInt(); //換算Payload長度
tail = header+payloadLength; //Payload結束位置
Serial.print("Payload length = "); //印出Payload長度
Serial.println(payloadLength);
rxData = rxData.substring(header,tail); //切出資料段落
Serial.println("Rx payload:"); //印出Payload
Serial.println(rxData);
//目前推測是這裡有宣告錯誤之處
}if (rxData == "1"){
//Serial.print(rxData);
digitalWrite (ledPin, HIGH);
break;
const char *AT = "AT";
const char *CSQ = "AT+CSQ";
NBIOT.println(AT);
delay(100);
NBIOT.println(CSQ);
delay(100);
NBIOT.println(String("AT+CHTTPCREATE=") + "http://" + "maker.ifttt.com\r\n");
delay(100);
NBIOT.println("AT+CHTTPCON=0");
delay(100);
NBIOT.println(String("AT+CHTTPSEND=0,0,") + "/trigger/msgToLINE/with/key/cos134FjL3AhHpVsul0feQ/");
delay(100);
NBIOT.println("AT+CHTTPDISCON=0");
delay(100);
NBIOT.println("AT+CHTTPDESTROY=0");
} else if (rxData == "0"){
//Serial.print(rxData);
digitalWrite (ledPin, LOW);
break;
}
}else{
Serial.println("Error!");
digitalWrite (ledPin,LOW);
break;
}
}
}
}
}
//delay(100);
在此萬分感謝您們的幫助!!!不論您耐心看完我的長篇留言後是否會留言,或是留給我的建議是否真的可以成為我的解題之方法,小弟都萬分感謝您們的耐心閱讀與協助!! 2020 Happy New Years!
2020/01/09
DoDo你好, 很高興看到你用NB-IOT建立屬於自己的專案,
以下是幾點建議, 希望對你除錯上有所幫忙 :
1.LoRa模組RYLR890的Serial預設Baud Rate是9600.
2.是否有進行NB-IOT init ?
3.是否有確認NB-IOT行動網路上線(訊號品質AT+CSQ or 上線狀態AT+CREG?) ?
4.是否有設定行動網路的APN ?
2020/01/13
感謝您給予的寶貴建議,我這幾天不斷地在除錯,在不斷改進後發現到問題似乎是出現在NBIOT:SIM7020E的PWR腳位中?
當我將LoRa:RYLR890暫時拔除後,NBIOT能正常傳輸Arduino資訊至IFTTT,並傳至LINE中,但若加入LoRa我將無法正常傳輸;可LoRa方面不管我有沒有加上NBIOT,LoRa的都能夠正常傳達Tx資料到Rx中
2019/12/31
請問一下,我是自架一個UDP SERVER收集NB-IOT傳過來的訊息,目前是單向收資料,因在UDP上可以看到NB-IOT上SIM卡傳過來的IP,若我要對NB-IOT反向下指令的話,要怎麼操作。謝謝!
2019/12/31
你好, 由於UDP封包的特性是射後不理, 所以建議改用MQTT主動詢問, 或是使用TCP的方式進行.
2019/12/24
好的我再參考。
Arduino UNO 部份 目前我卡在 DSI2598-ideaschain.ino的第一列程式的階段:
BC26.h no such a file or directory
請問不是點選加入檔案嗎?
2019/12/31
你好, 請將BC26.h和DSI2598-ideaschain.ino放在同一層目錄, 謝謝.
2019/12/21
已詢問過,這幾天在修改系統,過兩天會再啟用。
2019/12/22
好的,感謝您!!
2019/12/23
已重開通,請再試試~
2019/12/24
好的我再參考。
Arduino UNO 部份 目前我卡在 DSI2598-ideaschain.ino的第一列程式的階段:
BC26.h no such a file or directory
請問不是點選加入檔案嗎?
2019/12/24
您好,DSI2598-ideaschain.ino的第一列程式我找到了解決方法,但目前有疑慮的是BC26.h的第59行程式有疑慮:
59.
for(int i = 0; i 10) { // 超過10秒未有回覆,重新啟動系統
這段程式Arduino偵測的錯誤回報訊息是:
a function-definition is not allowed here before ‘{‘ token
煩請指點疑慮!!
2019/12/31
你好, 可能是複製貼上的問題, 建議可以到我的github下載, 謝謝.
2019/12/19
你好,請問有Arduino UNO搭配NB-IOT的範例供參考嗎? 我使用的NB-IOT型號是SIM7020E
2019/12/19
您好, 建議可以修改NB-IoT連線測試的範例(下載), 跑在Arduino Uno上,
SIM7020E的連線AT指令, 可以參考Waveshare SIM7020E NB-IoT HAT裡的說明, 來進行相關的連線操作.
2019/12/20
好的,這幾日我再嘗試,今日研究了一下也對DSI2598開發模組有興趣,但您的網址我點選進入後,網址顯示已不接受回應?
2019/12/20
我們來幫忙問問開發單位資策會。