黃昏至黎明開關和計時器開關都是使燈光自動化的便捷方法。如果您可以將兩者結合起來,甚至將它們連接到互聯網上,以獲得真正的智能照明系統,那不是很好嗎?
Raspberry Pi,一個繼電器,一個光傳感器和一些僅需代碼即可實現此自動照明必殺技。
所需條件
用于光感應智能開關的組件易于采購。您將需要:
任何運行Raspbian的模型Raspberry Pi。
在亞馬遜上很容易找到的中繼板。
Adafruit TSL2561發光度傳感器
跳線。
一些燈可以自動運行!
光感應智能開關的工作原理
使用繼電器的方式與我們自動車庫門開啟器項目的方式相同,您可以對Raspberry Pi進行編程,以在固定時間打開和關閉照明電路。在混合物中添加一個亮度傳感器,意味著Pi可以檢測環境光水平,并選擇僅在真正需要時才打開燈光。
因為Pi是可以連接的微型計算機連接到網絡,您也可以將其設置為通過互聯網進行控制。您的智能燈將具有三個輸入來確定它們何時亮起:
已編程的時間表。
環境光水平。
超馳信號
第1步:將Raspberry Pi連接到中繼
如果您不熟悉使用GPIO,請先閱讀所需的所有內容了解Raspberry Pi的GPIO引腳。
首先,檢查您的中繼板上是否有將VCC和JD-VCC引腳連接在一起的跳線。
關閉所有電源,然后按如下所示將中繼板連接到您的Pi:
將Pi針2(5v)連接到繼電器板上的JD-VCC。
Pi針6(GND)到繼電器板上的GND。
Pi針15(GPIO) 22)到中繼板上的IN1
Pi引腳17(3.3v)到中繼板上的VCC。
第2步:連接光度傳感器
TSL2561是一種光傳感器,可以檢測紅外光,全光譜和人類可見光。它可以向Raspberry Pi發送非常精確的數字讀數。傳感器報告的光線水平范圍為0.1(無光照)至40,000(明亮的太陽)。
TSL2561板使用i2c協議與Raspberry Pi通訊。 I2C僅需要兩個連接,一個用于時鐘,以使兩個設備保持同步,另一個用于傳輸數據。當然,勒克斯傳感器也需要一定的功率,因此總共需要進行四個連接:
將Pi引腳1(3.3v)連接到勒克斯傳感器上的Vin(或VCC)li》
將Pi針3(SDA)連接到流明傳感器上的SDA
將Pi針5(SCL)連接到勒克斯傳感器上的SCL
將Pi針9( GND)到lux傳感器上的GND
第3步:配置和安裝依賴項
在進行進一步操作之前,則需要檢查Raspberry Pi上是否已啟用I2C(默認情況下已禁用)。在終端中輸入以下內容:
sudo raspi-config
選擇 Interface Options》 P5 I2C,,然后選擇 Yes 。。 》
點擊 Enter ,然后選擇 Finish 退出配置屏幕。重新啟動Pi,以使更改生效:
sudo reboot
Pi能夠與傳感器板通信需要一些依賴項。鍵入以下命令:
sudo apt-get update
sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools
您可以通過鍵入以下內容來檢查一切是否正常:
sudo i2cdetect -y 1
如果您的依賴項是已安裝并且您的勒克斯傳感器正確連接,您將看到類似以下的響應:
在此處,該實用程序正在報告已找到I2C設備(勒克斯傳感器)位于I2C地址39。
您還沒有完全解決依賴關系。您還將需要一些庫。首先,創建一個文件夾,以將與此項目相關的所有內容保存在:
mkdir ~/lighting
cd ~/lighting
下一步,下載bottle,這是一個輕量級的框架,可以在Pi上創建一個簡單的Web服務器。您將使用它來控制來自網絡的燈光。
wget https://bottlepy.org/bottle.py
您需要的其他庫位于Github上,因此,如果您的Raspberry Pi還沒有安裝了Git,現在將其添加:
sudo apt-get install git
現在克隆兩個庫,如下所示:
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git
git clone https://github.com/adafruit/Adafruit_Python_PureIO.git
最后,通過創建一個新文件來創建測試腳本:
nano test.py
粘貼以下代碼(由Adafruit提供):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals
from tsl2561 import TSL2561
if __name__ == “__main__”:
tsl = TSL2561(debug=True)
print(tsl.lux())
按屏幕上的說明按 Ctrl + X 保存。
完成后,運行測試腳本:
python test.py
如果一切都已安裝并且可以正常工作,您將獲得一個電話號碼。該數字是傳感器的照度讀數。嘗試阻擋或移動傳感器,使其獲得更多或更少的光線。然后再次運行測試腳本,并查看數字的變化。
步驟4:創建自動化腳本
Raspberry Pi在天黑時會打開燈光,但也會切換他們在某些時候離開。例如,您可能希望在晚上天黑時打開燈,然后在午夜關閉以節省電。他們可以在清晨再次亮起,然后在天亮時自行關閉。
要管理具有多個計時區域的日程表,有兩種不同的腳本。如果您想在黑暗中打開燈,則每分鐘就會運行一個( onzone.py )。另一個( offzone.py )會在您希望熄滅的時間內每分鐘運行一次,而不管照明強度如何。
腳本將計劃使用cron作業運行。通過選擇每個腳本在白天和晚上的哪個小時運行,可以輕松設置燈光自動點亮的時間。您可以根據需要設置任意的打開和關閉時間段。
以及用于自動控制燈光的腳本,還有第三個腳本可以管理覆蓋情況。這樣一來,無論環境光線如何,您都可以遠程打開燈光。
腳本1:ON區域
此Python腳本將在您需要的每一分鐘運行如果天黑了,燈會亮。通過將此命令復制并粘貼到終端中來下載腳本:
wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
每次運行onzone.py時,它將從傳感器獲取一個勒克斯值,以查看是否是黑暗的。如果是,它將檢查燈光是否亮起或熄滅。如果它們關閉,它將打開它們。如果不是很暗,腳本將查看指示燈是否亮著。如果是的話,除非它們被覆蓋,否則它將關閉它們。
腳本使用名為 lowlux 的變量來確定在什么地方足夠暗以打開燈。您可以通過更改onzone.py頂部附近的以下行中的值來將其更改為適合您自己的安裝的方式:
lowlux = 50 腳本2:OFF區域
該腳本將在每天要關閉的燈光下運行,除非它們已被覆蓋。下載腳本:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
此腳本不在乎它的亮或暗。它的工作只是簡單地將燈關掉(除非已被覆蓋)。
腳本3:覆蓋服務器
此腳本創建了一個簡單的Web服務,該服務可以接受命令以執行以下操作:
無論環境光線水平如何,都將燈打開幾分鐘。
將燈關閉。
找出當前燈是開還是關。
找出當燈被覆蓋時應保持多長時間。
下載腳本:
wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
在繼續下一步之前,請運行offzone.py腳本,如下所示:
python offzone.py
這將創建腳本用來跟蹤所有內容的控制文件。
步驟5:安排腳本
您的Raspberry Pi可以使用cron運行自動化腳本。設置時間表如下:
sudo crontab -e
將這兩行粘貼到文本編輯器中:
* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py 》 NULL
* 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py 》 NULL
注意:如果您登錄Raspberry Pi的用戶名不是默認的 pi ,請相應地更改路徑。
列出所有您希望在天黑時燈亮的時間。在第一行。所有要熄滅的時間都在第二行。
現在將替代腳本設置為在Pi啟動時自動運行:
sudo nano /etc/rc.local
將此行粘貼在文件底部,然后保存并退出:
nohup python /home/pi/lighting/lightserver.py &
最后,重新啟動Raspberry Pi,以便可以檢查服務器腳本是否以以下方式加載:它應該
sudo reboot 第6步:測試繼電器
在連接燈之前,請使用替代功能測試一切是否正常。在與Pi相同的網絡上的Web瀏覽器中鍵入以下內容,用您自己的Raspberry Pi的地址替換IP地址:
11.22.33.44:1234/overrideon/3
如果一切正常,您可以會聽到繼電器的喀噠聲,瀏覽器會回答燈已打開三分鐘。
繼電器閉合時,您可以測試其他倍率功能。這將告訴您由于覆蓋而使指示燈保持點亮狀態還有多分鐘:
11.22.33.44:1234/getoverrideremaining
這應該告訴您指示燈點亮:
11.22.33.44:1234/lightstatus
最后,您可以使用以下命令再次將其關閉:
11.22.33.44:1234/overrideoff
繼電器將在打開時發出咔嗒聲。
第7步:連接燈光
在將燈光連接到繼電器之前,請先關閉并拔下Raspberry Pi。使用繼電器板上的常開(NO)連接器代替常規開關,如下所示:
最后,您可以安裝勒克斯傳感器在可以捕獲環境光水平的地方。請注意,如果TSL2561在直射的陽光下會報告為飽和,因此,如果可能的話,最好將其保持在陰暗處。
更多Raspberry Pi項目供您嘗試
通過在Web瀏覽器中鍵入命令來遠程覆蓋新的智能照明設置非常麻煩。更好的方法是連接Amazon Echo之類的東西,以使事情變得更容易。將IFTTT上的Alexa服務和Webhooks服務結合在一起是添加語音控制的簡單方法。
請參閱我們的使用IFTTT的指南來幫助您入門。
另一種選擇是使用Siri快捷方式。一個帶有菜單的快捷方式可以查詢燈的狀態,并使用覆蓋功能將其打開和關閉。
責任編輯:wv
-
智能開關
+關注
關注
3文章
196瀏覽量
20492 -
樹莓派
+關注
關注
117文章
1711瀏覽量
105923 -
IFTTT
+關注
關注
0文章
47瀏覽量
3168
發布評論請先 登錄
相關推薦
deepin 23+樹莓派讓小車動起來
![deepin 23+<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>讓小車動起來](https://file1.elecfans.com/web3/M00/07/E9/wKgZPGer9iaAQPxjAAAUfrIo3WY741.jpg)
評論