基于CC2652P/E72-2G4M20S1E zigbee3.0树莓派转接板

项目背景

目前树莓派已配置好homeassistant,预计接入相关zigbee设备,海鲜市场淘一些,如果要接入ha,需要一个zigbee网关,网上看大一些大神的分享,利用模块自制网关,经过几天的摸索,打板验证,几经优化,基本已确定方案。

设计需求

  • 无缝衔接树莓派(ha装在的设备)方便固定以及相关接口的使用
  • 搭载风扇给树莓派散热,我手上的树莓派3b日常温度五六十度,这还没到七八月的热天气呢
  • 可依据树莓派温度控制风扇开关
  • 集成环境光传感器,因我们公司是做这个sensor,对于sensor的调试,还算熟悉
  • 有状态指示灯,显示不同状态以及预警
  • 。。。。。。。

方案选型

  1. zigbee网关CC2652P/E72-2G4M20S1E,网上DIY例子可参考
  2. ESP32 WROVER模块,正好手上有这个模块,可通过esphome接入ha

调试历程

画板,历经三次优化,由于对zigbee不熟悉,可谓小白,

  • 第一版回来发现跟树莓派怎么通信呢?大神都是有ch340usb转串口的方式,没有串口模块应该没办法用吧。。。。改了优化版本,加了串口以及type c,可见上边那张图,其实不然,树莓派是有串口的,可以直接串口通信,所以又改了第三版,也是最终版吧,不过还没有验证
  • 第一版回来发现手边的风扇无法匹配开孔,所以手动用电钻把孔开到适合的位置,比较费时,第二版做了优化,可见第一张图所示,匹配不同大小的风扇,之前捡垃圾的12v风扇,使用5v供电,真的很静音,基本上听不到声音,这是比较惊喜的地方,也是意外收获吧。
  • 第一版回来在烧录esp32时,发现不断重启,各种折腾,几乎上要怀疑人生,后来百度结合验证,确认是供电问题,多加了两颗100uf电容,稳得很,所以ESP模块对于供电很讲究,出现无法解释的问题时,先排查供电,不失为上策。
  • 第一版回来后发现,esphome客户控制彩色灯,正好手上有ws2182,在第三版加入这个灯,来做状态指示灯,
  • 第三版将esp32一些引脚引出,可为后续拓展使用。包括加入0.96寸oled
  • 第三版在第二版的基础性,重新加入与树莓派衔接的接口,可以省去type c供电以及串口模块,E72直接与树莓派通信,

目前第二版还没有回来,待后续验证。

调试历程

20220613

第三版回板,焊接后,使用E71 串口,直接接树莓派串口,没有成功,待确认问题

树莓派串口设置

以下为github开源说明,地址

2021-01-15

屏蔽安装在GPIO梳子的边缘(对于Raspbery Pi 2,3,4,这些是引脚1-10)。
====================================
单板树莓派,树莓派:
====================================

https://www.raspberrypi.org/documentation/configuration/uart.md

默认情况下禁用 SSH;可以通过在引导分区中创建一个名为“ssh”的文件来启用
nano /boot/config.txt

添加行
enable_uart=1

sudo raspi-config

在打开的菜单中,转到5 接口选项 配置与外设的连接,然后选择项目串行连接上的串行启用/禁用 shell 和内核消息

我们回答
否:您是否希望通过串行访问登录 shell?
是,

是否希望启用串行端口硬件?

重新启动。

ls /dev/ttyA*

/dev/ttyAMA0

有关具有内置蓝牙的主板的说明。
蓝牙拦截 ttyAMA0 端口。您应该使用端口 ttyS0。
详情请点击这里:
https://www.circuits.dk/setup-raspberry-pi-3-gpio-uart/

[未选中!您可以完全禁用蓝牙:

nano /boot/config.txt

添加行
dtoverlay=pi3-disable-bt
====================================
home-assistant.io
====================================
将SD卡插入读卡器,链接电脑
在配置文件的映射的config.txt添加行。
enable_uart=1
dtoverlay=pi3-disable-bt

然后禁用跟蓝牙有关的开机启动项

sudo systemctl disable bluetooth

配置插件时,请使用 /dev/ttyAMA0 端口

====================================
RPI4和家庭助手(蓝牙和zigby共享)的小指令:
在 RPI4 中:
enable_uart=1
core_freq=500
core_freq_min=500
dtoverlay=miniuart-bt
在家庭助理中:
串行:
- /dev/ttyAMA0
卸载并重新安装 zigbee2mqtt 插件

相关程序烧录

github链接

使用串口烧录

Download and install python 3.8.6.

Install necessary add-ons:

pip3 install pyserial
pip3 install intelhex

Flashing the rest of the sticks and pi shields/hat (activating the bootloader with buttons)

Hold down the RESET (RST) and FLASH (BSL) buttons, release RESET, then release FLASH.

or

Hold down the FLASH (BSL) button, insert the stick into USB, release FLASH (BSL) button.

python.exe cc2538-bsl.py -p COM3 -ewv znp_CC2652P.hex

The process looks something like this:

Opening port COM3, baud 500000
Reading data from CC1352P2_CC2652P_other_20201113.hex
Your firmware looks like an Intel Hex file
Connecting to target ...
CC1350 PG2.0 (7x7mm): 352KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x00057FD8
Primary IEEE Address: 00: 12: 4B: 00: 21: B4: 94: C2
    Performing mass erase
Erasing all main bank flash sectors
    Erase done
Writing 360 448 bytes starting at address 0x00000000
Write 104 bytes at 0x00057F980
    Write done
Verifying by comparing CRC32 calculations.
    Verified (match: 0x55e2e461)

At the end of the flashing, you may need to unplug-plug the stick into USB or press RESET.

After flashing, it is strongly recommended to clear the stick memory (only for coordinator firmware, routers do not need to be cleaned).

猜你喜欢

转载自blog.csdn.net/yyandad/article/details/125130283