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





