1,引言
记录植物的生长过程不仅可以帮助我们更好的了解植物的生长周期,还能为科学研究和教育提供宝贵的资料。家里正好有闲置的树莓派(Raspberry Pi)和其摄像头模块,是一个理想的解决方案,因为它们价格低廉,易于使用,并且功能强大。本文将介绍如何使用树莓派和摄像头模块记录植物生长的过程,并将这些数据保存为图像或视频文件。
2,硬件需求
- 树莓派 :树莓派3b+。
- 树莓派摄像头模块 :Rav1.3。
- SD卡:16GB,用于存储操作系统和数据。
- 植物:野花种子及花盆。
- 显示器&HDMI数据线:用于树莓派配置。
3,软件需求
- Raspbian操作系统:https://www.raspberrypi.com/software/
- Python:用于编写控制摄像头和数据记录的脚本。
4,安装和配置
- 使用 Raspberry Pi Imager 安装 Raspberry Pi OS操作系统
- 连接摄像头模块:
- 安装软件包
更新系统包
sudo apt-get update
sudo apt-get upgrade
安装Picamera库
sudo apt install python3-picamera
编写脚本记录植物生长
import time
from picamera import PiCamera
from datetime import datetime
import os
camera=PiCamera(0)
camera.resolution=(1920,1080)
interval=3600 #间隔1小时记录1次
total_time=1209600 #2周的时间
startTime=time.time()
savePath="image1"
os.makedirs(savePath,exist_ok=True)
while(time.time()-startTime)<total_time):
timestamp=datetime.now().strftime('%Y%m%d_%H%M%S')
filename=os.path.join(savePath,'image_{}.jpg'.format(timestamp))
time.sleep(interval)
可视化
记录植物生长的照片后,可以制作成视频资源,可供观察学习。
import os
import subprocess
def rename_files_with_numbering(directory,odir,start_number):
files=os.listdir(directory)
files.sort()
current_number=start_number
for filename in files:
if filename.startswith("image_") and os.path.isfile(os.path.join(directory,filename)):
new_filename=f"image_{current_number:03d}{os.path.splitext(filename)[1]}"
new_file_path=os.path.join(odir,new_filename)
os.rename(os.path.join(directory,filename),new_file_path)
current_number +=1
command=[
"ffmpeg",
"-framerate","10",
"-i",
"/home/pi/Yahboom_project/Raspbot/raspbot/imageout/image_%03d.jpg",
"-c:v","libx264",
"-pix_fmt","yuv420p",
"output.mp4"
]
def makeMpeg(command):
subprocess.run(command)
directory="/home/pi/Yahboom_project/Raspbot/raspbot/image1"
start_number=1
rename_files_with_numbering(directory,directory,start_number)
makeMpeg(command)
5,结论
通过树莓派和摄像头模块,可以轻松的记录植物的生长过程,结合Python脚本可以拍摄植物生长图像。具有一定的观赏性。
output