『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1698|回复: 24

[硬件DIY] PTVO实战-86型Zigbee墙壁插座(磁保持继电器+电量)

[复制链接]

16

主题

206

帖子

1618

积分

论坛DIY达人

积分
1618
金钱
1407
HASS币
20
发表于 2024-1-4 12:04:59 | 显示全部楼层 |阅读模式
本帖最后由 polisher 于 2024-1-5 11:44 编辑

PTVO是一款免代码的ZIGBEE固件生成器,通过撘积木的方式快速DIY一些基于ZIGBEE小玩意儿,特别适合我等小白们。这里要感谢  @冬瓜HA   大神发布和正在连载的PTVO教程系列。点击这里膜拜大神的帖子
用PTVO只需要了解一些硬件知识即可上手,本人菜鸟一枚,下面以Zigbee墙壁插座作为实例抛砖引玉,望不吝赐教。
一、电路图
电路图.jpg
二、PTVO设置
PTVO1.png
PTVO2.jpg
三、设置简述
1.指示灯
电路图上,我们在LED发光二极管正极接入3.3V(R2电阻限流),负极接在CC2350的GPIO20引脚上,也就是说只要该引脚为低电平时LED工作。于是,我们在PTVO设置界面的状态指示灯选择对应的P20引脚吗,勾选反转即可。
2.磁保持继电器
由于磁保持继电器(稳态继电器)的特性,其动作后将保持开关状态不再需要供电,有节能等作用。该电路采用了CN8023B作为驱动(逻辑表自行参考产品说明),R13、R14电阻外部上拉。于是,我们在PTVO的输出1和输出2设置对应的GPIO引脚IO0、IO1,并在输出1上选择稳态继电器 ON ;输出1上选择稳态继电器 OFF。脉冲设置为100毫秒(该值自行参考继电器产品说明,通常为100毫秒),勾选反转,断电回复方式设置为“最后”。
3.电量检测
采用HLW8032,其通过TX引脚以串口方式向CC2530的RX引脚发送电参数信息。本电路中采用了肖特基二极管D2电阻R41作为5V和3.3V的串口电位适配(非常规的光耦)。接下来,我仅需在PTVO中设置对应的引脚、类型和系数即可。注意:本电路中HLW8032采用了非隔离方式,电路板上存在220V的高压。另,PTVO中,串口引脚RX必须定义在P02。
4.按键
除了通过手机,我们还希望在插座上直接控制通断,必须在插座上设计一个按键来直接控制。于是采用了轻触式按键SW1。在PTVO中,根据电路我们设置对应的IO口,同时选择“链接到输出 1”,这样当我们按下按键后,CC2530会自动切换插座的通断。
四、Z2M转换文件
PTVO会自动生成相应的转换文件,针对Z2M的转换文件我这里精简了一下,供大家参考。
const zigbeeHerdsmanConverters = require('zigbee-herdsman-converters');

const exposes = zigbeeHerdsmanConverters.exposes;
const ea = exposes.access;
const e = exposes.presets;
const fz = zigbeeHerdsmanConverters.fromZigbeeConverters;
const tz = zigbeeHerdsmanConverters.toZigbeeConverters;

const ptvo_switch = zigbeeHerdsmanConverters.findByDevice({modelID: 'ptvo.switch'});
fz.legacy = ptvo_switch.meta.tuyaThermostatPreset;

const device = {
    zigbeeModel: ['86outlet'],
    model: '86outlet',
    vendor: 'DIY',
    description: '86型墙壁插座(带计量)',
    fromZigbee: [fz.ignore_basic_report, fz.on_off, fz.ptvo_switch_analog_input,],
    toZigbee: [tz.on_off, tz.ptvo_switch_trigger, tz.ptvo_switch_analog_input,],
    exposes: [e.switch().withEndpoint('l1'),
      e.current().withAccess(ea.STATE).withEndpoint('l3'),
      e.voltage().withAccess(ea.STATE).withEndpoint('l3'),
      e.energy().withUnit('Wh').withAccess(ea.STATE).withEndpoint('l3'),
      e.power().withAccess(ea.STATE).withEndpoint('l3'),
      exposes.numeric('power_factor', ea.STATE).withEndpoint('l3').withUnit('cosf').withDescription('Power factor'),    
],
    meta: {
        multiEndpoint: true,
        
    },
    endpoint: (device) => {
        return {
            l1: 1, l3: 3,
        };
    },
    icon: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAA6ADkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD90BGoH3V/KmrGuFwo5p5/1Yz0rhvEHxZurHxXa6XY2KzNcXYtcu2MKLjyZJc5/g2yHYFO7avzoSwT0oxcnaJznceWi9l6elACnoB+VYPxF8VXnhLw0l9Y2q30xmCGBn2b18uRzhsHBGwHkEEAjAyGE3gXxgvjbRTdJHJGquY/mAG7ocjDMMc+p70cj5ebpsHkbKhW/u/lRtoRshd3rz9KzdHXUDeu10rRx+WFdWdXV5M9Y8chcZ+9jOV4UhsyBon5T17Zo8xf8ighRHx7UY9l/IUAJ0Rc+maoaj4U0/VbkSSwr5m8ScH5d4KMH2/d3gouHxuGOCKuxn5F9MAU9TtNAFPW/Dtn4ks1t763juIFcSCKQbkJ2svKnhhhjwQRnB6gEWLezjso9ka7V92LE/iTmqGh+NNJ8Tapqljp+oWt1e6HOLXUYY5A0ljKY45lSQdVZo5Y3APVJFYcEVpkcn60AJ069qUHH4Hn2oIz0pM59eTQA5vmBx/+um+Z9fzpVbj6c03b7UANjbbEv0pQ+OpGM4Ge9LCP3S/SvP8A46/DPWPG7+GdT8O6pNpuueGdZt9RhVrmSO0vIwJIZoLhEzujkt7i4QHYxjleCcAm3AL6gSfC74I2nwl+IPxI8TrfSTS/ETW4tevVkYeXZtBplhpqIh2jC+Tp6SNuLfPI+DtArvMEFvyNcV8fPBfiL4jfC/UNB8P6tHoV9qyray6mmVnsY3kRZZrcbWHnpEZZIt2AJkh3Erurq9E0aHw/o1nYWvnfZ7GGOCLzZ3nk2IoVd0khLucAZZyWbqSSSaPMC3j5h9aTOR/Kg/KT79KN+fb6ULUB27GfQ/pTd4/yacTnt+dN/wCAr+VCAbbH/R4/90fyqSuZsL+c6TA3nTbvKTnefSqOoatdRltt1cL9JDV8oHZ8UuRXmF34j1BD8t9eD6TN/jXPaj4y1iO4YLqupKPQXL/41PKB7cy7v4qRUANeJTeMtYVR/wATXUv/AAJf/Gqb+N9aBP8AxN9U/wDAp/8AGjlA97X5VpmB7/nXgtv431ppY86xqhy4BzdSf412X/CQX/8Az/Xn/f5v8aahcD//2Q==',
};

module.exports = device;


五、其它
如想直接复刻,可在嘉里创开源平台直接打开本工程(点击这里)。如有兴趣复刻,可留言,我再提供元器件的具体信息。






评分

参与人数 4金钱 +42 收起 理由
cym9007 + 5
冬瓜HA + 16 厉害了word楼主!
深兰之刃 + 5 赠人玫瑰,手留余香!
sorrypqa + 16 大神666!

查看全部评分

回复

使用道具 举报

50

主题

1301

帖子

4925

积分

论坛DIY达人

积分
4925
金钱
3624
HASS币
20
发表于 2024-1-4 12:18:03 | 显示全部楼层
不错!大佬您买的这款磁保持继电器多少银子一个?
回复

使用道具 举报

0

主题

23

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
金钱
211
HASS币
0
发表于 2024-1-4 12:23:09 | 显示全部楼层
6666666666666666
回复

使用道具 举报

16

主题

206

帖子

1618

积分

论坛DIY达人

积分
1618
金钱
1407
HASS币
20
 楼主| 发表于 2024-1-4 12:34:42 | 显示全部楼层
sorrypqa 发表于 2024-1-4 12:18
不错!大佬您买的这款磁保持继电器多少银子一个?

您抬举。我买的比较贵,单价5元。某宝的“深圳市南通盛电子有限公司”
回复

使用道具 举报

50

主题

1301

帖子

4925

积分

论坛DIY达人

积分
4925
金钱
3624
HASS币
20
发表于 2024-1-4 12:36:17 | 显示全部楼层
本帖最后由 sorrypqa 于 2024-1-4 12:45 编辑
polisher 发表于 2024-1-4 12:34
您抬举。我买的比较贵,单价5元。某宝的“深圳市南通盛电子有限公司”

价格还算不错,要买点玩玩,JLC的太贵,真是要吐血了,上次画板用FH42,贵了1.8x8=14.4元
SNAG-2024-1-4_0007.png
回复

使用道具 举报

0

主题

8

帖子

520

积分

高级会员

Rank: 4

积分
520
金钱
512
HASS币
0
发表于 2024-1-4 20:41:46 | 显示全部楼层
啥都好,就是zigbee模块比以前贵了
回复

使用道具 举报

11

主题

184

帖子

1382

积分

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1198
HASS币
0
发表于 2024-2-8 20:28:05 | 显示全部楼层
本帖最后由 Awe7 于 2024-2-8 20:29 编辑

大兄弟,
ptvo怎么消除抖动??0.0  带触摸芯片的接入一直误触,继电器反复跳
回复

使用道具 举报

11

主题

184

帖子

1382

积分

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1198
HASS币
0
发表于 2024-3-2 01:53:44 | 显示全部楼层
本帖最后由 Awe7 于 2024-3-2 01:55 编辑

老哥,用ptvi固件刷了2530,连接到网关但没有8032的数据,用zha接入,开关正常 .是否软件自动生成的py数据文件有误?  用串口连接8032 数据正常。
回复

使用道具 举报

16

主题

206

帖子

1618

积分

论坛DIY达人

积分
1618
金钱
1407
HASS币
20
 楼主| 发表于 2024-3-2 06:55:18 | 显示全部楼层
Awe7 发表于 2024-3-2 01:53
老哥,用ptvi固件刷了2530,连接到网关但没有8032的数据,用zha接入,开关正常 .是否软件自动生成的py数据 ...

建议从电路上排查。
1.通讯连接方式是否为TX-RX
2.CC2530的串口引脚是否选择正确
3.CC2530与8032由于串口电压不一样,是否在电路上适配?可参考帖中所述
回复

使用道具 举报

11

主题

184

帖子

1382

积分

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1198
HASS币
0
发表于 2024-3-2 11:37:02 | 显示全部楼层
polisher 发表于 2024-3-2 06:55
建议从电路上排查。
1.通讯连接方式是否为TX-RX
2.CC2530的串口引脚是否选择正确

老哥你好,我是用mozi插座改的原电路是tx出来接10k到2530的rx,线路中间20k接地,非隔离供电。在插座上测试8032数据正常。  未勾选禁止通过电源开/关方法重置设备   会导致2530反复重启。勾选后能正常开机识别到开关。8032没数据.

配置文件

配置文件

设置

设置
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-8 16:46 , Processed in 0.333596 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表