标题都不知道怎么写了,哈哈~~~~这个项目是同事小孩想做的,需求是:
1. 用户在A点按下A点的按钮后进行拍照
2. 用户到达B点后,在按下B点的按钮把在A点拍照的照片打印出来
这项目不难,实现的方法有N多种,呵呵~~自己也好久没碰我吃灰的pipi了,那就帮忙玩玩吧!!
我的方案:
PlanA:打印机为网络打印机
这个方案就是A点负责拍照及连接网络打印机打印;B点只需发送打印指令给A点执行网络打印任务就行;
PlanB:打印机为普通打印机
这个方案B点需要连接打印机,同时B点需要获取到A点拍下的照片,然后打印出来
A点实现步骤:
1、安装摄像头:
我买的是CSI接口的摄像头,接好排线后,打开终端,输入:sudo raspi-config
打开树莓派的配置界面,选择“Interfaceing Options”,再选择"Camera",启用这一项开启摄像头,保存后退出,执行reboot
重启树莓派。
重启后再打开终端,输入:raspistill -o image.jpg -t 3000
,测试一下摄像头是否正常,拍完后照片会默认保存到:/home/pi目录下,进去看看是否正常,如果OK,跳下一步;
2、连接按钮
手上没有按钮,我这里用杜邦线连接,拿着树莓派,网线接口朝下,连接左竖排pin口的4针和5针(4针为GPIO04,5针为GND)完成后就开始写代码了;
3、python代码如下:
#导入树莓派gpio接口模块
from gpiozero import Button
#导入摄像头模块
from picamera import PiCamera
#定义按钮
btn = Button(4)
#初始化摄像头
camera = PiCamera()
#开始循环
while True:
#当短接4/5针的时候,拍照并保存
if btn.is_active:
camera.capture('/var/www/html/image.jpg')
4、安装nginx服务,目的是提供预览和下载(现在没决定B点的方案,所以先留着备用)
sudo apt-get update
sudo apt-get install -y nginx
ifconfig
上面的camera.capture('/var/www/html/image.jpg')
代码,就是将照片保存到nginx的默认目录下。最后一步,就是修改/var/www/html
的目录权限,否则照片是无法保存的,再终端执行:chomd 777 /var/www/html
,给目录加上读写权限。
到此,如果打印机安装再B点的话,那么A点要做的就基本完成了。
用树莓派的Thonny运行上面的python代码,然后短接杜邦线。最后再浏览器访问:http://树莓派IP/image.jpg,就可以看到拍到的照片了!!!
B点待续~~~~~~