目錄
效果演示
第三方庫的安裝
換源
魔鏡界面繪制
服務器部署
人臉識別
流程圖
原始碼地址
效果演示
天氣新聞日期熱點等更新【錄屏】

第三方庫的安裝
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 snowboydecoder
from mirrorUI import Ui_MainWindow
from face import FaceFunction
from speech import SpeechFunction
import 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 contrib
sudo vim /etc/apt/sources.list.d/raspi.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
sudo apt-get update
sudo apt-get upgrade
sudo 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 -y
pip3 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
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
// snowboydecoder將第 5 行代碼 from * import snowboydetect 改為 import snowboydetect 即可直接運行
// 具體用法可參考鏈接:https://www.jianshu.com/p/a1c06020f5fd
安裝Gst(playsound用到)
sudo apt-get install gir1.2-gst-plugins-base-1.0 -y
安裝nginx
1、安裝nginx web服務器
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/default
listen 8080;## 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/)
下載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)
2、使用下載工具IDM,100M寬帶下載速度能達到12M/s
[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
pyuic5 -o mirrorUI.py mirrorUI.ui
5、mirrorUI.py添加啟動陳述句
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服務器,
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2
sudo /etc/init.d/apache2 restart
要檢查是否安裝了Apache,請將瀏覽器指向您服務器的IP地址(例如http://127.0.0.1),
可以運行以下[命令](https://www.linuxcool.com/)來顯示你的服務器的IP地址:
ifconfig | grep inet | awk '{ print $2 }'
第2步:安裝MySQL(Ubuntu)
MySQL是一個強大的資料庫管理系統,用于組織和檢索資料,
sudo apt-get install mysql-server mysql-client
查看埠:
sudo netstat -tap | grep mysql
用命令激活它:
sudo mysql_install_db
通過運行MySQL設定腳本完成:
sudo /usr/bin/mysql_secure_installation
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
第2步:安裝MySQL(Raspbian)
sudo apt-get install mariadb-server mariadb-client
用命令激活它:
sudo mysql_install_db
啟動服務
/usr/bin/mysqld_safe --datadir='/var/lib/mysql'
sudo service mysql start
通過運行MySQL設定腳本完成:
sudo /usr/bin/mysql_secure_installation
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
第3步:安裝PHP
PHP是一種開源的Web腳本語言,廣泛用于構建動態網頁,
sudo apt install php7.2-mysql php7.2-curl php7.2-json php7.2-cgi php7.2 libapache2-mod-php7.2
測驗PHP:
查看版本:
php --version
輸出phpinfo:
sudo vim /var/www/html/phpinfo.php
寫入如下內容:
<?php echo phpinfo();?>
瀏覽器輸入:
http://127.0.0.1/phpinfo.php
第4步:重新啟動apache以使所有更改生效
sudo service apache2 restart
第5步:安裝phpmyadmin
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**檔案夾下進行管理
sudo cp -Rf /usr/share/phpmyadmin /var/www/html/
打開瀏覽器并輸入http://127.0.0.1/phpmyadmin
輸入用戶名、密碼后登陸
網站部署
放置頁面
將**pictureViewer**檔案夾整個放到/var/www/html/路徑下:
復制:sudo cp -r pictureViewer /var/www/html
或
移動:sudo mv pictureViewer /var/www/html
修改權限:
sudo chmod 777 /var/www/html/pictureViewer/*
將檔案夾名**pictureViewer**修改為**MagicMirror**:
sudo mv /var/www/html/pictureViewer /var/www/html/MagicMirror
瀏覽器輸入http://127.0.0.1/MagicMirror即可
測驗是否能上傳圖片成功
打開并修改檔案夾下的testUpload.py:
vim /var/www/html/MagicMirror/testUpload.py
url = 'http://127.0.0.1/MagicMirror/upload_file.php'
運行Python:
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
安裝命令列客戶端:
sudo apt-get install mosquitto-clients -y
默認情況下,Ubuntu將在安裝后啟動Mosquitto服務,
在新終端中,使用`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相關的行程:
ps aux | grep -i apt
如果存在與apt相關的正在運行的行程,kill掉行程:
sudo kill -9 <process id>
繼續上一次的配置:
sudo dpkg --configure -a
或者直接簡單粗暴的:
sudo killall apt apt-get
之后可以新的apt操作
人臉識別
流程圖
初始化 --> 開啟子執行緒 --> OpenCV人臉識別 --> 情感檢測 --> 照片上傳服務器 --> OpenCV人臉識別
情感檢測API
百度AI平臺:https://console.bce.baidu.com/
流程圖
安卓app

魔鏡

系統連接圖
![]()

原始碼地址
點我下載
https://download.csdn.net/download/weixin_41937552/29782241
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/306403.html
標籤:其他
