# 概述
由于被疫情长期居家的影响,发现在家里偶尔想看下室内当前的温度或者是厨房门是否关好都需要来回走动翻箱倒柜去找到可以显示的设备,如果没有找到的话可就太烦人了,还导致我耗费了不少时间。在如今信息科技高速发展的时代,家里面的实时环境数据竟不知从哪里能够看到,搜素发现市面上普遍zigbee传感器功能较单一,价格还有些昂贵,不太符合我所想要的,恰好赶上立创的物联网开源活动,当即决定做一个zigbee的门磁传感器(想检测什么自己加多爽)。
本设计使用干簧管搭配磁铁做开关门检测,温湿度数据采样通过I2C读取SHT31传感器,电源采用CR2032锂锰电池,使用电池扣方式固定,方便更换,单片机选用CC2530,使用TI的Z-stack协议栈。
至于为什么选择zigbee,目前我使用zigbee2mqtt的开源网关方案,搭配homeassistant (前提是要有公网ip,如果用内网穿透也可以,这里也兼容ZHA方案)可以很容易做到接入手机或者接入第三方的智能,比如wifi、mqtt、BLE mesh、zigbee等等。
*
# 设计分析

附件有对应的PDF版本
# 原理图设计说明
没什么要说的,怎么便宜怎么来,毕竟单个传感器作用很小哈,后面有时间会采用板载天线进一步缩小体积和成本。
# PCB设计说明
没什么要说的,根据自己外壳画板即可。
# 软件说明
```
#include<stdio.h>
void main()
{
printf("hello world /n");
}
```
# 注意事项
外壳需要自己去设计。
# 随便说说
2023-04-13 晚
大概浏览下立创开源广场里有关zigbee的开源项目,发现大部分采用涂鸦ZTU模组免开发方案,或者是使用zigbee模组绘制的测试开发板,总觉得少了点什么,这种感觉我还说不上来。
其实传感器本身没有什么难度,还是单片机+传感器,电路板上面甚至没有太多的元器件,传感器通讯协议也是死的,核心的部分也就剩协议栈的API了,当然功耗控制也很重要的(嘿嘿🤭)。
最终我还是决定做一个简单的门磁传感器,希望能够抛砖引玉,激发各位大佬的创意。
下面链接是我绘制zigbee网关原理图,已经全部打样验证过,都是TI的主控,使用zigbee2mqtt搭建即可用。搭建环境适用windows、linux、mac,官网有具体的搭建步骤说明,第一次使用E79或E72模块需要先用 smartRF flash programmer2 软件烧写固件,烧写协议支持Jtag、c-Jtag,我用Jtag(J-Link)总是烧写出错,没有弄清楚原因,之后使用c-Jtag方式可以刷进去,固件在zigbee2mqtt官网有对应下载。第一次刷程序后,后面就可以通过SBL方式更新程序了。
```
https://oshwhub.com/myjuly/e72-cc2652p-z2m //推荐这个,外接天线信号较强
https://oshwhub.com/myjuly/e79-cc1352p-z2m
```

* * *
# 更新记录(旧到新顺序)
### **2023/4/13**
暂时还没写全,等后面更新。
### **2023/4/17**
等待打样调试板子中,板子到手。
### **2023/4/18**
预计本周完成所有测试,届时会在b站发布演示视频,希望大家多多支持。
### **2023/4/30**
Z-Stack 3.0.2 -- w_door.zip 工程代码
PS:使用IAR 8051 10.30.1版本
路径Z-Stack 3.0.2\Projects\zstack\HomeAutomation\w_door\CC2530DB下
资料都在附件位置。
### **2023-5-2(有重点)**
1、如果手上没有CCDebugger下载器可以使用ESP8266给CC2530下载程序。
参考链接:https://blog.csdn.net/WeDone/article/details/105743357
2、动动手就能写完程序
如果不想自己修改代码,或者只想自己做一些简单的配置修改,推荐一个开源项目,可以直接使用,支持中文。
链接:https://github.com/ptvoinfo/zigbee-configurable-firmware
也可以直接下载附件 ptvo-firmware.zip 版本1.9.0.2 更新时间(2023-5-25)。
### **2023-5-22**
更新电流实测数据,用的是20KHz速率电流采样,底噪70nA左右,数据仅供参考,谢谢。

看相同颜色的框就行,红色是1分钟间隔。


### **2023-5-28**
目前zigbee门磁已经上电运行一天,电池电压是3.3V,安装在卧室门使用,实测使用看下,门磁距离网关3M远。
最近测试发现zigbee受到附件2.4Gwifi干扰还是比较严重,导致信号范围很小,想着有没有便宜方案做路由器扩展,转了一圈还是选择CC2530+PA的方式做zigbee路由器。
已经实测成功,下面看图,一共3张,抓包数据就不展示了, 第一张是实物上电正常运行,第二张是入网Z2M成功,第三张是网络拓扑图。



### **2023-6-11**
本次更新使用ESP8266给CC2530烧录固件,省去大家购买一个CCDebugger仿真器了。
一、可以自行编译下载ESP8266的程序,可参考大佬开源 https://github.com/Jason2866/CCLoader
二、如果不想安装编译器自行编译ESP8266代码,我已经编译好,大家可以直接使用乐鑫flash_download_tool下载工具进行下载即可,如下图所示。(firmware,bin文件和下载工具放在附件ESP8266工具包里面了)

具体资料请下载附件的ESP8266工具包,资料已经整理好了。
cc2530_io_firmware(PTVO)支持生成hex和bin固件的,想做CC2530 zigbee路由器的,可以生成固件时选择bin后缀。
参考链接:https://www.bilibili.com/video/BV1hV411o7i1/?vd_source=53b0ff05e315204a2c9daaa666be17dd
### **2023-6-15**
预告一波,周末有空的话,更新最新进展。
1、C2530(带RFX2401PA模块)做zigbee2mqtt的网关(基于TI Z-STACK home1.2.2a SDK,没有刷Z2M官方发布Z-Stack_Home_1.2固件,参考了补丁)。
2、CC2530(带RFX2401PA模块)做zigbee路由器(没啥好改的,直接用ptvo生成即可)。
大佬可能会觉得不如JN5169或CC2652模块制作网关综合性能更高,我做这个只是为了更多的理解zigbee协议,没有去对比其他模块。


这个CC2530模块价格不贵(截止今天是六快一个),带低频晶振、有屏蔽罩、内置PA放大IC性价比直接拉满,用来做DIY正好。(评论区有LJ)
### **2023-6-25**
温湿度+门磁的原理图已经更新了,版本是V2.0的,目前与zigbee2mqtt程序已经调通,PCB今天才打样,最快这周测试好,功耗还得等PCB到手再测试。
PS:V2.0这版预留了三个定位孔,大家可以画外壳了,或者自行修改PCB也可。
最近把home assistant用docker安装试了下很不错,可以搭配zigbee2mqtt,实现自动化配置。
在V2.0 PCB测试完成后,先打算做个无线版本的zigbee网关过渡,用ESP32或ESP8266,有的小伙伴可能是不想USB dongle直连网关,所以先把前期障碍都搞定。
### **2023-7-2 (7-5再次修改)**
V2.0版本的功耗测试没问题,大家想做的话可以直接打样PCB了,PCB上面留了3个定位孔,大家制作外壳可以直接使用或者根据自己需要修改PCB,zigbee2mqtt的转换器文件和hex文件放到附件里面的w_doorV2.0.zip压缩包里了,想要转换为bin文件参考上面ESP8266下载部分。
###### 实测功耗图



###### zigbee2mqtt 显示数据


###### V2.0 PCB实物焊接完成图


###### 补一张DIY zigbee门磁的部分思路图

### **2023-7-10(爆肝)** (最新)
话不多说,直接上图!
我将这个命名为 <一元硬币·门磁>。

简要说明下:为了充分发挥DIY传感器优势,索性不用模块直接上CC2530芯片,一是大幅缩小体积,二是依然保留温湿度和门磁检测功能,门磁使用低功耗霍尔替代干簧管。
PCB空间上再挤一个照度传感器也是可以的,但介于电池选用的CR2032就不想增加耗电量,如果用CR2450的话那BUF直接叠满。
问题交流群:492664491
* * *
我是分割线我是分割线我是分割线我是分割线我是分割线我是分割线我是分割线我是分割线我是分割线我是分割线我是分割线我是分割线我是分割线
* * *
_本人水平有限,只展示了参考资料,没有制作视频进行详细说明,会导致入手会有困扰不知道怎么进行,推荐一下我看的视频,如都教授、盛达电子、善学坊都是我力著的,纯小白可以先看善学坊的(俺也是小白哈)。_
_V2.0版本PCB可自行设计外壳_
#### **点赞收藏留言就是我持续更新的动力。**
33
62
收藏到专辑