日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python语音控制智能家电_Python 树莓派智能音箱语音控制电脑开关机-Python 实用宝典...

發布時間:2025/4/5 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python语音控制智能家电_Python 树莓派智能音箱语音控制电脑开关机-Python 实用宝典... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

完成下面這個有趣的實驗,你所需要的東西有:

1.路由器(能夠形成局域網,且電腦已用網線連接)

2.一個智能音箱(本教程使用的是亞馬遜 Echo Dot 2)

3.主板支持wake on lan (大部分都支持)

4.一個樹莓派

原理流程圖如下:

接下里將按照這個流程圖進行講解,首先是智能音箱和樹莓派的連接,我們需要讓樹莓派發出信號,讓智能音箱將其認作是智能家居并連接。由于我使用的是亞馬遜的智能音箱,因此我選擇了Fauxmo(https://github.com/n8henrie/fauxmo)非常好用的一個工具。

1.在樹莓派上安裝Fauxmo

Fauxmo的安裝方法見下方的操作或網址,注意這里的Python需要3.6以上:

2.cd fauxmo

3.python3 -m venv .venv

4.source ./.venv/bin/activate

5.pip install -e .[dev]

6.cp config-sample.json config.json

7.根據需求編輯(第一次可先忽略) config.json

8.fauxmo [-v]

成功后,請讓智能音箱重新搜索設備,如Echo dot是向他說

"find connected devices",

或同一局域網下,在網頁端(alexa.amazon.com/spa/index.html)上點擊Discover devices.

如果它成功發現了新的設備,則安裝成功。

2.修改Fauxmo配置,讓智能音箱能識別到新的“設備“

Fauxmo其實很簡單,我們只需要關注兩個地方,一個是源文件下的config.json. 這個文件是用來控制智能音箱能夠識別到的設備的。其次是plugins文件夾下的文件,這是樹莓派收到指令后將執行的文件。由于開關機我們只需要使用Python進行控制,因此我偷個懶使用了Fauxmo的commandlineplugin(下載地址:https://github.com/n8henrie/fauxmo-plugins/blob/master/commandlineplugin.py). 即樹莓派得到指令后就開啟命令行,輸入相應的操作。

我的PC的config.json配置如下:

"PcControl": {

"path": "/home/pi/Documents/fauxmo/src/fauxmo/plugins/commandlineplugin.py",

"DEVICES": [

{

"name": "PC",

"port": 49915,

"on_cmd":"python2 /home/pi/Documents/Automatic/turnOnPC.py",

"off_cmd":"python /home/pi/Documents/Automatic/ShutdownAndRebootPC.py 192.168.199.236(該電腦局域網IP) 電腦賬號 電腦密碼 shutdown",

"state_cmd": ""

},

{

"name": "RebootPC",

"port": 49920,

"on_cmd": "python /home/pi/Documents/Automatic/ShutdownAndRebootPC.py 192.168.199.236 ckend ckend reboot",

"off_cmd": "python /home/pi/Documents/Automatic/ShutdownAndRebootPC.py 192.168.199.236 ckend ckend reboot",

"state_cmd": ""

}

]

},

意思就是,如果我向echo說,turn on my PC , 它就通過49915端口訪問了plugins文件夾下的commandlineplugin.py,然后on指令的操作是讓CMD用python2訪問/home/pi/Documents/Automatic/文件夾下的turnOnPC.py文件。

3.增加turnOnPC.py文件和ShutdownAndRebootPC.py文件

turnOnPC.py文件的用處就是通過wake on lan 喚醒電腦,需要提供電腦的Mac地址,不知道的話可以在CMD中輸入 ARP -a 查詢:

def wake_on_lan(macaddress):

""" Switches on remote computers using WOL. """

# Check macaddress format and try to compensate.

if len(macaddress) == 12:

pass

elif len(macaddress) == 12 + 5:

sep = macaddress[2]

macaddress = macaddress.replace(sep, '')

else:

raise ValueError('Incorrect MAC address format')

# Pad the synchronization stream.

data = ''.join(['FFFFFFFFFFFF', macaddress * 20])

send_data = ''

# Split up the hex values and pack.

for i in range(0, len(data), 2):

send_data = ''.join([send_data,struct.pack('B', int(data[i: i + 2], 16))])

# Broadcast it to the LAN.

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

sock.sendto(send_data, ('', 7))

如果你的主板還沒有開啟WOL,請進入BOOT中開啟,非常簡單,相關操作可自行查閱主板的說明書。

ShutdownAndRebootPC.py文件主要提供關機和重啟的操作,其原理是:通過SSH連接Windows系統執行DOS關機/重啟的命令。

def shutdown(ip=sys.argv[1], username=sys.argv[2], password=sys.argv[3]):

# ssh login

proc = pexpect.spawn("ssh %s@%s " % (str(username), str(ip)))

index = proc.expect([".*assword.*", ".*yes.*"])

if index > 0:

proc.sendline("yes")

proc.expect(".*assword.*")

proc.sendline(password)

proc.expect(".*你的用戶名>.*")

proc.send("shutdown.exe -s -t 00"+'\r\n')

# 重啟是 shutdown.exe -r -t 00

time.sleep(1)

上述turnOnPC.py文件和ShutdownAndRebootPC.py文件的源代碼在https://github.com/Ckend/Pi-SmartHome 中可以下載,請根據自己的需要進行修改。

將上述文件放到前面指定的/home/pi/Documents/Automatic/下,重啟fauxmo,并讓智能音箱重新搜索,找到這幾個新增的設備,分別是:PC和RebootPC.成功后只要說 "Turn off PC" 即可關閉計算機。

由于fauxmo僅僅適用于亞馬遜音箱,所以使用其他音箱的同學可能需要尋找一個相應的模擬WeMo或其他智能設備的項目。接下來還會推送風扇和臺燈的改造計劃,讓普通的它們變成可以語音控制的智能家居。希望各位折騰的開心。

?Python實用寶典 (pythondict.com)

不只是一個寶典

歡迎關注公眾號:Python實用寶典、

本文由 Python 實用寶典 作者:Python實用寶典 發表,其版權均為 Python 實用寶典 所有,文章內容系作者個人觀點,不代表 Python 實用寶典 對觀點贊同或支持。如需轉載,請注明文章來源。

總結

以上是生活随笔為你收集整理的python语音控制智能家电_Python 树莓派智能音箱语音控制电脑开关机-Python 实用宝典...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。