littlebot
Published on 2025-04-10 / 1 Visits
0

【源码】基于C语言和Flask的室内环境监测系统

项目简介

本项目名为RoomPi,是一个基于Raspberry Pi 2B硬件开发的室内环境监测系统。该系统利用多种传感器实时监测室内环境参数,如温度、湿度、光照强度和等效CO2浓度等。同时,配备执行器通过显示屏、LED灯带和蜂鸣器为用户提供反馈。还有一个基于Docker的Web子系统,包含数据库、仪表盘、数据库管理工具和配置应用程序,便于用户进行数据管理和系统配置。

项目的主要特性和功能

  1. 多样的传感器监测:采用DHT11传感器监测温度和湿度,BH1750传感器测量光照强度,CCS811传感器检测等效CO2浓度。
  2. 丰富的执行器反馈:HD44780显示屏显示监测数据,SN74HC595控制的LED灯带提供状态指示,有源蜂鸣器在异常时发出警报。
  3. 便捷的控制操作:前面板的3个按钮可用于系统的控制和配置。
  4. Web子系统管理:使用InfluxDB存储数据,Grafana展示数据仪表盘,Chronograf管理数据库,Flask编写的配置应用程序可调整系统参数。
  5. 自动化运行:容器化部署的Web子系统在系统启动时自动运行,出现故障时自动重启。

安装使用步骤

编译可执行文件

  1. 安装编译所需依赖:
    • 安装C编译器相关依赖: sh sudo apt-get install -y libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi libncurses5-dev build-essential bison flex libssl-dev gcc-arm-linux-gnueabihf
    • 安装wiringPi库: sh cd WiringPi ./build
    • 安装libcurl库: sh sudo apt-get install -y autotools-dev autoconf libtool cd curl/ autoreconf -fi ./configure --without-ssl sudo make install
  2. 编译项目: sh gcc src/*.c src/sensors/*.c src/actuators/*. src/libs/*.c src/controllers/*.c -lpthread -lrt -lwiringPi -lcurl -o "roompi-bin"

配置和启动Web子系统

  1. 安装Docker和docker-compose:按照Docker安装指南docker-compose安装指南进行安装。
  2. 编辑.env文件:设置Grafana和InfluxDB的用户名和密码。
  3. 启动容器:在项目根目录下执行以下命令: sh docker-compose up -d
  4. 停止容器:若要停止所有服务,可执行以下命令(添加-v可同时删除创建的持久卷): sh docker-compose down -d

配置Flask应用程序

  1. 安装Python 3.8: sh sudo apt-get install -y checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev build-essential cd /opt sudo wget https://python.org/ftp/python/3.8.7/Python-3.8.7.tgz sudo tar xzf Python-3.8.7.tgz cd Python-3.8.7 sudo ./configure --enable-optimizations sudo make altinstall python3.8 -V
  2. 创建并激活虚拟环境: sh python3.8 -m venv venv source venv/bin/activate
  3. 安装Flask及其他依赖: sh pip install -r requirements.txt

下载地址

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