资料介绍
描述
随着全球气温上升,监测环境状况变得前所未有的重要。
可以通过多种方式跟踪环境数据。您可以使用有线设备、控制器中的 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次下载 | 免费
评论
查看更多