完整可落地 LoRa 物联网监控系统设计(温度+湿度+水平 + 1分钟上报 + 基站转TCP/IP + Web展示)
我给你做最标准、最简单、可直接开发、无坑的完整系统设计,严格按照你的需求:
LoRa 传感器 → LoRa 基站 → 有线 TCP/IP → 服务器 → Web 页面展示
采集:温度、湿度、水平(倾斜/姿态)
周期:1 分钟上报一次
一、系统整体架构(4层极简稳定版)
核心工作流程
-
传感器每 60 秒采集一次:温度、湿度、水平角度
-
通过 LoRa 模组发送给基站
-
基站透传/封装 → 转成 TCP 数据包
-
以太网有线发送到服务器
-
服务器解析 → 存储 → Web 页面实时展示
二、硬件清单(直接采购可用)
1. 感知层:LoRa 传感器终端
-
主控:STM32L 低功耗单片机
-
LoRa 模组:SX1278 / LoRa-01(433MHz)
-
传感器:
-
温湿度:DHT11 / SHT30
-
水平姿态:MPU6050(陀螺仪+加速度计)
-
-
供电:电池/太阳能(低功耗 1 年续航)
-
上报周期:60 秒/次
2. 汇聚层:LoRa 基站(网关)
-
类型:单/多通道 LoRa网关
-
接口:LoRa 无线 + RJ45以太网(有线)
-
工作模式:TCP 客户端(Client)
-
功能:接收 LoRa 数据 → 转发 TCP 包到服务器
-
优势:稳定、无流量费、远距离(3~5km)
3. 服务器
-
本地:Windows / Linux PC
-
云端:阿里云/腾讯云轻量服务器
-
作用:TCP 数据接收、解析、存储、Web 展示
三、通信协议设计(极简工业格式)
1. 传感器 → 基站:LoRa 自定义帧(固定格式)
上行数据帧(1分钟发送一次)
帧头(1B) + 设备ID(4B) + 温度(2B) + 湿度(2B) + 水平X(2B) + 水平Y(2B) + 校验(1B) + 帧尾(1B)
固定长度:16 字节
示例(16进制)
7E 00 01 00 01 01 15 02 3C 00 05 FF FB 00 7E
解析:
-
设备ID:00010001
-
温度:27.7℃
-
湿度:58.0%RH
-
水平X:+0.5°
-
水平Y:-0.5°
2. 基站 → 服务器:TCP 透传(最稳定)
-
服务器:TCP 服务端(Server),监听端口(如:8888)
-
基站:TCP 客户端(Client),主动连接服务器
-
数据:LoRa 原始帧原样通过 TCP 发送
-
传输:以太网有线,无丢包
四、服务器软件架构(完整 4 大模块)
1. TCP 数据接收服务
-
监听 8888 端口
-
接收基站上传的传感器数据
-
解决多基站、多设备并发
2. 数据解析模块
-
帧头帧尾校验
-
解析:设备ID、温度、湿度、水平角度
-
时间戳自动记录
3. 数据库存储
-
存储所有历史数据
-
支持查询、导出、曲线展示
4. Web 可视化服务
-
实时数据展示
-
24 小时曲线图
-
设备在线状态监控
五、软件技术栈(轻量、快速开发、可直接运行)
服务器后端
-
语言:Python 3(最简单、通用)
-
TCP 服务:Python Socket
-
Web 框架:Flask(轻量)
-
数据库:SQLite3(无需安装,开箱即用)
-
实时刷新:WebSocket
前端 Web
-
页面:HTML + Bootstrap
-
图表:ECharts(温度/湿度/水平曲线图)
-
功能:自动刷新、实时显示、状态监控
六、数据库表结构(直接复制使用)
-- 设备信息表
CREATE TABLE devices (
id INTEGER PRIMARY KEY AUTOINCREMENT,
dev_id TEXT NOT NULL UNIQUE, -- 传感器唯一ID
dev_name TEXT, -- 设备名称
create_time DATETIME DEFAULT (datetime('now','localtime'))
);
-- 传感器数据表(温度、湿度、水平)
CREATE TABLE sensor_data (
id INTEGER PRIMARY KEY AUTOINCREMENT,
dev_id TEXT NOT NULL, -- 设备ID
temp REAL, -- 温度
humi REAL, -- 湿度
level_x REAL, -- 水平X轴角度
level_y REAL, -- 水平Y轴角度
create_time DATETIME DEFAULT (datetime('now','localtime'))
);
七、Web 页面功能(你能直接看到的效果)
-
设备总览
-
在线设备数
-
最后上报时间
-
-
实时数据表格
-
设备ID、温度、湿度、水平X/Y
-
在线状态、上报时间
-
-
历史曲线
-
24 小时温度曲线
-
24 小时湿度曲线
-
24 小时水平角度曲线
-
-
自动刷新
-
无需手动 F5,数据自动更新
-
八、完整数据流(1 分钟循环一次)
-
传感器采集
采集温度 → 湿度 → 水平 X/Y → 封装 LoRa 帧
-
LoRa 发送
无线发送到基站
-
基站转发
解调数据 → 通过 TCP 发送到服务器
-
服务器处理
接收 → 校验 → 解析 → 存入数据库
-
Web 展示
前端读取数据库 → 实时展示 + 画曲线
九、部署步骤(照着做 10 分钟跑通)
-
配置传感器
-
频率:433MHz
-
上报:60 秒一次
-
-
配置 LoRa 基站
-
模式:TCP Client
-
目标 IP:服务器IP
-
端口:8888
-
-
服务器启动服务
-
运行 TCP 接收程序
-
运行 Web 服务
-
-
打开浏览器访问
-
输入:http://服务器IP:5000
-
实时查看数据
-
# 完整可落地 LoRa 物联网监控系统设计(温度+湿度+水平 + 1分钟上报 + 基站转TCP/IP + Web展示) 我给你做**最标准、最简单、可直接开发、无坑**的完整系统设计,严格按照你的需求: **LoRa 传感器 → LoRa 基站 → 有线 TCP/IP → 服务器 → Web 页面展示** 采集:**温度、湿度、水平(倾斜/姿态)** 周期:**1 分钟上报一次** --- ## 一、系统整体架构(4层极简稳定版) ``` 【感知层】LoRa 传感器终端(采集温湿度+水平) ↓(LoRa 无线 433MHz) 【汇聚层】LoRa 基站/网关(透传 + 转 TCP/IP) ↓(以太网 有线 TCP Client) 【服务层】服务器(TCP 服务 + 解析 + 存储 + Web) ↓(HTTP/WebSocket) 【应用层】Web 监控平台(实时数据 + 曲线 + 状态) ``` ### 核心工作流程 1. 传感器**每 60 秒**采集一次:温度、湿度、水平角度 2. 通过 LoRa 模组发送给基站 3. 基站**透传/封装** → 转成 **TCP 数据包** 4. 以太网**有线**发送到服务器 5. 服务器解析 → 存储 → Web 页面实时展示 --- ## 二、硬件清单(直接采购可用) ### 1. 感知层:LoRa 传感器终端 - 主控:STM32L 低功耗单片机 - LoRa 模组:**SX1278 / LoRa-01(433MHz)** - 传感器: - 温湿度:DHT11 / SHT30 - 水平姿态:**MPU6050(陀螺仪+加速度计)** - 供电:电池/太阳能(低功耗 1 年续航) - 上报周期:**60 秒/次** ### 2. 汇聚层:LoRa 基站(网关) - 类型:**单/多通道 LoRa 网关** - 接口:LoRa 无线 + **RJ45 以太网(有线)** - 工作模式:**TCP 客户端(Client)** - 功能:接收 LoRa 数据 → 转发 TCP 包到服务器 - 优势:稳定、无流量费、远距离(3~5km) ### 3. 服务器 - 本地:Windows / Linux PC - 云端:阿里云/腾讯云轻量服务器 - 作用:TCP 数据接收、解析、存储、Web 展示 --- ## 三、通信协议设计(极简工业格式) ### 1. 传感器 → 基站:LoRa 自定义帧(固定格式) **上行数据帧(1分钟发送一次)** ``` 帧头(1B) + 设备ID(4B) + 温度(2B) + 湿度(2B) + 水平X(2B) + 水平Y(2B) + 校验(1B) + 帧尾(1B) 固定长度:16 字节 ``` **示例(16进制)** ``` 7E 00 01 00 01 01 15 02 3C 00 05 FF FB 00 7E ``` 解析: - 设备ID:00010001 - 温度:27.7℃ - 湿度:58.0%RH - 水平X:+0.5° - 水平Y:-0.5° ### 2. 基站 → 服务器:TCP 透传(最稳定) - 服务器:**TCP 服务端(Server)**,监听端口(如:**8888**) - 基站:**TCP 客户端(Client)**,主动连接服务器 - 数据:**LoRa 原始帧原样通过 TCP 发送** - 传输:以太网有线,无丢包 --- ## 四、服务器软件架构(完整 4 大模块) ### 1. TCP 数据接收服务 - 监听 8888 端口 - 接收基站上传的传感器数据 - 解决多基站、多设备并发 ### 2. 数据解析模块 - 帧头帧尾校验 - 解析:设备ID、温度、湿度、水平角度 - 时间戳自动记录 ### 3. 数据库存储 - 存储所有历史数据 - 支持查询、导出、曲线展示 ### 4. Web 可视化服务 - 实时数据展示 - 24 小时曲线图 - 设备在线状态监控 --- ## 五、软件技术栈(轻量、快速开发、可直接运行) ### 服务器后端 - 语言:**Python 3**(最简单、通用) - TCP 服务:Python Socket - Web 框架:**Flask**(轻量) - 数据库:**SQLite3**(无需安装,开箱即用) - 实时刷新:**WebSocket** ### 前端 Web - 页面:HTML + Bootstrap - 图表:**ECharts**(温度/湿度/水平曲线图) - 功能:自动刷新、实时显示、状态监控 --- ## 六、数据库表结构(直接复制使用) ```sql -- 设备信息表 CREATE TABLE devices ( id INTEGER PRIMARY KEY AUTOINCREMENT, dev_id TEXT NOT NULL UNIQUE, -- 传感器唯一ID dev_name TEXT, -- 设备名称 create_time DATETIME DEFAULT (datetime('now','localtime')) ); -- 传感器数据表(温度、湿度、水平) CREATE TABLE sensor_data ( id INTEGER PRIMARY KEY AUTOINCREMENT, dev_id TEXT NOT NULL, -- 设备ID temp REAL, -- 温度 humi REAL, -- 湿度 level_x REAL, -- 水平X轴角度 level_y REAL, -- 水平Y轴角度 create_time DATETIME DEFAULT (datetime('now','localtime')) ); ``` --- ## 七、Web 页面功能(你能直接看到的效果) 1. **设备总览** - 在线设备数 - 最后上报时间 2. **实时数据表格** - 设备ID、温度、湿度、水平X/Y - 在线状态、上报时间 3. **历史曲线** - 24 小时温度曲线 - 24 小时湿度曲线 - 24 小时水平角度曲线 4. **自动刷新** - 无需手动 F5,数据自动更新 --- ## 八、完整数据流(1 分钟循环一次) 1. **传感器采集** 采集温度 → 湿度 → 水平 X/Y → 封装 LoRa 帧 2. **LoRa 发送** 无线发送到基站 3. **基站转发** 解调数据 → 通过 TCP 发送到服务器 4. **服务器处理** 接收 → 校验 → 解析 → 存入数据库 5. **Web 展示** 前端读取数据库 → 实时展示 + 画曲线 --- ## 九、部署步骤(照着做 10 分钟跑通) 1. **配置传感器** - 频率:433MHz - 上报:60 秒一次 2. **配置 LoRa 基站** - 模式:TCP Client - 目标 IP:服务器IP - 端口:8888 3. **服务器启动服务** - 运行 TCP 接收程序 - 运行 Web 服务 4. **打开浏览器访问** - 输入:http://服务器IP:5000 - 实时查看数据 --- ## 十、我可以直接给你【全套可运行代码】 你拿到后**直接运行就能看到数据**,包括: 1. **Python TCP 服务端(接收+解析+存库)** 2. **Python Flask Web 服务** 3. **Web 前端页面(实时+曲线)** 4. **数据库创建脚本** 5. **传感器 LoRa 帧协议文档** 6. **基站配置教程** --- ### 你只需要确认 1 件事,我立刻把完整代码发给你: **是否需要我现在直接生成整套可运行的完整代码?** 你回复:**要**,我马上把全部代码一次性给你!

浙公网安备 33010602011771号