資料介紹
描述
計劃是什么?
該計劃是建立一個網(wǎng)狀連接的家庭項目。
艦隊由什么組成?
我將從Particle Ultimate Mesh Bundle開始,并根據(jù)需要添加盡可能多的節(jié)點:
![poYBAGN-udSAUgd3AADvbs6_O8Y359.png](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-udSAUgd3AADvbs6_O8Y359.png)
粒子網(wǎng)格設備介紹
2020 年 1 月更新:Particle 已在其所有第三代設備中停止使用 Mesh 協(xié)議。你可以在這里閱讀公告。
如果您還不知道 Particle 的第三代開發(fā)套件 Particle Mesh 是什么,那么您就錯過了。立即在他們的網(wǎng)站上閱讀更多內(nèi)容!
David Scheltema在他的帖子中很好地描述了它。
另外,讓我從Jeffrey Lee 的帖子中“復制粘貼”一些話(感謝Julien向我介紹了這個詞,不能停止使用它):
什么是無線網(wǎng)狀網(wǎng)絡?
無線網(wǎng)狀網(wǎng)絡是彼此無線連接的節(jié)點(網(wǎng)狀拓撲)的基礎設施。這些節(jié)點相互捎帶以擴展無線電信號(如 Wi-Fi 或蜂窩連接)來路由、中繼和代理進出客戶端的流量。每個節(jié)點都將無線電信號傳播得比上一個節(jié)點更遠一些,從而最大限度地減少死區(qū)的可能性。
好處
應該注意的是,并非所有無線網(wǎng)狀網(wǎng)絡解決方案都提供這些優(yōu)勢,但這是 Thread 和 Particle Mesh 獨有的完整列表。
- 無單點故障——構(gòu)建一個可自我修復的本地網(wǎng)狀網(wǎng)絡——如果單個設備離線,網(wǎng)絡可以將自身重新配置為最近的連接。這意味著沒有數(shù)據(jù)丟失,沒有死區(qū),沒有問題。
- 自擴展——此外,如果您需要從網(wǎng)狀系統(tǒng)中獲得更多范圍,您可以添加另一個節(jié)點,并且消息可以通過網(wǎng)狀網(wǎng)絡跳回網(wǎng)關。
- 可靠的網(wǎng)絡——互連的設備可以同時流暢地傳輸數(shù)據(jù),不會使網(wǎng)絡連接復雜化。如果一個節(jié)點出現(xiàn)故障,附近的另一個節(jié)點可以接起連接并繼續(xù)數(shù)據(jù)通信。
- 低成本、低功耗——使用無線網(wǎng)狀網(wǎng)絡消除了在設施之間安裝光纖/電線的成本和復雜性。隨著需要或多或少的覆蓋范圍,可以添加或刪除無線網(wǎng)狀節(jié)點。Mesh 使用與藍牙相當?shù)哪芰?,因此您可以設計可以使用 3-5 年然后被丟棄和更換的設備。
感謝 Jeffrey 和 David 的所有解釋!
粒子網(wǎng)格設備
使用 Particle,您可以擁有 WIFI(使用 Argon 開發(fā)套件)或蜂窩(Boron 開發(fā)套件)連接的網(wǎng)狀網(wǎng)絡:
![pYYBAGN-udaABMbAAAE315Yc9RY30.jpeg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-udaABMbAAAE315Yc9RY30.jpeg)
![poYBAGN-udmAMWiGAABy5rubG1Y637.png](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-udmAMWiGAABy5rubG1Y637.png)
我的艦隊
以下是我將使用的所有設備:
![poYBAGN-uduAC21OAAGnb2qzDbg709.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-uduAC21OAAGnb2qzDbg709.jpg)
這就是我計劃為我的 Mesh Home 項目構(gòu)建的內(nèi)容:
- 網(wǎng)狀恒溫器
- 網(wǎng)狀溫度傳感器(我的恒溫器的遠程溫度傳感器)
- 網(wǎng)狀水池溫度監(jiān)測器
- 網(wǎng)狀車庫開啟器
- 網(wǎng)狀污水泵監(jiān)視器
- 網(wǎng)狀漏水傳感器
先決條件
您需要首先將您的所有設備都歸入您的 Particle 帳戶。如果您還沒有這樣做,請繼續(xù)這樣做。整個過程將花費您幾個小時,并在此處進行了描述。
作為記錄,我將我的所有設備都更新到了 Device OS 1.3.0-rc.1。
———————————————————————————————————————————————————————————————————————
第三代極簡溫控器
這是我的極簡恒溫器的新版本。很難相信我最初的項目在過去三年半的時間里一直在家里不間斷地工作,24/7/365,很少中斷(也許我不得不重新設置兩次?)。
最初的項目是基于一個 Particle Photon(一個 WIFI 開發(fā)套件)和一個便宜的四繼電器板。這次我將使用Argon (支持網(wǎng)狀網(wǎng)絡的 WIFI 開發(fā)套件)和NCD 4 繼電器板。我將使用DHT22來感應溫度和濕度。
恒溫器:繼電器接線
與原始項目相同,將繼電器 1(下圖中的 R1)、繼電器 2 和繼電器 3 連接到 HVAC 電線。
我的 HVAC 使用 24 伏電壓,可以處理。
請檢查您是否使用更高的電壓。
如果是這種情況,您在接線時需要格外小心
任何超過 40 伏的電壓都可能對您的健康構(gòu)成威脅,因此:小心
![pYYBAGN-ud2AdlUUAAB1WlIwL4Y943.jpg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-ud2AdlUUAAB1WlIwL4Y943.jpg)
恒溫器:連接溫度傳感器
我使用的傳感器是流行的DHT22 。DHT22 是一種基本的低成本數(shù)字溫度和濕度傳感器。它使用電容式濕度傳感器和熱敏電阻來測量周圍的空氣,并在數(shù)據(jù)引腳上輸出數(shù)字信號(不需要模擬輸入引腳)。它使用起來相當簡單,但需要謹慎的時間來獲取數(shù)據(jù)。該傳感器唯一真正的缺點是您每 2 秒只能從中獲取一次新數(shù)據(jù)。
連接如下:
DHT22 引腳 1 是氬氣上的 Vcc <==> 3v3
DHT pin2是Argon上的數(shù)據(jù)<==> D5
DHT pin 3 <==> 保持斷開連接
DHT pin 4 <==> 連接到 Argon 上的 GND
不要忘記在數(shù)據(jù)引腳上添加一個 4.7K - 10K 電阻上拉到 Vcc。
注意:我使用的是相當舊的 PietteTech 庫,因為我遇到了最新庫的問題。
恒溫器:放置溫度傳感器
我把我的放在以前不太聰明的恒溫器上:
![poYBAGN-ud-AM_WeAAAoE8qEZ2U670.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ud-AM_WeAAAoE8qEZ2U670.jpg)
恒溫器:固件
我是有限狀態(tài)機(從現(xiàn)在開始為 FSM)的忠實粉絲,我現(xiàn)在幾乎在所有項目中都使用它們。次我不使用一個,我以后后悔!
如果您不熟悉狀態(tài)機以及我們?nèi)绾卧?a target='_blank' class='arckwlink_none'>物聯(lián)網(wǎng)項目中使用它們,請查看我關于它們的文章。
現(xiàn)在對于固件,請使用Particle WorkBench 打開文件夾 minimumistThermostat。
我使用從 Arduino 移植的庫用于 FSM,加熱狀態(tài)如下所示:
![poYBAGN-ueKAWDMkAAA3WBz0ddQ361.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ueKAWDMkAAA3WBz0ddQ361.jpg)
冷卻狀態(tài)與這些相同。
這是全圖,請原諒質(zhì)量:
![pYYBAGN-ueeAPhERAArW6RPVgOk812.jpg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-ueeAPhERAArW6RPVgOk812.jpg)
您可以使用此布爾變量決定溫度使用的單位:
bool useFahrenheit = false;
溫控器:網(wǎng)狀連接
恒溫器將在我的家庭網(wǎng)狀網(wǎng)絡中扮演網(wǎng)關的角色。看到下圖中的氬氣了嗎?正是這個角色。
![pYYBAGN-ueqAc75QAABt_43VICc80.jpeg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-ueqAc75QAABt_43VICc80.jpeg)
這意味著其他設備(Xenons)將通過網(wǎng)狀協(xié)議連接到 Argon。然后他們將通過氬氣連接到粒子云。
所以這里的氬氣充當網(wǎng)狀網(wǎng)絡的網(wǎng)關,同時也是極簡恒溫器的大腦。
恒溫器:移動應用程序
Blynk 是一個與硬件無關的物聯(lián)網(wǎng)平臺,具有白標移動應用程序、私有云、設備管理、數(shù)據(jù)分析和機器學習。
聽起來足夠強大?這是!這也是我最喜歡的將移動應用程序添加到我的個人項目的方式,包括這個。
使用 Blynk,您可以在幾分鐘內(nèi)設計拖放式漂亮的 IoT 應用程序。您可以從各種預先設計的小部件中進行選擇,以構(gòu)建用于控制電子設備、監(jiān)控傳感器數(shù)據(jù)、獲取通知等的原生 iOS 和 Android 應用程序。
![poYBAGN-ue2AXpL6AAIGJ_z8_qY098.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ue2AXpL6AAIGJ_z8_qY098.jpg)
從世界任何地方控制您的硬件。
沒有比這更好的了!
這是我的移動應用程序:
![poYBAGN-ufCAebRKAAFOpJK9mYw238.png](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ufCAebRKAAFOpJK9mYw238.png)
使用 Blynk 可以輕松共享移動應用程序,只需在設備上安裝 Blynk 后從內(nèi)部掃描此代碼:
![pYYBAGN-ufOAAW3oAAFaNRPi2gI853.png](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-ufOAAW3oAAFaNRPi2gI853.png)
———————————————————————————————————————————————————————————————————————
第三代網(wǎng)狀溫度傳感器
Minimalist Thermostat 的網(wǎng)狀遠程溫度傳感器將基于 Particle Xenon 和 DS18B20。
溫度傳感器:接線
像 DS18B20 這樣的傳感器接線再簡單不過了。這是數(shù)據(jù)表,以備不時之需。像這樣連接
DS18B20 GND 引腳 1 是 GND <==> Argon 上的 3v3
DS18B20 GND 引腳 2 是氬氣上的 DQ <==> D9
DS18B20 GND 引腳 3 是 Vdd <==> 氬氣上的 3v3
![pYYBAGN-ufWAZsKpAAApJFebr78134.jpg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-ufWAZsKpAAApJFebr78134.jpg)
溫度傳感器:固件
請在 github 存儲庫的 tempSensor 文件夾下找到固件。我為這個網(wǎng)狀家庭項目的兩個組件使用相同的固件:這個遠程傳感器和水池傳感器。請使用Particle WorkBench打開文件夾。
因此,在構(gòu)建固件之前,您需要使這些行看起來像這樣:
// #define SENSOR_POOL // thermistor
#define SENSOR_DS18B20
您還可以使用此布爾變量(默認為攝氏度)決定使用什么單位來表示溫度:
bool useFahrenheit = false;
保存更改、構(gòu)建和閃爍后,您就可以開始使用它了。
溫度傳感器:網(wǎng)狀連接
現(xiàn)在 Xenon 正在讀取溫度,我們?nèi)绾翁幚硭?/font>
我們將它發(fā)送到恒溫器,它也充當網(wǎng)關。
請注意:信息可以通過網(wǎng)關一路到達粒子云,無需我們做任何事情。在這種情況下,我們想要對它進行操作,或者在移動應用程序上顯示它,因此我們通過網(wǎng)格協(xié)議將它發(fā)送到這個網(wǎng)格節(jié)點 Argon。
Xenon 上的代碼是使用 Mesh.publish 的簡單行:
Mesh.publish(MESH_EVENT_DS18B20, the_temperature_reading);
現(xiàn)在在接收端,我們需要使用 Mesh.subscribe。我們在 setup() 函數(shù)上設置訂閱(每次設備啟動時都會運行):
void setup()
{
Mesh.subscribe(MESH_EVENT_DS18B20, meshTempSensorHandler);
}
我們只是設置了一個處理函數(shù),稱為 meshTempSensorHandler(),所以該函數(shù)的代碼如下所示:
double meshTempSensorCurrentTemp = -999;
String meshTempSensorLastHeardOf = "Never";
// enable the remote temperature sensor if on an argon
#if PLATFORM_ID == PLATFORM_ARGON
void meshTempSensorHandler(const char *event, const char *data)
{
char tempChar[BUFFER] = "";
snprintf(tempChar, BUFFER, "event=%s data=%s", event, data ? data : "NULL");
Log.info(tempChar);
snprintf(tempChar, BUFFER, "%s", data ? data : "-999");
meshTempSensorCurrentTemp = atof(tempChar);
meshTempSensorLastHeardOf = Time.timeStr();
#ifdef USE_BLYNK
Blynk.virtualWrite(BLYNK_DISPLAY_CURRENT_TEMP_REMOTE, meshTempSensorCurrentTemp);
Blynk.virtualWrite(BLYNK_DISPLAY_CURRENT_TEMP_REMOTE_LAST_HEARD_OF, meshTempSensorLastHeardOf);
#endif
}
#endif
而已!
從網(wǎng)格上講,遠程網(wǎng)格傳感器的溫度讀數(shù)在另一個節(jié)點上可用(在這種情況下是網(wǎng)關節(jié)點,但任何節(jié)點都可以訂閱該信息或主題)。
現(xiàn)在變量meshTempSensorCurrentTemp 包含溫度,我添加了meshTempSensorLastHeardOf,這是我們每次從該節(jié)點接收信息的時間戳。這可以幫助我們判斷節(jié)點是否處于活動狀態(tài),或者即使讀數(shù)是最近的。
溫度傳感器:移動應用程序
為了在移動應用程序上顯示傳感器的信息,我在 Blynk 庫中添加了幾個對 virtualWrite() 函數(shù)的調(diào)用。這是向應用程序發(fā)送信息的 Blynk 方式。
以下是執(zhí)行此操作的行:
#ifdef USE_BLYNK
Blynk.virtualWrite(BLYNK_DISPLAY_CURRENT_TEMP_REMOTE, meshTempSensorCurrentTemp);
Blynk.virtualWrite(BLYNK_DISPLAY_CURRENT_TEMP_REMOTE_LAST_HEARD_OF, meshTempSensorLastHeardOf);
#endif
以下是應用程序恒溫器選項卡上的信息:
![poYBAGN-ufiAbKmqAAF89xVFNKY956.png](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ufiAbKmqAAF89xVFNKY956.png)
溫度傳感器:節(jié)點外
請記住,一旦您擁有一個像這種遠程傳感器這樣的節(jié)點,再擁有更多并且您需要或喜歡的節(jié)點是微不足道的。需要更改第二個遠程傳感器的網(wǎng)格事件名稱。這是關鍵:
Mesh.publish(MESH_EVENT_DS18B20_SENSOR_X, the_temperature_reading);
在我們的例子中,MESH_EVENT_DS18B20_SENSOR_X 是事件節(jié)點。您使用 X、Y、Z 等事件名稱設置額外節(jié)點,并修改網(wǎng)關節(jié)點上的訂閱處理程序。在 Blynk 移動應用程序上進行一些工作以呈現(xiàn)這些新信息,僅此而已!
———————————————————————————————————————————————————————————————————————
第三代網(wǎng)狀池溫度傳感器
盡管如此,百萬美元的問題是:水的溫度是多少?
這可以通過氙氣、電阻器和熱敏電阻來解決。
你有很多選擇,這里有兩個:
![poYBAGN-ufuAfNAiAAHqiJ2zVAo286.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ufuAfNAiAAHqiJ2zVAo286.jpg)
請注意,由于簡單的熱敏電阻(10K 精密環(huán)氧樹脂熱敏電阻 - 3950 NTC )并非制造用于直接與水接觸,因此傳感器的使用壽命約為兩個夏天。之后,傳感器將停止工作,讀數(shù)將不再有意義。更強大的將持續(xù)你的游泳池的整個生命。
水池溫度傳感器:接線
連接是這樣的:
10k 電阻在 Argon 上介于 3v3 和 A0 之間
熱敏電阻在 Argon 上的 A0 和 GND 之間
![pYYBAGN-uf2AQffGAABBf0nk4Zk330.png](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-uf2AQffGAABBf0nk4Zk330.png)
池溫度傳感器:固件
請在 github 存儲庫的 tempSensor 文件夾下找到固件。我為這個網(wǎng)狀家庭項目的兩個組件使用相同的固件:遠程傳感器和水池傳感器。您可以使用Particle WorkBench打開該文件夾。
因此,在構(gòu)建固件之前,您需要使這些行看起來像這樣:
#define SENSOR_POOL // thermistor
// #define SENSOR_DS18B20
您還可以使用此布爾變量(默認為攝氏度)決定使用什么單位來表示溫度:
bool useFahrenheit = false;
保存您的更改、構(gòu)建和閃存,您就可以開始了。
水池溫度傳感器:網(wǎng)狀連接
與之前的傳感器相同,Xenon 上的代碼使用 Mesh.publish:
Mesh.publish(MESH_EVENT_POOL, the_temperature_of_the_pool);
現(xiàn)在在接收端,我們需要使用 Mesh.subscribe。我們在 setup() 函數(shù)上設置訂閱(每次設備啟動時都會運行):
void setup()
{
Mesh.subscribe(MESH_EVENT_POOL, meshTempSensorPoolHandler);
}
在接收端,看起來與之前的傳感器幾乎相同,只是處理程序稱為meshTempSensorPoolHandler() 。
水池溫度傳感器:移動應用
我在 Blynk 移動應用上添加了一個選項卡:
![poYBAGN-ugCAQP9bAAC2XNzx11g172.png](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ugCAQP9bAAC2XNzx11g172.png)
水池溫度傳感器:額外節(jié)點
你也有水療中心來監(jiān)控嗎?遵循與上一節(jié)中遠程溫度傳感器的額外節(jié)點相同的思路。
———————————————————————————————————————————————————————————————————————
第三代車庫開門機
這是對我的Garage Commander的完全重寫。在這個版本中,我使用FSM來跟蹤車庫的狀態(tài)。
下面是對 FSM 狀態(tài)的描述:
![pYYBAGN-ugWAWttXAAxayjSD68M005.jpg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-ugWAWttXAAxayjSD68M005.jpg)
車庫開啟器:接線
您將需要兩個像這樣的磁簧開關。這是我的一張照片:
![poYBAGN-ug2Ab1Y-ABHDZcHvHRI896.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ug2Ab1Y-ABHDZcHvHRI896.jpg)
一旦位于戰(zhàn)略位置,這些簧片開關將告訴氙氣車庫是打開還是關閉。
我把感應關閉位置的那個放在車庫門的頂部,你可以在那里看到:
![pYYBAGN-uhOAUP-cAA8V89DGm_s768.jpg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-uhOAUP-cAA8V89DGm_s768.jpg)
我將感應打開位置的那個放在車庫開啟器的導軌下:
![poYBAGN-uheAY8uHAAcTMg9ISbU416.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-uheAY8uHAAcTMg9ISbU416.jpg)
您可以為您和您的車庫門選擇最方便的位置。
安裝后,將關閉傳感器簧片開關連接到 D2 和 GND,將打開傳感器連接到 Argon 上的 D1 和 GND。
這就是傳感器。
現(xiàn)在要讓Xenon移動門,您需要找到按鈕板連接到主機的位置。它看起來像這樣:
![poYBAGN-uiKADc_bABilG8NAn8c908.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-uiKADc_bABilG8NAn8c908.jpg)
將那個連接到我們將在項目的這一部分中使用的featherWing 功率繼電器。
提示:如果您將這些連接器短路,車庫門將會移動。當心!
我使用了 FeatherWing 三聯(lián)器,因為我有一個方便的,但如果你愿意,你可以使用雙聯(lián)器:
![poYBAGN-uiqAFq1nABL0-amZ_Vo703.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-uiqAFq1nABL0-amZ_Vo703.jpg)
車庫開啟器:固件
是時候刷固件了!您可以在 meshGarage 文件夾下找到它。請使用Particle WorkBench打開文件夾。
車庫開啟器:網(wǎng)狀連接
對于車庫開啟器,我們有不同的情況。以前的遠程傳感器向網(wǎng)關發(fā)送信息,以便在移動應用程序上顯示溫度。現(xiàn)在,為了從移動應用程序控制車庫,我們需要設置一個類似的發(fā)布-訂閱網(wǎng)格機制,但反過來。
車庫開啟器:移動應用程序
![pYYBAGN-uiyANnYgAAC8LXCuS6c151.png](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-uiyANnYgAAC8LXCuS6c151.png)
車庫開啟器:額外的節(jié)點
你有雙車庫還是三車庫?按照上面遠程溫度傳感器的相同說明添加一個額外的網(wǎng)格節(jié)點!
———————————————————————————————————————————————————————————————————————
第三代漏水傳感器
這是我的漏水傳感器的翻版。但是,與原始項目不同,使用 Particle Mesh 很容易添加我們需要的任意數(shù)量的節(jié)點。只需復制傳感器,修改一下事件名稱,瞧!很快您的地下室、廚柜、浴室和熱水器都得到保護,不會漏水。
這是我在這個版本上使用的漏水傳感器:
![poYBAGN-ujOAZWwHABE3TFvx4sY027.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ujOAZWwHABE3TFvx4sY027.jpg)
漏水傳感器:接線
該電路受到了這里的污水泵監(jiān)控項目和這里的電路的強烈啟發(fā)。
示意圖如下所示:
![poYBAGN-ujqALQxpAA9k81HxjIs867.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ujqALQxpAA9k81HxjIs867.jpg)
![poYBAGN-ukKAPFFJABJspel9jIY337.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ukKAPFFJABJspel9jIY337.jpg)
漏水傳感器:固件
在 meshWaterLeakSensor 文件夾下找到該項目節(jié)點的固件。
漏水傳感器:網(wǎng)狀連接
與其他節(jié)點的處理相同。網(wǎng)格節(jié)點上的事件是:
Mesh.publish(MESH_EVENT_WATER_LEAK_SENSOR, waterLeakState);
然后,事件處理程序在網(wǎng)關節(jié)點(恒溫器)上接收該信息:
Mesh.subscribe(MESH_EVENT_WATER_LEAK_SENSOR, meshWaterLeakSensorHandler);
并由處理函數(shù)本身照顧:
String meshWaterLeakSensorState = "Unknown";
String meshWaterLeakSensorLastHeardOf = "Never";
// enable the remote temperature sensor for the pool if on an argon
#if PLATFORM_ID == PLATFORM_ARGON
void meshWaterLeakSensorHandler(const char *event, const char *data){
char tempChar[BUFFER] = "";
snprintf(tempChar, BUFFER, "event=%s data=%s", event, data ? data : "NULL");
Log.info(tempChar);
snprintf(tempChar, BUFFER, "%s", data ? data : "Unknown");
meshWaterLeakSensorState = tempChar;
meshWaterLeakSensorLastHeardOf = Time.timeStr();
#ifdef USE_BLYNK
Blynk.virtualWrite(BLYNK_DISPLAY_WATER_LEAK_SENSOR, meshWaterLeakSensorState);
Blynk.virtualWrite(BLYNK_DISPLAY_WATER_LEAK_SENSOR_LAST_HEARD_OF, meshWaterLeakSensorLastHeardOf);
#endif
}
#endif
漏水傳感器:移動應用
我只需要在精彩的 Blynk 移動應用上添加一個標簽:
![pYYBAGN-ukWAKY7gAACtp9wUxAM785.png](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-ukWAKY7gAACtp9wUxAM785.png)
當傳感器檢測到水時,它會進入 30 秒的過渡狀態(tài),然后進入警報狀態(tài)(如果情況仍然存在):
![poYBAGN-ukiACVOpAACimjicfM4370.png](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ukiACVOpAACimjicfM4370.png)
漏水傳感器:節(jié)外
你有更多的地方來監(jiān)測漏水嗎?重復此處的步驟,更改事件名稱,修改 Blynk 應用程序,就是這樣!
———————————————————————————————————————————————————————————————————————
第三代污水??泵監(jiān)控器
前段時間我為朋友開發(fā)了一個污水泵監(jiān)控項目,并決定將具有此特性或功能的支持網(wǎng)格的節(jié)點添加到我的網(wǎng)格家庭項目中。
污水泵監(jiān)控器由兩個水傳感器組成,用于讀取水位是否過高。第一級將系統(tǒng)的狀態(tài)設置為高水位報警狀態(tài)(基本上,你有麻煩了),然后如果水到達第二個傳感器,系統(tǒng)進入非常高水位報警狀態(tài)(這次你是深陷困境)。
這是一個示意圖:
![pYYBAGN-uk2AKRRBAAlNOH1SZF0130.jpg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-uk2AKRRBAAlNOH1SZF0130.jpg)
請注意,我們計劃使用三個傳感器,但最終使用了兩個。
這些是使用的傳感器:
![pYYBAGN-uleADPcuABx-nAcOVmM839.jpg](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-uleADPcuABx-nAcOVmM839.jpg)
污水泵監(jiān)控傳感器:接線
電路與漏水傳感器相同,只是兩次:
![poYBAGN-ulqALz-tAACXMFFdUUs519.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ulqALz-tAACXMFFdUUs519.jpg)
將高水位傳感器連接到 D1,將超高水位傳感器連接到氙氣燈上的 D2。
晶體管是 MPSA13 晶體管(達林頓對)。
污水泵監(jiān)控傳感器:固件
使用 Particle Workbench 打開 meshSumpPump 文件夾,快閃,盡情享受吧!
污水泵監(jiān)控傳感器:網(wǎng)狀連接
污水泵節(jié)點發(fā)布的事件是這樣的:
#define MESH_EVENT_SUMP_PUMP "meshSumpPump"
網(wǎng)關上的代碼:
/************************************************************
sump pump sensors
*************************************************************/
String meshSumpPumpState = "Unknown";
String meshSumpPumpLastHeardOf = "Never";
// enable the remote temperature sensor for the pool if on an argon
#if PLATFORM_ID == PLATFORM_ARGON
void meshSumpPumpHandler(const char *event, const char *data){
char tempChar[BUFFER] = "";
snprintf(tempChar, BUFFER, "event=%s data=%s", event, data ? data : "NULL");
Log.info(tempChar);
snprintf(tempChar, BUFFER, "%s", data ? data : "Unknown");
meshSumpPumpState = tempChar;
meshSumpPumpLastHeardOf = Time.timeStr();
#ifdef USE_BLYNK
Blynk.virtualWrite(BLYNK_DISPLAY_SUMP_PUMP, meshSumpPumpState);
Blynk.virtualWrite(BLYNK_DISPLAY_SUMP_PUMP_LAST_HEARD_OF, meshSumpPumpLastHeardOf);
#endif
}
#endif
污水泵監(jiān)控傳感器:移動應用
移動應用程序的另一個標簽?。。?/font>
![poYBAGN-ul2AZgntAACY76HQZ5c933.png](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-ul2AZgntAACY76HQZ5c933.png)
現(xiàn)在如果水上升,系統(tǒng)進入過渡狀態(tài) 30 秒:
![pYYBAGN-ul-AV90eAAC3qYE0mlc564.png](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-ul-AV90eAAC3qYE0mlc564.png)
如果水沒有下降:
![pYYBAGN-umGAcwvDAAC2vn_elBw864.png](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-umGAcwvDAAC2vn_elBw864.png)
如果水繼續(xù)上漲:
![pYYBAGN-umSAIQmzAAC8led4xBg343.png](https://file.elecfans.com/web2/M00/7D/D6/pYYBAGN-umSAIQmzAAC8led4xBg343.png)
———————————————————————————————————————————————————————————————————————
第三代蜂窩連接溫濕度傳感器
那么如何處理捆綁包中的硼呢?
好吧,讓我們將它用于遠程溫度傳感器!
接線與上面恒溫器上的 DHT22 相同。
使用 Particle Workbench 打開 tempSensor 代碼。
但在刷機之前,請在固件中調(diào)整這些行:
// #define SENSOR_POOL // thermistor
// #define SENSOR_DS18B20
#define SENSOR_DHT22
這樣,固件將為 DHT22 傳感器編譯。現(xiàn)在您已準備好在任何您想要的地方閃爍和安裝這個蜂窩連接的溫度傳感器!
我將把它安裝在我的車上:
![poYBAGN-umuANkBTABAdX30cpjs146.jpg](https://file.elecfans.com/web2/M00/7D/48/poYBAGN-umuANkBTABAdX30cpjs146.jpg)
———————————————————————————————————————————————————————————————————————
結(jié)論
通過構(gòu)建這個雄心勃勃的項目,我發(fā)現(xiàn)的一件事是,使用網(wǎng)狀節(jié)點,您可以毫不費力地進行復制,并為您的網(wǎng)狀連接家庭設備的組件增加成本。
故障排除
如果您的項目卡在初始化狀態(tài),請檢查 Blynk 配置。我發(fā)現(xiàn)如果我沒有正確配置 Blynk(例如:身份驗證令牌無效),整個項目甚至都不會開始運行!
如果您不打算使用 Blynk,請通過更改此行來停用它:
#define USE_BLYNK
所以它最終看起來像這樣:
// #define USE_BLYNK
需要幫忙?
如果您的項目需要專業(yè)幫助,請隨時通過 gusgonnet@gmail.com 給我寫信。謝謝!
- 制作一個MQTT ESP8266家庭自動化項目
- 碩士學位論文《家庭智能網(wǎng)關的研究與實現(xiàn)》 24次下載
- 自動售貨機項目教程及文件下載 0次下載
- 仿真電路建立及與仿真模型的連接資料下載
- 一種兩階段跨項目缺陷預測方法CLNI-KMM 16次下載
- 如何使用STM32 MDK開發(fā)環(huán)境建立一個最簡單工程 7次下載
- 如何在Protel 99SE中創(chuàng)建一個新的設計數(shù)據(jù)庫 0次下載
- 如何使用keil4創(chuàng)建一個合格的單片機項目
- 如何將Arduino板連接到的計算機上的30個項目 16次下載
- WiFi連接智能家庭信息圖免費下載
- 基于家庭照明與物聯(lián)網(wǎng)連接的解決方案 4次下載
- 建立Http連接 8次下載
- 組態(tài)王數(shù)據(jù)庫建立與連接視頻 172次下載
- 基于ZigBee網(wǎng)狀網(wǎng)絡的分簇路由協(xié)議
- PADS中如何制作建立一個元件庫 0次下載
- 5G中RRC連接建立的兩種機制 2063次閱讀
- 如何建立一個簡單的PLL電路 1320次閱讀
- Linux上建立SSH安全連接的10種方法 6174次閱讀
- 如何標識一個TCP連接 3016次閱讀
- 如何構(gòu)建一個連接互聯(lián)網(wǎng)的流量計 1838次閱讀
- 如何正確建立自己的機器學習項目集 2149次閱讀
- 建立一個家庭光伏電站這些事項需提前預知 3707次閱讀
- 如何對一個大的項目進行模塊化編程 9985次閱讀
- 大神告訴你TCP建立連接為什么是三次握手 1w次閱讀
- 提出一個快速啟動自己的 TensorFlow 項目模板 3167次閱讀
- 建立一個方法和套路來對 Load 高問題排查 5507次閱讀
- 藍牙網(wǎng)狀網(wǎng)絡解決方案 5246次閱讀
- zigbee/Thread網(wǎng)狀網(wǎng)絡解決方案 8188次閱讀
- 搭載 Qualcomm 網(wǎng)狀網(wǎng)絡平臺的路由器 5974次閱讀
- Zigbee技術的8個優(yōu)點 1.2w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論