树莓派 + 延时摄影

[1]◎ 深圳的天空

莓派,还是将近四年前买的,当晚下单时就十分激动,到手后双眼看着精致的外盒,更是十分欣喜——这手中的小小「绿色卡片」竟然能运行 Linux!还有可以连接传感器可以控制外围电路的 GPIO!

当时急着将买的亚克力外壳、散热风扇装好后,安装配置好系统就折腾了一个 WordPress 博客,弄了弄内网穿透。后来,又购买了一些传感器,以及一个红外夜视摄像头,尝鲜物联网。再后来,除了用它偷窥了一只突如其来的小壁虎,除了去年临时用它赶制了用以应付学业的一辆 Wi-Fi 连接手机网页控制的遥控小车,就吃灰了。

尽管如此,前段时间来深圳时,还是将这个依旧十分精美的小玩具带上了,虽然我不知道它能否再次通电。到深圳后,有感于眼前壮美的天空,有感于这个城市紧张的快节奏生活,前几天傍晚就有了这样的一个想法:树莓派 + 延时摄影!

出于对 8GB 的 SD 卡的担忧,想着是否可以将图片存放在电脑上呢,于是便有了 raspi-timelapse——以树莓派为终端,数据全部「上传」到电脑。代码比较简单,操作也不复杂。如果你之前没有接触过树莓派,可以参考下方的教程。

#教程

#安装系统

下载最新的 Raspberry Pi OS Lite 系统:

wget https://downloads.raspberrypi.org/raspios_lite_armhf_latest -O raspios-buster-lite-armhf.zip

将 SD 卡接入电脑,并将系统写入(回车前注意检查 SD 卡的设备名):

lsblk -p
umount sdX1
unzip -p raspios-buster-lite-armhf.zip | sudo dd of=/dev/sdX bs=4M conv=fsync status=progress

结束后,将我提供的两个文件,ssh 和 wpa_supplicant.conf 文件复制到 SD 卡中的 boot 文件夹下。第一个文件的作用是开启 SSH,第二个文件的作用是连接 Wi-Fi,里面的内容如下:

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
   ssid=""
   psk=""
   scan_ssid=0
}

将你的 Wi-Fi 名填入 ssid,密码填入 psk 即可。如果你的 Wi-Fi 设置了隐藏,则将 scan_ssid 修改为 1

接下来修改 config.txt,在文件末的 dtparam=audio=on 下方添加 start_x=1 以开启摄像头[2],也可添加 disable_camera_led = 1 以将摄像头上的 LED 灯关闭。

安全拔出 SD 卡,接入树莓派,接电开机。

#进入系统

等待片刻,接下来我们要用电脑通过 SSH 连接到树莓派,以进入系统。

先要找到树莓派的 IP 地址,你可以通过路由器的管理后台查看,也可以通过电脑扫描内网查看(以 192.168.1.* 为例):

sudo nmap -sn 192.168.1.0/24

等待输出,下方输出的即是树莓派:

Nmap scan report for 192.168.1.2
Host is up (0.42s latency).
MAC Address: **:**:**:**:**:** (Raspberry Pi Foundation)

得知树莓派的 IP 地址后,我们通过 SSH 连接它(以 192.168.1.2 为例):

ssh pi@192.168.1.2

输入默认密码 raspberry 后直接回车,成功进入系统。

#配置系统

先修改时区,确保照片的时间正确:[3]

sudo raspi-config

Localisation Options > Change Time Zone > Asia > Shanghai。

然后更新系统:

sudo apt update
sudo apt full-upgrade
sudo apt autoremove

#延时摄影

在树莓派,下载我提供的代码:

wget https://github.com/reuixiy/raspi-timelapse/raw/master/client/timelapse.tar.gz | tar -zxvf

考虑到国内网络,可以克隆 raspi-timelapse 到电脑后,在电脑通过以下命令复制到树莓派:

cd raspi-timelapse
scp -r client/timelapse pi@192.168.1.2:timelapse

然后回到树莓派,安装依赖:

cd timelapse
cat README.md

按说明操作即可。考虑到国内网络,安装 Python 的模块时,可使用国内阿里的镜像:

sudo pip3 install bottle -i https://mirrors.aliyun.com/pypi/simple

最后回到电脑,获取拍摄的图片,处理后即可生成视频,详见 README.md


  1. YouTube 地址:https://www.youtube.com/watch?v=Ej1WwFLVyVk ↩︎

  2. 也可进入系统后,通过 raspi-config 配置。关于摄像头,博主一开始使用的是红外夜视版本的,所以颜色有些奇怪,但可以通过 -sa 25 -awb cloud/flash 参数来调整(更多参数见官方文档),上方的天空即是这样拍摄出来的,后来博主在某宝花十几元包邮购买了一个普通版本的,拍出来效果也很不错。 ↩︎

  3. 这也可能会影响后面的系统更新,系统会自动选择就近的源,下载速度更快。 ↩︎

fix: typo