运维123 - iot
type: channel
link: https://www.sddts.cn/index.php/tag/iot/
items: Garden Remote Controller SMS IoT 控制系统技术分析

Garden Remote Controller SMS IoT 控制系统技术分析
type: item
date: 2026-01-17T06:56:56+00:00
description: Garden Remote Controller SMS IoT 控制系统技术分析一、背景与目标1. 项目背景A. 业务场景Garden Remote Controller 是一个基于 Android 的 IoT 设备远程控制应用，通过 SMS 短信实现设备管理和监控。该应用解决了传统 IoT 控制方案对网络连接依赖的问题，在无网络或网络不稳定的场景下提供可靠的远程控制能力。B. 痛点分析传统 IoT 控制方案依赖稳定的网络连接，在以下场景存在局限性：农村或偏远地区网络覆盖不足家庭自动化系统断网时失去控制能力安全系统在故障时无法远程操作网络设备故障导致整个系统瘫痪2. 设计目标A. 功能目标通过 SMS 实现设备开关控制传感器状态实时监控和告警定时任务自动化管理设备状态持久化存储B. 非功能目标无需网络连接即可工作iOS 风格的现代化用户界面实时响应和状态同步线程安全和数据一致性二、现状分析1. 现有系统A. 技术栈开发平台：Android API 24-35（Android 7.0 至 Android 15）编程语言：JavaUI 框架：AndroidX + Material Design持久化：SharedPreferences + GsonB. 架构特点单 Activity 架构，Fragment 管理不同功能模块BroadcastReceiver 处理 SMS 收发RecyclerView 实现命令网格和消息历史ConcurrentHashMap 保证线程安全2. 功能模块A. 设备控制传感器开关（Sensors on/off）LED 灯控制（Led1-Led4）水泵控制（Water on/off）风扇控制（Fan on/off）报警定时器（Alarm1-Alarm3）B. 状态监控实时设备状态显示自动刷新（每 5 分钟）手动刷新功能状态持久化C. 智能通知PIR 运动检测告警门磁传感器告警激光检测紧急告警自定义声音和震动三、总体设计1. 设计原则离线优先：完全基于 SMS，无需网络用户友好：iOS 风格的流畅交互状态一致：保证 UI 与设备状态同步线程安全：并发操作的数据保护2. 系统架构graph TB subgraph 用户界面层 A[MainActivity] B[CommandAdapter] C[MessageAdapter] end subgraph 业务逻辑层 D[SMS管理器] E[状态同步器] F[响应解析器] end subgraph 数据层 G[SharedPreferences] H[ConcurrentHashMap] end subgraph 系统服务 I[SmsManager] J[BroadcastReceiver] end A --> B A --> C A --> D B --> E C --> F D --> I D --> J E --> H F --> H E --> G F --> G3. 组件说明MainActivity：核心控制器，管理 UI 和业务逻辑CommandAdapter：命令网格适配器，处理设备控制交互MessageAdapter：消息历史适配器，显示 SMS 对话记录SmsManager：系统 SMS 管理器，发送和接收短信BroadcastReceiver：短信接收器，处理设备响应四、详细设计1. 核心模块A. 命令发送模块职责：将用户操作转换为 SMS 命令并发送接口定义：void sendCommand(String command, CommandCallback callback);数据模型：class CommandItem { String name; // 命令名称 String command; // SMS 命令文本 boolean isToggle; // 是否为开关命令 boolean enabled; // 是否启用 int iconRes; // 图标资源 }B. 状态同步模块职责：解析设备响应并更新 UI 状态关键流程：接收 SMS 广播验证发送者号码解析响应内容更新设备状态刷新 UI 显示保存到历史记录C. 通知模块职责：处理传感器告警和紧急事件通知类型：PIR 运动检测门磁传感器触发激光检测紧急告警2. 关键流程A. 命令发送流程sequenceDiagram participant U as 用户 participant UI as MainActivity participant S as SmsManager participant D as IoT设备 participant R as BroadcastReceiver participant P as SharedPreferences U->>UI: 点击命令…