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