ThingsBoard 是一个开源服务器端平台,可让您监视和控制物联网设备。它对个人和商业用途都是免费的,您可以在任何地方部署它。如果这是您第一次使用该平台,我们建议您查看什么是事物板页面和入门指南。
此示例应用程序将允许您使用您的 magicbit 设备和 ThingsBoard Web UI 显示来自 DHT11 传感器的湿度/温度数据。
在 Magicbit 设备上运行的应用程序是使用 ThingsBoard Arduino SDK 编写的,非常简单易懂。
完成此示例/教程后,您将在以下仪表板上看到您的传感器数据。
访问 Thingsboard Demo 官方页面并注册。
在左侧栏上登录后,您将看到设备。单击设备并添加新设备。
在凭据选项卡上勾选添加凭据选项卡,然后从下拉框中选择访问令牌。您可以添加自己的访问令牌或留空以自动生成令牌。
在别名中将设备设置为magicbit。转到仪表板选项卡并导入仪表板。
按照图像中的以下步骤 导入仪表板。 在附件中找到名为“magicbit_temperature_humidity_demo_dashboard.json”的演示 JSON 文件。
按如下方式将您的魔法位与 DHT11 模块连接到引脚 33。
在 Arduino IDE 中下载以下库,
以下是您将使用的 Arduino 代码。
注意您需要在草图中编辑以下常量和变量:
WIFI_AP
- 您的接入点名称WIFI_PASSWORD
- 接入点密码TOKEN
- ThingsBoard 配置步骤中的$ACCESS_TOKEN 。THINGSBOARD_SERVER
- 可在您的 wifi 网络中访问的 ThingsBoard 主机/IP 地址。指定demo.thingsboard.io
您是否使用实时演示服务器。
#include // DHT for Library library
#include // WiFi control for ESP32
#include // ThingsBoard SDK
#define DHTPIN 33 // what digital pin we're connected to
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
// Helper macro to calculate array size
#define COUNT_OF(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
// WiFi access point
#define WIFI_AP_NAME "4G"// "WIFI_AP"
// WiFi password
#define WIFI_PASSWORD "nevergiveup"// "WIFI_PASSWORD"
// See https://thingsboard.io/docs/getting-started-guides/helloworld/
// to understand how to obtain an access token
#define TOKEN "XZjQ26r9XJcsNkWGuASY" // "TOKEN"
// ThingsBoard server instance.
#define THINGSBOARD_SERVER "demo.thingsboard.io"
// Baud rate for debug serial
#define SERIAL_DEBUG_BAUD 115200
// Initialize ThingsBoard client
WiFiClient espClient;
// Initialize ThingsBoard instance
ThingsBoard tb(espClient);
// the Wifi radio's status
int status = WL_IDLE_STATUS;
// Period of sending a temperature/humidity data.
int send_delay = 2000;
unsigned long millis_counter;
void InitWiFi()
{
Serial.println("Connecting to AP ...");
// attempt to connect to WiFi network
WiFi.begin(WIFI_AP_NAME, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to AP");
}
void reconnect() {
// Loop until we're reconnected
status = WiFi.status();
if ( status != WL_CONNECTED) {
WiFi.begin(WIFI_AP_NAME, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to AP");
}
}
// Setup an application
void setup() {
// Initialize serial for debugging
Serial.begin(SERIAL_DEBUG_BAUD);
WiFi.begin(WIFI_AP_NAME, WIFI_PASSWORD);
InitWiFi();
// Initialize temperature sensor
dht.begin();
}
// Main application loop
void loop() {
// Reconnect to WiFi, if needed
if (WiFi.status() != WL_CONNECTED) {
reconnect();
return;
}
// Reconnect to ThingsBoard, if needed
if (!tb.connected()) {
// Connect to the ThingsBoard
Serial.print("Connecting to: ");
Serial.print(THINGSBOARD_SERVER);
Serial.print(" with token ");
Serial.println(TOKEN);
if (!tb.connect(THINGSBOARD_SERVER, TOKEN)) {
Serial.println("Failed to connect");
return;
}
}
// Check if it is a time to send DHT11 temperature and humidity
if(millis()-millis_counter > send_delay) {
Serial.println("Sending data...");
// Uploads new telemetry to ThingsBoard using MQTT.
// See https://thingsboard.io/docs/reference/mqtt-api/#telemetry-upload-api
// for more details
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
} else {
Serial.print("Temperature:");
Serial.print(t);
Serial.print(" Humidity ");
Serial.println(h);
tb.sendTelemetryFloat("temperature", t);
tb.sendTelemetryFloat("humidity", h);
}
millis_counter = millis(); //reset millis counter
}
// Process messages
tb.loop();
}
在现场演示服务器中:
有关如何获取帐户的更多详细信息,请参阅实时演示页面。
转到“设备”部分并找到“Magicbit” ,打开设备详细信息并切换到“最新遥测”选项卡。如果一切配置正确,您应该能够看到“温度”和“湿度”的最新值。
之后,打开“仪表板”部分,然后找到并打开“magicbit_temperature_humidity_demo_dashboard” 。结果,您将看到一个显示温度和湿度水平的时间序列图表(类似于介绍中的仪表板图像)。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !