问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

树莓派安装OctoPrint及摄像头设置指南

创作时间:
作者:
@小白创作中心

树莓派安装OctoPrint及摄像头设置指南

引用
CSDN
1.
https://m.blog.csdn.net/m0_47698263/article/details/136663713

本文将详细介绍如何在树莓派上安装OctoPrint并设置摄像头,包括镜像下载与烧录、系统设置、摄像头设置等多个步骤。

一.镜像下载及烧录

  1. 登录 OctoPrint官网,下载带有new camera stack的镜像。

  1. 使用balenaEtcher或树莓派官方烧录软件Raspberry Pi Imager,将镜像文件烧录进TF卡内。

  2. 修改WiFi名称及密码。将TF卡通过读卡器连接电脑,在boot盘符里找到octopi-wpa-supplicant.txt文件,使用记事本打开,找到:

network={
    ssid="yourwifi"     #引号里的内容替换为WiFi名称
    psk="yourpassword"      #引号里的内容替换为WiFi密码
    key_mgmt=WPA-PSK
}
  1. 修改并保存后,将TF卡插入树莓派,并开机运行。

二.OctoPrint系统设置

在浏览器中输入树莓派的IP地址,进入OctoPrint系统,根据提示进行设置。具体可参照B站及CSDN上相关信息。

三.OctoPrint系统网络摄像头设置

  1. 使用SSH工具连接树莓派,进入树莓派home目录,依次执行以下命令,安装相应的软件:
cd ~
sudo apt install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
export LD_LIBRARY_PATH=.
make
  1. 安装成功后,进入mjpg-streamer/mjpg-streamer-experimental文件夹,使用以下命令开启网络摄像头服务:
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"

如果使用树莓派官方摄像头,需使用以下命令:

./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so"

此时,在浏览器内输入 http://<your Raspi's IP>:8080/?action=stream将会看到摄像头的拍摄画面。如果浏览器显示错误,则将上面命令中输出部分改为以下内容:

-o "./output_http.so -w ./www"

在OctoPrint系统设置中的Stream和Webcam & Timelapse选项里进行如下设置:

  1. 将mjpg-streamer设置为自动启动。

3.1 在树莓派/home/pi/scripts文件夹下创建webcamDaemon文件,并输入以下内容:

#!/bin/bash
MJPGSTREAMER_HOME=/home/pi/mjpg-streamer/mjpg-streamer-experimental
MJPGSTREAMER_INPUT_USB="input_uvc.so"
MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so"
# init configuration
camera="auto"
camera_usb_options="-r 640x480 -f 10"
camera_raspi_options="-fps 10"
if [ -e "/boot/octopi.txt" ]; then
    source "/boot/octopi.txt"
fi
# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
    input=$1
    pushd $MJPGSTREAMER_HOME
    echo Running ./mjpg_streamer -o "output_http.so -w ./www" -i "$input"
    LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w ./www" -i "$input"
    popd
}
# starts up the RasPiCam
function startRaspi {
    logger "Starting Raspberry Pi camera"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options"
}
# starts up the USB webcam
function startUsb {
    logger "Starting USB webcam"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $camera_usb_options"
}
# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that's how it is...
vcgencmd version
# echo configuration
echo camera: $camera
echo usb options: $camera_usb_options
echo raspi options: $camera_raspi_options
# keep mjpg streamer running if some camera is attached
while true; do
    if [ -e "/dev/video0" ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then
        startUsb
    elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then
        startRaspi
    fi
    sleep 120
done

将此文件设置为可执行文件:

chmod +x /home/pi/scripts/webcamDaemon

3.2 在树莓派/etc/systemd/system文件夹下创建webcamd.service,并输入以下内容:

[Unit]
Description=Camera streamer for OctoPrint
After=network-online.target OctoPrint.service
Wants=network-online.target
[Service]
Type=simple
User=pi
ExecStart=/home/pi/scripts/webcamDaemon
[Install]
WantedBy=multi-user.target

3.3 在树莓派终端依次输入以下命令,启用webcamd服务:

sudo systemctl daemon-reload
sudo systemctl enable webcamd
sudo systemctl start webcamd
  1. 注意在OctoPrint设置中,网络摄像头的IP要填127.0.0.1,否则不能正常显示。

  2. 相关参考资源:OctoPrint社区

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号