项目简介
本项目是基于C++开发的天气站增强系统,主要用于在物理硬件(如Raspberry Pi和Arduino)上搭建天气站。系统由一个中心盒子和远程天气传感器组成,传感器通过433MHz无线方式向中心盒子发送数据。
项目的主要特性和功能
- 硬件支持:支持Raspberry Pi和Arduino硬件平台,可用于构建中心盒子和远程天气传感器。
- 数据收集:利用433MHz无线通信接收远程天气传感器的数据。
- 数据展示:能在LCD显示屏上实时展示天气数据。
- 数据库存储:支持将收集的数据存储在PostgreSQL数据库(特别是TimescaleDB)中,便于处理时间序列数据。
- 配置管理:可从配置文件读取并解析设置信息,涵盖数据库连接、GPIO端口、日志配置、I2C总线配置等。
- 日志记录:采用Easylogging++库进行日志记录,支持多种日志级别和格式化输出。
- 多线程支持:运用多线程处理数据获取、用户输入和LCD更新等任务。
- 测试框架:使用Google Test框架进行单元测试,保障代码质量和功能正确性。
安装使用步骤
环境准备
- 安装必要的软件包:
bash sudo apt install libpq-dev libpqxx-dev git cmake gcovr
- 安装用于跨平台构建的额外软件包:
bash sudo apt install qemu-user-static docker-ce docker-compose
获取项目代码
复制项目代码到本地:
bash
cd weatherStationPlus
构建项目
- 创建并进入构建目录:
bash mkdir build cd build
- 使用CMake配置项目:
bash cmake -DCMAKE_BUILD_TYPE=Debug ..
- 编译项目:
bash cmake --build . --target weatherStationPlus
运行测试
- 构建测试:
bash cmake --build . --target test_all_unit
- 运行测试:
bash cd test sudo ./test_all_unit --gtest_output="xml:report.xml"
编译运行
在构建目录中运行生成的可执行文件:
bash
sudo ./weatherStationPlus
配置数据库
- 安装PostgreSQL和TimescaleDB:
bash sudo apt install postgresql sudo add-apt-repository ppa:timescale/timescaledb-ppa sudo apt-get update sudo apt install timescaledb-postgresql-10 sudo timescaledb-tune
- 配置数据库:
bash sudo su - postgres psql CREATE ROLE weather LOGIN PASSWORD 'yourpassword'; CREATE DATABASE weather WITH OWNER = weather; \q psql -h localhost -d weather -U weather
- 启用TimescaleDB扩展:
bash sudo -u postgres psql \c weather CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
配置硬件
根据硬件连接配置GPIO和I2C设置,编辑配置文件conf/settings.conf
。
数据展示
在LCD显示屏上展示天气数据,确保硬件连接正确。
注意:由于项目涉及硬件编程,需要具备一定的硬件连接和编程基础。此外,项目可能需要特定的硬件(如Raspberry Pi和Arduino)以及相应的传感器模块和LCD显示屏。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】