iot.vvzero.com/hackdock.md

5.4 KiB
Raw Blame History

HackDock 用户手册

简介

你可以从各种设备(服务器、电脑等)向 HackDock 发送指令,以控制 HackDock 的 LED 亮灭、蜂鸣器发声等。

外观介绍

配置并连接 Wi-Fi

HackDock 使用串口进行配置。

打开任意串口调试工具,例如 串口调试助手,选择正确的端口,配置波特率为 115200连接 HackDock。

请使用字符串模式与 HackDock 通讯。

配置指令的每一条都以 AT 开头,英文分号 ; 结尾。指令内部不要出现空格、换行,不能出现非标准 ASCII 码以外的字符。

配置指令列表,下表中类似 <ssid> 的模块,请替换为实际值,不要加尖括号

指令格式 返回值示意 解释
AT; OK ping 测试
AT+SETSSID=<ssid>; SSID: xxxx 配置 WiFi SSID
AT+SETPASS=<pass>; Password: xxxx 配置 WiFi 密码
AT+SETIP=<ipv4>; IP: 192.168.1.2 配置设备 IP
AT+SETNETMASK=<ipv4>; Net mask: 255.255.255.0 配置设备子网掩码
AT+SETGATEWAY=<ipv4>; Gateway: 192.168.1.1 配置设备网关 IP
AT+SAVECONFIG; Saved 保存配置
AT+CLEARCONFIG; Config cleared 清除所有配置
错误指令 Bad Command
未实现的功能 Not implement
指令太长 Command too long, max 100 bytes

注意:

  1. AT+SETSSID=<ssid>;AT+SETPASS=<pass>; 这两个命令是必须的;
  2. 如果没有配置 IP、子网掩码、网关那么设备将以 DHCP 的方式获取 IP你可以在路由器后台查看设备 IP
  3. 务必执行 AT+SAVECONFIG; 以保存参数。

配置参数后,请断电并重新上电,然后设备将连接 WiFi。

上电后的状态

上电后LED 0 会以 2Hz 闪烁并尝试连接 WiFi。若未配置参数或无法连接 WiFiLED 0 会以 8Hz 闪烁。若你已经配置了 WiFi 参数,但 LED 0 仍长时间处于 2Hz 连接状态,请检查 WiFi 环境。

若连接成功LED 0 会熄灭。

使用 UDP 控制 HackDock

设备连接 WiFi 后,可进行 UDP 通讯。设备 IP 请见上一节介绍UDP 端口为 6666。

如果仅调试,可以使用 sokit 工具 与 HackDock 进行 UDP 通讯。

UDP 报文的格式如下,整数采用小端模式传输

请求报文

请求报文格式为 [packageId][cmd][index][value]

字段 类型 释义
packageId uint32_t 报文序号,由发送方指定,设备会返回相同的序号
cmd uint8_t 详见下方“控制字”
index uint16_t 详见下方“参数请求列表”
value uint32_t 详见下方“参数请求列表”

响应报文

响应报文格式为 [packageId][code][value]

字段 类型 释义
packageId uint32_t 报文序号,返回请求的序号
code uint8_t 详见下方“响应码”
value uint32_t 详见下方“参数响应列表”

控制字

控制字 含义
0x00 读取
0x01 写入

响应码

响应码 含义
0x00 OK
0x01 请求格式不正确
0x02 不允许的操作
0x03 值不允许
0x04 内部错误
0x05 其他错误

参数请求列表

参数 含义 支持的控制字 value 的取值范围
0x0000 ping 0x00 任意
0x0001 读取设备类型 0x00 任意
0x1000 设定 LED 0 的状态 0x01 0: 常亮18Hz 闪烁22Hz 闪烁30.5Hz 闪烁4常灭
0x1001 设定 LED 1 的状态 0x01 0: 常亮18Hz 闪烁22Hz 闪烁30.5Hz 闪烁4常灭
0x1010 设定蜂鸣器状态 0x01 0常鸣1滴滴响2静音
0x1020 设定自定义引脚 0 的状态 0x01 0输出低电平1输出高电平
0x1021 设定自定义引脚 1 的状态 0x01 0输出低电平1输出高电平
0x2000 读取按键距离上次按下的毫秒数 0x00 任意

参数响应列表

参数 含义 value 的值
0x0000 pong 0x19260817
0x0001 返回设备类型 27
0x1000 设定成功 0
0x1001 设定成功 0
0x1010 设定成功 0
0x1020 设定成功 0
0x1021 设定成功 0
0x2000 返回按键距离上次按下的毫秒数 距离上次按下的毫秒数

请求示例

例如,我想让 LED 1 以 2Hz 闪烁,可发送下述 UDP 报文:

[0x01 0x00 0x00 0x00 0x01 0x01 0x10 0x02 0x00 0x00 0x00]

特殊功能

按键静音

在任何情况下,短按功能按键,可以将蜂鸣器静音。

注意事项

  1. 如果以极高频率向串口发送数据,可能会丢帧(除非你使用程序自动发送,否则手动很难出现这个问题)
  2. UDP 报文发送请保证 100ms 以上的间隔,否则可能会丢包
  3. 自定义引脚没有安全防护,请多次检查避免短路或接触到高电压!