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

 找回密码
 立即注册
查看: 4263|回复: 47

[硬件DIY] zigbee第三弹:基础篇和简单控制输入输出(PTVO教程一)

  [复制链接]

23

主题

741

帖子

3667

积分

元老级技术达人

积分
3667
金钱
2901
HASS币
128
发表于 2023-12-24 20:21:24 | 显示全部楼层 |阅读模式
本帖最后由 冬瓜HA 于 2023-12-26 12:39 编辑

写在教程前的话



论坛里不少人说需要一个DIY固件的教程,这不,它来了,对于教程中说的不清楚的地方,请大家积极回应,我一有时间就会解答的。

因为PTVO只支持TI方案,使用其他模块的,只能看看或绕路。


最重要的一点,因为原软件是英文的,虽然支持多语言,但是中文实在没办法看,打了几天教程底稿觉得不合适,于是联系作者,重新制作了一个符合汉化的语言包,老外己在2023-11-17以后的软件中更新,如后续大家对于汉化中觉得哪不好,我会对汉化包进行专门维护的。

使用前必看基础



PTVO软件为了让固件更符合多方面的应用。做了不少的定义规则。

指示灯的默认定义



当指定了LED灯的GPIO后,LED是分默认状态和设定状态。优先级是先默认状态,再设定状态。

  • 对码状态:每隔一秒闪一次。
  • 常规状态:闪3次快闪3次闪9次停4秒(注:此种方式与作者说的有些差异,还待核实中)
  • 失去连接状态:快闪3次(注:作者说是当与协调器失联时会出现,还待核实中)

配对的默认定义



  • 刷新固件会复位后自动进入配对状态,只需要在z2m或者zha打开添加新设备后就可以。
  • 终端设备或路由器固件在 30 分钟内尝试连接到网络。如果所有尝试都失败,将暂停15 分钟。(注:暂停期间,是搜索不到新硬件的)
  • 具有节能功能的固件(PSM)尝试连接 1 分钟,在尝试失败后进入深度睡眠模式。你可以通过点击设定的“输入 1 ”按钮来延长连接周期。

重配对的默认定义


  • 方法一:通电2秒,断电,重复三次。(注:如果固件生成时,选择了“禁止通过电源开/关方式重置设备”,则此方法无效)
  • 方法二:在“输入 1 ”上配置了 GPIO 或“外部唤醒”按钮,按住该按钮 10 秒钟。将进入重新配对模式

第一篇:GPIO输入输出


基础:上拉与下拉



软件作者有希望大家深入了解GPIO的上拉与下拉的定义,特地告诉大家从https://en.wikipedia.org/wiki/pull-up_resistor去看一下基本介绍。

由于cc2530的内部上拉和下拉有很多限制,少了很多灵活性,所以推荐大家使用外部的上拉和下拉。

官方推荐外部上拉和外部下拉的电阻值为4.7K

GPIO 输入



GPIO输入在电路中最常用的方式是接入开关。为方便学习,以下基本上以开关作为介绍。

微信图片_20231223232444.png

注意:“输入1”,被默认定义为“重置键”,在设置成轻触开关模式时,长按10秒,会进入出厂设置。

输入类型:两种类似互斥

A、开关型:指通过给GPIO接高低电平,形成相应的开、关状态。
B、按钮型:指通过触发按键,形成点击、双击、三击的触发类状态信息。

微信图片_20231224162104.png

说明:

反转:默认情况下,固件将输入引脚上的低电平状态作为按钮的按下状态。如果启用此选项,则高电平状态表示按下按钮。此选项与“上拉或下拉”模式结合使用。例如,如果你选择下拉模式并设置“反转”选项,则逻辑反转两次,固件将把输入上的低状态作为按钮的按下状态。

链接到输出X:输入立即控制链接的输出状态(例如,输入 1–输出 1)。设备将输出的开/关状态发送到协调器。
开关:输入作为开关工作。仅 ON(按下)/OFF(释放)状态。如果输入链接到相应的输出,则此选项有效。当开关改变状态时,固件立即报告输出的状态。输出可以是虚拟的,并分配给任何未使用的引脚。

长按:相当于单击,固件检测并向协调器报告长时间点击(2000 毫秒)。当按钮未按下时,固件还会发送释放 ** 事件。

双击:固件检测并报告双击(两次单击之间最长间隔 500 毫秒)。

三击:固件检测并报告三次点击(点击之间最多 500 毫秒)。

切换:此选项显示为开关输入。开关的工作原理类似于切换按钮。但是因为可以通过外部命令来改变开/关状态,所以物理按钮位置可以不同于输出状态。

GPIO 输出



微信图片_20231224195835.png

说明:
反转:默认情况下,当逻辑状态开启时,固件将输出引脚设置为高电平。你可以使用此选项反转该逻辑。

记住状态:固件将输出状态保存到 NVRAM,并在电源关闭/打开后恢复。此外,此选项适用于某些传感器(计数器、PWM)

角色:一般默认使用“通用”。此选项允许你指定相应输出的角色。配置器仅在为 Z2M 创建自定义转换器时使用此选项。因此,输出可能在前端或家庭助理中具有不同的图标和相关联的动作。

---------------------------------------------------------------

通过以上的,进行设置后,就可以保存一个固件,然后烧录到cc2530中,就可以体验ZIGBEE的DIY之旅了。

为大家准备了几个“小玩具”,方便大家学习和调试:
扩展底板
开发板.jpg

特点:
短接帽插到左边,切换到按键模式(外部上拉);短接帽查到右边,切换到LED灯模式(外部上拉),方便同一个GPIO输入与输出的切换测试;
led灯采用了不同的颜色,方便测试者查看状态,防止多路gpio输出时,需要反复确认gpio的状态;
电源接口采用目前通用的TypeC接口供电,通用性比较强;

SmartRf04EB烧录夹
烧录器-侧2.jpg


模块+底板+烧录夹
烧录器 底板.jpg

模块+烧录夹

烧录器 模块.jpg


评分

参与人数 9金钱 +96 HASS币 +20 收起 理由
cym9007 + 5 感谢楼主分享!
+ 20 + 20 膜拜大神!
lyg21883 + 8 高手,这是高手!
pengguilian + 5 感谢楼主分享!
netwolf + 10 感谢楼主分享!
隔壁的王叔叔 + 10 大神666!
sirakawa + 12 墙都不扶,就服楼主!
flyice + 10 感谢楼主分享!
sorrypqa + 16 大神666!

查看全部评分

冬瓜版HAOS从现在开始!
回复

使用道具 举报

50

主题

1300

帖子

4909

积分

论坛DIY达人

积分
4909
金钱
3609
HASS币
20
发表于 2023-12-24 20:43:23 | 显示全部楼层
感谢分享!还没玩过这货,等发达了一定买几十个回来刷个够
回复

使用道具 举报

0

主题

562

帖子

2187

积分

金牌会员

Rank: 6Rank: 6

积分
2187
金钱
1625
HASS币
0
发表于 2023-12-25 08:58:22 | 显示全部楼层
给力给力,学起来
回复

使用道具 举报

21

主题

554

帖子

2344

积分

金牌会员

Rank: 6Rank: 6

积分
2344
金钱
1790
HASS币
0
发表于 2023-12-25 10:30:52 | 显示全部楼层
所以,不懂逻辑电路的我  虽然读完了整篇文章,貌似还是不会设置固件。
回复

使用道具 举报

23

主题

741

帖子

3667

积分

元老级技术达人

积分
3667
金钱
2901
HASS币
128
 楼主| 发表于 2023-12-25 10:59:43 | 显示全部楼层
a_dongde 发表于 2023-12-25 10:30
所以,不懂逻辑电路的我  虽然读完了整篇文章,貌似还是不会设置固件。 ...

,别急,我准备了DIY“玩具”,晚点发出来,方便大家调试。
冬瓜版HAOS从现在开始!
回复

使用道具 举报

16

主题

204

帖子

1600

积分

论坛DIY达人

积分
1600
金钱
1391
HASS币
20
发表于 2023-12-25 11:09:15 | 显示全部楼层
本帖最后由 polisher 于 2023-12-25 11:10 编辑

感谢楼主的壮举,因为该文档涉及的知识面比较广,要描述清楚其实非常耗时耗力,给楼主加油。另,原文档的内容建议楼主不要省略,毕竟像我这种小白,特别希望文档涵盖的内容越多越好。以下内容供参考,仅尽绵薄之力。
GPIO 输入与输出
GPIO是"General Purpose Input/Output"(通用输入/输出)的缩写。它是一种数字电子接口标准,用于微处理器与外部设备进行通信。GPIO引脚可以被配置为输入或输出模式,以便读取外部信号或控制外部设备,从而实现与外部通信、控制以及数据采集的功能。
上拉或下拉
在数字电路中,上拉电阻或下拉电阻是将不确定信号通过一个电阻钳位在指定电平上的电阻。
..............................
如何选择取决于所使用的外部传感器。对于 GPIO 输入,通常会更使用“上拉”。对于不同的外部传感器,应查看传感器的数据手册,了解推荐的原理图。
注意:
1. 使用CC2530、CC2531芯片,在为一个引脚启用内部上拉或下拉选项时,会自动为同一端口 P0x、P1x 或 P2x 上的所有其他引脚选择相同的模式。这里有个缺点,例如在P0.1上使用了内部上拉,则在P0.2 – P0.7上也会开内部上拉。因此,在PTVO中会限制在同一端口上混合不同传感器。
2.CC2530、CC2531的P10 和 P11 引脚没有内部上拉电阻。上拉或下拉模式不影响它。建议使用外部上拉或外部下拉模式。

回复

使用道具 举报

23

主题

741

帖子

3667

积分

元老级技术达人

积分
3667
金钱
2901
HASS币
128
 楼主| 发表于 2023-12-25 11:16:40 | 显示全部楼层
polisher 发表于 2023-12-25 11:09
感谢楼主的壮举,因为该文档涉及的知识面比较广,要描述清楚其实非常耗时耗力,给楼主加油。另,原文档的内 ...

,这就是我纠结的地方,官方原文档是老外科技文档写法,用词等,与国内很多不一样,理顺并且原样照搬相当于开一个理论课。

于是,我用的是几步玩转diy zigbee的方式,方便更多的小白参与。

先能快速上手,有兴趣,再补理论
冬瓜版HAOS从现在开始!
回复

使用道具 举报

16

主题

204

帖子

1600

积分

论坛DIY达人

积分
1600
金钱
1391
HASS币
20
发表于 2023-12-25 11:42:31 | 显示全部楼层
冬瓜HA 发表于 2023-12-25 11:16
,这就是我纠结的地方,官方原文档是老外科技文档写法,用词等,与国内很多不一样,理顺并且原样照搬相 ...

因本人就是小白,所以比较了解小白的学习之路。小白通常会先复刻实例,遇到问题查文档。所以深知一个好的文档对小白的重要。
PTVO是个免代码的固件生成器,特别适合DIY爱好者上手。您的文档必然会给我们带来极大的帮助。同时,我也会在力所能及的情况下配合您的文档,补充一点实例,以尽感谢之意。
回复

使用道具 举报

2

主题

123

帖子

1667

积分

金牌会员

Rank: 6Rank: 6

积分
1667
金钱
1544
HASS币
0
发表于 2023-12-25 12:39:54 | 显示全部楼层
板子哪里可以买得到
回复

使用道具 举报

23

主题

741

帖子

3667

积分

元老级技术达人

积分
3667
金钱
2901
HASS币
128
 楼主| 发表于 2023-12-25 12:41:07 | 显示全部楼层
polisher 发表于 2023-12-25 11:42
因本人就是小白,所以比较了解小白的学习之路。小白通常会先复刻实例,遇到问题查文档。所以深知一个好的 ...

那太好了,主要是我能抽出来的时间有限,手头上,x86的冬瓜版还在内测。
几个版本优化也在内测,这个2530及PTVO的,放在手边一个多月了。

这样,很多技巧,不明白的,随时讨论。
冬瓜版HAOS从现在开始!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-1 21:25 , Processed in 0.328636 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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