Skip to main content

Raspberry PI Zero 2W camera

  1. Get the imager https://www.raspberrypi.com/software/ and write to sdcard, configure the dialogues

image.png

2. Plug in the sdcard, start the raspberry and log in via putty (find IP on router)
-> an USB port might not be powerful enough for heavy operations, so preerably a power outlet

3. Update and install workloads


sudo apt update
sudo apt full-upgrade -y

sudo apt install -y \
  rpicam-apps \
  python3-picamera2 \
  python3-numpy \
  python3-av \
  ffmpeg \
  samba

sudo reboot

Test the camera

rpicam-hello --list-cameras

Create directories

mkdir -p ~/camera ~/videos ~/timelapse

Upload scripts (via powershell)

scp C:\ZeroCameraBackup\record-motion.py xxx@Zero.local:/home/xxx/camera/
scp C:\ZeroCameraBackup\aim-camera.sh xxx@Zero.local:/home/xxx/camera/
scp C:\ZeroCameraBackup\timelapse-camera.sh xxx@Zero.local:/home/xxx/camera/

In putty:

chmod +x ~/camera/record-motion.py
chmod +x ~/camera/aim-camera.sh
chmod +x ~/camera/timelapse-camera.sh

 

Create Services

 

 

 

sudo nano /etc/systemd/system/motion-camera.service
[Unit]
Description=Motion Detection Camera
After=multi-user.target
Conflicts=aim-camera.service timelapse-camera.service

[Service]
Type=exec
User=tim
WorkingDirectory=/home/tim/camera
ExecStart=/usr/bin/python3 /home/tim/camera/record-motion.py

Restart=on-failure
RestartSec=5

KillSignal=SIGINT
TimeoutStopSec=20

StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/aim-camera.service

[Unit]
Description=Camera UDP Aiming Stream
Wants=network-online.target
After=network-online.target
Conflicts=motion-camera.service timelapse-camera.service

[Service]
Type=exec
User=tim
WorkingDirectory=/home/tim/camera
ExecStart=/home/tim/camera/aim-camera.sh

Restart=on-failure
RestartSec=5

KillSignal=SIGINT
TimeoutStopSec=10

StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/timelapse-camera.service

[Unit]
Description=Camera Timelapse
After=multi-user.target
Conflicts=motion-camera.service aim-camera.service

[Service]
Type=exec
User=tim
WorkingDirectory=/home/tim/camera
ExecStart=/home/tim/camera/timelapse-camera.sh

Restart=on-failure
RestartSec=5

KillSignal=SIGINT
TimeoutStopSec=20

StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Activate teh services

sudo systemctl daemon-reload

Set one as starting service

sudo systemctl disable --now aim-camera.service
sudo systemctl disable --now timelapse-camera.service

sudo systemctl enable --now motion-camera.service

check

systemctl status motion-camera.service