基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互、温湿度/新闻热点/日期显示等
目錄
功能清單
界面演示
系統(tǒng)框圖
設(shè)計(jì)方案
整體結(jié)構(gòu)
網(wǎng)站設(shè)計(jì)
?app設(shè)計(jì)
?魔鏡界面設(shè)計(jì)
?溫濕度傳感器
?光電傳感器
相關(guān)教程
第三方庫(kù)的安裝
安裝庫(kù)
換源
安裝mqtt
安裝Qt5
git clone提速
安裝Adafruit_DHT
opencv安裝
安裝字體
安裝portaudio
安裝snowboy
安裝Gst(playsound用到)
安裝nginx
其他庫(kù)
框圖與界面繪制
服務(wù)器部署
web環(huán)境
第1步:安裝Apache
第2步:安裝MySQL(Ubuntu)
第2步:安裝MySQL(Raspbian)
第3步:安裝PHP
第4步:重新啟動(dòng)apache以使所有更改生效
第5步:安裝phpmyadmin
網(wǎng)站部署
放置頁(yè)面
測(cè)試是否能上傳圖片成功
MQTT環(huán)境
Mosquitto安裝
啟動(dòng)服務(wù)端
異常情況
人臉識(shí)別
流程圖
情感檢測(cè)API
Bilibili視頻教程:使用樹(shù)莓派4 DIY智能魔鏡_嗶哩嗶哩_bilibili
Github源碼:基于樹(shù)莓派的智能魔鏡
功能清單
- ?硬件組裝
- ?系統(tǒng)喚醒與亮屏
- ?獲取傳感器信息并顯示
- ?獲取天氣、新聞等信息并顯示
- ?UI界面繪制魔鏡界面繪制
- ?安卓APP
- ?獲取備忘錄信息并顯示
- ?推送使用情況到APP(能推,但不知道推啥)
- ?內(nèi)容整合
- ?人臉識(shí)別
- ?情感監(jiān)測(cè)
- ?語(yǔ)音對(duì)話
界面演示
系統(tǒng)框圖
設(shè)計(jì)方案
整體結(jié)構(gòu)
網(wǎng)站設(shè)計(jì)
?app設(shè)計(jì)
?魔鏡界面設(shè)計(jì)
?溫濕度傳感器
?光電傳感器
?
相關(guān)教程
第三方庫(kù)的安裝
安裝庫(kù)
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 -ygit 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 installopencv安裝
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安裝字體
復(fù)制到/usr/share/fonts/安裝portaudio
下載portaudio庫(kù)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 # 測(cè)試 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 即可直接運(yùn)行 // 具體用法可參考鏈接:https://www.jianshu.com/p/a1c06020f5fd安裝Gst(playsound用到)
sudo apt-get install gir1.2-gst-plugins-base-1.0 -y安裝nginx
1、安裝nginx web服務(wù)器 sudo apt-get install nginx -y 2、啟動(dòng)nginx sudo /etc/init.d/nginx start nginx的www根目錄默認(rèn)在 /usr/share/nginx/html中 3、修改nginx的配置文件 sudo vim /etc/nginx/sites-available/defaultlisten?? 8080;## listen for ipv4; this line is default and implied //監(jiān)聽(tīng)的端口號(hào),如果與其它軟件沖突,可以在這里更改 root /usr/share/nginx/www; //nginx 默認(rèn)路徑html所在路徑 index index.html index.htm index.php; //nginx默認(rèn)尋找的網(wǎng)頁(yè)類型,可以增加一個(gè)index.php其他庫(kù)
pip3 install bs4 requests playsound baidu-aip pyaudio lxml框圖與界面繪制
1、安裝Qt
??Index of /archive/qt/5.9/5.9.3
下載exe:qt-opensource-windows-x86-5.9.3.exe
2、使用下載工具IDM,100M寬帶下載速度能達(dá)到12M/s
3、下載過(guò)程中,先去注冊(cè)一個(gè)Qt賬號(hào)
Qt Account Login
4、.ui轉(zhuǎn).py
pyuic5 -o mirrorUI.py mirrorUI.ui5、mirrorUI.py添加啟動(dòng)語(yǔ)句
import sys if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv) # 定義Qt應(yīng)用MainWindow = QtWidgets.QMainWindow() # 窗口實(shí)例ui = Ui_MainWindow() # 界面UI實(shí)例ui.setupUi(MainWindow) # 繪制界面MainWindow.show() # 顯示窗口sys.exit(app.exec_()) # 應(yīng)用關(guān)閉6、界面label對(duì)應(yīng)表
label_temperature 溫度 label_humidity 濕度 label_weather 天氣 label_weathertips 天氣助手 label_weathericon 天氣圖標(biāo) label_time 時(shí)間 label_date 日期 label_week 星期 label_historyhead 歷史上的今天 label_historymsg 歷史上的今天 的內(nèi)容 label_communicate 文字交互區(qū) label_todohead 今日事項(xiàng) label_todomsg 今日事項(xiàng) 的內(nèi)容 label_headlineshead 今天頭條 label_headlinesmsg 今日頭條 的內(nèi)容 label_gif 洛天依gif圖7、信號(hào)與槽函數(shù)
# 繼承QObject class MQTT(QObject): # 創(chuàng)建信號(hào)量,傳字符串 mqttSignal = pyqtSignal(object) # 連接信號(hào)與槽函數(shù) mqtt.mqttSignal.connect(ui.updateCommunicate) # 發(fā)送信號(hào)量 self.mqttSignal.emit("qwe")8、mirrorUI.ui路徑:
mirrorUI.ui
服務(wù)器部署
pictureViewer.zip下載鏈接:pictureViewer圖片上傳并顯示網(wǎng)頁(yè)-Web開(kāi)發(fā)文檔類資源-CSDN下載
web環(huán)境
搭建Linux+Apache+MySQL+PHP環(huán)境。
第1步:安裝Apache
Apache是一個(gè)免費(fèi)開(kāi)源軟件,可運(yùn)行世界上50%的Web服務(wù)器。
sudo apt-get update sudo apt-get upgrade sudo apt-get install apache2 sudo /etc/init.d/apache2 restart要檢查是否安裝了Apache,請(qǐng)將瀏覽器指向您服務(wù)器的IP地址(例如http://127.0.0.1)。
可以運(yùn)行以下命令來(lái)顯示你的服務(wù)器的IP地址:
ifconfig | grep inet | awk '{ print $2 }'第2步:安裝MySQL(Ubuntu)
MySQL是一個(gè)強(qiáng)大的數(shù)據(jù)庫(kù)管理系統(tǒng),用于組織和檢索數(shù)據(jù)。
sudo apt-get install mysql-server mysql-client查看端口:
sudo netstat -tap | grep mysql用命令激活它:
sudo mysql_install_db通過(guò)運(yùn)行MySQL設(shè)置腳本完成:
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啟動(dòng)服務(wù)
/usr/bin/mysqld_safe --datadir='/var/lib/mysql' sudo service mysql start通過(guò)運(yùn)行MySQL設(shè)置腳本完成:
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是一種開(kāi)源的Web腳本語(yǔ)言,廣泛用于構(gòu)建動(dòng)態(tài)網(wǎng)頁(yè)。
sudo apt install php7.2-mysql php7.2-curl php7.2-json php7.2-cgi php7.2 libapache2-mod-php7.2測(cè)試PHP:
查看版本: php --version輸出phpinfo: sudo vim /var/www/html/phpinfo.php 寫入如下內(nèi)容: <?php echo phpinfo();?> 瀏覽器輸入: http://127.0.0.1/phpinfo.php第4步:重新啟動(dòng)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安裝過(guò)程中的選項(xiàng):
- 選擇?Apache2?并點(diǎn)擊確定
- 選擇?Yes來(lái)配置 phpMyAdmin 管理的數(shù)據(jù)庫(kù)
- 輸入剛設(shè)置的數(shù)據(jù)庫(kù)密碼
- 若報(bào)錯(cuò),可以選擇ignore
安裝完成后需要將phpmyadmin的文件夾復(fù)制到www/html文件夾下進(jìn)行管理
sudo cp -Rf /usr/share/phpmyadmin /var/www/html/打開(kāi)瀏覽器并輸入http://127.0.0.1/phpmyadmin
輸入用戶名、密碼后登陸
網(wǎng)站部署
放置頁(yè)面
將pictureViewer文件夾整個(gè)放到/var/www/html/路徑下:
復(fù)制:sudo cp -r pictureViewer /var/www/html 或 移動(dòng):sudo mv pictureViewer /var/www/html修改權(quán)限:
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即可
測(cè)試是否能上傳圖片成功
打開(kāi)并修改文件夾下的testUpload.py:
vim /var/www/html/MagicMirror/testUpload.py url = 'http://127.0.0.1/MagicMirror/upload_file.php'運(yùn)行Python:
cd /var/www/html/MagicMirror/ python3 testUpload.py若提示缺少庫(kù),則先安裝:
pip3 install requests上傳成功后,刷新瀏覽器界面,會(huì)多一張圖片。
MQTT環(huán)境
Eclipse Mosquitto是一個(gè)開(kāi)源消息代理,實(shí)現(xiàn)了MQTT協(xié)議版本3.1和3.1.1。
Mosquitto安裝
添加存儲(chǔ)庫(kù)(Raspbian可跳過(guò)):
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默認(rèn)情況下,Ubuntu將在安裝后啟動(dòng)Mosquitto服務(wù)。
在新終端中,使用mosquitto_sub訂閱測(cè)試主題:
mosquitto_sub -h localhost -t test新開(kāi)一個(gè)其他終端并發(fā)布消息:
mosquitto_pub -h localhost -t test -m "hello world"啟動(dòng)服務(wù)端
#-c:指定特定配置文件啟動(dòng) #-d:后臺(tái)運(yùn)行 mosquitto -c /etc/mosquitto/mosquitto.conf -d異常情況
如果遇到Unable to acquire the dpkg frontend lock這個(gè)問(wèn)題
首先檢查是否在運(yùn)行apt,apt-get相關(guān)的進(jìn)程:
ps aux | grep -i apt如果存在與apt相關(guān)的正在運(yùn)行的進(jìn)程,kill掉進(jìn)程:
sudo kill -9 <process id>繼續(xù)上一次的配置:
sudo dpkg --configure -a或者直接簡(jiǎn)單粗暴的:
sudo killall apt apt-get之后可以新的apt操作
人臉識(shí)別
流程圖
情感檢測(cè)API
百度AI平臺(tái):百度智能云控制臺(tái)-管理中心
原創(chuàng)內(nèi)容,轉(zhuǎn)載請(qǐng)注明來(lái)源!
總結(jié)
以上是生活随笔為你收集整理的基于树莓派的智能魔镜,支持人脸识别、情感监测、热词唤醒、语音交互,以及与手机APP交互、温湿度/新闻热点/日期显示等的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java代理通俗简单解析
- 下一篇: 深度学习之Batch Normaliza