作品名称:基于树莓派的自行车电子围栏设计😃
介绍:
项目设计的构思源于自行车忘了上锁,导致被偷了,3000打水漂懊悔不已,所以设计一个防盗系统,随时监控自行车的安全,该设计为了小巧便携及低功耗要求,取消了自行车端的MCU设计,仅用震动传感器产生高低电平,传输给RF射频发射模块,传输到不到20m远的房间内,中间无墙体遮挡,信号很稳定,使用低成本的433MHz模块在合适不过,树莓派端使用接收模块直接读取GPIO信息,弹紧急提示到桌面,nice。
照片:
功能框图:
使用得捷官网的 Scheme- it在线设计工具,非常方便,可以直接连接到引脚,但是我自己买的料在得捷上没有找到,只能使用替代,平时自己做项目可以尝试使用,很便捷。
物料清单:
1、树莓派
2、433MHz射频收发模块
3、震动传感器
相关功能说明:
使用树莓派官方桌面软件,接入一个433MHz的射频接收模块,连接的GPIO收到高电平时,树莓派桌面弹出窗口提示紧急消息,自行车端用震动传感器产生高低电平,传输给RF射频发射模块,供电通过300mah的电池供电,预计可以续航可以支持3个月(完全静态,无误触动的理想状态下)。
演示视频:
【电源网设计大赛】基于树莓派的自行车电子围栏_哔哩哔哩_bilibili
证明作品设计环境的花絮:
树莓派软件说明:
硬件连接
连接433MHz接收模块:VCC接到树莓派的3.3VGND接到树莓派的GND数据输出引脚接到树莓派的GPIO17
软件环境设置
更新系统:
sudo apt update
sudo apt upgrade
安装所需库: 安装gpiozero
和notify2
库,这两个库可以处理GPIO和弹出通知。
sudo apt install python3-gpiozero python3-notify2
创建Python脚本: 创建一个新的Python脚本,例如rf_receive.py
,并输入以下代码:
import time
from gpiozero import Button
import notify2
# 设置GPIO引脚
GPIO_PIN = 17
# 初始化通知
notify2.init("RF Receiver")
# 创建按钮对象
rf_button = Button(GPIO_PIN)
def send_notification():
# 创建通知
notification = notify2.Notification("RF Receiver", "Received high signal!")
notification.show()
# 持续监测
try:
rf_button.when_pressed = send_notification
print("Listening for RF signals...")
while True:
time.sleep(1) # 主循环中保持运行
except KeyboardInterrupt:
print("Program terminated.")
运行脚本
运行Python脚本: 在终端中运行以下命令:
python3 rf_receive.py
测试
当433MHz接收模块接收到信号并将数据引脚拉高时,应该会弹出一个通知窗口。
注意事项
确保有适当的权限运行脚本,如果出现权限问题,可以尝试使用sudo
运行。需要安装图形界面支持的库,确保通知功能正常工作。
视频演示如下: