使用WisBlock生態(tài)系統(tǒng)向Ubidots發(fā)送數(shù)據(jù)
資料介紹
描述
項目概況
在本教程中,我們將使用 RAK1906 開發(fā)一個應(yīng)用程序,這是一個可以測量溫度、濕度、壓力和氣體的傳感器。我們還將使用RAK13101,它是Quectel mc20 無線通信模塊,允許使用SIM 卡通過TCP/UDP 協(xié)議將數(shù)據(jù)發(fā)送到云端,因此我們可以將數(shù)據(jù)存儲在Ubidots 平臺中。
什么是TCP/UDP?
TCP 代表傳輸控制協(xié)議。它是 Internet 最重要的協(xié)議之一,由 Vint Cerf 和 Robert Kahn 在 70 年代開發(fā)。與UDP(User Datagram Protocol )一樣,它是對應(yīng)于OSI模型傳輸層的協(xié)議,其主要目的是在數(shù)據(jù)網(wǎng)絡(luò)中建立連接以交換數(shù)據(jù)。它最重要的特性之一是它保證數(shù)據(jù)的傳遞沒有錯誤并且按照它們發(fā)送的相同順序。
產(chǎn)品列表
- WisBlock 底板 | RAK5005-O
- 用于帶有 LoRa SX1262 的 LoRaWAN 的 Nordic nRF52840 BLE 核心模塊 | RAK4631 / RAK4631-R
- 環(huán)境傳感器BOSCH BME680 | RAK1906
- GSM移遠(yuǎn)MC20CE | RAK13101
- 電池連接器電纜/5 根電池線
- –0.3V 至 4.3V 電池
- SIM卡
一步步
智慧模塊
該物聯(lián)網(wǎng)硬件項目所需的WisBlock 模塊由底座、核心、無線和傳感器組成。首先,讓我們深入了解每個模塊的作用及其工作原理:
RAK5005-O,也稱為WisBlock底板
該基板為所有 WisBlock 模塊提供電源和數(shù)據(jù)。它支持核心、顯示器連接和傳感器本身。稍后我們將看到一切看起來如何。
RAK4631,也稱為WisBlock LPWAN模塊
基于超低功耗 MCU Nordic nRF52840,這是該項目的核心,包含 SX1262 Semtech LoRa ? IC 和 BLE(低功耗藍(lán)牙)。
RAK1906,又稱WisBlock環(huán)境傳感器
該傳感器基于 Bosch? BME680 模塊,可以同時測量多個量級,例如:
- 溫度
- 濕度
- 高度
- IAQ(室內(nèi)空氣質(zhì)量)
- 氣體:二氧化碳
該模塊通過使用 Quectel MC20CE 蜂窩模塊在 WisBlock 平臺上提供 GSM/GPRS 功能。
如何連接一切
現(xiàn)在您知道您需要什么模塊以及它們?nèi)绾喂ぷ鳎屛覀儗?RAK4631 Core 連接到 CPU 插槽。
然后,RAK5005-O底座的Slot A中的RAK1906傳感器,均使用M1.2x3螺絲。
接下來,使用 M1.2x3 螺釘將 RAK13101 連接到 IO 插槽。
對于此模塊,將天線連接到正確的位置:GPS 天線連接到 GNSS 連接器,LTE 天線連接到 GSM 連接器,就像這樣。
最后,將SIM卡插入RAK13101模塊的背面,往里推,直到聽到咔噠一聲。
這是查看連接方式的示意圖。
上傳固件
Arduino BSP安裝
對于此步驟,您可以參考我們的文檔,因為我們需要 RAK4631 內(nèi)核的 BSP。安裝 BSP 后,我們需要一些額外的庫。轉(zhuǎn)到工具 > 管理庫以打開庫管理器。然后,使用名稱搜索它們并安裝我們在下圖中突出顯示的那些,或者您也可以在代碼中找到它們。
檢查由 Bosch Sensortec 制作的庫名稱“BSEC Software Library”。
創(chuàng)建 Ubidots 帳戶
現(xiàn)在,讓我們在Ubidots平臺創(chuàng)建賬戶,您可以在這里注冊。
創(chuàng)建帳戶后,您將看到入職頁面。
入職后單擊“轉(zhuǎn)到我的儀表板”按鈕。
現(xiàn)在您將看到一個演示儀表板,單擊頂部的設(shè)備,然后再次單擊設(shè)備。
之后,您將看到演示設(shè)備。單擊屏幕右側(cè)的+按鈕和添加新設(shè)備選項。
單擊空白設(shè)備按鈕。
然后鍵入您的設(shè)備名稱,在本例中為RAK13101。稍后單擊窗口右下角的復(fù)選標(biāo)記。
新設(shè)備將以給定名稱出現(xiàn)在屏幕上,單擊它。
您將看到您的設(shè)備沒有數(shù)據(jù),現(xiàn)在您需要保存默認(rèn)令牌以供稍后在固件中使用。
單擊您的用戶圖片,然后單擊 API 憑據(jù)選項。
API 密鑰 wl 和默認(rèn)令牌將出現(xiàn)。單擊它以顯示它,或者只需單擊復(fù)制按鈕,稍后您將需要該令牌。
創(chuàng)建草圖
復(fù)制此項目的固件并將其粘貼到新的 Arduino 草圖中。為此,請單擊“文件”>“新建”,然后粘貼以下代碼(您也可以在我們的GitHub 上找到它):
在粘貼新代碼之前考慮刪除 Void Loop 和 Void Setup
/**
@file RAK13101_TCP_Ubidots_example.ino
@author harold.duarte@rakwireless.com
@brief example of the use of the RAK13101 with the TCP protocol and the ubidots platform
@version 0.1
@date 2022-07-19
@copyright Copyright (c) 2022
**/
#include
#define POWER_KEY WB_IO5 //powerkey for the GPRS module
#include //RAK1906
#include //RAK1906
Adafruit_BME680 bme;
// Might need adjustments
#define SEALEVELPRESSURE_HPA (1008.76) //Barometric Pressure in mbar
void bme680_init()
{
Wire.begin();
if (!bme.begin(0x76)) {
Serial.println("Could not find a valid BME680 sensor, check wiring!");
return;
}
// Set up oversampling and filter initialization
bme.setTemperatureOversampling(BME680_OS_8X);
bme.setHumidityOversampling(BME680_OS_2X);
bme.setPressureOversampling(BME680_OS_4X);
bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
bme.setGasHeater(320, 150); // 320*C for 150 ms
}
void setup() {
Serial.println("MC20 power up!");
Serial1.begin(115200); // GPRS shield baud rate
Serial.begin(115200); //RAK4631 BR
delay(100);
// Initialize the built in LED
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
time_t timeout = millis();
bool moduleSleeps = true;
if (moduleSleeps)
{
// Module slept, wake it up
pinMode(POWER_KEY, OUTPUT);
digitalWrite(POWER_KEY, 0);
delay(200);
digitalWrite(POWER_KEY, 1);
delay(2000);
digitalWrite(POWER_KEY, 0);
delay(1000);
while (!Serial)
{
if ((millis() - timeout) < 5000)
{
delay(100);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
else
{
break;
}
}
bme680_init();
}
}
void loop() {
if (! bme.performReading()) {
Serial.println("Failed to perform reading :(");
return;
}
delay(15000); //waits 15 seconds to send data again
tcp();
}
void tcp()
{
Serial1.println("AT+QIMODE=0"); //Use AT+QIMODE command to select TCPIP Stack mode, it is non-transparent mode when AT+QIMODE=0, and AT+QIMODE=1 is transparent
delay(200);
ShowSerialData();
Serial1.println("AT+QICSGP=1,"internet.movistar.com.co","movistar","movistar",0"); //Use AT+QICSGP=1,internet.movistar.com.co,movistar,movistar,0 to set APN as internet.movistar.com.co,user name as movistar,password as movistar
delay(500);
ShowSerialData();
Serial1.println("AT+QIREGAPP"); //Start TCPIP task
delay(200);
ShowSerialData();
Serial1.println("AT+QICSGP?"); //Check the current connecting mode(1: GPRS connecting mode£?0: CSD connecting mode)
delay(200);
ShowSerialData();
Serial1.println("AT+QIACT"); //The current connecting mode is GPRS connecting mode
delay(200);
ShowSerialData();
Serial1.println("AT+QILOCIP"); //Get the local IP address
delay(400);
ShowSerialData();
Serial1.println("ATV1"); //Use ATV1 to set the response format
delay(200);
ShowSerialData();
Serial1.println("AT+QIHEAD=1"); //Use AT+QIHEAD=1 to add the header information when receive data
delay(200);
ShowSerialData();
Serial1.println("AT+QIDNSIP=1"); //Use AT+QIDNSIP=0 to use the IP address to establish TCP/UDP session, while AT+QIDNSIP=1 is use the domain name to establish TCP/UDP session
delay(200);
ShowSerialData();
Serial1.println("AT+QIOPEN="TCP","industrial.api.ubidots.com","9012""); //Use AT+QIOPEN=TCP,industrial.api.ubidots.com,9012 to connect to a TCP server (IP address: industrial.api.ubidots.com:9012) If return CONNECT OK means successfully connected to the remote server
delay(5000);
ShowSerialData();
Serial1.println("AT+QISEND"); //AT+QISEND, send data to server, ">" from the UART indicates the following input data is considered as data to be send. After receiving ">", input data (TEST), the maximum length of the data is 1460, the data beyond 1460 will be omitted. Then use to send data. When receive SEND OK means the data has been sent+z>
delay(2000);
ShowSerialData();
Serial1.println(">");
delay(200);
ShowSerialData();
double temp = bme.temperature;
double hum = bme.humidity;
double pres = bme.pressure / 100.0;
double co2 = bme.gas_resistance / 1000.0;
String token = "BBFF-5mRERLy7jMPS9G0vHoAoTIoPz99IEQ"; //Default token from your ubidots account
String device_name = "RAK13101"; //your device name on the ubidots platform
String StrThree = "ubidots/1.0|POST|" + token + "|" + device_name + "=>Temperature:" + temp + ",Humidity:" + hum + ",Pressure:" + pres + ",Gas:" + co2 + "|end" ;
Serial1.println(StrThree);//send message
delay(1000);
ShowSerialData();
Serial1.println((char)26); // Ctrl+z
Serial1.println();
delay(200);
ShowSerialData();
Serial1.println("AT+QICLOSE"); //Use AT+QICLOSE to close the connecting of TCP/UDP
delay(1000);
ShowSerialData();
Serial1.println("AT+QIDEACT"); //Use AT+QIDEACT to deactivate GPRS context
delay(1000);
ShowSerialData();
}
void ShowSerialData()// if you want to see the AT commands on the Serial Monitor
{
while (Serial1.available() != 0)
Serial.write(Serial1.read());
}
您之前復(fù)制的令牌需要在第 129 行進(jìn)行更改,在第 130 行您還需要復(fù)制您在 Ubidots 平臺上使用的設(shè)備名稱,它應(yīng)該如下所示:
String token = "BBFF-5mRERLy7jMPS9G0vHoAoTIoPz99IEQ"; //Default token from your ubidots account
String device_name = "RAK13101"; //your device name on the ubidots platform
String StrThree = "ubidots/1.0|POST|" + token + "|" + device_name + "=>Temperature:" + temp + ",Humidity:" + hum + ",Pressure:" + pres + ",Gas:" + co2 + "|end" ;
上傳固件并在上傳后使用重置按鈕重置設(shè)備一次。28秒后,您將在Ubidots平臺上看到您的信息!
您可以打開每個變量并查看帶有多個選項的圖形,例如 RAW 數(shù)據(jù)、平均值、最小值、最大值、求和和計數(shù)、樣本日期以及每個變量的更多信息
結(jié)論
我們完成了!您可以使用 Sim 卡通過 GPRS 網(wǎng)絡(luò)成功發(fā)送數(shù)據(jù),并使用 WisBlock 模塊連接到 Ubidots 等云服務(wù)。此外,您將能夠一次讀取許多變量,例如溫度、濕度、壓力和二氧化碳水平。您甚至可以將它連接到您的手機(jī)并讀取世界任何地方的數(shù)據(jù)!正如我們常說的#IoTMadeEasy。
此外,請關(guān)注我們的Hackster Hub 并成為我們社區(qū)的一員,以了解更多 DIY IoT 項目和新聞。
如果您想購買我們的產(chǎn)品,請訪問我們的商店
歡迎與我們分享,寫下你的疑惑,在評論區(qū)與我們互動。
- Renesas Ready生態(tài)系統(tǒng)合作伙伴解決方案介紹
- RA生態(tài)系統(tǒng)合作伙伴解決方案提供卓越的平面航向和6軸IMU性能
- Renesas Ready生態(tài)系統(tǒng)合作伙伴解決方案
- RA生態(tài)系統(tǒng)合作伙伴解決方案-Aizip缺陷檢測
- RadioVerse:技術(shù)和無線電設(shè)計生態(tài)系統(tǒng)
- 如何在OpenMV生態(tài)系統(tǒng)中集成STM32Cube.AI生成的代碼
- WisBlock從PNG文件創(chuàng)建LED矩陣顯示屏方法
- 使用Helium、Ubidots和WisBlock開發(fā)物聯(lián)網(wǎng)解決方案
- STM32單片機(jī)基礎(chǔ)01——初識 STM32Cube 生態(tài)系統(tǒng)
- STM32實戰(zhàn) 1 | STM32Cube生態(tài)系統(tǒng)認(rèn)識與介紹
- 基于PLC的小型環(huán)保生態(tài)系統(tǒng)設(shè)計方案 20次下載
- 在MPLAB Xpress生態(tài)系統(tǒng)中使用8位MCU的入門信息 15次下載
- 軟件生態(tài)系統(tǒng)現(xiàn)狀及研究綜述 11次下載
- 如何使用人工智能進(jìn)行智能家居生態(tài)系統(tǒng)設(shè)計的研究分析 5次下載
- Klocwork 宣布加入汽車安全項目的生態(tài)系統(tǒng) 0次下載
- 負(fù)反饋調(diào)節(jié)對維護(hù)生態(tài)平衡的意義 1569次閱讀
- Arm正與云原生軟件生態(tài)系統(tǒng)建立堅實的合作關(guān)系 703次閱讀
- 大數(shù)據(jù)相關(guān)介紹:Hadoop的生態(tài)系統(tǒng)構(gòu)成 2287次閱讀
- 大數(shù)據(jù)生態(tài)系統(tǒng)最底層的數(shù)據(jù)存儲 3582次閱讀
- 軟件定義汽車之構(gòu)建開源軟件生態(tài)系統(tǒng) 2113次閱讀
- 大數(shù)據(jù)現(xiàn)狀分析 生態(tài)系統(tǒng)正在走向成熟 4855次閱讀
- 加密貨幣生態(tài)系統(tǒng)DAGNe技術(shù)原理解析 1742次閱讀
- 如何利用單片機(jī)向PC發(fā)送一個字節(jié)數(shù)據(jù) 8059次閱讀
- 英特爾加速物聯(lián)網(wǎng)和AI落地這是一場人工智能馬拉松 3743次閱讀
- 《人工智能與國家安全:人工智能生態(tài)系統(tǒng)的重要性》報告 1w次閱讀
- 基于區(qū)塊鏈技術(shù)的運(yùn)動生態(tài)系統(tǒng)AMOS解析 2270次閱讀
- Arm宣布將其DesignStart項目進(jìn)一步升級 3397次閱讀
- 基于區(qū)塊鏈技術(shù)的Oases生態(tài)系統(tǒng)技術(shù)理論解析 1207次閱讀
- 淺顯易懂地揭開.Net生態(tài)系統(tǒng)的神秘面紗! 1602次閱讀
- Merge用VR和AR技術(shù)創(chuàng)建和發(fā)展一個適合孩子的XR生態(tài)系統(tǒng) 4989次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多