資料介紹
描述
理念
我的辦公桌在我地下室的凸窗旁邊,因?yàn)槲业姆孔诱娴暮芘f,那里的絕緣和溫度一直很奇怪,而且總是很冷。出于這個(gè)確切的原因,我的辦公桌旁邊有一個(gè)空間加熱器。我想創(chuàng)造一種更好的方式來(lái)調(diào)節(jié)和控制我的辦公桌設(shè)置,包括我的 PC 和空間加熱器。我選定了一個(gè)項(xiàng)目,該項(xiàng)目可以讓我使用家里的 Amazon Alexa Echo Dots 自動(dòng)執(zhí)行此過(guò)程,并使用 Alexa 應(yīng)用程序遠(yuǎn)程觸發(fā)它。我希望能夠告訴 Alexa 我在家,她會(huì)通過(guò)啟動(dòng)一切來(lái)自動(dòng)執(zhí)行此過(guò)程。我也希望有一些細(xì)微差別,所以我想我可以添加另一個(gè)組件來(lái)調(diào)節(jié)加熱器,它是以溫度傳感器的形式出現(xiàn)的。
溫度感應(yīng)器
我首先開(kāi)始設(shè)置溫度傳感器,因?yàn)槲抑肋@將是項(xiàng)目的關(guān)鍵組成部分。
我使用了 PietteTech 庫(kù)并為溫度傳感器創(chuàng)建了一個(gè)測(cè)試。傳感器的完整測(cè)試代碼可以在代碼部分找到:DHT22 溫度傳感器測(cè)試。
我遇到了一個(gè)問(wèn)題,如果檢查得太頻繁,傳感器偶爾會(huì)偶爾讀取一個(gè)荒謬的值,比如 -2 度,所以我知道我必須在以后考慮這個(gè)問(wèn)題。
我的解決方案是保留一個(gè)單獨(dú)的值,該值僅在有效值時(shí)更新
if(currentTime - prevTime > 30000){
int result = DHT.acquireAndWait(2000);
serverTemp = DHT.getFahrenheit();
if(serverTemp>0){
accurateTemp = serverTemp;
}
Particle.publish("servertemperature", String::format("%.1f", serverTemp));
Particle.publish("accuratetemperature", String::format("%.1f", accurateTemp));
prevTime = currentTime;
}
IFTTT 亞馬遜 Alexa 觸發(fā)器
下一步是將我的 Amazon Alexa 連接到 Webhook post 請(qǐng)求服務(wù),以便與 Particle Argon 交互。我選擇了 IFTTT,并將我的亞馬遜賬戶連接到它并設(shè)置了小程序。
為了連接 IFTTT 集成,我使用粒子云和 Spark.function Particle.publish來(lái)調(diào)用使用粒子令牌的函數(shù),然后將 Webhook 發(fā)布請(qǐng)求附加到 IFTTT 觸發(fā)器以及我的代碼中的函數(shù)。
局域網(wǎng)喚醒電腦
然后我需要找到一種方法來(lái)遠(yuǎn)程啟動(dòng)我的電腦。我知道這可以使用 Wake On Lan 功能實(shí)現(xiàn),但我必須讓它與 Particle 環(huán)境一起工作。幸運(yùn)的是,我找到了這個(gè)項(xiàng)目來(lái)幫助我入門(mén)。然后我研究了代碼并將其壓縮為僅對(duì)我來(lái)說(shuō)是必要的功能。此代碼采用給定的原始 MAC 地址,將其轉(zhuǎn)換為字節(jié),然后通過(guò)指定的 MAC 地址將喚醒數(shù)據(jù)包發(fā)送到 PC。完整的測(cè)試代碼可以在代碼部分找到:局域網(wǎng)喚醒測(cè)試。
其他注意事項(xiàng):
出于測(cè)試目的,我在另一臺(tái)計(jì)算機(jī)上安裝并使用了Homebrew ,以便安裝 wakeonlan 命令并測(cè)試獨(dú)立于粒子環(huán)境的功能。
我還需要調(diào)整我的 BIOS 和設(shè)置以允許 Wake On Lan 正常運(yùn)行,并根據(jù)我的主板制造商的說(shuō)明做了這三件事:
1. 在 BIOS 電源管理菜單中將“EUP 2013”??設(shè)置為禁用。2. 在喚醒事件設(shè)置中啟用“通過(guò) PCI 或 PCI-E 設(shè)備恢復(fù)”。3. 在 Windows 設(shè)備管理器中,進(jìn)入“網(wǎng)絡(luò)適配器”->“電源管理”選項(xiàng)卡,勾選【允許此設(shè)備喚醒計(jì)算機(jī)】復(fù)選框。
加熱器功能
我控制加熱器的第一個(gè)想法是使用智能插座或繼電器來(lái)控制加熱器的插座電源并將其連接到 Alexa。然而,這不是一個(gè)選擇,因?yàn)槲业募訜崞饔幸粋€(gè)數(shù)字而非手動(dòng)電源開(kāi)關(guān)。這意味著切斷插座電源然后恢復(fù)它不會(huì)正確打開(kāi)和關(guān)閉加熱器。相反,我決定使用紅外信號(hào)來(lái)控制加熱器,因?yàn)樗幸粋€(gè)紅外 LED 遙控器作為控制選項(xiàng),因此我可以以某種方式復(fù)制信號(hào)以供我使用。
在決定使用紅外通信后,我設(shè)置了一個(gè)系統(tǒng)來(lái)測(cè)試接收和發(fā)送紅外信號(hào),并使用 Arduino 兼容遙控器進(jìn)行測(cè)試。
使用這個(gè)遙控器和我的 IR 發(fā)送和接收節(jié)點(diǎn),我能夠成功地復(fù)制從遙控器接收到的 IR 信號(hào)。IR 傳輸具有特定的編碼參數(shù)集,這些參數(shù)在大多數(shù)情況下都很常見(jiàn),可用于輕松復(fù)制信號(hào)。這個(gè)特定的遙控器使用了 NEC 最常見(jiàn)的編碼。完整的測(cè)試代碼可以在代碼部分找到:IR 發(fā)射測(cè)試、IR 接收測(cè)試和 IR 發(fā)射和接收測(cè)試。
當(dāng)我試圖復(fù)制我個(gè)人遙控器的信號(hào)時(shí),問(wèn)題就出現(xiàn)了。
這些信號(hào)的復(fù)制要復(fù)雜得多。我不能只是說(shuō)我要發(fā)送一個(gè) NEC 代碼并給它一個(gè)簡(jiǎn)單的十六進(jìn)制值來(lái)發(fā)送。只能發(fā)送十六進(jìn)制值,因?yàn)榫幋a類型已知。經(jīng)過(guò)大量研究后,我確定我必須改為從遙控器發(fā)送原始信號(hào),沒(méi)有任何簡(jiǎn)化值,因?yàn)?Lasko 公司的遙控器沒(méi)有我可以使用的任何公共編碼類型。我家樓上有一個(gè)不同版本的 Lasko 加熱器,證實(shí)了我的懷疑,因?yàn)槟莻€(gè)遙控器也有一個(gè)未知的編碼。然后我記錄了來(lái)自遙控器的不同原始信號(hào),這些信號(hào)控制了我需要的加熱器的所有功能。
unsigned int oncodePower[143] = {1250,415,1250,415,423,1250,1247,448,1223,427,422,1256,423,1258,422,1257,423,1257,421,1257,423,1256,1248,7026,1250,416,1254,412,422,1250,1248,406,1264,427,422,1260,421,1257,423,1257,422,1256,423,1258,422,1256,1249,7066,1251,399,1267,416,421,1249,1250,419,1252,427,422,1260,420,1258,421,1258,423,1257,422,1256,436,1242,1250,7032,1250,416,1250,418,421,1249,1250,420,1250,428,422,1258,423,1256,421,1259,422,1258,422,1257,422,1255,1249,7028,1250,417,1250,416,421,1249,1250,418,1253,425,428,1254,422,1257,423,1257,422,1258,421,1260,419,1257,1248,7028,1248,416,1251,417,420,1250,1251,418,1251,427,422,1259,422,1257,423,1256,423,1267,412,1258,426,1252,1250};
unsigned int oncodeSwitch[119] = {1250,411,1255,411,425,1244,1253,414,1255,421,427,1254,427,1252,428,1250,426,1253,1251,423,427,1253,426,7849,1253,411,1254,417,421,1245,1253,415,1255,422,427,1255,424,1254,426,1252,429,1247,1256,422,427,1253,428,7891,1253,410,1255,410,426,1247,1254,414,1254,423,427,1255,426,1255,424,1255,426,1249,1256,422,428,1251,429,7857,1253,411,1255,411,427,1244,1255,414,1256,419,429,1254,428,1251,428,1255,424,1251,1254,421,428,1253,428,7851,1255,410,1256,410,427,1245,1253,414,1257,422,428,1253,427,1252,429,1253,424,1251,1254,422,427,1254,426};
unsigned int oncodeOsc[143] = {1247,415,1250,417,422,1249,1249,420,1250,427,423,1257,424,1257,423,1257,1249,427,422,1259,422,1258,423,7804,1250,416,1250,416,422,1251,1250,420,1250,435,415,1260,423,1260,421,1256,1252,438,412,1260,422,1258,424,7857,1250,416,1251,416,424,1252,1249,420,1251,438,413,1259,423,1259,423,1256,1252,429,421,1260,424,1260,422,7818,1248,433,1237,417,422,1251,1251,422,1250,428,422,1258,426,1257,426,1256,1251,429,422,1262,421,1261,422,7810,1249,418,1250,418,421,1251,1253,420,1252,427,423,1260,424,1259,423,1259,1250,427,423,1262,422,1261,421,7812,1250,414,1255,415,422,1252,1252,419,1252,427,423,1262,423,1261,422,1258,1252,427,422,1262,422,1258,425};
我重新連接了溫度傳感器并將我的紅外設(shè)備整合到一個(gè)面包板上進(jìn)行測(cè)試。
加熱器溫度相互作用
由于我的加熱器有兩種不同的設(shè)置,我使用溫度傳感器來(lái)確定當(dāng)我啟動(dòng)我的電腦時(shí)是否需要加熱器(低于 72 度)。
int wakeHost(String param) {
String MACaddress = "00:d8:61:aa:73:7a";
Particle.publish("test","got to wake host");
char szMacAddress[80];
MACaddress.toCharArray(szMacAddress,80);
Particle.publish("test", szMacAddress);
if(accurateTemp < 72.0){
deskStart = TRUE;
}
checkHIGHTemp = TRUE;
return wake(szMacAddress);
}
傳感器還會(huì)檢查溫度是否過(guò)高(超過(guò) 67 度),然后將其切換到低溫模式。
if(highTempOverride || (checkHIGHTemp && accurateTemp > 67.0)){
irsend.sendRaw(oncodeSwitch,119,38);
checkHIGHTemp = FALSE;
highTempOverride = FALSE;
Particle.publish("test","sentTEMPIR");
}
最終產(chǎn)品
?
- Lane Tech HS-PCL-食品儲(chǔ)藏室入口探測(cè)器
- Lane Tech PCL房間通知器開(kāi)源分享
- Lane Tech PCL:通過(guò)語(yǔ)音命令的東西分配器
- Lane Tech HS PCL自動(dòng)燈開(kāi)源
- Lane Tech HS PCL RAGE探測(cè)器開(kāi)源分享
- Lane Tech HS前門(mén)傳感器開(kāi)源分享
- Lane Tech HS濕度變化提醒
- Lane Tech HS PCL簡(jiǎn)單的門(mén)傳感器
- Lane Tech HS溫度通知
- Lane Tech PCL粒子氬激光絆線開(kāi)源
- Lane Tech HS溫控風(fēng)扇開(kāi)源分享
- Lane Tech PCL洗衣機(jī)顯示器
- 加熱器短線報(bào)警器原理、分類和選型 5次下載
- 浸沒(méi)式汽水混合加熱器
- 大客車(chē)液體加熱器安裝要點(diǎn)
- 功率放大器在微型加熱器中的應(yīng)用 941次閱讀
- 使用MOSFET作為恒溫加熱器 1154次閱讀
- 電烙鐵的加熱器的結(jié)構(gòu)組成與溫度控制方法分析 9294次閱讀
- 基于LM35D的溫控加熱器電路圖 1.1w次閱讀
- 低壓加熱器工作原理_低壓加熱器的作用 1.8w次閱讀
- 恒溫加熱器的工作原理_恒溫加熱器保養(yǎng) 1.8w次閱讀
- 汽車(chē)駐車(chē)加熱器的工作原理詳解 3.5w次閱讀
- 如何正確使用防爆電加熱器 4000次閱讀
- 電加熱器的分類及對(duì)比 9637次閱讀
- 一文了解電加熱器是什么 5969次閱讀
- 電加熱器功率計(jì)算方法 6w次閱讀
- 簡(jiǎn)易加熱器制作 1.7w次閱讀
- PTC加熱器原理及功能 23.6w次閱讀
- 用于植物的土壤加熱器 3770次閱讀
- 加熱器控制電路圖 2.6w次閱讀
下載排行
本周
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 137次下載 | 1 積分
- 2elmo直線電機(jī)驅(qū)動(dòng)調(diào)試細(xì)則
- 4.76 MB | 9次下載 | 6 積分
- 3ADL-GPIB IEEE 488命令集函數(shù)參考手冊(cè)
- 0.67 MB | 2次下載 | 5 積分
- 4儀表培訓(xùn)課件
- 1.82 MB | 2次下載 | 1 積分
- 5DTSD1352導(dǎo)軌式多功能電能表安裝使用說(shuō)明書(shū) V2.15
- 1.19 MB | 1次下載 | 免費(fèi)
- 6BQ79616-Q1和BQ75614-Q1 GUI用戶指南
- 4.51MB | 1次下載 | 免費(fèi)
- 7INA226EVM用戶指南
- 4.7MB | 1次下載 | 免費(fèi)
- 8INA226EVM修訂版A模型用戶指南和軟件教程
- 2.28MB | 1次下載 | 免費(fèi)
本月
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 137次下載 | 1 積分
- 2新概念模擬電路第四冊(cè)信號(hào)處理電路電子書(shū)免費(fèi)下載
- 10.69 MB | 60次下載 | 免費(fèi)
- 3800VA純正弦波逆變器的參考設(shè)計(jì)
- 2.96MB | 32次下載 | 免費(fèi)
- 4純電動(dòng)汽?的主要部件及?作原理
- 5.76 MB | 15次下載 | 5 積分
- 5新概念模擬電路(電子版全集)
- 29.33 MB | 13次下載 | 免費(fèi)
- 6GP328和GP88S對(duì)講機(jī)的維修實(shí)列資料合集免費(fèi)下載
- 0.03 MB | 10次下載 | 10 積分
- 7Type-C VL160數(shù)據(jù)手冊(cè)
- 0.92 MB | 10次下載 | 3 積分
- 8elmo直線電機(jī)驅(qū)動(dòng)調(diào)試細(xì)則
- 4.76 MB | 9次下載 | 6 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191366次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73805次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評(píng)論
查看更多