Skip to content

外设管理 ​

“外设配置”声明硬件、引脚与驱动参数;“外设执行”配置触发器、读取、动作和联动。配置保存、功能启用、驱动初始化及物理业务成功分别检查,本页以当前源码为功能边界,不把历史候选报告当成本次验证结果。

使用流程与权限 ​

  1. 在“设备配置 → 高级设置”按需要用当前密码启用开发者模式。新配置及恢复出厂配置默认关闭;升级设备保留原有选择。
  2. 核对芯片、板卡、Flash/PSRAM、模块电源与电平,备份现场配置。
  3. 新增外设并保持禁用,填写唯一 ID、类型、引脚和参数。
  4. 完成引脚、总线、通道及容量审核后单独启用,检查实际初始化结果。
  5. 单项读取或受控输出通过后再接入规则。禁用外设不能作为正常读写验证对象。

同一固件环境不代表相同板卡或接线,公开示例不能覆盖在线设备的网络、认证、协议、外设和规则配置。配置增改/导入失败须保留原有效配置,并核对错误原因。

类型和实现范围 ​

type功能与边界专页
1/2/3UART/I2C/SPI 总线资源;总线本身不等于具体传感器、SD卡或屏幕驱动配置指南
11/13/14、18/19/20数字输入、上拉/下拉及边沿中断GPIO输入
12数字输出,有源负载控制;无源蜂鸣器另用passive模式GPIO输出
15/26模拟输入/ADC,原始计数或工程量ADC
16/17/27PWM形式的模拟输出、通用PWM、芯片支持时的DACPWM
36/52/47OLED图形屏、LCD1602字符屏、TM1637数码管,入口不同OLED、LCD1602、TM1637
37SD卡,仅SPI接口SD卡
38/44通用传感器/OneWire传感器总览、DS18B20
41/42/43舵机/本地四脚步进/编码器舵机、步进、编码器
45/48/49/50/53/54NeoPixel、RF、雷达、DS1302、红外接收、MFRC522外设参考
51协议管理器生成的Modbus虚拟对象;外设页不能独立增改/启停Modbus
55/57PCF8574/MCP23017逻辑IO及PCA9685 PWM;取决于编译、功能和资源准入配置指南
56图形设备屏幕,当前ESP32-S3专用后端与板级配置设备屏幕
60无GPIO的设备事件定义设备事件

触摸21、CAN及其它枚举不等于当前有通用实现。I2C总线不能自动识别或驱动任意DS3231、EEPROM、AHT21等模块。可新增类型以当前API和页面发布的能力为准,资源配置还须通过运行时准入。

配置字段 ​

外设对象使用 id、name、数字 type、enabled、pins 和 params。接口需要显式 pinCount 时应与有效引脚数一致;持久化会按实际引脚数量序列化。不使用 _templates 等自创字段作为固件模板系统。

低电平有效继电器示例:

json
{
  "id": "relay1",
  "name": "低电平有效继电器",
  "type": 12,
  "enabled": false,
  "pinCount": 1,
  "pins": [26],
  "params": { "initialState": 1 }
}

initialState: 0/1 是低/高电平,不是统一“断开/吸合”。实际负载与常开/常闭触点须验证。原生普通数字输出没有通用 invert 参数,反向动作13/14改变所写物理电平;扩展IO逻辑映射另有 invertLogic。

外设当前字段
数字输入inputMode、invertLogic、debounceMs、reportMode,配对另有pairedInputId/pairDebounceMs
PWMpwmChannel、pwmFrequency、pwmResolution、defaultDuty;不是pwmFreq
UARTbaudRate、dataBits、stopBits、parity;pins按RX、TX顺序
I2Cfrequency、address、isMaster;pins按SDA、SCL顺序
SPIfrequency、mode、msbFirst;具体设备须使用自己的类型和片选契约
DHT/超声type38的数字sensorType:0/1/3;sampleInterval
注册I2C传感器type38的driver、数字address、frequency、sampleInterval、可选busPeripheralId
舵机frequency、minPulse/maxPulse、minAngle/maxAngle、initialAngle、PWM通道/位宽、反向及释放选项
步进stepsPerRevolution、speed,四脚按IN1~IN4顺序
NeoPixelcount、brightness,不是ledCount
OLEDwidth/height、interface: 2、contrast;当前地址固定0x3C
LCD1602cols/rows、address、backlight
SDinterface: 1、frequency,四脚按SCK、MOSI、MISO、CS顺序
RFmode、pulseWidth、repeat、bitLength、activeHigh

示例引脚均须按实际板卡调整。经典ESP32的输入专用GPIO不能用于输出,却可在符合ADC/上拉等条件时用于输入;不能笼统标为“完全不能使用”。Flash/PSRAM、USB/调试、启动脚和板载器件的限制以当前板级能力及实际原理图核验。

传感器、数据源和上报 ​

外设保存不创建定时采集。动作19的 actionValue 是包含 periphId 和读取参数的JSON字符串,不能留空。sensorCategory 属于动作;外设的注册驱动用 params.driver,本地类型用数字 sensorType。

json
{
  "targetPeriphId": "dht_room",
  "actionType": 19,
  "actionValue": "{\"periphId\":\"dht_room\",\"sensorCategory\":\"dht22\",\"channelField\":\"temperature\",\"dataField\":\"roomTemperature\",\"decimalPlaces\":2}",
  "useReceivedValue": false
}

上述目标须已保存为type38、sensorType=1并启用。channelField 选择内部通道,dataField 指定平台属性。缓存源为 dht_room_temperature,变化事件为 ds:dht_room_temperature,模板为 ${dht_room.temperature}。定时规则不自动把前一动作结果变成下一动作的接收值。

BMP280气压为hPa,海拔使用固定1013.25hPa基准;MPU6050加速度模式和角速度模式分别有三个轴及温度,角速度为rad/s;BH1750通道为illuminance。不能把BME280湿度、可配置MPU姿态融合或海平面标定当作已有功能。

ADC的分辨率不是测量精度;衰减档和vRef不保证所有芯片同一3.3V量程。采样失败、校准失败、断线、旧缓存及有效零分别显示,失败不能用0伪装成功。质量和原始采样时间必须满足消费者要求,屏幕保持画面、SSE心跳或MQTT连接不证明新数据持续产生。

动作与设备边界 ​

数字输出、PWM、舵机、步进及协议控制均通过既有仲裁和受检输出。舵机动作4是raw duty,角度仅由对应angle入口按映射换算;步进正反转是连续运行,不提供定角/定步反馈。Modbus ACK不表示物理行程完成,遇到TRAVEL_REFERENCE_REQUIRED先检查参考状态,不取消保护或自动重试。

设备事件动作21的目标是事件ID、动作值是数据;规则完成事件订阅规则ID,与显式事件不同。事件、动作入队和执行完成均须分别核查。

UART文本来源按分隔符或已确认空读后的空闲边界组成完整有界帧;超长、NUL、接收失败或来源代次变化使当前帧无效,并丢弃至下一边界。不能截成多条独立可执行值,更不能将其描述为通用二进制协议解析。

资源与功能状态 ​

功能可用需要编译支持、用户启用、依赖就绪、预算通过及初始化成功,并受运行期保护状态限制。用户启用意图与暂时no-memory/限流状态分别显示;PSRAM余量不能替代内部DRAM、最大连续块和任务栈预留。

总线共享须满足引脚、频率、地址/片选、驱动及生命周期契约,不会通过覆盖原owner来共享,也没有通用“自动软件I2C回退”。普通GPIO、LEDC、ADC、RMT及独占片选冲突应拒绝。

禁用不保证全部资源立即释放。ADC同unit仍有消费者时已配置通道可能保留;受检清理失败的GPIO/PWM/步进/编码器/NeoPixel资源继续登记,阻止复用。资源快照是项目已登记的被动观测,忙时未观测不是零占用,数量不是已测内存字节,也不证明第三方SDK没有占用。

缓存及任务池按实际需求初始化和维护。不要套用历史的“冷启动固定8KiB”“Worker常驻12KiB”“统一120秒回收”作为当前测量结果;关闭功能是否可回收取决于其真实生命周期和失败状态,Flash体积另由编译裁剪决定。

诊断与验收 ​

读取类型和外设列表、引脚校验及资源快照后,按类型选择读取/写入接口;认证、开发者模式、请求字段和响应结构以 API参考为准。诊断调用不能偷偷初始化驱动、挂载SD或恢复未知输出。健康监控见 健康监控,不要编造一份固定健康JSON代替当前接口。

历史2026-10-03/04候选与局部Host结果只说明相应输入版本的软件证据,不代表本次代码已统一构建、现场已更新或实物通过。当前网页字段与API成功也不代表电平、触点、灯珠、显示、RF负载或机械动作完成。RGB板的显示时序和各芯片长期验收仍须独立记录,不能用一台S3覆盖全部硬件组合。

按本次输入运行主机回归、相关目标构建及浏览器检查;设备身份、实际固件/Web摘要、配置、负载、故障恢复和长期观测另行验收。未运行、缺硬件、时长不足或观察中断明确标为待验证。8小时Web、24小时及后续72小时观察流程见项目scripts说明与 验收清单。

蜂信物联 | fastbee.cn