发布于 2026-01-06 0 阅读
0

使用 RaspberryPi PIR 触发使用传感器跟踪我的猫的排便情况,连接到 DEV 的全球展示挑战赛,由 Mux 呈现:展示你的项目!

用树莓派追踪我家猫咪的排便情况

PIR触发器

用法

传感器与电路板的连接

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

作为一名曾经养过狗、如今第一次养猫的人,我惊讶地发现猫咪几乎从出生起就会“上厕所”。我早就做好了清理猫砂盆时忍受异味的心理准备。然而,我万万没想到它们的排泄物(💩)味道竟然如此浓烈,几乎熏遍了我半个公寓。

这可能不适用于所有人,但对我来说确实如此,我养了一只室内猫,住在两居室的公寓里,没有自然通风的地方放置猫砂盆。

故事中的英雄/反派

她的名字叫杜阿,是一只可爱又爱玩的玳瑁色流浪猫。杜阿喜欢玩她的老鼠玩具,也超爱吃湿粮,而后者大概就是我写这篇帖子的原因吧😵‍💫

杜阿坐在软垫沙发上

我把她的猫砂盆放在我第二个卫生间的淋浴间里。卫生间里有个排气扇,开灯的时候就会运转,但是她 拒绝她还没弄明白每次上大号的时候怎么开关马桶……是不是很烦人?

排气扇自动化

为了减轻气味,我希望当杜阿上猫砂盆时,灯能自动亮起。为此,我准备了以下几样东西:

调用 webhook(进而触发 Alexa 例程)的软件可以在这里找到:

GitHub 标志 fdocr / pir_trigger

将 PIR 传感器连接到 Webhook 的脚本

PIR触发器

将 PIR 传感器连接到 webhook 的脚本。

用法

将仓库克隆到文件夹中,安装依赖项,然后在后台运行。

# Install requirements
pip install -r requirements.txt

# Run in background
# TODO: Find/Document a better way to do this
TRIGGER_URL="<webhook_url>" python main.py &
Enter fullscreen mode Exit fullscreen mode

否则,请将其添加TRIGGER_URL = "<webhook_url>".env文件中,脚本会自动读取。

该脚本会将自身的进程 ID (PID) 写入目标地址,pid.txt以便后续使用。例如:

# Follow output of background process
tail -f /proc/$(cat pid.txt)/fd/1

# Kill process
kill -9 $(cat pid.txt)
Enter fullscreen mode Exit fullscreen mode

传感器与电路板的连接

电缆图在此

该脚本的灵感来源于树莓派基金会的这篇文章,并采用了他们建议的示例布局。传感器需要 5V (Vcc) 和地线 (GND),因此引脚 2 和引脚 6 都可以正常工作。将传感器的输出 (Out) 连接到……

有用!

以下是硬件运行时的样子

树莓派和运动传感器

树莓派和运动传感器

我们这位英雄/反派的GIF画质太差了

我们这位英雄/反派的GIF画质太差了

💩 统计数据

一切准备就绪后,我更进一步,添加了 Opentelemetry 来跟踪Honeycomb上例程触发的频率统计信息。

我想知道我是否因为运动传感器的误报而打开了浴室的灯,但经过一些测试后,它仅仅起到了显示她多久使用一次猫砂盆的作用。

过去7天的💩活动

过去7天的💩活动

过去24小时的排便活动

过去24小时的排便活动
 

有趣的是,我可以根据猫砂盆的触发次数(运动传感器触发次数)判断她平均每天使用猫砂盆约 8.5 次。我想很少有猫主人能像我一样了解自家猫咪的排便规律。不过,我的确记得很久以前Aaron Patterson做过类似的事情,并从中获得了灵感。

总之,就这些了。纯粹生活!

文章来源:https://dev.to/fdocr/keeping-up-with-my-cats-using-a-raspberrypi-oia