資料介紹
描述
隨著全球氣溫上升,監測環境狀況變得前所未有的重要。
可以通過多種方式跟蹤環境數據。您可以使用有線設備、控制器中的 SD 卡來手動捕獲發回數據,或者您可以使用基于 Wi-Fi 或 BLE 通信的控制器來處理此任務。
考慮一下如果您沒有時間從 SD 卡手動檢索數據,或者如果您的設備不在 Wi-Fi 或藍牙連接范圍內,您將如何跟蹤您的天氣數據?
在本教程中,我將向您展示如何使用Blues Wireless硬件模塊創建基于物聯網的天氣數據記錄器;不需要 SD 卡、Wi-Fi 或 BLE。只需將Blues Notecard和 Notecarrier 連接到控制器即可跟蹤您的天氣數據。
你需要的東西:
硬件:
- LTE-M Notecard 全球
- 帶有鋰聚合物、太陽能和 Qwiic 連接器的記事本 A
- Arduino Nano 33 BLE 感知
- DHT11 溫度傳感器
- 雨量傳感器
- 種子空氣質量傳感器
- 種子光傳感器
軟件:
結構概要:
整個教程將遵循以下三個步驟:
第 1 步:硬件設置
第一步是收集環境數據,因此我們將使用一個 DHT11、一個雨水傳感器、一個空氣質量傳感器和一個光傳感器來這樣做。Arduino Nano 33 BLE Sense 連接到所有傳感器,這些傳感器將充當處理數據的控制器。
第 2 步:Notehub 設置
從傳感器收集的數據將使用 Blues Notecard 和 Blues Notecarrier 發送到 Blues Notehub 云。
第 3 步:Qubitro 設置
一旦我們的傳感器數據到達云端,我們將使用 Qubitro 對其進行可視化和后處理。
硬件設置:
除 DHT11 之外的所有傳感器都是模擬的。將 DHT11 連接到 Arduino Nano 33 BLE Sense 的 D13,并將 A0 直接連接到 Arduino Nano 33 模擬引腳的 A2。
現在您的傳感器都已連接,讓我們繼續進行編程部分。為此,打開 Arduino IDE 并編譯以下代碼。它將收集所有傳感器數據并將其輸出到串行監視器。
#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);
}
下一步是設置您的Blues Notecarrier。將 Notecard 連接到 Notecarrier(我使用的是外部 SIM 卡,所以我將解釋如何操作)。通過微型 USB 數據線將 Notecarrier 連接到您的 PC。
如果您在啟動和運行時遇到任何問題,可以聯系我們在Blues 論壇上尋求幫助。]
如果你想像我一樣使用外部 SIM (Airtel),請另外按照以下步驟配置你的 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}
現在我們將試用 Blues Notecarrier。我正在使用 Python 將一些虛擬數據發送到 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 端口重命名為你的,然后點擊運行。您可以在終端中看到虛擬數據。
該腳本將返回上述響應。接下來,打開 Notehub 儀表板并導航到“事件”選項卡并查看數據。
您可以在 Notehub 中看到由 Python 腳本發送的數據,如果完成此步驟,您可以使用 UART 端口將 Blues Notecard 和 Notecarrier 連接到 Arduino Nano 33 BLE Sense。
【Blues Notecarrier同時支持I2C和UART通信】
連接完成后,只需在 Arduino IDE 中編譯以下 Arduino 代碼,這會將傳感器數據發送到 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);
}
只需打開串口監視器并查看輸出的數據。接下來,移至 Notehub 儀表板中的“事件”選項卡。
在那里您可以看到我們的傳感器數據。
至此,您已經完成了硬件部分。您可以單擊 JSON 數據并分析我們的 Blues 硬件發送的全部數據。
接下來,讓我們轉到 Notehub 集成。
Notehub 設置:
我們將數據發送到 Notehub,所以現在我們需要用一些圖形和表格來可視化數據。讓我們看看如何使用 Qubitro 云來做到這一點。
首先,打開 Notehub 并導航到“路由”選項卡,然后創建一個新路由。
然后選擇集成類型為 HTTP/HTTPS。
現在我們必須輸入一些關于我們的“Qubitro Route”的信息。
根據需要輸入名稱并輸入 URL 為“ https://webhook.qubitro.com/integrations/blueswireless” ,然后單擊標頭,選擇其他標頭,然后輸入 2 個標頭,如下圖所示。
[注意:標頭值將在下一步中添加]
Qubitro 設置:
在這一步中,我們將在 Qubitro 中設置項目。首先,打開https://portal.qubitro.com/,使用您的憑據登錄,然后創建一個新項目。您無需添加任何設備。
接下來,導航到項目設置并復制“項目 ID”。
然后導航到 Qubitro 門戶中的憑據選項卡并復制“Webhook 登錄密鑰”。拿走這些并將它們輸入回 Blues Notehub 的路由標題中。
完成整個設置后,單擊“創建新路線”,這將在您的 Notehub 中添加新路線。
現在您可以在 Qubitro 門戶中看到您的 Blues 設備。
只需打開設備并查看傳入的數據。Qubitro 自動從 Blues 中提取數據。在概覽選項卡中,您可以看到硬件的當前位置、電壓和方向。
接下來打開數據選項卡,在這里您可以看到您的傳感器數據。
現在我們要做一些可視化,您可以通過打開“監控”選項卡并添加一些小部件來實現。
同樣,將小部件添加到所有數據。這是我的示例儀表板。
最后,我們必須以圖形和圖表的形式可視化我們的傳感器數據。
現在我們基于物聯網的天氣數據記錄器幾乎完成了,我們正處于最后也是最重要的一步。在移動應用程序或 Web 應用程序中與其他用戶共享數據怎么樣?Qubitro 允許 API 與多種平臺和語言共享云數據。
要試用它,請打開 Qubitro 門戶中的“憑據”選項卡并復制 API 密鑰。
然后打開這個 URL https://qubitro-api.readme.io/reference/getdevice,它會要求你完成一些輸入。
以“Bearer-API Key”格式輸入 API 密鑰,輸入您在 Qubitro 項目設置中使用的設備 ID 和項目,然后單擊“Try It”按鈕。您可以從您的 Blues 硬件中查看您的全部數據。
讓我們制作一個簡單的 Python 腳本來獲取 API 響應。只需復制下面的 Python 腳本并更改密鑰,然后執行。
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)
它將從硬件返回數據。
所以現在您可以將您的 Blues 天氣記錄器的數據分享給外部世界。
結論:
在本教程中,我向您展示了如何使用 Blues 硬件模塊構建您自己的基于物聯網的天氣數據記錄器,并解釋了如何與外部世界共享該數據。現在,您可以在沒有電線、Wi-Fi 或 SD 卡的情況下跟蹤您的天氣數據。
- 使用Blues Wireless將BLE傳感器數據路由到云端
- 簡單的數據記錄器開源設計
- 天氣數據收集和存儲程序開源分享
- 基于Arduino MKR ZERO的天氣數據記錄器 0次下載
- 基于Arduino Meag 2560的數據記錄器 0次下載
- 帶有Blues Wireless的蜂窩ROB
- GPS和AHRS數據記錄器開源分享
- 使用TTGO ESP32和Visuino從互聯網上獲取天氣數據
- 溫度和濕度數據記錄器開源分享
- 基于Arduino的GPS數據記錄器
- 使用Qubitro和RAK WisBlock進行全球天氣監測
- 帶Qubitro的物聯網書簽和閱讀(圖書評級)跟蹤器
- Nodemcu數據記錄器
- 愛華微膠囊記錄器TP-M725/TP-M525數據手冊 0次下載
- 溫度記錄器 1次下載
- 燃氣數字壓力記錄儀的設計及應用 593次閱讀
- 將“黑匣子”故障記錄器添加到“大(或小)箱”系統中 569次閱讀
- 確定溫度記錄iButton的任務參數 460次閱讀
- PC打印機端口控制數據記錄器 687次閱讀
- 如何使用DS1678實時事件記錄器 786次閱讀
- Python如何爬取天氣數據 1669次閱讀
- 如何使用M5Stamp PICO和Qubitro構建物聯網門鎖監控系統 1680次閱讀
- 云計算、大數據與物聯網有什么聯系呢? 8353次閱讀
- 實施工業物聯網戰略的方案 2173次閱讀
- 物聯網的數據傳輸和聯網的方式是怎么樣的 3622次閱讀
- 互聯網大數據和物聯網大數據到底有什么不同之處 5991次閱讀
- digilent高分辨率便攜式數據記錄器介紹 1505次閱讀
- 物聯網和大數據案例闡述 6146次閱讀
- LCD顯示遠程溫度濕度數據記錄器與應用軟件的介紹 4742次閱讀
- 物聯網是大數據的重要來源,大數據助力物聯網 1.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多