The-sultan/Panavox-PSS12-INV-Core
GitHub: The-sultan/Panavox-PSS12-INV-Core
为 Panavox PSS-12 INV 变频空调提供 Arduino/ESP32 平台串口控制能力的硬件无关驱动库。
Stars: 0 | Forks: 0
# Panavox PSS-12 INV Core — Arduino & ESP32 驱动库
这是一个硬件无关的 C++ 驱动库,用于通过 W950 WiFi 模块 UART 连接器控制 **Panavox PSS-12 INV** 分体式变频空调。
## 功能
该库处理微控制器与空调室内机之间的完整串口协议:
- 构建并发送指令帧(电源、模式、温度、风速、摆风、预设)
- 发送周期性状态请求并解析 150 字节的状态响应帧
- 通过回调函数(`onStatusUpdate`)和清晰的 `DeviceStatus` 结构体公开解码后的状态
- 管理 TX 状态机(队列、消息间隔、ACK 处理)
该库接受 `Stream&` 引用,因此兼容任何基于 Arduino 的平台(ESP32、ESP8266 等)或任何提供 `Stream` 接口的环境。
## 硬件
通过 UART 以 **9600 波特率, 8N1** 连接到室内机的 W950 WiFi 模块连接器。
注意:根据您的硬件,W950 连接器的 TX/RX 线路可能需要信号反转。在参考的 ESP32-S3 实现中,GPIO TX 使用软件+硬件反转(净效果:正常),而 GPIO RX 通过 2N2222 晶体管使用硬件反转。
## 用法 (PlatformIO)
添加到您的 `platformio.ini`:
```
lib_deps =
panavox-core=https://github.com/The-sultan/Panavox-PSS12-INV-Core.git
```
基本示例:
```
#include
PanavoxAC ac(Serial1);
void setup() {
Serial1.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);
ac.onStatusUpdate([](const DeviceStatus& s) {
// s.power, s.mode, s.target_temp_c, s.current_temp_c, etc.
});
ac.begin();
}
void loop() {
ac.loop();
}
```
## ESPHome
该库被 [Panavox PSS-12 INV ESPHome component](https://github.com/The-sultan/Panavox-PSS12-INV-ESPHome) 用作协议核心,后者在 Home Assistant 中公开了一个完整的 `climate` 实体。
## 协议
串口协议记录在 [`docs/Panavox_PSS-12_INV_Protocol_Specification.docx.pdf`](docs/Panavox_PSS-12_INV_Protocol_Specification.docx.pdf) 中。
**移植者注意:** Panavox PSS-12 INV 发送 150 字节的状态响应帧(`LEN_STATUS_RSP = 0x8D`)。这与原始 [esphome_airconintl](https://github.com/pslawinski/esphome_airconintl) 代码库中使用的 62 字节 `Device_Status` 结构体不同,该代码库还将其 UART 缓冲区上限设为 128 字节 —— 这对于接收此机型的有效帧来说太小了。如果将此库适配于其他机型,请在假设兼容性之前,先验证您硬件上的实际响应帧大小。
这不是官方制造商文档。它是通过分析 Hisense/Aircon International 兼容机型的开源 ESPHome 组件源代码进行逆向工程得出的:
Panavox PSS-12 INV 通过其 W950 WiFi 模块连接器使用的协议似乎与该系列机型兼容。该规范通过在实际设备上的实证测试得到了进一步完善,修正了原始代码库中的若干不准确之处,并记录了此前未描述的行为。
## 许可证
MIT
标签:Arduino, C++, DIY智能家居, ESP32, ESP8266, ESPHome, Home Assistant, PlatformIO, UART, 串口通信, 变频空调, 嵌入式开发, 微控制器, 数据擦除, 智能家居, 物联网, 状态机, 硬件接口, 空调控制, 通信协议, 驱动库