littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于 C++、Shell、Python 和 Thingsboard 的室内温湿度收集系统

项目简介

本项目借助 C++、Shell 和 Python 三种编程语言,结合开源的 Thingsboard 物联网平台与 PostgreSQL 数据库,实现对室内温湿度数据的有效收集、存储、管理和可视化展示,达到对室内温湿度的实时监控目的。

项目的主要特性和功能

  1. 数据收集:利用 esp32 连接 dht22 传感器,实时收集室内温湿度数据。
  2. 数据存储:使用 PostgreSQL 数据库存储收集的数据,并通过 Thingsboard 平台进行管理。
  3. 可视化展示:在 Thingsboard 平台创建仪表盘,可通过简单卡片展示最新温湿度值,也能添加图表呈现数据变化。
  4. 设备管理:可在 Thingsboard 平台添加、配置设备,为设备分配客户。
  5. 外部数据集成:通过 SMHI API 每小时获取特定气象站的温度数据并上传至 Thingsboard。

安装使用步骤

前提条件

用户已下载本项目的源码文件,且设备运行 debian 系 Linux 系统(项目在 2GB 内存的 Ubuntu Linode VPS 上构建运行)。

具体步骤

1. 复制项目

bash

2. 安装依赖和启动 Thingsboard

进入 VPS/Thingsboard 目录,运行 setup.sh 脚本安装所有依赖,设置 PostgreSQL 数据库,创建 Thingsboard 所需的数据库和用户,然后安装并启动 Thingsboard。若设备内存为 1GB 或更少,使用 -s 参数: bash cd VPS/Thingsboard sudo./setup.sh 等待几分钟后,可通过设备 IP 的 8080 端口访问 Thingsboard,默认账户信息如下: | 角色 | 邮箱 | 密码 | | - | - | - | | 系统管理员 | sysadmin@thingsboard.org | sysadmin | | 租户管理员 | tenant@thingsboard.org | tenant | | 客户用户 | customer@thingsboard.org | customer |

3. 设备设置

以租户身份登录,进入 Devices 页面,点击加号添加新设备,设置设备名称并添加凭证(访问令牌),然后将新设备分配给客户。

Device/esp32_dht22_device/ 目录下创建 cred.h 文件,定义配置信息: ```C

define WIFI_AP_NAME "YOUR_WIFI_SSID"

define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"

define THINGSBOARD_TOKEN "YOUR_THINGSBOARD_DEVICE_TOKEN"

define THINGSBOARD_SERVER "YOUR_THINGSBOARD_SERVER"

``` 编译并将代码烧录到 esp32,将 dht22 数据引脚连接到 esp32 的 G23 引脚。编译代码需安装 DHTesp、WiFi 和 ThingsBoard 库。

4. 设置 SMHI API 数据获取

以租户身份在 Devices 中添加一个带有访问令牌的设备。运行 VPS/SMHI 目录下的 setup_job.sh 脚本,并提供 Thingsboard 服务器地址和新添加设备的访问令牌。此操作将创建一个每小时运行一次的定时任务,获取预设气象站的温度数据并上传至 Thingsboard,最后将新设备分配给客户。

5. 创建仪表盘

以租户身份进入 Dashboards 页面,添加新仪表盘并命名。保存后打开仪表盘,点击右下角橙色笔按钮编辑。添加新小部件(如简单卡片显示最新值),添加数据源,创建实体,设置过滤器类型为单实体并选择设备,然后选择数据键添加小部件。添加图表的操作类似,但可添加多个数据源。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】