Skip to content

📱 示例项目

完整示例

主项目集成示例

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协议)

步骤演示:

  1. 添加产品和物模型
  2. 配置网关设备
  3. 添加传感器设备
  4. 配置采集任务
  5. 查看实时数据

参考文档: 使用流程

场景二:MQTT设备接入

设备类型: 直连设备

步骤演示:

  1. 配置MQTT Broker
  2. 创建MQTT产品
  3. 设备注册与认证
  4. 数据上报与订阅
  5. 指令下发

参考文档: 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=DeviceServiceTest

API测试集合

工具: Postman

包含接口:

  • 用户认证接口
  • 设备管理接口
  • 数据查询接口
  • 系统配置接口

导入方式:

  1. 导出项目中的Postman集合
  2. 导入到Postman
  3. 配置环境变量
  4. 开始测试

代码注释

所有示例代码都包含详细的中文注释:

java
/**
 * 设备服务类
 * 提供设备的增删改查等基础功能
 * 
 * @author iboot
 * @since 1.0.0
 */
@Service
public class DeviceService {
    
    /**
     * 根据设备UID查询设备信息
     * 
     * @param uid 设备唯一标识
     * @return 设备对象,不存在则返回null
     */
    public Device getByUid(String uid) {
        // 实现代码
    }
}

学习路径

新手入门

  1. 环境搭建

    • 安装开发工具
    • 导入项目
    • 配置数据库
  2. 运行示例

    • 启动后端项目
    • 启动前端项目
    • 访问系统
  3. 理解代码

    • 阅读核心代码
    • 理解业务流程
    • 查看API文档

进阶开发

  1. 自定义驱动

    • 参考现有驱动
    • 实现自定义协议
    • 集成到系统
  2. 扩展功能

    • 添加业务模块
    • 自定义解析器
    • 开发告警规则
  3. 性能优化

    • 数据库优化
    • 缓存策略
    • 并发处理

示例数据

测试设备数据

系统预置了一些测试设备和数据,方便快速体验:

  • 产品: 环境监测产品
  • 设备: 温湿度传感器示例
  • 数据: 模拟采集数据

模拟数据生成

位置: src/test/java/utils/MockDataGenerator.java

功能: 生成测试数据用于开发调试

java
// 生成模拟设备数据
MockDataGenerator.generateDeviceData(100);

// 生成模拟采集数据
MockDataGenerator.generateCollectData(1000);

获取帮助

代码疑问

  1. 查看代码注释
  2. 阅读相关文档
  3. 参考单元测试
  4. 提交Issue询问

功能实现

  1. 查找类似示例
  2. 查看开发文档
  3. 观看视频教程
  4. 社区交流

贡献示例

欢迎贡献您的示例代码:

  1. Fork项目
  2. 添加示例代码
  3. 完善注释文档
  4. 提交Pull Request

示例代码规范:

  • 代码简洁易懂
  • 注释完整清晰
  • 包含使用说明
  • 可直接运行

提示

建议先运行示例代码,理解基本流程后再进行二次开发。

注意

示例代码仅供学习参考,生产环境使用需要根据实际情况调整。