DIY Modbus智能家居调光开关 (原创) admin    18/10/28



简介

    今天,向大家介绍一款常用在智能楼宇上的调光开关面板的DIY过程,这是一款三位一体的面板, 其大小相当于3个普通家用86面板,包含3个调光开关。开关采用电容触摸感应方式,没有机械部分,便于清洗,没有强电,十分安全。 按(触摸)一下开,按一下关,按住不放可实现调光,每个开关有8个LED指示开关状态。开灯时8个LED作为亮度指示条,关灯时LED处在“呼吸”态, 很有科技感,夜间起床也不至于摸不到开关。 但这种开关面板不能用作一般家里常用的墙面开关,它其实是智能家居的一个组件, 需要采用专门的智能家居布线方案。如果你正在装修新房子,考虑采用智能家居方案,不妨自己动手来DIY一款属于自己的开关面板。 这款面板采用施耐德电气公司的Modbus标准协议,支持Modbus协议的产品有很多。该面板可同这些设备组网,构建智能家居系统。

图1  智能调光开关PCB实物

原理

    图2为该智能调光开关的原理图,其核心部件是型号为STM32F103C8T6的MCU,24个LED灯直接由MCU驱动。 一片SP3485提供RS485接口,通过Modbus(RCU)协议连接网络。右下方的D7~D12、R6~R11构成三路电容触摸感应电路。X1509将输入的6~30V电源 转换成系统所需要的3.3V。

图2  智能调光开关原理图

电容感应开关原理

    图3为该智能调光开关的一路电容感应电路的原理图。400Khz信号由MCU产生,信号正半周电平是VCC,负半周电平是 0V,不考虑触摸按钮和二级管正向压降影响。在信号正半周时,电流通过R10、D9对C12充电,充电电流:

I = (VCC - VC12)/R10   (1)

    信号负半周时C12通过R11、D12放电,放电电流:

I = VC12/R11   (2)

    VC12稳定时,I=I,又因为R11 = R10,故 VC12=VCC/2

    如果手指靠近触摸按钮,相当于增加了一个旁路电容C'。在400Khz信号的负半周,C'上的电荷通过D12泄放,C'上的 电压归0,在400Khz信号的正半周,原先对C12充电的一部分电流通过C'旁路,这将导致C12上的电压下降。这个电压被送到MCU的ADC 转换成数字信号,就能检出“触摸”操作。

图3  电容感应开关原理图

元件清单

表1  智能调光面板元件清单

器件 封装 规格 数量
电解电容SYF81000uF 10V1
电容080522pF 50V COG 5%2
电容0805100nF 50V Y5V 20%9
电解电容SYF8330uF/35V 10*10mm1
电容08051uF 50V X7R 10%1
电阻0805330ohm 5%24
电阻08055.1K 5%2
电阻080510K 5%1
电阻08051M 5%6
电感L_12101uH1
电感NL70150uH1
二极管DO-S11N4148 (SMT 玻璃)6
TVSDO-214AASMBJ28A1
TVSDO-214AASMBJ6.5CA1
ICSOP-8SP34851
二极管DO-214ACSR2401
TVSDO-214AASMBJ6.5A(KK)2
二极管DO-S11N40071
发光二极管0805D白发蓝24
ICSOP-8XL1509-3.31
ICLQFP48STM32F103C8T61
PPTC1206100mA2
PPTC1812500mA1
接插件XH4-LKF15EDG3.81x4 卧式1
晶振50328M1

PCB布局

    图4为该智能调光开关PCB图,尺寸为86x258mm。红层器件全部集中在中央区域,这样,只需要一个预埋的86盒就 可安装。左右两边的两个感应片引线比较长,注意走线同地层的距离不要过近,否则,相当于已有一个寄生的旁路电容,影响触摸灵敏度。 也不要过远,否则,导线相当于一个天线,易受空间电磁干扰。

图4  智能调光开PCB图

程序烧录

    首先,下载程序镜像存盘备用。

    然后,你需要一个Jlink下载器(某宝上有卖)。将Jlink一端通过4芯排线连接到目标板上,另一端通过USB线连接电脑主机。

图5  JJlink下载器

    最后,我们需要使用J-Flash Lite工具软件。可以从官网下载完整的J-Link工具包。 安装过程不表。打开J-Flash Lite,在设备选项中选择我们的目标芯片型号(STM32F103C8),接口选择SWD/4000Khz。Data File中选择刚才我们下载解压的镜像文件i-panel.sres, 点击“Program divice”完成编程下载。

图5  J-Flash Lite器件选择

调试

    接通设备电源(6~30V均可),面板开关应处于“关”态,此时每路8个LED灯应处在“呼吸”模式,即渐亮→渐暗→渐亮交替 进行,节奏类似人的呼吸。用手指靠近中心的金属感应圆盘(不必接触),然后马上离开,面板反转成“开”态,此时每路8个LED灯全部点亮, 表示调光到100%。当手指再次靠近感应圆盘时,面板再次反转成“关”态。如果,手指放在感应圆盘附近不离开,则进入调光模式,LED灯点亮的 个数在1到8之间来回变化,对应调光亮度在0%~100%之间变化,此时拿开手指,亮度就定在某一值(例如亮5个LED)。以后再切换“开关”状态,“开” 态的亮度就定在这个值上。

Modbus

    该智能开关面板实际仅仅是一个输入设备,真正执行“调光开关”功能的是其他Modbus设备(如Modbus数字量开关)。 只要本智能开关面板符合Modbus协议,就可同这些设备实现组网。为了验证本设备的Modbus功能,可以借助“Modbus Poll”小软件。本设备的Modbus 寄存器表如下。

    如果忘记通讯参数。可将4Pin调试信号的CLK和GND短接后上电,就可以以默认参数启动设备。

表2  智能调光面板Modbus点表

保持寄存器 地址 类型 说明
400010word解锁开关,写入非0解锁后允许写40002~40003。10秒后自动锁定(回0)
400021wordModbus地址,缺省置254是永久有效的,实际应用可另配一个地址。
400032word波特率,0:600,1:1200,2:2400,3:4800:4:9600(缺省),5:19200,6:38400,7:57600,8:115200
400043word开关1状态,高半字节:开关状态(1/0),低半字节:开度百分比(0~100)
400054word开关2状态。
400065word开关3状态。


0 评论 | 直到2021-08-01 10:30添加评论