README_INSTALL.md 5.9 KB

DZXJ DTU 应用安装说明

本文档提供了在 ARM Ubuntu 系统上安装和部署 DZXJ DTU 应用的详细说明。

系统要求

  • 架构:ARM 架构(支持 aarch64、armv7l、armv8l)
  • 操作系统:Ubuntu 18.04 LTS 或更高版本
  • 权限:支持 root 用户或具有 sudo 权限的普通用户
  • 网络:需要互联网连接以安装依赖

安装方法

1. 准备工作

确保您的系统满足上述要求,并已连接到互联网。

2. 本地构建前端应用

cd frontend
npm install
npm run build

确保生成了 frontend/dist 目录

3. 使用一键安装脚本

项目根目录中提供了针对 ARM Ubuntu 的一键安装脚本:

chmod +x install_arm_ubuntu.sh
./install_arm_ubuntu.sh

4. 安装过程

脚本会自动完成以下操作:

  • 配置 apt-get 使用阿里源以加速包安装
  • 安装系统依赖(Python、Node.js、Git、nginx等)
  • 配置 pip 镜像源以加速安装
  • 创建 Python 虚拟环境
  • 安装 Python 依赖包
  • 部署前端应用(从预编译的 dist 目录)
  • 配置 nginx 服务器提供前端服务
  • 创建启动和停止脚本
  • 生成系统服务配置文件(可选)

启动与停止

手动启动

cd ~/dzxj_dtu
./start.sh

手动停止

cd ~/dzxj_dtu
./stop.sh

作为系统服务运行

脚本已自动生成 systemd 服务配置文件,可以将应用设置为系统服务:

sudo cp ~/dzxj_dtu/dzxj_dtu.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable dzxj_dtu.service
sudo systemctl start dzxj_dtu.service

检查服务状态

sudo systemctl status dzxj_dtu.service

访问应用

应用启动后,可以通过以下地址访问:

http://localhost

如果是在远程服务器上安装,可以使用服务器的 IP 地址:

http://服务器IP地址

前端通过 nginx 提供服务,默认监听 80 端口,前端 API 请求会通过 nginx 代理到后端的 5001 端口。

常见问题

端口占用

如果安装过程中提示端口 5001 已被占用,可以:

  1. 停止占用该端口的进程:

    sudo lsof -i :5001
    sudo kill -9 进程ID
    
  2. 或者修改应用端口(需编辑 app.py 文件中的端口配置)

依赖安装失败

如果遇到依赖安装失败,可以尝试:

  1. 确保系统已更新:

    sudo apt-get update && sudo apt-get upgrade -y
    
  2. 检查网络连接是否正常

  3. 手动安装特定失败的依赖

权限问题

如果遇到权限错误:

  1. 确保以普通用户身份运行安装脚本
  2. 确保脚本具有执行权限:chmod +x install_arm_ubuntu.sh

卸载方法

要完全卸载应用,执行以下命令:

# 停止服务(如果已设置为系统服务)
sudo systemctl stop dzxj_dtu.service
sudo systemctl disable dzxj_dtu.service
sudo rm /etc/systemd/system/dzxj_dtu.service

# 删除安装目录
rm -rf ~/dzxj_dtu

DHT11 本地 GPIO 温湿度传感器配置(可选)

如果主板上接有 DHT11 传感器,安装脚本已自动安装 libgpiod 相关依赖,但仍需按实际接线配置 GPIO 编号。

1. 确认 GPIO line 编号

本驱动使用 libgpiod,需要填写 gpio line 编号,而不是丝印上的 GPIO2 名称。

Rockchip 芯片的 GPIO 编号计算公式:

编号 = bank * 32 + group * 8 + bit

其中 group 对应 A/B/C/D,分别取 0/1/2/3。例如:

  • GPIO2_A02 * 32 + 0 * 8 + 0 = 64
  • GPIO2_B32 * 32 + 1 * 8 + 3 = 75
  • GPIO2_C02 * 32 + 2 * 8 + 0 = 80

在目标设备上也可以用以下命令列出所有 gpio line:

sudo gpioinfo

2. 配置环境变量

手动启动(start.sh)

编辑 ~/dzxj_dtu/start.sh,取消 DHT11 相关注释并填写 GPIO 编号:

export DHT11_ENABLED=true
export DHT11_GPIO_PIN=64   # 按实际接线修改
export DHT11_GPIO_CHIP=gpiochip0
export DHT11_POLL_INTERVAL=5
export DHT11_SIMULATE=false

systemd 服务启动

编辑 /etc/systemd/system/dzxj_dtu.service,取消 DHT11 相关注释并填写 GPIO 编号:

Environment="DHT11_ENABLED=true"
Environment="DHT11_GPIO_PIN=64"
Environment="DHT11_GPIO_CHIP=gpiochip0"
Environment="DHT11_POLL_INTERVAL=5"
Environment="DHT11_SIMULATE=false"

然后重载并重启服务:

sudo systemctl daemon-reload
sudo systemctl restart dzxj_dtu.service

3. 接线建议

DHT11 三根线连接方式:

DHT11 主板扩展口 说明
VCC 3.3V 或 5V 按模块供电要求选择
GND GND 电源地
DATA 配置好的 GPIO 单总线数据

4. 验证

启动应用后查看日志,应出现类似输出:

DHT11 本地传感器数据已处理: 温度=24.0°C, 湿度=55.0%

Web 管理页面“环境传感器”页面也会显示温湿度。

如果暂时无法确认 GPIO 编号或没有接传感器,可将 DHT11_SIMULATE 设为 true 进入模拟模式。

注意事项

  1. 安装脚本会检查系统架构,仅在 ARM 架构上运行
    • 以 root 用户运行时,会自动使用 /opt/dzxj_dtu 作为安装目录
    • 以普通用户运行时,会使用 ~/dzxj_dtu 作为安装目录
  2. 脚本会自动备份并配置apt-get和pip使用阿里云镜像源以加速安装过程
  3. 后端应用默认端口为 5001,请确保该端口未被占用
  4. 前端通过nginx提供服务,默认监听80端口
  5. 前端API请求会通过nginx代理到后端的5001端口
  6. 前端必须在本地预编译,确保生成 frontend/dist 目录
  7. nginx配置会替换默认站点,如果需要保留其他站点配置,请先备份
  8. 建议定期更新应用以获取最新功能和安全修复

技术支持

如果您在安装或使用过程中遇到问题,请检查应用日志或联系技术支持。


本安装说明适用于 DZXJ DTU 应用的 ARM Ubuntu 版本