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





