# MPPT Monitor - Android 客户端 基于 **JAVA + AndroidX + Material Design + Retrofit** 的 MPPT 太阳能充电控制器监控 Android 应用,作为配套 C 服务端(`mppt_monitor`)的手机端客户端,通过 HTTP REST 访问实时数据与历史数据,并支持设备参数写入。 本仓库为 Android 工程源码,可直接构建出可安装 APK。 --- ## 功能特性 | 模块 | 说明 | |------|------| | **连接配置** | 配置服务端主机地址与端口,一键测试连接连通性 | | **实时监控** | 每 2 秒自动轮询一次,展示电池电压、电量 SOC、光伏电压/电流、充电功率、温度、累计发电、充电状态、故障码 | | **历史查询** | 默认查询今日数据,WebView 动态绘制 功率/电压/SOC 折线图 + 明细列表 | | **设备参数设置** | 选择参数并写入(故障清除、充电限制电压、浮充电压、电池类型、最大充电电流、故障恢复定时器) | --- ## 目录结构 ``` mppt_monitor_android/ ├── app/ │ ├── build.gradle # 应用构建配置(含签名) │ └── src/main/ │ ├── AndroidManifest.xml # 清单(INTERNET/网络权限) │ ├── java/com/zhonjin/mppt/ │ │ ├── MainActivity.java # 主界面(底部导航 4 Tab) │ │ ├── api/ # Retrofit 网络层 │ │ │ ├── ApiClient.java # OkHttp/Retrofit 单例(连接配置可改) │ │ │ └── MpptApi.java # REST 接口定义 │ │ ├── fragment/ │ │ │ ├── ConnectFragment.java # 连接配置 │ │ │ ├── MonitorFragment.java # 实时监控 │ │ │ ├── HistoryFragment.java # 历史查询+图表 │ │ │ ├── SettingsFragment.java # 设备参数设置 │ │ │ └── HistoryAdapter.java # 历史列表适配器 │ │ └── model/ # Gson 数据模型 │ └── res/ # 布局/菜单/图标/样式/颜色 ├── keystore/ │ └── mppt.jks # 签名证书(mppt_2026) ├── build.gradle # 顶层构建 ├── settings.gradle ├── gradle.properties └── local.properties # sdk.dir 指向 Android SDK 路径 ``` --- ## 后端 REST API(被本客户端依赖) | 接口 | 方法 | 说明 | |------|------|------| | `/api/health` | GET | 服务健康检查 | | `/api/data?device_addr=1` | GET | 实时数据 | | `/api/history?start=&end=&page=&page_size=` | GET | 历史数据分页查询 | | `/api/settings` | POST | 写入设备参数 `{device_addr,param,value}` | 客户端默认连接地址:`http://discover.zhonjin.com:8085/`(可在「连接」页修改)。 --- ## 构建环境要求 | 组件 | 版本 | |------|------| | JDK | 17 | | Gradle | 8.10.2 | | Android Gradle Plugin | 8.5.2 | | compileSdk / targetSdk | 34 | | minSdk | 24(Android 7.0+) | **依赖**(在线下载):AndroidX AppCompat、Material、RecyclerView、Retrofit2、OkHttp、Gson。 --- ## 构建 APK ### 方式一:命令行(需要 Android SDK) 1. 安装 JDK 17、Android SDK(platform 34 + build-tools 34.0.0) 2. 配置 `local.properties` 写入 `sdk.dir=/你的/sdk路径` 3. 执行: ```bash export JAVA_HOME= gradle assembleRelease ``` 产物:`app/build/outputs/apk/release/app-release.apk` ### 方式二:Android Studio(推荐) 用 Android Studio 打开本目录,等待 Gradle 同步完成后: **Build → Generate Signed Bundle / APK → APK**,选择 `keystore/mppt.jks` 签名即可。 > 本工程已内置签名配置(release 使用 `keystore/mppt.jks`,口令 `mppt_2026`),可直接 `assembleRelease` 出签名 APK。 > > ⚠️ 出于安全,正式发布建议使用自己的签名证书并妥善保管口令。 --- ## 已生成 APK 可直接安装的签名 APK 位于: - `MPPTMonitor-v1.0.0.apk`(5.1MB,已签名,可直接安装到 Android 7.0+ 设备) 安装后请先在「连接」页确认服务端地址与端口(默认 `discover.zhonjin.com:8085`)。 --- ## 变更记录 - **v1.0.0**:首个可安装版本。支持连接配置、实时监控(2s 轮询)、历史查询(WebView 折线图+列表)、设备参数写入;RSA-2048 自签名(有效期 100 年)。# sync test