树莓派仓鼠健身追踪器:激光断束传感器记录每日运动量
项目缘起
好奇仓鼠一天跑多远?我们 9 岁的女儿发起了这个项目,结果既惊人又有洞察。结合树莓派、激光断束传感器和简单脚本,你可以轻松测量宠物的行进距离和速度。
所需材料
- 联网树莓派(或任意单板计算机)
- 激光断束传感器 – Adafruit Laser Break‑Beam Sensor
- 面包板(Adafruit Pi Starter Kit 含)
- LED(可选,启动套件含)
- 两个上拉电阻:220 Ω 和 10 kΩ(套件含)
- 带跑轮的仓鼠笼,跑轮置于主要生活区外侧以防激光照射仓鼠眼睛。示例笼子
- 一只仓鼠
步骤 1:测量原理
系统通过检测跑轮每圈旋转工作。轮上贴一小块反射目标,每圈反射一次激光束。树莓派计数这些事件,计算距离(轮周长)和速度,并流式传输到实时仪表盘,每天早上可查看。
步骤 2:硬件搭建
Adafruit 激光断束传感器紧凑且无需在轮上加额外重量——对 2 盎司侏儒仓鼠至关重要。它在单一外壳内集成发射和接收。光束被目标遮挡时,传感器输出信号。
- 红线接 5 V,黑线接地,蓝线接树莓派 GPIO 引脚。
- 传感器输出与 5 V 间并联 10 kΩ 上拉电阻。
- 可选:同一 GPIO 引脚串联 LED(220 Ω 限流电阻)作视觉确认。
- 将传感器固定在笼壁,确保光束永不指向仓鼠眼部区域。若跑轮在笼内,可用磁性接触开关替代激光以确保安全。
- 在轮缘贴一小块遮蔽胶带作为反射目标。调整激光使其仅在每圈击中该目标。
安全提示: 切勿将激光直射生活区或仓鼠眼睛。光束可损伤视力。
步骤 3:软件设置
使用 Initial State 实时仪表盘可视化数据。按 快速入门指引 在树莓派安装 Initial State streamer。
新建 Python 文件如 hamster_fitness.py,粘贴以下代码:
import time
import initialstate
from gpiozero import Button
# 替换为你的 Client Key
client_key = "PUT YOUR CLIENT KEY HERE"
bucket_name = "Hamster Fitness Tracker"
# 在指定 bucket 创建新数据流
stream = initialstate.Stream.create(bucket_name, client_key)
# 设置传感器引脚(将 17 改为你选的 GPIO)
sensor = Button(17)
# 计算轮周长(示例:半径 10 cm)
wheel_radius_cm = 10
circumference_cm = 2 * 3.14159 * wheel_radius_cm
rotations = 0
start_time = time.time()
while True:
sensor.wait_for_press()
rotations += 1
elapsed = time.time() - start_time
distance = rotations * circumference_cm
speed = distance / elapsed # cm/s
# 发送数据到 Initial State
stream.publish({
"rotations": rotations,
"distance_cm": distance,
"speed_cm_per_s": speed
})
print(f"Rotations: {rotations}, Distance: {distance:.1f} cm, Speed: {speed:.2f} cm/s")
time.sleep(0.1) # 去抖动
每次运行脚本,你的 Initial State 账号下都会创建一个名为 Hamster Fitness Tracker 的新 bucket,后续所有数据点存入其中。仪表盘实时更新,让你即时洞察毛茸茸朋友的活动量。
有了这套装置,你会发现即使你睡着时,毛茸茸的小家伙也在疯狂奔跑!
制造工艺
- 树莓派+$5 I²C传感器打造温度记录仪
- 树莓派与 Python 构建远程温度传感器:分步实战指南
- 树莓派自制气象站:每日邮件推送温湿雨数据
- 树莓派 GPIO 直连 DS1820 单总线温度传感器指南
- 树莓派 3 接 HC‑SR04 超声波测距传感器完全指南
- 树莓派 Home Assistant 安全监控:PIR 运动检测、报警面板与视频抓拍
- 打造低成本家庭无线传感器网络:Arduino + 树莓派 + Xively 物联网平台
- 树莓派 PIR 运动传感器控制 LED 实战指南
- 树莓派低成本土壤湿度传感器:智能灌溉 DIY 指南
- 树莓派仓鼠健身追踪器:激光断束传感器记录每日运动量
- 树莓派读取线性霍尔传感器:Java 指南与 ADC0832 深度解析
- 树莓派多传感器温度光照监测系统:DS18B20 实战构建