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

【源码】基于C++的Weather Station Plus项目

项目简介

本项目是基于C++开发的天气站增强系统,主要用于在物理硬件(如Raspberry Pi和Arduino)上搭建天气站。系统由一个中心盒子和远程天气传感器组成,传感器通过433MHz无线方式向中心盒子发送数据。

项目的主要特性和功能

  1. 硬件支持:支持Raspberry Pi和Arduino硬件平台,可用于构建中心盒子和远程天气传感器。
  2. 数据收集:利用433MHz无线通信接收远程天气传感器的数据。
  3. 数据展示:能在LCD显示屏上实时展示天气数据。
  4. 数据库存储:支持将收集的数据存储在PostgreSQL数据库(特别是TimescaleDB)中,便于处理时间序列数据。
  5. 配置管理:可从配置文件读取并解析设置信息,涵盖数据库连接、GPIO端口、日志配置、I2C总线配置等。
  6. 日志记录:采用Easylogging++库进行日志记录,支持多种日志级别和格式化输出。
  7. 多线程支持:运用多线程处理数据获取、用户输入和LCD更新等任务。
  8. 测试框架:使用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】