树莓派实现人脸识别迎宾功能

实现逻辑

利用opencv的检测人脸功能,检测到人脸后播放mp3

实现步骤

1.安装opencv调用摄像头进行人脸识别

1
2
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

2.判断是否存在人脸,然后使用pygame来播放mp3

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import cv2
import time
from pygame import mixer
mixer.init()
mixer.music.load('/home/pi/xx.mp3')

cap = cv2.VideoCapture(0)
cap.set(3,640)
cap.set(4,480)
face_cascade = cv2.CascadeClassifier(r'haarcascade_frontalface_default.xml')

while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
#gray = frame
faces = face_cascade.detectMultiScale(gray, scaleFactor = 1.15, minNeighbors = 5, minSize = (5, 5))
if len(faces):
print('y1es')
mixer.music.play()
time.sleep(5)
mixer.music.stop()
else:
print('n1o')
for(x, y, w, h) in faces:
cv2.rectangle(gray, (x, y), (x + w, y + h), (0,0, 255), 2)
cv2.imshow('Face Recognition', gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
#time.sleep( 3 )
cap.release()
cv2.destroyAllWindows()

参考资料 https://www.jianshu.com/p/56929416b4a1

python依赖的pip安装器修改国内源

更换pip源到国内镜像
http://blog.csdn.net/chenghuikai/article/details/55258957

pip国内的一些镜像

1
2
3
4
5
  阿里云 http://mirrors.aliyun.com/pypi/simple/ 
  中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
  豆瓣(douban) http://pypi.douban.com/simple/
  清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
  中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

修改源方法:
(1)临时使用:
可以在使用pip的时候,加上参数-i和镜像地址(如
https://pypi.tuna.tsinghua.edu.cn/simple),
例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas,这样就会从清华镜像安装pandas库。

(2)永久修改,一劳永逸:
(a)Linux下,修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件。文件夹要加“.”,表示是隐藏文件夹)
创建办法如下:

1
2
3
mkdir ~/.pip
touch ~/.pip/pip.conf
vim ~/.pip/pip.conf

文件内容如下:

1
2
3
4
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

(b) windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,然后新建文件pip.ini,即 %HOMEPATH%\pip\pip.ini,在pip.ini文件中输入以下内容(以豆瓣镜像为例):

1
2
3
4
[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host = pypi.douban.com

原文:https://blog.csdn.net/sinat_21591675/article/details/82770360

VIM小记

基本指令

按i进入输入模式,可以像文本编辑器一样操作

按esc键退出模式,然后输入冒号:可以输入指令,比如:wq是保存退出,:q是直接退出不保存

开启鼠标粘贴指令:set mouse=c

树莓派初探

安装系统

步骤简介:
树莓派可以通过TF卡启动系统,我们需要找到可用的系统镜像通过工具安装到TF卡上,再通电启动树莓派。

1.下载系统镜像 https://www.raspberrypi.org/downloads/

这里我们选择最常用的Raspbian下载一个带图形界面的系统镜像。

2.写入TF卡,下载解压获得img镜像,使用工具win32diskimager软件,将img写入到TF卡的盘符

3.启用SSH以便通过网络远程调试,TF卡盘符会变成一个boot分区,打开并新建一个文件夹,改名为ssh即可。

4.修改显示参数,打开boot分区下的config.txt,找到对应项目,去除前面的#注释,使参数生效。

hdmi_safe=1
安全启动HDMI

config_hdmi_boost=4
开启热插拔

hdmi_group=1
CEA电视显示器

hdmi_group=2
DMT电脑显示器

hdmi_ignore_edid=0xa5000080
忽略自动探测的分辨率

hdmi_mode=16
1024x768 60Hz

hdmi_mode=82
1080p 60Hz

5.设置wifi连接(有网线连接可跳过此处)

在boot分区下新建wpa_supplicant.conf文件

修改其中的ssid 为wifi 名称

psk 为wifi密码

6.将TF卡安装到树莓派上,通电等待启动,在路由器查看ip地址,或给树莓派接屏幕查看ip地址,使用putty进行SSH登陆。

参考资料

https://www.jianshu.com/p/467335f07e05

NodeMCU接入blinker实现app控制

操作流程

物联网设备NodeMCU搭载了ESP8266,通过接入blinker提供的sdk,我们可以用app来控制它

1.下载安装arduino最新版

2.安装ESP8266的驱动库文件名8266_package_2.5.2.exe

3.安装blinker提供的arduino库文件blinker-library-master

4.打开blinker的app添加设备获取id

5.打开arduino示例代码,修改设备id和wifi信号密码,上传代码到nodemcu

6.nodemcu正常启动后,在app里点击开灯,nodemcu成功点亮主板上的led。

参考资料 https://blinker.app/doc

自动推送用服务器结构梳理

服务器构成

  • 文件系统-本地存储,可用对象存储代替,可用案例阿里云oss,腾讯云cos。
  • 后端系统-管理系统,处理前端的用户请求,用户登录,文件上传,可用案例BMOB。
  • 数据库-信息系统,存储用户信息,用户拥有的文件关系信息,终端绑定的用户信息,可用案例BMOB。
  • 前端系统-用户界面,接受用户登录,用户上传。管理界面,创建用户,查看用户。

操作逻辑

  • 用户登录

用户通过前端登录,前端系统向后端验证用户资料,后端系统请求数据库资料并进行验证。

  • 用户上传

已经登录的用户,从前端系统上传文件到后端系统,后端系统接收后存储到文件系统 并 更新数据库的关系信息。

  • 终端更新

终端启动后,查询本地文件版本号,访问后端系统查询数据库文件版本号,有更新,则访问数据库文件列表,并下载文件更新,验证更新完成后,更新本地文件版本号。

  • 管理登陆

创建用户,查询用户,验证登陆成功后,可通过后端系统修改数据库用户表。

写一本书gitbook配置

开始写书

  • 可视化工具可以直接写书,后续使用node.js驱动的gitbook本体来进行html渲染,然后上传到网站ftp或者git。
    gitbook可视化工具 下载地址

配置gitbook

安装 GitBook

输入下面的命令来安装 GitBook。

npm install -g gitbook-cli