Appearance
📱 示例项目
完整示例
主项目集成示例
aiots的完整示例代码已集成在主仓库中,克隆项目即可获得:
bash
# 克隆后端项目(包含完整示例)
git clone https://gitee.com/iteaj/iboot.git
# 克隆前端项目(包含完整示例)
git clone https://gitee.com/iteaj/ivzone.git后端示例
协议驱动示例
Modbus驱动示例
位置: iboot-driver/modbus-driver
功能演示:
- Modbus TCP协议实现
- 读取保持寄存器
- 写入单个寄存器
- 批量读写操作
核心代码:
java
// Modbus协议实现示例
@Component
public class ModbusProtocol extends BaseProtocol {
@Override
public void readHoldingRegisters(int address, int quantity) {
// 读取保持寄存器实现
}
@Override
public void writeSingleRegister(int address, int value) {
// 写单个寄存器实现
}
}MQTT驱动示例
位置: iboot-driver/mqtt-driver
功能演示:
- MQTT连接管理
- 主题订阅/发布
- 消息处理
- 断线重连
使用说明:
- 查看配置文件了解参数配置
- 参考测试用例了解使用方法
DTU驱动示例
位置: iboot-driver/dtu-driver
功能演示:
- 串口服务器通信
- Modbus over TCP
- 设备注册与鉴权
- 心跳保活机制
设备管理示例
位置: iboot-web/controller/DeviceController.java
API示例:
java
@RestController
@RequestMapping("/api/device")
public class DeviceController {
// 设备列表
@GetMapping("/list")
public Result list(DeviceQuery query) {
// 示例代码
}
// 添加设备
@PostMapping("/add")
public Result add(@RequestBody Device device) {
// 示例代码
}
// 控制设备
@PostMapping("/control")
public Result control(@RequestBody ControlCommand cmd) {
// 示例代码
}
}数据采集示例
位置: iboot-iot/collector
功能演示:
- 定时采集配置
- 事件源管理
- 数据解析
- 数据存储
配置示例:
java
@Configuration
public class CollectorConfig {
@Bean
public EventSourceTask eventSourceTask() {
// 采集任务配置
return new EventSourceTask();
}
}自定义解析器示例
功能演示: 温度数据处理
java
@Component
public class TemperatureResolver implements DataValueResolver {
@Override
public String name() {
return "温度解析器";
}
@Override
public Object resolver(UpModelAttr attr, Object value) {
// 温度数据处理逻辑
double temp = (Double) value;
// 应用增益和精度
return temp / attr.getGain();
}
}前端示例
设备管理页面
位置: src/views/device/DeviceList.vue
功能演示:
- 设备列表展示
- 设备搜索过滤
- 设备添加编辑
- 设备状态监控
核心代码:
vue
<template>
<div class="device-list">
<a-table :dataSource="devices" :columns="columns">
<!-- 表格内容 -->
</a-table>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { getDeviceList } from '@/api/device'
const devices = ref([])
onMounted(() => {
loadDevices()
})
</script>数据可视化示例
位置: src/views/dashboard/DataChart.vue
功能演示:
- 实时数据图表
- 历史数据趋势
- 多设备对比
- 数据导出
技术栈:
- ECharts图表
- WebSocket实时通信
- Vue3组合式API
设备控制示例
位置: src/views/device/DeviceControl.vue
功能演示:
- 设备指令下发
- 功能参数配置
- 执行结果反馈
- 批量控制
场景示例
场景一:温湿度传感器接入
设备类型: 网关子设备(Modbus协议)
步骤演示:
- 添加产品和物模型
- 配置网关设备
- 添加传感器设备
- 配置采集任务
- 查看实时数据
参考文档: 使用流程
场景二:MQTT设备接入
设备类型: 直连设备
步骤演示:
- 配置MQTT Broker
- 创建MQTT产品
- 设备注册与认证
- 数据上报与订阅
- 指令下发
参考文档: MQTT协议驱动
场景三:数据大屏展示
功能: 实时监控大屏
技术方案:
- 集成乐吾乐大屏
- WebSocket实时推送
- ECharts数据可视化
参考文档: 大屏和组态
场景四:设备告警联动
功能: 温度超限告警
实现方式:
- 配置告警规则
- 脚本引擎处理
- 多渠道通知
示例代码:
javascript
// 告警脚本示例
function checkTemperature(data) {
if (data.temperature > 50) {
// 发送告警
sendAlarm({
level: 'high',
message: '温度超过50度',
deviceId: data.deviceId
});
}
}参考文档: 场景联动
测试用例
单元测试示例
位置: src/test/java
包含内容:
- Service层测试
- 协议驱动测试
- 工具类测试
运行方式:
bash
# 运行所有测试
mvn test
# 运行指定测试类
mvn test -Dtest=DeviceServiceTestAPI测试集合
工具: Postman
包含接口:
- 用户认证接口
- 设备管理接口
- 数据查询接口
- 系统配置接口
导入方式:
- 导出项目中的Postman集合
- 导入到Postman
- 配置环境变量
- 开始测试
代码注释
所有示例代码都包含详细的中文注释:
java
/**
* 设备服务类
* 提供设备的增删改查等基础功能
*
* @author iboot
* @since 1.0.0
*/
@Service
public class DeviceService {
/**
* 根据设备UID查询设备信息
*
* @param uid 设备唯一标识
* @return 设备对象,不存在则返回null
*/
public Device getByUid(String uid) {
// 实现代码
}
}学习路径
新手入门
环境搭建
- 安装开发工具
- 导入项目
- 配置数据库
运行示例
- 启动后端项目
- 启动前端项目
- 访问系统
理解代码
- 阅读核心代码
- 理解业务流程
- 查看API文档
进阶开发
自定义驱动
- 参考现有驱动
- 实现自定义协议
- 集成到系统
扩展功能
- 添加业务模块
- 自定义解析器
- 开发告警规则
性能优化
- 数据库优化
- 缓存策略
- 并发处理
示例数据
测试设备数据
系统预置了一些测试设备和数据,方便快速体验:
- 产品: 环境监测产品
- 设备: 温湿度传感器示例
- 数据: 模拟采集数据
模拟数据生成
位置: src/test/java/utils/MockDataGenerator.java
功能: 生成测试数据用于开发调试
java
// 生成模拟设备数据
MockDataGenerator.generateDeviceData(100);
// 生成模拟采集数据
MockDataGenerator.generateCollectData(1000);获取帮助
代码疑问
- 查看代码注释
- 阅读相关文档
- 参考单元测试
- 提交Issue询问
功能实现
- 查找类似示例
- 查看开发文档
- 观看视频教程
- 社区交流
贡献示例
欢迎贡献您的示例代码:
- Fork项目
- 添加示例代码
- 完善注释文档
- 提交Pull Request
示例代码规范:
- 代码简洁易懂
- 注释完整清晰
- 包含使用说明
- 可直接运行
提示
建议先运行示例代码,理解基本流程后再进行二次开发。
注意
示例代码仅供学习参考,生产环境使用需要根据实际情况调整。
