|
本帖最后由 zxlch 于 2020-8-20 23:45 编辑
一、功能概述
本模块设计目的是有线物理开关和无线MQTT来控制电源输出(或继电器)的多路集中控制系统。
它可以采集最大72路电平输入(单路5~24V、可选择内部供电或外部供电),控制64路电源输出(单路5~24v、100ma,总电流最大2A)和控制4路板载继电器(每路2组常开常闭输出)。所有输入输出采用隔离芯片,所有功能可以使用核心板上键盘控制,所有功能可以使用MQTT命令控制,所有状态和配置可以在LED和数码管上显示,所有输入输出状态和输入配置可以在OLED上显示。
功能简述:
a)支持采集72路5-24V开关量(核心板8路采集端口,其他需要叠加外置控制板)。
b)支持每路开关量选择外部电源、内部输入电源、内部输出电源。
c)支持控制64路输出5-24V电源,每路最大100ma电流(需要叠加外置控制板)。
d)支持每路输出直连给继电器供电。
e)内置4路继电器,每路两组常开常闭输出。
f)支持所有功能开关状态在主板上显示(LED形式)。
g)支持所有状态在主板上显示(数码管或OLED显示屏形式)。
h)支持所有状态发送MQTT信息。
i)支持所有设置和状态在主板上使用键盘控制或使用MQTT控制。
j)支持任意一路输入控制任意一路输出。
k)支持任意一路输入选择点触控制(输入高电平、输出高电平,再次输入高电平、输出低电平)或普通控制(输入高电平、输出高电平,输入低电平、输出低电平)。
l)支持任意一路输入单独禁用。
m)支持任意一路输入是否开启长按功能,且长按可以独立配置来控制任意一路输出。
n)支持8路批量执行功能,可以控制任意多路输出和设置。
o)支持外部扩展。
p)支持叠加最大8块外置控制板,每块控制板支持8路输入和8路输出。
二、电路布局
主控制板布局如下:
(图1)
1、内置4路继电器输出接口。
2、核心供电(3.3V DC)
3、输出供电(5-24V DC 5525插座)
4、输入供电(5-24V DC 5521插座)
5、开关量电源切换跳线
6、开关量启用内部供电选择开关
7、功能按键
8、功能状态指示灯
9、功能显示数码管
10、内置8路开关量输入接口
11、外部扩展接口
12、OLED显示屏
13、刷机键
14、重启键
15、外置控制板接口
16、TTL接口
三、初次使用
在初次使用时,系统会自动进入AP模式,连接名为“SmartHome_zxlch”,即进入以下界面
(图2)
*WiFi SSID -> 要接连的WIFI名称
*WiFi PASS -> 要连接的WIFI密码
*MQTT Svr -> MQTT服务器IP地址
*MQTT Port -> MQTT服务器端口
*MQTT User -> MQTT服务器用户名
*MQTT PASS -> MQTT服务器密码
*Command -> 控制码
*控制码输入“restio”来重置所有输入输出绑定设置,即所有输入开启绑定、开启点触、禁用长按功能、开启输入控制对应输出(即1号板1号输入控制1号板1号输出) 。
*控制码输入“restall”来清空所有配置文件,即恢复出厂设置。
所有信息填写完整后点击Submie,保存输入的信息。
四、输入接口
输入接口可以由外部5~24V直流或交流供电,采用直流供电时不必考虑正负极问题。若外部没有电源,则可以使用内部供电,内部供电可以选择使用“3输出供电”(图1中标明的编号,下同)或“4输入供电”。需要注意的是,每块电路中输入端口使用内部供电时,只能选择一种电源来源。
选择电源来源由“5开关量电源切换跳线”来切换,跳线可以选择4种模式:1、左下-“3输出供电”负级做公共端;2、左上-“3输出供电”正级做公共端;3、右下-“4输入供电”负级做公共端;4、右上-“4输入供电”正级做公共端。
每路可以选择是否使用内部供电,仅需更改“6开关量启用内部供电选择开关”状态即可,开关中标明的序号对应输入接口序号。
五、输出接口
输出接口仅可使用“3输出供电”的供电,供电要求在5~24V电压范围内的直流电,需要注意的是,“3输出供电”和输出之前有大约0.6V的压降差,尽量使用高电压来避免因压降问题导致的供电不足。
六、扩展接口
功能正在开发中
七、OLED显示屏接口
显示屏在打开状态时候会显示如下信息,
(图3)
最前方的数字为扩展板数量,0-7为外部扩展板,8为核心板。横线“-”后面为输入输出状态,显示为1时则表示输入高电平,显示为2时则表示输出电源,显示为3时则表示输入输出同时被激活,这些数字下面有3个像素点被点亮,由左向右分别表示启用绑定、启用长按、启用点触。最下方数字会一直增加,表示系统运行时间,单位为毫秒。
八、外置控制板接口
可接入外置控制板用于扩展更多路数。
九、功能状态指示灯
核心板上“8功能状态指示灯”处有多达16个状态指示LED灯,其由左至右分别表示:
01-- AP开启指示灯,如果没有客户端连接的情况下,此灯慢闪。
当有客户端连接,此灯长亮,改为09~16号灯以二进制方式显示客户端数量并慢闪。
02-- WIFI和MQTT功能开启状态,慢闪为仅开启WIFI,长亮为WIFI和MQTT同时打开。
03-- WIFI和MQTT连接状态,慢闪为仅连接WIFI,长亮为WIFI和MQTT同时连接。
04-- 对时服务开启状态。
05-- OLED显示屏开启状态。
06-- 数码管显示屏开启状态。
07-- 准备开启数码管显示屏指示。
08-- 运行指示灯,慢闪表示工作
09~16-- 外置控制板连接数量(二进制表示),在AP模式下为客户端接连数量(二进制表示)。
十、数码管与按键功能
核心板上提供了多达12个按键和4位数码管,可以控制所有功能和设置,具体操作如下:
长按菜单键(Menu)达到3秒内,功能状态指示灯LED07会亮起,继续长按共12秒后,数码管会显示Fn-0,这时就可以选择想要的功能了。按数字键即为选择对应功能,按菜单键功能序号加一,按确认键(Enter)即为确认。
Fn-0为禁用数码管显示。
Fn-1为显示时间,轮流显示运行时间(16进制表示)(小数点在第四位),年(无小数点),月日(小数点在第二位)、时分(冒号)、秒(仅显示后两位)。
(图4)
Fn-2监控任意一张扩展板、任意一输入和输出的状态,需要输入板组号和脚号(其中0代表低电平,1代表高电平)。
Fn-3监控任意一张扩展板任意一输出的状态,需要输入板组号和脚号(其中0代表低电平,1代表高电平,2代表切换电平)。
Fn-4监控所有输入状态,即有输入状态变更时,会显示在数码管上。
Fn-5监控所有输出状态,即有输出状态变更时,会显示在数码管上。
Fn-6显示芯片编号,以滚动方式显示。
Fn-7重新扫描外置扩展版数量。
Fn-8读取储存的所有配置并显示由TTL输出。
Fn-9调整设置,设置功能具体操作如下:
Fn90设置网络相关数码管第一位表示是否重启.
数码管第二位表示下次启动时是否开启AP模式
数码管第三位表示是否开启Wifi连接网络
数码管第四位表示是否开启MQTT无线网络控制。
Fn91设置Oled状态数码管有三位显示其不同的功能
数码管第一位表示OLED显示是否启用(由按键0、1控制关、开)。
数码管第二位表示OLED显示方向(2、3控制反向、正向显示)。
数码管第三位表示OLED显示亮度(4~9控制0~5级亮度)
Fn92设置数码管亮度,按键0~7表示8级亮度
Fn93设置时间,时间设置将在数码管上以不同页面显示,由确认键进行切换,除第一页NTP对时状态外,其他页面在所有页面输入完毕后进行时间更改。页面表示如下:
第一页输入是否开启NTP功能(由按键0、1控制关、开),第二页输入年,第三页输入月日,第四页输入时分,第五页输入秒。
Fn94设置绑定状态(输入是否控制输出),需要输入板组号和脚号(其中0代表关,1代表开,2代表切换)。
Fn95设置点触状态(输入由高电平切换为低电平时候,对应的输出是否锁定为高电平,待下次输入为高电平是,输出再切换为低电平)。
Fn96设置长按模式状态(任意一个输入开启长按后,可以设置长按2秒后控制不同的输出)。注意,如果没有长按需求,需禁止此选项来提高操作质量。
Fn67设置任一输入对应任一输出,数码管四位分别表示输入的板组号、输入的板脚号、输出的板组号、输出的板脚号,若选择的输出组脚号实际不存在,则输入控制的输出被标记成空。
Fn98设置任一长按输入对应任一输出,描述同上。
Fn99进入测试状态,进入测试状态将会关闭所有输出,然后循环开关每一个存在的输出组脚,按菜单按键退出测试模式。
十一、MQTT无线控制功能
控制命令将由简短的代码和合理的规则去操作,规则如下:第一个字母表示控制类型,第二个字母表示操作类型,第三个字母必须为“.”(半角点),其他将在不同控制类型里表示不同意思,所有英文字母不分大小写,主题分为下列类型:
原始主题:zxlch/SmartHome,连接MQTT后会向原始主题发送根主题名
根主题:zxlch/SmartHome/XXXX,X表示芯片编号
命令主题:zxlch/SmartHome/XXXX/Command,所有的控制命令发送至此
子主题:以下为不同类型子主题位置
输入子主题:zxlch/SmartHome/XXXX/InputMMNN,MN分别表示组脚号
输出子主题:zxlch/SmartHome/XXXX/OutputMMNN,MN分别表示组脚号
批量执行子主题:zxlch/SmartHome/XXXX/ScriptMM,M表示批量执行编号
命令主题接受的命令含义如下:
Oh.xy打开输出--子主题返回H(x=板,y=脚)(x=9时为批量执行)
Ol.xy关闭输出--子主题返回L(x=板,y=脚)(x=9时为批量执行)
Os.xy切换输出--子主题返回L|H(x=板,y=脚)(x=9时为批量执行)
Oa.xzzz...写入板状态--子主题返回L|H(x=板,z=1、0、2、x)(x=9时为批量执行)
Or.xy读取单输出--子主题返回L|H(x=板,y=脚)(x=9时为批量执行)
Ou.x读取板输出--子主题返回L|H(x=板)(x=9时为批量执行)
Oo.x读取板输出--根主题返回Ox.L|H...(x=板)(x=9时为批量执行)
Ir.xy读取单输入--子主题返回O|I(x=板,y=脚)
Iu.x读取板输入--子主题返回O|I(x=板)
Io.x读取板输入--根主题返回Ix.O|I...(x=板) (用都命令读取的是内存数据)
Bw.xzzz...写绑定状态--根主题返回Bx.0|1...(x=板,z=1、0、2、x)(用写命令读取的是EEPROM数据)
Br.x读取绑定状态--根主题返回Bx.0|1...(x=板) (用都命令读取的是内存数据)
Tw.xzzz...写点触状态--返回Tx.0|1...(x=板,1、0、2、x)(用写命令读取的是EEPROM数据)
Tr.x读取点触状态--根主题返回Tx.0|1...(x=板) (用都命令读取的是内存数据)
Lw.xzzz...写长按模式状态--返回Lx.0|1...(x=板,1、0、2、x)(用写命令读取的是EEPROM数据)
Lr.x读取长按模式状态--根主题返回Lx.0|1...(x=板) (用都命令读取的是内存数据)
Cw.xymn写入输入控制输出--根主题返回Cxy.mn(x=板,y=组,m=被控板,n=被控组)(m=9时为批量执行)
Cr.xy读取输入控制输出--根主题返回Cxy.mn(x=板,y=组)
Pw.xymn写入长按输入控制输出--根主题返回Pxy.mn.L(x=板,y=组,m=被控板,n=被控组)(m=9时为批量执行)
Pr.xy读取长按输入控制输出--根主题返回Pxy.mn.L(x=板,y=组)
Nr.读取外置板数量--根主题返回Nx(x=板数量)
Nw.重扫外置板数量--根主题返回Nx(x=板数量)
ZK.01-12发送数码管按钮(10表示菜单,11表示0,12表示确认)
ZR.xx重启设备(xx=重启延时时间,最大60(秒))
十二、批量执行功能
固件支持8组批量执行功能,每组批量执行支持动作和释放两种状态(即类似于开与关),其中第8组批量执行固定为动作时全开所有外置板输出,释放时关闭所有外置板输出,另外7组每个状态支持128条控制命令。注意,因批量执行的特殊性,只能在硬件启用时长按确认键连接AP后进行设置。批量执行将可以操作下列功能:操作任一输出的开、关、切换输出电平状态、绑定模式、点触模式、长按模式,也可以控制MQTT模式的开启、关闭、切换(禁用MQTT后,此输出的MQTT控制将被无效化)。
|
|