基于物聯(lián)網(wǎng)的系統(tǒng)使用傳感器檢測實時天氣
想象一下,一覺醒來,打開你的筆記本電腦,立刻看到一張反映屋外實時天氣的壁紙——多云、晴朗或有霧!
我們的自動天氣壁紙更換器將物聯(lián)網(wǎng)與軟件自動化無縫集成。使用Bolt物聯(lián)網(wǎng)模塊,LM35溫度傳感器和LDR光傳感器,我們的系統(tǒng)檢測當?shù)靥鞖鉅顩r,并動態(tài)更新筆記本電腦的壁紙以匹配環(huán)境。
通過實時傳感、API集成和自動化,該項目將硬件和軟件融合在一起,提供個性化的用戶體驗。非常適合天氣愛好者,技術極客和自動化愛好者!
當您的環(huán)境不斷變化時,為什么要滿足于靜態(tài)壁紙呢?
BoltIoT平臺
Bolt物聯(lián)網(wǎng)平臺使您能夠控制您的設備并安全地從物聯(lián)網(wǎng)設備收集數(shù)據(jù),無論您身在何處。通過部署機器學習算法,只需點擊幾下即可檢測異常并預測傳感器值,從而獲得可操作的見解。要了解更多,請訪問boltiot.com。
Integromat(做)
Integromat的作用是無縫連接你的應用程序/服務,這樣你就可以專注于新的任務,而不是一次又一次地重復相同的任務?;氐阶钪匾氖虑樯稀?
我們必須創(chuàng)建一個integrmat場景,使用api與pixabay通信。這是我創(chuàng)建的場景藍圖。
在Make (integrmat)中導入藍圖的步驟
Make(以前的integrmat)中的藍圖是一個預先配置的場景,可以導入以快速設置自動化。下面是導入藍圖并設置它的方法。
下載藍圖文件
?獲取待導入藍圖的。json文件。
?將其保存在本地計算機的已知位置。
登錄Make (integrmat)
?去Make的網(wǎng)站。
?使用您的憑據(jù)登錄。
導航到場景頁面
?在儀表板中,從左側欄單擊“scenario”。
?點擊“Create a new scenario”按鈕(右上角)。
導入藍圖
?在場景編輯器頁面上,單擊底部面板中的三個點(…)菜單。
?從下拉菜單中選擇“Import Blueprint”。
?點擊“選擇文件”,然后選擇下載的。json藍圖文件。
?點擊“打開”上傳藍圖。
檢查并配置場景
?加載藍圖后,在可視化場景編輯器中查看模塊和連接。
?如果任何模塊需要身份驗證,請單擊它們并提供必要的API密鑰、登錄詳細信息或令牌。
?確保所有必需的服務和集成都被正確地鏈接起來。
測試場景
?點擊“運行一次”(左下)來測試設置。
?檢查場景是否正確執(zhí)行。
?如果需要,調整模塊設置或排除任何問題。
激活場景
?一旦場景按預期工作,單擊“保存”。
?根據(jù)你的需要制定一個時間表(例如,每5分鐘,每小時,每天)。
?點擊“啟用”激活自動化。
Mailgun:電子郵件自動化服務
Mailgun是一個功能強大的電子郵件自動化服務,專為開發(fā)人員和企業(yè)通過api發(fā)送,接收和跟蹤電子郵件而設計。它提供SMTP和RESTful API功能,以實現(xiàn)無縫的電子郵件傳遞,使其成為事務性電子郵件、營銷活動和電子郵件路由的理想選擇。
這是一個可選的步驟,如果您不想要這個服務,那么從主程序腳本和配置文件中刪除相關代碼。如果你想收到包含你周圍的天氣狀況和壁紙的鏈接的郵件,目前已經(jīng)設置為你的筆記本電腦壁紙,然后創(chuàng)建一個Mailgun帳戶,并在conf python文件中放入你的Mailgun憑據(jù)。
組裝硬件組件
1. 獲取上面提到的所有必需組件。
2. 取一個面包板,如圖所示插入LM35傳感器。
3. 如電路圖所示,將VCC引腳連接到2 * 4.4k歐姆電阻。
4. 然后將第二個4.4k歐姆電阻的另一端連接到Bolt wifi模塊中的5v電源引腳。
5. 然后再取另一根線,將LM35傳感器的VCC引腳直接連接到Bolt模塊的GPIO1引腳上。(分壓器電路)
6. 傳感器的OUT引腳接螺栓模塊的A0數(shù)字引腳,GND引腳接螺栓模塊的GND。
7. 現(xiàn)在將LDR傳感器插入面包板。
8. 將LDR的一端連接到10k歐姆電阻,并通過面包板連接將該電阻的另一端連接到A0引腳。
9. 使用面包板將LDR傳感器的另一端通過接線連接到Bolt模塊的GPIO4引腳上。
連接螺栓到云
組裝硬件后,注冊并連接Bolt單元到Bolt Cloud。更了解螺栓與云的注冊和連接。
在integrmat上建立邏輯
1. 首先使用鏈接在integrmat上創(chuàng)建一個帳戶。
2. 配置你的Webhook URL
3. 添加HTTP請求模塊,添加pixabay url和set方法作為GET方法。在查詢字符串中添加參數(shù),如下圖所示。
4. 配置HTTP請求模塊,如圖所示。
5. 運行模塊一次,從pixabay獲取響應變量。
5. 現(xiàn)在創(chuàng)建一個Tools set變量模塊并選擇large_image_url
6. 現(xiàn)在創(chuàng)建一個Webhook Response模塊。
7. 如果您不想經(jīng)歷這個過程,那么按照將藍圖模塊導入Make中提到的步驟進行操作。您可以在附件部分找到.json文件。
工作原理
工作原理是通過使用可用的傳感器LDR光傳感器和LM35溫度傳感器來確定天氣。該項目使用Bolt IoT、LM35和LDR傳感器,根據(jù)實時天氣情況動態(tài)改變筆記本電腦壁紙。它還集成了Z-score異常檢測,以識別異常的溫度和光線變化,確保壁紙僅在必要時更新。
1. 傳感器數(shù)據(jù)采集
a) LM35(溫度傳感器)讀數(shù)
電源開關:
?電路通過設置引腳4 (LOW)和引腳1 (HIGH)使能LM35,保證LM35的供電。
?請注意,Bolt IoT wi-fi模塊中的GPIO引腳僅提供3.3v,對于LM35傳感器,它需要5v電源才能運行。
?因為我們不能通過Bolt云直接控制Bolt模塊中的5v電源引腳,所以我們創(chuàng)建了一個分壓器設置,其中LM35溫度傳感器的VCC連接到模塊上的GPIO1和5v電源,并使用一系列電阻將5v電源連接到LM35的VCC。
?這將確保當GPIO1打開時,LM35將獲得足夠的供電,當GPIO關閉時,LM35將沒有足夠的供電,它將被關閉。
?5秒的延遲確保穩(wěn)定的讀數(shù)。
閱讀溫度:
?LM35的模擬輸出使用Bolt IoT ADC從A0引腳讀取。
?原始ADC值轉換為溫度使用公式:溫度(°C) =(100 *溫度)/1024
?讀取后,引腳1設為LOW,引腳4設為HIGH,將電源切換回LDR。
b) LDR(光傳感器)讀數(shù)
?直接讀出:LDR在LM35讀出后已經(jīng)通電,因此其模擬值直接從A0讀取。
?ADC值越高=光線強度越大,ADC值越低=光線越暗。
2. 數(shù)據(jù)處理與異常檢測(Z-Score分析)
歷史存儲:
?最后幾個溫度和光讀數(shù)存儲在history_data列表中。
?歷史存儲:最后幾個溫度和光讀數(shù)存儲在history_data列表中。
z分數(shù)計算:
?計算以往讀數(shù)的均值和方差。
?z分數(shù)閾值決定了正常讀數(shù)的上限和下限。
?如果一個新值超出了計算的界限,它將被標記為異常。
3. 天氣狀況分析
?函數(shù)weather_decide (temp, light)分析最新的溫度和光照數(shù)據(jù),并將其分類為不同的天氣條件(例如,晴、雨、霧、雪)。
?極端讀數(shù)與熱浪、風暴或冰凍天氣有關。
?該功能決定要設置的壁紙類型。
4. 觸發(fā)Webhook和抓取壁紙
?如果檢測到異?;?小時后,腳本觸發(fā)Integromat webhook:
?webhook將確定的天氣狀況發(fā)送給integrmat /Make。
?從API獲取相應的墻紙圖片URL。
5. 壁紙更新
下載圖片:
?獲取的圖像被下載并保存到D:\ wallpaper \wallpaper.jpg。
設置為壁紙(windows專用):
?systemparametersinfo函數(shù)用于立即更新墻紙。
6. 電子郵件通知(Mailgun集成)
更改墻紙成功后,使用Mailgun API發(fā)送郵件通知。
郵件內(nèi)容包括:
?當前溫度
?光強度
?天氣狀況
?圖片鏈接
7. 連續(xù)循環(huán)執(zhí)行
?該過程每10秒重復一次,確保實時監(jiān)控。
?壁紙僅在重大天氣變化或每1小時更新,以避免不必要的更新。
使用VS Code執(zhí)行Python程序的步驟
1. 安裝VS Code和Python
?從這里下載并安裝Visual Studio Code。
?安裝Python (3)X版本)從這里下載。
?打開VS Code并從擴展市場安裝Python擴展。
2. 安裝所需的Python庫
?在運行腳本之前,使用VS Code中的Terminal安裝所需的庫:
?打開VS Code。
?按Ctrl + '(反勾)打開終端。
運行如下命令安裝依賴項:
3. 設置conf.py文件
?您的腳本導入conf.py,其中包含API密鑰和設備配置。
?在同一目錄下創(chuàng)建一個名為conf.py的新文件,并添加以下詳細信息:
?用您的實際憑據(jù)替換占位符。
4. 連接螺栓物聯(lián)網(wǎng)模塊
?啟動Bolt IoT模塊。
?確保它連接到Wi-Fi并連接到Bolt Cloud。
5. 運行Python腳本
?創(chuàng)建一個python文件并編寫如automatic_change.py文件所示的python代碼。
?在VS Code中打開腳本。
?單擊“運行>不調試運行”或按“F5”。
如果從終端運行,使用:
6. 驗證執(zhí)行
?腳本將從LM35和LDR傳感器讀取數(shù)據(jù)。
?這將決定天氣狀況。
?它將調用webhook來獲取墻紙。
?它會在你的電腦上設置壁紙。
?如果配置,它將發(fā)送電子郵件通知。
輸出
本文編譯自hackster.io