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, 串口通信, 变频空调, 嵌入式开发, 微控制器, 数据擦除, 智能家居, 物联网, 状态机, 硬件接口, 空调控制, 通信协议, 驱动库