树莓派摄像头_树莓派制造日视/夜视串流直播摄像头

本文介绍了一款可直播的树莓派摄像头,它将摄像头和树莓派 Zero W 用 3D 打印外壳封装。详细给出了材料清单,包括树莓派套件、摄像头等;说明了 3D 打印部件的打印材料和设置;还阐述了安装树莓派、组装摄像头、电源连接等步骤,最终完成摄像头组装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

51bab94c5e7ea9033f740d8372dbcb00.png

MAKER:WalterK26/ 译:趣无尽

关于摄像头的案列,之前我们已经发表过《用树莓派做 RTMP 流直播服务器,可推送至斗鱼直播》、《180度小球追踪摄像头》、《用本地网络控制的树莓派摄影云台》等内容。

今天要介绍的是一台可以做直播的摄像头,它实际上是将摄像头和树莓派 Zero W 用一个精巧的3D打印外壳封装在了一起,支持热点接入、能够在任何手机或平板电脑上轻松连接到摄像头观看,整合程度更近了一步!

下面让我们一起看看具体的实现吧~

材料清单

69f132ea5befbbd3d53f5211febc880c.png

树莓派(Raspberry Pi) Zero W 套件 × 1
夜视鱼眼广角摄像头500万像素1080P带2个红外灯 × 1
16cm FFC 软排线 × 1
Micro SD卡 × 1
直流免电池电路 5V × 1
直流电源插头 × 1
2x1mm电线(10cm长 黑红色) × 1
M3x6mm内六角螺钉 × 8
M2.5x3mm内六角螺钉 × 44
3D打印前板 × 1
3D打印外壳 × 1
3D打印背板 × 1
12x12x3mm铝制板 × 1
40x20x3mm 铝制板 × 1
2排针母杜邦连接器 × 2
1mm热缩管(4cm 长) × 1
该项目还需要打印备用背板。

3D打印部件

cff1d152dc3f1d5f7c90b4557b1c4b79.png

前板和外壳使用PLA打印,背板使用PETG打印,因为铝板会变很热。
在thingiverse下载3D STL文件。1、先将文件“front_txt.stl”打印成黑色,将打印机灯丝更换为白色。2、然后再打印“front.stl”文件。

打印机设置:
前板:100%填充
附件:50%填充
背板:100%填充

3D STL文件请在文末项目文件库中下载。注意:打印速度和温度取决于你的3D打印机和灯丝。

安装 Raspberry Pi Zero W

1、烧录树莓派系统并配置Windows 参考这篇文章、macOS 参考这篇。参考文章链接请点击原文查看。

2、配置摄像头参考这篇文章中,开启摄像头并让树莓派正确识别到摄像头的部分。

3、安装uv4l核心和服务器

curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -
#添加下面这行到  /etc/apt/sources.list 并保存
deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/stretch stretch main
sudo apt-get update
sudo apt-get install uv4l-server uv4l-raspicam uv4l-raspicam-extras
sudo service uv4l_raspicam restart
sudo rpi-update

出处链接请点击原文查看。

4、创建网页

#去掉下面几行前的注释
server-option = --enable-www-server=yes
server-option = --www-root-path=/usr/share/uv4l/www/
server-option = --www-port=80

sudo mkdir /usr/share/uv4l/www
cd /usr/share/uv4l/www
sudo nano index.html

将项目文件中 index.html 中的内容复制进去并保存。

5、将树莓派配置成热点和 DHCP 服务器

sudo systemctl stop dnsmasq
sudo systemctl stop hostapd
sudo reboot

重启。

sudo nano /etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.100.1/24
nohook wpa_supplicant
sudo service dhcpcd restart
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf

修改如下:

interface=wlan0 # Use the require wireless interface - usually wlan0
dhcp-range=192.168.100.2,192.168.100.20,255.255.255.0,24h
address=/#/192.168.100.1

sudo nano /etc/hostapd/hostapd.conf

修改如下:

interface=wlan0
driver=nl80211
ssid=HorseOnTour
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0

sudo nano /etc/default/hostapd

修改如下:

DAEMON_CONF="/etc/hostapd/hostapd.conf"
sudo systemctl start dnsmasq
sudo reboot

出处链接请点击原文查看。

组装树莓派的摄像机并将其安装在前板上

066f82b2069037355180d039eb5f4fad.pngd4bc2fab6d65c64b3f767270dddc9fba.png4a442621a5ec42e61d567645c877e55d.png5756208092bc6c40d49898fa178398a2.pnge9601d857c83babf024bedd270e9b08e.png

1、如图所示组装树莓派摄像头。为方便安装在前板上,我从前面的树莓派摄像头板上粘贴的4个螺丝。
2、将带状电缆连接到摄像头。
3、将摄像头连接到前板。小心地将橡胶部件与前板上的孔对齐。同时请注意,请握紧摄像头的尾端,因为它很容易断裂。
4、拧紧树莓派摄像头上的4个螺丝。
5、将红外镜头从前面穿过电路板上的大孔。
6、将光学镜头从前面拧入插座。

电源连接

7ac1afe53956ef2fab3941b2601bf141.pnged61a145ad2fb991dcdf61a0b7d917a2.png379c14b85681bd550b56c517a74705f8.png

379c14b85681bd550b56c517a74705f8.png

1、如果你有杜邦线,你可以用。如果在电压调节器和直流电源插座之间不焊接一条1厘米长的电缆。那么注意将其焊接在右侧(输入)。
2、焊接5厘米长的电缆到电压调节器(输出)。

准备树莓派

ec274fcd75ddcb3f923dc90b6c43e079.png01e0d1223bbef10ab983c8ee665673f7.png09f844760f81c61e9d70298531d78af4.png9488b3773f5f0893eb7efad79977ff26.pngf5cf7d92f98aa1ab719b39f218dc373e.pnge599fe2fa2b65e9aa7218448fe0636e9.png8a86a644c725cc2249e2637ddf21bd4c.png

1、焊接2排针针头到5V和接地,并连接到树莓派Zero W。焊接电路图链接请打击原文查看。
2、小铝板上贴上双面胶。
3、将小铝板贴在树莓派 Zero W的 CPU上。
4、用带状电缆将摄像头连接到树莓派。
5、将大块铝板放入3D打印的背板上,并将其放置到树莓派 W的上面。将板子用四个2.5mm的螺丝拧到背板上。

组装完成

675d9013a849f4f4f9738db88bcb0378.png94c6936c0608eadbcf9599618afcf9eb.pngf02055ac4dc2e16f588478d6a16f1636.png2249f1818eca2fb2e691d9662f6dad9b.png8988973bdda9fca76202af4d69f76abe.png

1、这一步就可以完成摄像头的组装。将带有摄像头的前板安装到外壳上,并用四个 3mm的螺丝将其拧紧。
2、使用电缆将电压调节器连接到树莓派 Zero W 上。
3、小心地将带状电缆和电源线折叠在外壳内并关闭摄像头。注意不要夹住任何电缆。
4、使用四个3mm的螺丝拧到外壳上。

完成啦,我想说这个外壳真心很不错!

本项目文件库地址:

http://maker.quwj.com/project/87

via instructables.com/id/Day-and-Night-View-Live-Stream-Cam

文中链接可点击文末阅读原文查看

fb60f4f713a79687da535f7c832ba93b.png

更多精彩内容

树莓派制造的绘图机器人

用树莓派制造一台“口袋电视”

用树莓派制造一个像样的 NAS

Raspberry Pi (树莓派) 3代A+版发布

来做一面奇幻风的“无限延伸”镜子吧

Petoi Nybble:树莓派猫奴玩家的福音

树莓派UPS:用充电宝改造的不间断电源

4600821af8bd5b29cf67280abb08756a.png

### 设置和使用USB摄像头进行频捕获或直播 #### 安装必要的软件包 为了使USB摄像头能够在树莓派上正常工作并用于频捕获或直播,需要安装一些特定的软件包。对于基于Linux系统的树莓派来说,推荐使用`CAP_V4L2`作为频捕捉接口,因为其提供了较好的稳定性和可靠性[^5]。 可以通过命令行来更新系统以及安装所需的库文件: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install v4l-utils mjpg-streamer motion ffmpeg -y ``` 上述指令不仅会确保操作系统是最新的版本,还会下载并配置好处理频流所需的各种工具,包括`v4l-utils`(Video4Linux utilities), `mjpg-streamer`, `motion`, 和 `ffmpeg`. #### 使用Motion进行基本监控设置 一旦完成了软件环境搭建之后,就可以利用`motion`来进行简单的运动检测录制功能设置了。编辑默认配置文件以适应个人需求: ```bash sudo nano /etc/motion/motion.conf ``` 在这个配置文件里调整如下参数: - **width**: 设定帧宽度,默认800像素; - **height**: 设定帧高度,默认600像素; - **framerate**: 控制每秒抓取多少张图片,默认4幅/s; - **target_dir**: 存储录影的位置路径; 保存更改后重启服务生效: ```bash sudo systemctl restart motion.service ``` 此时应该可以在浏览器输入IP地址加上端口号查看实时画面了(通常是http://<Raspberry Pi IP>:8081)。如果遇到权限问题,则可能还需要修改防火墙规则允许外部连接到此端口。 #### 利用MJPG-Streamer创建HTTP服务器 另一种更灵活的方式是采用`mjpg-streamer`建立一个简易Web Server供远程观看。启动之前要确认已加载相应的内核模块: ```bash sudo modprobe v4l2_common sudo modprobe uvcvideo ``` 接着运行下面这条命令开启串流服务: ```bash export LD_LIBRARY_PATH=/usr/lib/mjpg-streamer/ /usr/bin/mjpg_streamer -i "/usr/lib/mjpg-streamer/input_uvc.so -d /dev/video0 -r 1920x1080 -f 30" -o "/usr/lib/mjpg-streamer/output_http.so -w ./www" ``` 这里指定了设备节点为`/dev/video0`,分辨率设为全高清模式,并保持较高的刷新率以便流畅播放。最后部分则是输出插件的选择及其选项——此处选择了HTTP协议并将网页资源放置于当前目录下的`./www`子文件夹中。 #### Python OpenCV编程控制多台摄像机 如果有多个USB摄像头接入同一台树莓派时,它们会被分配不同的编号ID (如`/dev/video0`, `/dev/video1`) 。这些ID可能会随着每次开机而变化,因此建议编写一段Python脚本来动态识别各个相机的身份。以下是简单示例代码片段: ```python import cv2 def list_ports(): """ Tests the ports and returns a tuple of viable ones. """ non_working_ports = [] dev_port = 0 working_ports = [] available_ports = [] while len(non_working_ports) < 6: # If there are more than 5 non-working ports stop the testing. camera = cv2.VideoCapture(dev_port) if not camera.isOpened(): non_working_ports.append(dev_port) print("Port %s is not working." %dev_port) else: is_reading, img = camera.read() w = camera.get(3) h = camera.get(4) if is_reading: print("Port %s is working and reads images (%s x %s)" %(dev_port,h,w)) working_ports.append(dev_port) else : print("Port %s for camera ( %s x %s ) is present but does not read." %(dev_port,h,w)) available_ports.append(dev_port) dev_port +=1 return available_ports,working_ports,non_working_ports available_ports,working_ports,non_working_ports=list_ports() for port in working_ports: cap=cv2.VideoCapture(port) ret, frame=cap.read() if ret==True: cv2.imshow('frame',frame) k=cv2.waitKey(1)&0xFF if k==ord('q'): break cap.release() cv2.destroyAllWindows() ``` 这段程序能够帮助确定哪些端口上有可用的摄像头,并且可以显示来自每个有效摄像头的画面预览窗口直到按下键盘上的'q'键退出循环为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值