前言:
? 萌新小白一個(gè),有說錯(cuò)的地方還請(qǐng)前輩們幫忙指正。
硬件準(zhǔn)備:
1.樹莓派3b+(其他型號(hào)我沒有測(cè)試)
2.至少8GB的內(nèi)存卡。
3.麥克風(fēng)(usb麥克風(fēng)的就行)
4.小音響(沒有的話可以用耳機(jī))
5.原子鏡(某寶有賣)
6.NodeMCU板子(某寶十幾塊錢)
7.一塊屏幕(HDMI接口)
正式開始:
樹莓派部分:
樹莓派安裝完系統(tǒng)之后:
在內(nèi)存卡的boot分區(qū)下,新建 一個(gè)文件名為ssh (無后綴)的空白文件,用于pi開機(jī)自動(dòng)啟用ssh服務(wù)
同級(jí)目錄下再新建wpa_supplicant.conf 文件,配置WiFi信息:
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WiFi名字"
key_mgmt=WPA-PSK
psk="WiFi密碼"
}
換源 (我用清華源):
sudo nano /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi????
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
sudo nano /etc/apt/sources.list.d/raspi.list
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
更新一下軟件源
sudo apt-get update
sudo apt-get upgrade -y
安裝中文字體字庫
sudo apt-get -y install ttf-wqy-zenhei
選擇中文編碼,地區(qū) 以及? 擴(kuò)展SD卡內(nèi)存
sudo raspi-config
然后重啟
sudo reboot
安裝悟空語音助手:
按照官網(wǎng)的手動(dòng)安裝教程進(jìn)行安裝,參考鏈接 : 悟空語音github
下面畫刪除線內(nèi)容請(qǐng)忽視。。。
針對(duì)可能出現(xiàn)的問題解決辦法:
1.下列軟件安裝失敗問題
分開安裝:
sudo apt-get install python-pyaudio
sudo apt-get install python3-pyaudio
sudo apt-get install sox
sudo apt-get install pulseaudio
sudo apt-get install libsox-fmt-all
sudo apt-get install ffmpeg
2.安裝pyaudio找不到portaudio.h的問題
先執(zhí)行安裝:
sudo apt-get install portaudio19-dev python-all-dev python3-all-dev
再執(zhí)行:
pip3 install pyaudio
至此悟空語音安裝完畢。
安裝魔鏡MagicMirror:
安裝Node.js環(huán)境:
(下列命令是Ubuntu用的,樹莓派上可能有些命令不可用,不過不用管,都執(zhí)行一下,所以遇到不可用的忽略繼續(xù)執(zhí)行下一條的就行)。
sudo apt-get install -y python-software-properties software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
安裝nodejs:
sudo apt-get install nodejs
更新npm的包鏡像源,方便快速下載
sudo apt install nodejs-legacy
sudo apt install npm
sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list
全局安裝n管理器(用于管理nodejs版本)
sudo npm install n -g
安裝最新的nodejs(stable版本)
sudo n stable
sudo node -V
安裝依賴:
npm install
npm run dev
開始拉魔鏡的源碼:(回到你的用戶目錄下安裝magicmirror)
執(zhí)行一條命令搞定:(如果期間出什么問題 可能是網(wǎng)絡(luò)導(dǎo)致的 可以考慮用手機(jī)開熱點(diǎn)安裝,刪除重新執(zhí)行就好了)
bash -c "$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)"
啟用配置:
cd MagicMirror/config
cp config.js.sample config.js
啟動(dòng)魔鏡!
npm start
一些個(gè)性化配置:
樹莓派屏幕顯示設(shè)置
如果你想讓魔鏡為縱向模式,所以需要將屏幕順時(shí)針旋轉(zhuǎn)90度。/boot/config.txt文件
文件里最后邊加以下代碼:
1.屏幕旋轉(zhuǎn)90°
display_rotate=1
2.允許HDMI支持熱插拔
hdmi_force_hotplug=1
通用無觸摸7寸1024*600分辨率HDMI屏幕配置
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
禁用屏保:
修改lightdm.conf文件
sudo nano /etc/lightdm/lightdm.conf
找到
#xserver-command=X
改成
xserver-command=X -s 0 dpms
回到魔鏡目錄npm start再啟動(dòng),如果不出意外,你將會(huì)看到魔鏡的界面啦。具體修改為中文天氣,日歷新聞等等模塊自己摸索。
這是我配置好的界面:

至此樹莓派部分搞定,我們可以通過悟空語音助手對(duì)話和顯示魔鏡界面了。
如果還想安裝homeassistant家庭助手,連接一系列硬件,通過樹莓派語音控制的話,下面繼續(xù)。
這里我把homeassistant裝到云服務(wù)器上了,為了減輕下樹莓派負(fù)擔(dān)吧,云服務(wù)器我用的是Ubuntu16.04,我們先來裝個(gè)圖形化桌面,用vnc連接上:
用root賬戶登錄。
先更新一下軟件源:
apt-get update
安裝vnc,安裝過程輸入y確認(rèn)繼續(xù):
apt-get install vnc4server
啟動(dòng)vnc:
vncserver
安裝x-windows的基礎(chǔ):
sudo apt-get install x-window-system-core
安裝登錄管理器:
sudo apt-get install gdm
安裝Ubuntu的桌面:
sudo apt-get install ubuntu-desktop
安裝gnome配套軟件:
sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
修改VNC配置文件:
vi ~/.vnc/xstartup
修改為:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
unset DBUS_SESSION_BUS_ADDRESS
gnome-panel &
gnmoe-settings-daemon &
metacity &
nautilus &
gnome-terminal &
殺掉原桌面進(jìn)程,輸入命令(其中的:1是桌面號(hào)):
vncserver -kill :1
輸入以下命令生成新的會(huì)話:
vncserver :1
然后登錄云服務(wù)器控制臺(tái) - > 安全組,開放5900和5901端口。
VNC客戶端輸入? 你的ip:1 即可連接圖形桌面了。
NodeMCU與Homeassistant通信,這里用的是mqtt協(xié)議,所以得在Ubuntu里還搭建一個(gè)mqtt服務(wù)器,選來選去我還是比較喜歡EMQ,安裝簡(jiǎn)單,坑也少,這里的環(huán)境是Ubuntu16.04,其他版本不保證能用。
下載
wget http://emqtt.com/static/brokers/emqttd-ubuntu16.04-v2.3.9_amd64.deb
安裝
sudo dpkg -i emqttd-ubuntu16.04-v2.3.9_amd64.deb
啟動(dòng)、查看EMQ服務(wù)的狀態(tài)
sudo service emqttd start
sudo service emqttd status
使用瀏覽器打開EMQ控制臺(tái),http://127.0.0.1:18083,輸入默認(rèn)用戶名:admin,默認(rèn)密碼public。
啟動(dòng)了EMQ之后就可以使用客戶端進(jìn)鏈接了,端口如下
記得同樣在云服務(wù)器安全組里邊開放這些端口!
1883 MQTT 協(xié)議端口(開放)
8883 MQTT/SSL 端口(可不開)
8083 MQTT/WebSocket 端口(可不開)
8080 HTTP API 端口(開放)
18083 Dashboard 管理控制臺(tái)端口(開放)
接下來需要在樹莓派上裝一個(gè)mqtt客戶端
sudo apt-get install mosquitto-clients
根據(jù)提示,按 y 確認(rèn)安裝即可。
發(fā)布主題測(cè)試:
mosquitto_pub -h 服務(wù)器ip -t 主題 -m 消息
為Ubuntu16.04安裝homeassistant
安裝python3.6(注意:這里新版hass可能要安裝Python3.6才支持!)
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
即使你本來電腦上安裝了其他版本python也沒關(guān)系,運(yùn)行上面3條指令就好
安裝python3.6-venv
sudo apt-get install python3.6-venv
創(chuàng)建并啟用虛擬環(huán)境
cd /opt
sudo mkdir hass
cd /hass
sudo python3.6 -m venv .
source bin/activate
我創(chuàng)建在/opt/hass下,你也可以換一個(gè)目錄
安裝一個(gè)python包
sudo python3.6 -m pip install wheel
安裝并啟動(dòng)homeassistant
sudo pip3 install homeassistant
hass --open-ui
配置homeassistant:
nano .homeassistant/configuration.yaml
添加:(注意冒號(hào)后加空格)
http:
? api_password: 密碼
api:
如果要退出虛擬環(huán)境,在Terminal輸入
deactivatei
為了方便為hass添加設(shè)備,不用通過代碼去配置hass而是使用一個(gè)圖形化的界面配置,這里添加一個(gè)HAChina官網(wǎng)的redpoint功能
github地址:redpoint
使用方法:
將redpoint.py放置在~/.homeassistant/custom_components/目錄下(沒有目錄的話手動(dòng)新建一個(gè))
并修改配置文件:
nano .homeassistant/configuration.yaml
加入:
redpoint:
為NodeMCU刷入ESP Easy固件
nodemcu插入電腦,需要下載一個(gè)驅(qū)動(dòng)。
下載固件下載鏈接,下載后解壓,雙擊打開FlashESP8266.exe,選擇對(duì)應(yīng)COM-Port(電腦設(shè)備管理那里查看),版本選擇normal 4096(沒有的話從bin/里拉出來)。點(diǎn)擊Flash
刷完后,把板子通電,然后搜索熱點(diǎn),你會(huì)看到有一個(gè)叫ESP_EASY_0的熱點(diǎn),連上,密碼是configesp,之后打開瀏覽器,地址欄輸入http://192.168.4.1 即可登陸到ESPEasy的管理界面。
然后輸入自己家里WiFi和密碼讓nodemcu連接你家的路由器。20s之后會(huì)顯示分配到的ip地址,如果沒有的話,到路由器管理員界面查看一下分配給Nodemcu的IP地址,即可通過瀏覽器訪問。
如圖:

點(diǎn)擊Config進(jìn)行簡(jiǎn)單設(shè)置:

接下來配置mqtt服務(wù)器,讓板子能連接到我們的mqtt服務(wù)器從而實(shí)現(xiàn)把傳感器獲取到的數(shù)據(jù)通過mqtt發(fā)布主題的方式傳到mqtt服務(wù)器。點(diǎn)擊Controllers 如圖:

點(diǎn)擊Edit進(jìn)入編輯:

下一步點(diǎn)擊devices添加你的傳感器設(shè)備。 我這里添加一個(gè)溫濕度傳感器:



如果不出意外的話? 你將看到后邊獲取的的溫濕度值

至此配置完畢。我們?nèi)ome assistant里添加該設(shè)備。
進(jìn)入Hass主頁 點(diǎn)擊配置:

點(diǎn)擊集成 填寫你的mqtt服務(wù)器信息。
之后點(diǎn)擊紅點(diǎn),右下角加號(hào)添加設(shè)備:

選擇mqtt傳感器:


高級(jí):

按照此方法再添加一個(gè)humidity濕度 記得保存配置。
如果你需要控制一個(gè)燈的開關(guān)而不是獲取傳感器的數(shù)據(jù),如下圖 我就不一 一 寫了。


hass添加一個(gè)mqtt開關(guān):



至此配置完畢 你將會(huì)在Hass首頁看到:

如果你要接入悟空語音助手的話 按照官方文檔 在hass目錄下編輯這樣一個(gè)文件:

效果:

完了,大功告成。快去和悟空說? “查看環(huán)境溫度”吧。
附上一張hass的配置文件圖:


? ? ? ? ? ? ? Bye~