常用Demo合集|基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互的实现
目录
效果演示
第三方库的安装
换源
魔镜界面绘制
服务器部署
人脸识别
流程图
源码地址
效果演示 天气新闻日期热点等更新【录屏】
第三方库的安装
import paho.mqtt.client as pahomqtt
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication
from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from bs4 import BeautifulSoup
import Adafruit_DHT
from aip import AipSpeech
from aip import AipFace
from playsound import playsound
import pyaudio
import requests
import cv2
import snowboydecoderfrom mirrorUI import Ui_MainWindow
from face import FaceFunction
from speech import SpeechFunctionimport sys, os
import time
import string
import random
import hashlib
import base64
import signal
import RPi.GPIO as GPIO
import json
import wave
import urllib
import urllib3
import re
import threading
换源
sudo nano /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contribsudo vim /etc/apt/sources.list.d/raspi.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main uisudo apt-get update
sudo apt-get upgradesudo mkdir ~/.pip
sudo vim ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
安装mqtt
pip3 -V
pip3 install paho-mqtt
安装Qt5
sudo apt-get install python3-pyqt5 -y
git clone提速
git config --global http.postBuffer 524288000
安装Adafruit_DHT
sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python3 setup.py install
opencv安装
sudo apt-get install libhdf5-dev libhdf5-serial-dev -y
sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 -y
sudo apt-get install libatlas-base-dev -y
sudo apt-get install libjasper-dev -ypip3 install opencv_python
安装字体
复制到/usr/share/fonts/
安装portaudio
下载portaudio库http://portaudio.com/download.html
sudo apt install libasound-dev # 一定要有这一句
sudo ./configure
sudo make
sudo make install
vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
sudo ldconfig
安装snowboy
sudo apt-get install pulseaudio -y// snowboydecoder将第 5 行代码 from * import snowboydetect 改为 import snowboydetect 即可直接运行
sudo apt-get install sox -y
sox -d -d# 测试
sudo apt-get install python3-pyaudio -y
sudo apt-get install swig -y
sudo apt-get install libatlas-base-dev -y
git clone https://github.com/Kitt-AI/snowboy.git
cd snowboy/swig/Python3 && make
// 具体用法可参考链接:https://www.jianshu.com/p/a1c06020f5fd
安装Gst(playsound用到)
安装nginx
sudo apt-get install gir1.2-gst-plugins-base-1.0 -y
1、安装nginxweb服务器
sudo apt-get install nginx -y
2、启动nginx
sudo /etc/init.d/nginx start
nginx的www根目录默认在 /usr/share/nginx/html中
3、修改nginx的配置文件
sudo vim /etc/nginx/sites-available/defaultlisten8080; ## listen for ipv4; this line is default and implied
//监听的端口号,如果与其它软件冲突,可以在这里更改
root /usr/share/nginx/www;
//nginx 默认路径html所在路径
index index.html index.htm index.php;
//nginx默认寻找的网页类型,可以增加一个index.php
其他库
pip3 install bs4 requests playsound baidu-aip pyaudio lxml
魔镜界面绘制
1、安装Qt
?[http://download.qt.io/archive/qt/5.9/5.9.3/](http://download.qt.io/archive/qt/5.9/5.9.3/)2、使用下载工具IDM,100M宽带下载速度能达到12M/s
下载exe:[qt-opensource-windows-x86-5.9.3.exe](http://download.qt.io/archive/qt/5.9/5.9.3/qt-opensource-windows-x86-5.9.3.exe)
[https://www.lanzous.com/i5sglrc](https://www.lanzous.com/i5sglrc)3、下载过程中,先去注册一个Qt账号
[https://login.qt.io/register](https://login.qt.io/register)4、.ui转.py
5、mirrorUI.py添加启动语句
pyuic5 -o mirrorUI.py mirrorUI.ui
import sys
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)# 定义Qt应用
MainWindow = QtWidgets.QMainWindow()# 窗口实例
ui = Ui_MainWindow()# 界面UI实例
ui.setupUi(MainWindow)# 绘制界面
MainWindow.show()# 显示窗口
sys.exit(app.exec_())# 应用关闭
6、界面label对应表
label_temperature温度
label_humidity湿度
label_weather天气
label_weathertips天气助手
label_weathericon天气图标
label_time时间
label_date日期
label_week星期
label_historyhead历史上的今天
label_historymsg历史上的今天 的内容
label_communicate文字交互区
label_todohead今日事项
label_todomsg今日事项 的内容
label_headlineshead今天头条
label_headlinesmsg今日头条 的内容
label_gif洛天依gif图
7、信号与槽函数
# 继承QObject
class MQTT(QObject):
# 创建信号量,传字符串
mqttSignal = pyqtSignal(object)
# 连接信号与槽函数
mqtt.mqttSignal.connect(ui.updateCommunicate)
# 发送信号量
self.mqttSignal.emit("qwe")
8、github源码链接:
[https://github.com/1061700625/RaspberryPi-MagicMirror](https://github.com/1061700625/RaspberryPi-MagicMirror)9、mirrorUI.ui路径:
[mirrorUI.ui](https://github.com/1061700625/RaspberryPi-MagicMirror/blob/master/PythonProject/mirrorUI.ui)服务器部署 web环境
搭建Linux+Apache+MySQL+PHP环境。
第1步:安装Apache
Apache是一个免费开源软件,可运行世界上50%的Web服务器。
要检查是否安装了Apache,请将浏览器指向您服务器的IP地址(例如http://127.0.0.1)。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2
sudo /etc/init.d/apache2 restart
可以运行以下[命令](https://www.linuxcool.com/)来显示你的服务器的IP地址:
第2步:安装MySQL(Ubuntu)
ifconfig | grep inet | awk '{ print $2 }'
MySQL是一个强大的数据库管理系统,用于组织和检索数据。
查看端口:
sudo apt-get install mysql-server mysql-client
用命令激活它:
sudo netstat -tap | grep mysql
通过运行MySQL设置脚本完成:
sudo mysql_install_db
sudo /usr/bin/mysql_secure_installation
第2步:安装MySQL(Raspbian)
Would you like to setup VALIDATE PASSWORD plugin? => y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 => 0
New password: => xxxxxxxx
Re-enter new password:=> xxxxxxxx
Remove anonymous users?: => y
Disallow root login remotely?: => y
Remove test database and access to it?: => y
Reload privilege tables now?: => y
用命令激活它:
sudo apt-get install mariadb-server mariadb-client
启动服务
sudo mysql_install_db
通过运行MySQL设置脚本完成:
/usr/bin/mysqld_safe --datadir='/var/lib/mysql'
sudo service mysql start
sudo /usr/bin/mysql_secure_installation
第3步:安装PHP
Enter current password for root (enter for none):
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
PHP是一种开源的Web脚本语言,广泛用于构建动态网页。
测试PHP:
sudo apt install php7.2-mysql php7.2-curl php7.2-json php7.2-cgi php7.2 libapache2-mod-php7.2
输出phpinfo:
查看版本:
php --version
sudo vim /var/www/html/phpinfo.php
写入如下内容:
浏览器输入:
第4步:重新启动apache以使所有更改生效
http://127.0.0.1/phpinfo.php
第5步:安装phpmyadmin
sudo service apache2 restart
sudo apt install php-mbstring php7.2-mbstring php-gettext -y
sudo systemctl restart apache2.service
sudo apt install phpmyadmin -y
安装过程中的选项:
- 选择 **Apache2** 并点击确定
- 选择 **Yes**来配置 phpMyAdmin 管理的数据库
- 输入刚设置的数据库**密码**
- 若报错,可以选择**ignore**
安装完成后需要将**phpmyadmin**的文件夹复制到**www/html**文件夹下进行管理
打开浏览器并输入http://127.0.0.1/phpmyadmin
sudo cp -Rf /usr/share/phpmyadmin /var/www/html/
输入用户名、密码后登陆
网站部署
放置页面
将**pictureViewer**文件夹整个放到/var/www/html/路径下:
复制:sudo cp -r pictureViewer /var/www/html
或
移动:sudo mv pictureViewer /var/www/html
修改权限:
将文件夹名**pictureViewer**修改为**MagicMirror**:
sudo chmod 777 /var/www/html/pictureViewer/*
浏览器输入http://127.0.0.1/MagicMirror即可
sudo mv /var/www/html/pictureViewer /var/www/html/MagicMirror
测试是否能上传图片成功
打开并修改文件夹下的testUpload.py:
vim /var/www/html/MagicMirror/testUpload.py
运行Python:
url = 'http://127.0.0.1/MagicMirror/upload_file.php'
若提示缺少库,则先安装:
cd /var/www/html/MagicMirror/
python3 testUpload.py
上传成功后,刷新浏览器界面,会多一张图片。
pip3 install requests
MQTT环境
Eclipse Mosquitto是一个开源消息代理,实现了MQTT协议版本3.1和3.1.1。
Mosquitto安装
添加存储库(Raspbian可跳过):
更新软件包:
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
安装:
sudo apt-get update
安装命令行客户端:
sudo apt-get install mosquitto -y
默认情况下,Ubuntu将在安装后启动Mosquitto服务。
sudo apt-get install mosquitto-clients -y
在新终端中,使用`mosquitto_sub`订阅测试主题:
新开一个其他终端并发布消息:
mosquitto_sub -h localhost -t test
启动服务端
mosquitto_pub -h localhost -t test -m "hello world"
#-c:指定特定配置文件启动
#-d:后台运行
mosquitto -c /etc/mosquitto/mosquitto.conf -d
异常情况
如果遇到**Unable to acquire the dpkg frontend lock**这个问题
首先检查是否在运行apt,apt-get相关的进程:
如果存在与apt相关的正在运行的进程,kill掉进程:
ps aux | grep -i apt
继续上一次的配置:
sudo kill -9
或者直接简单粗暴的:
sudo dpkg --configure -a
之后可以新的apt操作
sudo killall apt apt-get
人脸识别 流程图
情感检测API
初始化 --> 开启子线程 --> OpenCV人脸识别 -->情感检测 --> 照片上传服务器 --> OpenCV人脸识别
百度AI平台:https://console.bce.baidu.com/
流程图 安卓app
![常用Demo合集|基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互的实现](https://img.it610.com/image/info8/50c7e78628564d5c98571fb0fe712f82.jpg)
文章图片
【常用Demo合集|基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互的实现】
魔镜
![常用Demo合集|基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互的实现](https://img.it610.com/image/info8/65a693d808334c208e1e89d7503ad4db.jpg)
文章图片
系统连接图
![常用Demo合集|基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互的实现](https://img.it610.com/image/info8/2a954d8ef3f64104a0754c3768c00335.jpg)
文章图片
![常用Demo合集|基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互的实现](https://img.it610.com/image/info8/7c9347c423a249c381ec378d2822708d.jpg)
文章图片
源码地址 点我下载
![常用Demo合集|基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互的实现](https://img.it610.com/image/info8/d57e2db051b54566a82908923915d36a.jpg)
文章图片
https://download.csdn.net/download/weixin_41937552/29782241
推荐阅读
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 数组常用方法一
- 常用git命令总结
- java|java 常用知识点链接
- c#常用网址记录
- 5|5 个 PPT 常用快捷键带你从此走向高效
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- iOS常用第三方库
- linux笔记|linux 常用命令汇总(面向面试)
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)