使用Blues Wireless和Qubitro的物聯(lián)網(wǎng)天氣數(shù)據(jù)記錄器
資料介紹
描述
隨著全球氣溫上升,監(jiān)測(cè)環(huán)境狀況變得前所未有的重要。
可以通過(guò)多種方式跟蹤環(huán)境數(shù)據(jù)。您可以使用有線設(shè)備、控制器中的 SD 卡來(lái)手動(dòng)捕獲發(fā)回?cái)?shù)據(jù),或者您可以使用基于 Wi-Fi 或 BLE 通信的控制器來(lái)處理此任務(wù)。
考慮一下如果您沒(méi)有時(shí)間從 SD 卡手動(dòng)檢索數(shù)據(jù),或者如果您的設(shè)備不在 Wi-Fi 或藍(lán)牙連接范圍內(nèi),您將如何跟蹤您的天氣數(shù)據(jù)?
在本教程中,我將向您展示如何使用Blues Wireless硬件模塊創(chuàng)建基于物聯(lián)網(wǎng)的天氣數(shù)據(jù)記錄器;不需要 SD 卡、Wi-Fi 或 BLE。只需將Blues Notecard和 Notecarrier 連接到控制器即可跟蹤您的天氣數(shù)據(jù)。
你需要的東西:
硬件:
- LTE-M Notecard 全球
- 帶有鋰聚合物、太陽(yáng)能和 Qwiic 連接器的記事本 A
- Arduino Nano 33 BLE 感知
- DHT11 溫度傳感器
- 雨量傳感器
- 種子空氣質(zhì)量傳感器
- 種子光傳感器
軟件:
結(jié)構(gòu)概要:
整個(gè)教程將遵循以下三個(gè)步驟:
第 1 步:硬件設(shè)置
第一步是收集環(huán)境數(shù)據(jù),因此我們將使用一個(gè) DHT11、一個(gè)雨水傳感器、一個(gè)空氣質(zhì)量傳感器和一個(gè)光傳感器來(lái)這樣做。Arduino Nano 33 BLE Sense 連接到所有傳感器,這些傳感器將充當(dāng)處理數(shù)據(jù)的控制器。
第 2 步:Notehub 設(shè)置
從傳感器收集的數(shù)據(jù)將使用 Blues Notecard 和 Blues Notecarrier 發(fā)送到 Blues Notehub 云。
第 3 步:Qubitro 設(shè)置
一旦我們的傳感器數(shù)據(jù)到達(dá)云端,我們將使用 Qubitro 對(duì)其進(jìn)行可視化和后處理。
硬件設(shè)置:
除 DHT11 之外的所有傳感器都是模擬的。將 DHT11 連接到 Arduino Nano 33 BLE Sense 的 D13,并將 A0 直接連接到 Arduino Nano 33 模擬引腳的 A2。
現(xiàn)在您的傳感器都已連接,讓我們繼續(xù)進(jìn)行編程部分。為此,打開(kāi) Arduino IDE 并編譯以下代碼。它將收集所有傳感器數(shù)據(jù)并將其輸出到串行監(jiān)視器。
#include "Air_Quality_Sensor.h"
#include
String Stage;
AirQualitySensor sensor(A1); //Analog pin A1 for Air Quality sensor
#define DHTPIN 13 //Digital pin 13 for DHT11 sensor
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup(void) {
dht.begin(); // Init DHT11
Serial.println("Waiting sensor to init...");
delay(10000);
}
void loop(void) {
int quality = sensor.slope();
Serial.print("AQ Sensor value : ");
Serial.println(sensor.getValue());
Serial.print("Pollution Level : ");
if (quality == AirQualitySensor::FORCE_SIGNAL) {
String Stage = "ERROR!";
Serial.println(Stage);
}
else if (quality == AirQualitySensor::HIGH_POLLUTION) {
String Stage = "High pollution!";
Serial.println(Stage);
}
else if (quality == AirQualitySensor::LOW_POLLUTION) {
String Stage = "Low pollution!";
Serial.println(Stage);
}
else if (quality == AirQualitySensor::FRESH_AIR) {
String Stage = "Fresh air!";
Serial.println(Stage);
}
float h = dht.readHumidity();
Serial.print("Humidity Level : ");
Serial.print(h);
Serial.println(" %");
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
Serial.print("Temperature Level : ");
Serial.print(t);
Serial.println(" C");
int value = analogRead(A2); //Analog pin A2 for Light sensor
float valuel = map(value, 0, 800, 0, 100);
Serial.print("Light Sensor Level : ");
Serial.print(valuel);
Serial.println(" %");
int rainSensor = analogRead(A3); //Analog pin A3 for Rain sensor
float rainSensor1 = map(rainSensor, 0, 1024, 0, 100);
Serial.print("Rain Sensor Level : ");
Serial.println(rainSensor);
Serial.print("Dry level : ");
Serial.print(rainSensor1);
Serial.println(" %");
Serial.println("------------------------------------------------");
delay(10000);
}
下一步是設(shè)置您的Blues Notecarrier。將 Notecard 連接到 Notecarrier(我使用的是外部 SIM 卡,所以我將解釋如何操作)。通過(guò)微型 USB 數(shù)據(jù)線將 Notecarrier 連接到您的 PC。
如果您在啟動(dòng)和運(yùn)行時(shí)遇到任何問(wèn)題,可以聯(lián)系我們?cè)?/font>Blues 論壇上尋求幫助。]
如果你想像我一樣使用外部 SIM (Airtel),請(qǐng)另外按照以下步驟配置你的 Notecard。
# disable the cellular modem on the Notecard
{"req":"hub.set","mode":"off"}
# set the Airtel APN
{"req":"card.wireless","mode":",airtelgprs.com"}
# make sure the Notecard cloud host is set to the default (if you changed it)
{"req":"hub.set","host":"a.notefile.net"}
# enable the cellular modem (minimum requires explicit sync requests)
{"req":"hub.set","mode":"minimum"}
# force a sync (if it hasn't started already)
{"req":"hub.sync","allow":true}
現(xiàn)在我們將試用 Blues Notecarrier。我正在使用 Python 將一些虛擬數(shù)據(jù)發(fā)送到 Notehub。
import json
import notecard
import serial
import time
productUID = "com.gmail.pradeeplogu26:env_data_logger" #Change this with yours
# Select Serial
use_uart = True
card = None
# Configure the serial connection to the Notecard
serial = serial.Serial('COM7', 9600) #Change this with your COM port
card = notecard.OpenSerial(serial, debug=True)
req = {"req": "hub.set"}
req["product"] = productUID
req["mode"] = "continuous"
card.Transaction(req)
while True:
temp = 10
humidity = 20
print('Temperature: {} degrees C'.format(temp))
print('Humidity: {}%'.format(humidity))
req = {"req": "note.add"}
req["file"] = "sensors.qo"
req["start"] = True
req["body"] = {"temp": temp, "humidity": humidity}
card.Transaction(req)
time.sleep(15)
只需將 projectUID 和 Com 端口重命名為你的,然后點(diǎn)擊運(yùn)行。您可以在終端中看到虛擬數(shù)據(jù)。
該腳本將返回上述響應(yīng)。接下來(lái),打開(kāi) Notehub 儀表板并導(dǎo)航到“事件”選項(xiàng)卡并查看數(shù)據(jù)。
您可以在 Notehub 中看到由 Python 腳本發(fā)送的數(shù)據(jù),如果完成此步驟,您可以使用 UART 端口將 Blues Notecard 和 Notecarrier 連接到 Arduino Nano 33 BLE Sense。
【Blues Notecarrier同時(shí)支持I2C和UART通信】
連接完成后,只需在 Arduino IDE 中編譯以下 Arduino 代碼,這會(huì)將傳感器數(shù)據(jù)發(fā)送到 Notehub。
#include
#include "Air_Quality_Sensor.h"
#include
AirQualitySensor sensor(A1); //Analog pin A1 for Air Quality sensor
#define DHTPIN 13 //Digital pin 13 for DHT11 sensor
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define txRxPinsSerial Serial1
#define productUID "xxxxxxxxxxxxxxxxxxxx"
Notecard notecard;
String Stage;
void setup(void) {
notecard.begin(txRxPinsSerial, 9600);
J *req = notecard.newRequest("hub.set");
JAddStringToObject(req, "product", productUID);
JAddStringToObject(req, "mode", "continuous");
notecard.sendRequest(req);
delay(1000);
dht.begin(); // Init DHT11
Serial.println("Waiting sensor to init...");
delay(10000);
}
void loop(void) {
int quality = sensor.slope();
Serial.print("AQ Sensor value : ");
Serial.println(sensor.getValue());
Serial.print("Pollution Level : ");
if (quality == AirQualitySensor::FORCE_SIGNAL) {
String Stage = "ERROR!";
Serial.println(Stage);
}
else if (quality == AirQualitySensor::HIGH_POLLUTION) {
String Stage = "High pollution!";
Serial.println(Stage);
}
else if (quality == AirQualitySensor::LOW_POLLUTION) {
String Stage = "Low pollution!";
Serial.println(Stage);
}
else if (quality == AirQualitySensor::FRESH_AIR) {
String Stage = "Fresh air!";
Serial.println(Stage);
}
float h = dht.readHumidity();
Serial.print("Humidity Level : ");
Serial.print(h);
Serial.println(" %");
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
Serial.print("Temperature Level : ");
Serial.print(t);
Serial.println(" C");
int value = analogRead(A2);
float valuel = map(value, 0, 800, 0, 100);
Serial.print("Light Sensor Level : ");
Serial.print(valuel);
Serial.println(" %");
int rainSensor = analogRead(A3);
float rainSensor1 = map(rainSensor, 0, 1024, 0, 100);
Serial.print("Rain Sensor Level : ");
Serial.println(rainSensor);
Serial.print("Dry level : ");
Serial.print(rainSensor1);
Serial.println(" %");
J *req = notecard.newRequest("note.add");
if (req != NULL) {
JAddStringToObject(req, "file", "sensors.qo");
JAddBoolToObject(req, "sync", true);
J *body = JCreateObject();
if (body != NULL) {
JAddNumberToObject(body, "temperature", t);
JAddNumberToObject(body, "humidity", h);
JAddNumberToObject(body, "air quality value", sensor.getValue());
JAddNumberToObject(body, "light intencity", valuel);
JAddNumberToObject(body, "rain sensor", rainSensor);
JAddNumberToObject(body, "dry level", rainSensor1);
JAddItemToObject(req, "body", body);
}
notecard.sendRequest(req);
}
Serial.println("------------------------------------------------");
delay(10000);
}
只需打開(kāi)串口監(jiān)視器并查看輸出的數(shù)據(jù)。接下來(lái),移至 Notehub 儀表板中的“事件”選項(xiàng)卡。
在那里您可以看到我們的傳感器數(shù)據(jù)。
至此,您已經(jīng)完成了硬件部分。您可以單擊 JSON 數(shù)據(jù)并分析我們的 Blues 硬件發(fā)送的全部數(shù)據(jù)。
接下來(lái),讓我們轉(zhuǎn)到 Notehub 集成。
Notehub 設(shè)置:
我們將數(shù)據(jù)發(fā)送到 Notehub,所以現(xiàn)在我們需要用一些圖形和表格來(lái)可視化數(shù)據(jù)。讓我們看看如何使用 Qubitro 云來(lái)做到這一點(diǎn)。
首先,打開(kāi) Notehub 并導(dǎo)航到“路由”選項(xiàng)卡,然后創(chuàng)建一個(gè)新路由。
然后選擇集成類型為 HTTP/HTTPS。
現(xiàn)在我們必須輸入一些關(guān)于我們的“Qubitro Route”的信息。
根據(jù)需要輸入名稱并輸入 URL 為“ https://webhook.qubitro.com/integrations/blueswireless” ,然后單擊標(biāo)頭,選擇其他標(biāo)頭,然后輸入 2 個(gè)標(biāo)頭,如下圖所示。
[注意:標(biāo)頭值將在下一步中添加]
Qubitro 設(shè)置:
在這一步中,我們將在 Qubitro 中設(shè)置項(xiàng)目。首先,打開(kāi)https://portal.qubitro.com/,使用您的憑據(jù)登錄,然后創(chuàng)建一個(gè)新項(xiàng)目。您無(wú)需添加任何設(shè)備。
接下來(lái),導(dǎo)航到項(xiàng)目設(shè)置并復(fù)制“項(xiàng)目 ID”。
然后導(dǎo)航到 Qubitro 門戶中的憑據(jù)選項(xiàng)卡并復(fù)制“Webhook 登錄密鑰”。拿走這些并將它們輸入回 Blues Notehub 的路由標(biāo)題中。
完成整個(gè)設(shè)置后,單擊“創(chuàng)建新路線”,這將在您的 Notehub 中添加新路線。
現(xiàn)在您可以在 Qubitro 門戶中看到您的 Blues 設(shè)備。
只需打開(kāi)設(shè)備并查看傳入的數(shù)據(jù)。Qubitro 自動(dòng)從 Blues 中提取數(shù)據(jù)。在概覽選項(xiàng)卡中,您可以看到硬件的當(dāng)前位置、電壓和方向。
接下來(lái)打開(kāi)數(shù)據(jù)選項(xiàng)卡,在這里您可以看到您的傳感器數(shù)據(jù)。
現(xiàn)在我們要做一些可視化,您可以通過(guò)打開(kāi)“監(jiān)控”選項(xiàng)卡并添加一些小部件來(lái)實(shí)現(xiàn)。
同樣,將小部件添加到所有數(shù)據(jù)。這是我的示例儀表板。
最后,我們必須以圖形和圖表的形式可視化我們的傳感器數(shù)據(jù)。
現(xiàn)在我們基于物聯(lián)網(wǎng)的天氣數(shù)據(jù)記錄器幾乎完成了,我們正處于最后也是最重要的一步。在移動(dòng)應(yīng)用程序或 Web 應(yīng)用程序中與其他用戶共享數(shù)據(jù)怎么樣?Qubitro 允許 API 與多種平臺(tái)和語(yǔ)言共享云數(shù)據(jù)。
要試用它,請(qǐng)打開(kāi) Qubitro 門戶中的“憑據(jù)”選項(xiàng)卡并復(fù)制 API 密鑰。
然后打開(kāi)這個(gè) URL https://qubitro-api.readme.io/reference/getdevice,它會(huì)要求你完成一些輸入。
以“Bearer-API Key”格式輸入 API 密鑰,輸入您在 Qubitro 項(xiàng)目設(shè)置中使用的設(shè)備 ID 和項(xiàng)目,然后單擊“Try It”按鈕。您可以從您的 Blues 硬件中查看您的全部數(shù)據(jù)。
讓我們制作一個(gè)簡(jiǎn)單的 Python 腳本來(lái)獲取 API 響應(yīng)。只需復(fù)制下面的 Python 腳本并更改密鑰,然后執(zhí)行。
import requests
import time
from colorama import Fore, Back, Style
while (True):
headers = {
"Accept": "application/json",
"Authorization": "Bearer-xxxxxxxxxxxxxxxxxxxxxxxx"
}
response = requests.get(url, headers=headers)
print(response.text)
time.sleep(10)
它將從硬件返回?cái)?shù)據(jù)。
所以現(xiàn)在您可以將您的 Blues 天氣記錄器的數(shù)據(jù)分享給外部世界。
結(jié)論:
在本教程中,我向您展示了如何使用 Blues 硬件模塊構(gòu)建您自己的基于物聯(lián)網(wǎng)的天氣數(shù)據(jù)記錄器,并解釋了如何與外部世界共享該數(shù)據(jù)。現(xiàn)在,您可以在沒(méi)有電線、Wi-Fi 或 SD 卡的情況下跟蹤您的天氣數(shù)據(jù)。
- 使用Blues Wireless將BLE傳感器數(shù)據(jù)路由到云端
- 簡(jiǎn)單的數(shù)據(jù)記錄器開(kāi)源設(shè)計(jì)
- 天氣數(shù)據(jù)收集和存儲(chǔ)程序開(kāi)源分享
- 基于Arduino MKR ZERO的天氣數(shù)據(jù)記錄器 0次下載
- 基于Arduino Meag 2560的數(shù)據(jù)記錄器 0次下載
- 帶有Blues Wireless的蜂窩ROB
- GPS和AHRS數(shù)據(jù)記錄器開(kāi)源分享
- 使用TTGO ESP32和Visuino從互聯(lián)網(wǎng)上獲取天氣數(shù)據(jù)
- 溫度和濕度數(shù)據(jù)記錄器開(kāi)源分享
- 基于Arduino的GPS數(shù)據(jù)記錄器
- 使用Qubitro和RAK WisBlock進(jìn)行全球天氣監(jiān)測(cè)
- 帶Qubitro的物聯(lián)網(wǎng)書(shū)簽和閱讀(圖書(shū)評(píng)級(jí))跟蹤器
- Nodemcu數(shù)據(jù)記錄器
- 愛(ài)華微膠囊記錄器TP-M725/TP-M525數(shù)據(jù)手冊(cè) 0次下載
- 溫度記錄器 1次下載
- 燃氣數(shù)字壓力記錄儀的設(shè)計(jì)及應(yīng)用 593次閱讀
- 將“黑匣子”故障記錄器添加到“大(或小)箱”系統(tǒng)中 569次閱讀
- 確定溫度記錄iButton的任務(wù)參數(shù) 460次閱讀
- PC打印機(jī)端口控制數(shù)據(jù)記錄器 687次閱讀
- 如何使用DS1678實(shí)時(shí)事件記錄器 786次閱讀
- Python如何爬取天氣數(shù)據(jù) 1669次閱讀
- 如何使用M5Stamp PICO和Qubitro構(gòu)建物聯(lián)網(wǎng)門鎖監(jiān)控系統(tǒng) 1680次閱讀
- 云計(jì)算、大數(shù)據(jù)與物聯(lián)網(wǎng)有什么聯(lián)系呢? 8353次閱讀
- 實(shí)施工業(yè)物聯(lián)網(wǎng)戰(zhàn)略的方案 2173次閱讀
- 物聯(lián)網(wǎng)的數(shù)據(jù)傳輸和聯(lián)網(wǎng)的方式是怎么樣的 3622次閱讀
- 互聯(lián)網(wǎng)大數(shù)據(jù)和物聯(lián)網(wǎng)大數(shù)據(jù)到底有什么不同之處 5991次閱讀
- digilent高分辨率便攜式數(shù)據(jù)記錄器介紹 1505次閱讀
- 物聯(lián)網(wǎng)和大數(shù)據(jù)案例闡述 6146次閱讀
- LCD顯示遠(yuǎn)程溫度濕度數(shù)據(jù)記錄器與應(yīng)用軟件的介紹 4742次閱讀
- 物聯(lián)網(wǎng)是大數(shù)據(jù)的重要來(lái)源,大數(shù)據(jù)助力物聯(lián)網(wǎng) 1.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 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開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 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é)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多