A Typical IoT Application Solution
物联网温湿度及 PM2.5 采集监控平台
Air 是一个完整的物联网大气质量监测解决方案,实现了从嵌入式传感器采集、网络传输、数据存储到可视化展示的全流程。系统可实时监测温度、湿度、PM2.5 等大气质量指标,适用于智能家居、环境监测、智慧农业等场景。
| 特性 | 描述 |
|---|---|
| 🔌 多语言架构 | Java + C + Kotlin 多语言技术栈 |
| 📡 物联网采集 | 基于 STM32 的嵌入式传感设备 |
| 🌐 网络通信 | TCP Socket + HTTP RESTful API |
| 📊 数据可视化 | Web 端实时数据展示 |
| 📱 移动应用 | Android 移动端支持 |
┌─────────────┐ WiFi/TCP ┌─────────────┐ HTTP ┌─────────────┐
│ STM32 IoT │ ─────────────────→ │ TCP Server │ ────────────→ │ Backend │
│ Device │ │ (Java) │ │ (SpringBoot)│
└─────────────┘ └─────────────┘ └──────┬──────┘
│
┌─────────────┐ │
│ Android │ ←──────────────────┘
│ Mobile │ HTTP
└─────────────┘
│
┌─────────────┐ │
│ Web UI │ ←──────────────────┘
│(JSP/jQuery) │ HTTP
└─────────────┘
| 层次 | 技术 | 功能 |
|---|---|---|
| 感知层 | STM32 + DHT11 + PM2.5传感器 | 数据采集 |
| 网络层 | ESP8266 WiFi + TCP Socket | 数据传输 |
| 服务层 | SpringBoot + Smart-Socket | 业务处理 |
| 展示层 | JSP + Bootstrap + jQuery | 数据可视化 |
| 移动端 | Kotlin + HTTP | 移动监控 |
子项目挂载在其他 Git 仓库中,父项目仅保留子项目引用。使用以下命令初始化:
git submodule init
git submodule update- 语言: C
- 硬件: STM32 指南者开发板、DHT11 温湿度模块、ESP8266 WiFi 模块
- 功能: 传感器数据采集、TCP 网络通信
- 开发工具: Keil MDK5
- 源码
- 语言: Java
- 功能: 十六进制协议编解码、数据实体转换
- 说明: 需要打包为 JAR 包供其他服务依赖
- 源码
- 语言: Java
- 技术: Swing GUI、Socket 客户端
- 功能: 模拟传感器数据发送、虚拟环境检测
- 依赖: Air-Protocol
- 源码
- 语言: Java
- 技术: Smart-Socket、HTTP 客户端
- 功能: TCP 数据包监听、协议编解码、HTTP 转发
- 依赖: Air-Protocol
- 源码
- 语言: Java
- 技术: SpringBoot、MyBatis、MySQL
- 功能: REST API、数据 CRUD、业务逻辑
- 源码
- 语言: Java + JavaScript
- 技术: JSP、Servlet、JDBC、jQuery、Bootstrap
- 功能: 监测数据可视化、历史数据查询
- 源码
- 语言: Kotlin
- 技术: HTTP 客户端
- 功能: 移动端数据接收、远程监控
- 源码
| 模块 | 技术栈 | 说明 |
|---|---|---|
| Air-Iot | STM32、DHT11、ESP8266 | Keil MDK5 烧写 |
| Air-Protocol | Java 十六进制编解码 | 协议转换工具 |
| Air-Room | Swing、Socket | 数据模拟生成 |
| Air-Server | Smart-Socket、HTTP | TCP 服务端 |
| Air-Back | SpringBoot、MyBatis | REST 数据服务 |
| Air-Webapp | JSP、Servlet、JDBC | Web 展示 |
| Air-Phone | Kotlin HTTP | 移动端 |
依赖 Protocol: 需要将 Protocol 项目打包成 JAR(Maven 或 IDEA),作为本地 JAR 包添加到依赖工程中。
-
准备硬件
- 野火指南者 STM32 开发板
- DHT11 温湿度传感器
- ESP8266 WiFi 模块
-
配置开发环境
- 安装 Keil MDK5
- 可选:使用 CLion 编写代码,Keil 仅用于烧写
-
烧写程序
- 将 Air-Iot 烧写到开发板
- 使用 TCP 网络调试工具验证数据接收
- 启动 Air-Room 模拟器
- 配置端口与 TCP-SERVER 一致(默认)
- 自动发送模拟数据包
# 1. 初始化数据库
mysql -u root -p < sql/sql文件
# 2. 启动后端服务
cd air-back
mvn spring-boot:run
# 3. 启动 TCP 服务端
cd air-server
mvn spring-boot:run
# 4. 启动 Web 服务
cd air-webapp
mvn tomcat7:run- 访问 Web 站点:http://www.lifecat.club/air/
- 或本地部署后访问
http://localhost:8080/air-webapp
cd air-room
mvn exec:java
# 观察控制台模拟数据输出
# "TCP FAILURE" 表示服务端未启动cd air-server
mvn spring-boot:run
# 使用网络调试工具手动发送 TCP 数据包测试cd air-back
# 配置 application.yml 中的数据库连接
mvn spring-boot:run
# 访问 http://localhost:8080/swagger-ui.html 查看 APIcd air-webapp
# 配置 JDBC 连接
mvn tomcat7:run
# 访问 http://localhost:8080/air-webapp🌐 演示网址: http://www.lifecat.club/air/
我们正在寻找开源贡献者!如果你有想法或想要贡献代码,欢迎参与:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
Copyright (c) 2018-present kevinten10
本项目采用 Apache License 2.0 许可证
物联网 · 环境监测 · 智慧生活





