土巴士

  1. 首页
  2. NEC红外遥控解码分析
  3. 说明

反馈
关于

necAnalyzer是一款在线NEC红外遥控解码分析工具,通过解析接收到的电平数据,完成基础的红外解码并对红外电平信号作图形化显示,同时根据数据与NEC协议标准定义作比较,以协助分析红外遥控信号质量。

工具使用:

  1. 在工具页中,点击左下角浮动图标,填入格式化数据,点击“解码”,即可对数据进行分析
  2. 数据终端,用以接收红外信号,并将数据格式化输出
    a) 可以通过调试输出,将数据手动复制至工具;
    b) 也可以通过USB/网络等方式实现数据自动上传&解析
  3. 服务端:仅在终端使用网络(比如WIFI)时需要部署,详细见后续章节

数据格式

1. 每位数据使用花括号包起

  • 第一位为电平:0或1

  • 第二位为电平持续时长,单位us

2. 常规0038接收头,默认输出高电平,接收到信号则输出低电平,NEC协议起始位为9ms,所以标准起始位应为:{0:9000}

3. 数据说明

  • 有效数据应为 前导码2位 + 用户码16位 + 用户反码16位 + 指令码16位 + 指令反码16位,共66位
  • 解析时建议末尾加上 {0:562}{1:0} 表示数据结束,共68位

PS.

  • 花括号外的内容会自动过滤
  • 网页默认填充数据来自ESP-IDF例程:ir_nec_transceiver
自动解析

通过USB或网络,可以实现数据自动上传与解析。如果喜欢,甚至两者可以同时使用。

USB上传

将设备连接至电脑,点击“连接设备”,选择对应端口即可

* 找不到设备,建议通过设备管理器查看驱动是否正常
常用USB转串口方案驱动:CH340/CH341 、 CP210x

网络上传

方案基于WebSocket实现,因服务器延迟与带宽限制,服务端目前需要自行搭建;

服务端

  1. 下载 服务端 并解压至非中文路径
  2. 打开服务端根目录下 start.bat 或在控制台执行 node ws.js

* 需要 node.js 环境,测试版本 v20.15.1

网页端

  1. 服务端运行后,会弹出控制台窗口,可在上面了解设备连接情况,关闭该窗口,服务进程将停止
  2. 当服务端与网页在同一台设备,使用默认地址 127.0.0.1即可,否则根据服务端窗口提示,填写局域网地址
  3. 请确保终端与服务端处于同一局域网下
终端设备

USB-串口 通信

  1. ESP32固件: nec_analyzer_uart_esp32_Firmware
    PIN_UART_TXD = 1, PIN_UART_RXD = 3, PIN_IR = 23
  2. ESP32-C3固件: nec_analyzer_uart_esp32_c3_Firmware
    PIN_UART_TXD = 21, PIN_UART_RXD = 20, PIN_IR = 8
  3. IDF源码: nec_analyzer_uart_Source
  4. * 使用CH34X USB转串口芯片,务必使用双管自动下载电路,否则可能会导致通信异常,详细见 Hello AI-Thinker

necAnalyzer-ESP-C3-32S-Kit

WiFi-webSocket 通信

  1. IDF源码:nec_analyzer_webSocket_Source
  2. 不知道该怎么在配网时一起把服务端地址、端口这些也配了,算了,都硬写吧,又不是不能用.jpg,有生之年再更新一波

烧录

可以使用 Flash 下载工具 或 ESP Launchpad进行烧录

接口说明

串口通信

  1. 将 格式化 后的数据用串口发送
  2. 有效数据发送完后,发送一条空信息表示结束: \r\n

网络通信

  1. 通过websocket服务,将终端设备发来的数据以字符串格式转发至网页客户端
  2. 服务端通过 protocol 字段识别客户端与终端设备

客户端标识为 necAnalyzerClient ,终端设备标识为 necAnalyzer
可以在服务端中自定义终端设备的连接标识

NEC协议

关于NEC协议,网上已有太多讲解,在此不再赘述,没找到“官方资料”,可以参考 SB-Projects - IR - NEC Protocol

有意思的一点是,在查到的资料中,NEC拓展协议(Extended NEC协议)将用户码反码也划分到用户码,即用户码由8位拓展到16位。 指令数据段依旧使用8位+反码校验解析,而IDF例程却将数据码也按16位解析。

看不懂啊看不懂,明明 SB-Projects 这个网站还是通过他们例程说明知道的!

为防止新手误解,其中16位码显示,暂以IDF例程为准,但是……
没想到吧,我就没打算解析拓展协议,所以如果反码校验不通过,将不显示解析结果并提示,不过逻辑波形会显示出来,佬们自便吧

© 2024 tool-box.net