python 改造並語音控制普通檯燈手把手教程

pythondict發表於2020-04-23

閱讀這篇文章前,這兩篇文章可能對你會有所幫助:

利用智慧音響語音控制電腦開關機 (必讀,否則你可能不知道我在說什麼)

語音控制 - 改造普通風扇 (選讀)

先看看效果:

完成這項有趣的實驗,你所需要的材料有:

1.電烙鐵
2.一個8050三極體
3.一個繼電器
4.一個路由器
5.一個樹莓派
6.一個智慧音響 (我使用的是亞馬遜 Echo Dot2)
7.一個普通檯燈

我使用的是最基本的開關臺燈,所以它只有一個開關按鈕,也只有一個功能,那就是開關臺燈(廢話),現在我們需要讓它能夠被語音控制。由於我們可以讓智慧音響樹莓派通訊,所以只需要讓檯燈連線樹莓派就能達成我們的目的,因此我們需要有一個能和這個檯燈並聯,並且能夠接線出來讓樹莓派控制的器件。那就是繼電器。

PS:為什麼不能讓樹莓派像控制風扇一樣,直接控制檯燈呢?
因為檯燈接的是220V電壓,樹莓派最大電壓只有5V,樹莓派是較小電流,較小電流要控制大電流則必須用繼電器。

加上繼電器後,其電路圖就如同下面所示。

語音控制 - 改造普通檯燈

我們使用的繼電器是這個小東西:

語音控制 - 改造普通檯燈

但由於我的檯燈裡的空間不夠大(如下圖所示,我還打了個孔,方便接出線),我只好拆出這個繼電器的核心,當然如果你的檯燈夠大,就不需要考慮這一點了。

語音控制 - 改造普通檯燈

接下來講一下繼電器的使用(原理可見上方動圖),其實是很簡單的,把點燈開關的兩條線接到COM端(共接點)和NO端(常開端),此外DC+, DC-分別連樹莓派的5V電源和接地即可。然後從樹莓派任意GPIO引腳中引線接繼電器的控制端,這個控制端能控制NO端的開閉,當輸入1的時候就是閉合,電路連通,燈亮。

不過需要注意的是,樹莓派的GPIO口是3.3V的,你需要把它轉化成5V才能進行控制,怎麼轉化呢?那就要使用上我們上一節 語音控制 - 改造普通風扇 講的三極體了。

接完後如下圖所示

語音控制 - 改造普通檯燈

這樣,硬體方面的工作我們就做完了,接下來是軟體方面的工作。

其實也就是讓智慧音響識別到一個控制開關的命令,跟 利用智慧音響語音控制電腦開關機 中提到的一樣。讓樹莓派使用fauxmo,模擬成許多智慧裝置,模擬的配置如下:


"MyLight": {

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

    "DEVICES": [

        {

        "name": "Light",

        "port": 49919,

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

        "off_cmd": "python /home/pi/Documents/Automatic/GPIO13.py off",

        "state_cmd": ""

        }

    ]

}

這樣,智慧音響就會把這個裝置的名字識別為 Light. 因此,當你說

“ turn on the light “,

它就會執行on_cmd命令,(在這個例子中,我們的path指向的檔案MyLight.py即只是啟動一個cmd命令而已)即執行 python GPIO13.py on . 相應地,”turn off the light”則執行off_cmd命令。

GPIO13.py 內只是控制樹莓派的開關而已,如下所示,它接收兩個引數,on或off. 當引數是on的時候,向樹莓派的GPIO33口輸出高電平,燈亮。Off的時候則輸出低電平,燈滅。


# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO

import time

import sys

# BOARD編號方式,基於插座引腳編號

GPIO.setmode(GPIO.BOARD)

# 輸出模式

GPIO.setup(33, GPIO.OUT)

def turnOn():

    GPIO.output(33, GPIO.HIGH)

def turnOff():

    GPIO.output(33, GPIO.LOW)

if sys.argv\[1\] == 'on':

    turnOn()

elif sys.argv\[1\] == 'off':

    turnOff()

重啟fauxmo,讓智慧音響重新搜尋,就能找到這個Light的裝置,然後說一句 “turn on the light”,就能享受這份折騰的成就感了。

最近我還發現,Amazon Alexa 的手機軟體,還支援外網控制這些室內裝置,如圖。

語音控制 - 改造普通檯燈

因此,現在每當我要回到宿舍的時候,在宿舍樓下時,我都會先點選Fan,讓它幫我開個風扇,然後根據我是要玩遊戲還是要幹活,再點選PC或Laptop. 如果是晚上,我還可以點選Light開啟點燈。這就是新時代的生活,你得Catch Up。

無論是多麼普通的裝置,你都可以用一個樹莓派把它變得智慧。

我們的文章到此就結束啦,如果你希望我們今天的Python 教程,請持續關注我們,如果對你有幫助,麻煩在下面點一個贊/在看哦有任何問題都可以在下方留言區留言,我們都會耐心解答的!


​Python實用寶典 (pythondict.com)

不只是一個寶典

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

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章