项目简介
本项目借助 C++、Shell 和 Python 三种编程语言,结合开源的 Thingsboard 物联网平台与 PostgreSQL 数据库,实现对室内温湿度数据的有效收集、存储、管理和可视化展示,达到对室内温湿度的实时监控目的。
项目的主要特性和功能
- 数据收集:利用 esp32 连接 dht22 传感器,实时收集室内温湿度数据。
- 数据存储:使用 PostgreSQL 数据库存储收集的数据,并通过 Thingsboard 平台进行管理。
- 可视化展示:在 Thingsboard 平台创建仪表盘,可通过简单卡片展示最新温湿度值,也能添加图表呈现数据变化。
- 设备管理:可在 Thingsboard 平台添加、配置设备,为设备分配客户。
- 外部数据集成:通过 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】