利特科聯合

前段時間我們曾向你介紹過 智慧型恆溫器。本文最初是為了示範其韌體和控制系統。但為了解釋恆溫器的邏輯以及我們實現的內容,有必要概述整個概念。

利特科聯合

關於自動化

依照慣例,所有自動化可以分為三類:
類別 1 — 單獨的「智慧型」設備。您從不同的製造商購買燈泡、茶壺等。優點:每種設備都擴展了功能並提高了舒適度。缺點:每個新製造商都需要自己的應用程式。不同製造商的設備的協議通常彼此不相容。

類別 2 — 單板 PC 或 x86 相容的安裝。這消除了對運算能力的限制,而MajorDoMo或任何其他用於管理智慧家庭的伺服器發行版都安裝在這台機器上。因此,大多數製造商的設備都連接在一個資訊空間中。那些。您自己的智慧家庭伺服器出現。優點:單一中心下的相容性,提供增強的管理能力。缺點:如果伺服器發生故障,整個系統將返回階段 1,即變得支離破碎或變得無用。

類別 3 - 最硬派的選擇。在修復階段,所有通訊均已鋪設,所有系統均已複製。優點:一切都變得完美,然後房子變得真正聰明。缺點:與1類和2類相比極其昂貴,需要事先考慮所有事情並考慮到每一個小細節。

大多數使用者選擇選項一,然後順利地轉向選項二。然後最堅持的人會選擇選項 3。

但有一個選項可以稱為分散式系統:每個單獨的設備都將既是伺服器又是客戶端。本質上,這是一種嘗試將選項1和選項2結合起來。取其優點,消除缺點,達到中庸之道。

也許有人會說,這樣的選擇已經開發出來了。但此類決策的針對性有限;對於精通程式設計的人來說。我們的目標是降低進入此類分散式系統的門檻,無論是透過終端設備還是將現有設備整合到我們的系統中。對於恆溫器,使用者只需拆下舊的恆溫器,安裝智慧恆溫器,然後將現有的感測器連接到它。無需任何額外步驟。

讓我們透過一個例子來看看如何整合到我們的系統中。

假設我們的網路上有 8 個 Sonoff 模組。對於某些使用者來說,透過 Sonoff 雲端(類別 1)進行控制就足夠了。有些將開始使用第三方固件,並順利進入類別 2。大部分第三方韌體的工作原理相同:將資料傳輸到 MQTT 伺服器。 OpenHub、Majordomo 或任何其他服務都有一個目的 - 將不同的裝置整合到位於網際網路或本地網路上的單一資訊空間。因此,伺服器的存在是強制性的。這就是主要問題出現的地方——如果伺服器發生故障,整個系統就會停止自主運作。為了防止這種情況,系統變得更加複雜,添加了手動控制方法,以便在伺服器發生故障時重複自動化。

我們走了一條不同的路,每台設備都是自給自足的。由此可見,Server並不起決定性的作用,只是擴展了功能。

讓我們回到思想實驗。讓我們再次使用相同的 8 個 Sonoff 模組並在其中安裝 Lytko 韌體。所有Lytko韌體都有此功能 固態硬盤。 SSDP是一種基於互聯網協議族的網路協議,用於網路服務的廣告和發現。對請求的回應可以是標準的,也可以是擴充的。除了標準功能之外,我們還在此答案中包括建立網路上的設備清單。因此,設備本身會找到彼此,每個設備都會有這樣一個清單。 SSDP 表示例:

"ssdpList": 
	{
		"id": 94967291,  
		"ip": "192.168.x.x",
                "type": "thermostat"
	}, 
	{
		"id": 94967282,
		"ip": "192.168.x.x",
                "type": "thermostat"
	}

如您從範例中看到的,該清單包括裝置 ID、網路上的 IP 位址、裝置類型(在我們的範例中為基於 Sonoff 的恆溫器)。此列表每兩分鐘更新一次(這個時間足以響應網路上設備數量的動態變化)。這樣,我們就可以追蹤新增、更改和停用的設備,而無需任何使用者操作。該清單被傳送到瀏覽器或行動應用程序,並且腳本本身會產生具有給定數量的區塊的頁面。每個塊對應一個設備/感測器/控制器。從視覺上看,該列表如下所示:

利特科聯合

但是,如果其他無線電感測器透過 cc8266 (ZigBee) 或 nrf32 (MySensors) 連接到 esp2530/esp24 會怎麼樣?

關於項目

市面上有各種分散式系統。我們的系統允許您與最受歡迎的系統整合。

以下項目試圖以某種方式改變不同製造商之間不相容的情況。例如,這是 SLS網關, 我的感測器 澤普32. ZigBee2MQTT 與 MQTT 伺服器綁定,因此不適合該範例。

實現 MySensors 的一種選擇是基於 ESP8266 的網關。其餘範例均在 ESP32 上。在其中,您可以實作我們偵測和建立設備清單的操作原理。

讓我們再做一個思想實驗。我們有 ZESP32 網關或 SLS 網關,或 MySensors。如何將它們組合在一個資訊空間中?我們將把SSDP協定庫加入這些網關的標準功能中。當透過 SSDP 存取該控制器時,它會將與其連接的裝置清單新增至標準回應中。根據此信息,瀏覽器將產生一個頁面。一般來說,它看起來像這樣:

利特科聯合
網頁界面

利特科聯合
漸進式應用程式

"ssdpList": 
{
   "id": 94967291, // уникальный идентификатор устройства
   "ip": "192.168.x.x", // ip адрес в сети
   "type": "thermostat" // тип устройства
},
{
   "id": 94967292,
   "ip": "192.168.x.x",
   "type": "thermostat"
},
{
   "id": 94967293,
   "ip": "192.168.x.x",
   "type": "thermostat"
},
{  
   "id": 13587532, 
   "type": "switch"  
},
{  
   "id": 98412557, 
   "type": "smoke"
},
{  
   "id": 57995113, 
   "type": "contact_sensor"
},
{  
   "id": 74123668,
   "type": "temperature_humidity_pressure_sensor"
},
{
    "id": 74621883, 
    "type": "temperature_humidity_sensor"
}

此範例顯示設備是相互獨立添加的。連接了 3 個具有自己的 IP 位址的恆溫器和 5 個具有唯一 ID 的不同感測器。如果感測器連接到 Wi-Fi 網絡,它將有自己的 IP;如果連接到網關,則裝置的 IP 位址將是網關的 IP 位址。

我們使用 WebSocket 與設備通訊。與獲取請求相比,這可讓您最大限度地降低資源成本,並在連接或變更時動態獲取資訊。

資料繞過伺服器,直接從區塊所屬的設備取得。因此,如果任何設備發生故障,系統仍可繼續運作。 Web 介面只是不顯示清單中缺少的裝置。但如有必要,有關損失的訊號將以通知的形式出現在使用者的應用程式中。

實現這種方法的第一次嘗試是 PWA 應用程式。這允許您在用戶設備上儲存區塊並僅請求必要的資料。但由於結構的特殊性,這個選項是不完整的。只有一個出路 - 適用於 Android 和 IOS 的本機應用程序,目前正在積極開發中。預設情況下,該應用程式僅在內部網路上運行。如果有必要,您可以將一切轉移到外部控制。因此,當用戶離開本地網路時,應用程式會自動切換到雲端。

外部控制 - 頁面的完整複製。頁面啟動後,用戶可以透過個人帳戶登入伺服器並管理裝置。因此,伺服器擴展了其功能,允許您在外出時管理設備,而不受連接埠轉送或專用 IP 的束縛。

因此,上述選項不具有伺服器方法的缺點,並且還具有連接新設備的靈活性方面的許多優點。

關於恆溫器

讓我們以我們的恆溫器為例來看看控制系統。

假如:

  1. 每個恆溫器的溫度控制(顯示為單獨的區塊);
  2. 設定溫控器運作時間表(上午、下午、晚上、夜間);
  3. 選擇 Wi-Fi 網路並將裝置連接到該網路;
  4. “無線”更新設備;
  5. 設定 MQTT;
  6. 配置設備連接的網路。

利特科聯合

除了透過網路介面進行控制之外,我們還提供了經典的控制方式 - 透過點擊顯示器。板上有一台 Nextion NX3224T024 2.4 吋顯示器。由於該設備易於使用,他做出了選擇。但我們正在開發自己的基於STM32的監視器。它的功能並不比Nextion差,但成本會更低,這將對設備的最終價格產生正面影響。

利特科聯合

與任何自重的恆溫器螢幕一樣,我們的 Nextion 可以:

  • 設定使用者所需的溫度(使用右側的按鈕);
  • 開啟和關閉預定運作模式(按鈕 H);
  • 顯示繼電器動作(左側箭頭);
  • 具有兒童保護功能(在解鎖之前,實體點擊會被阻止);
  • 顯示 WiFi 訊號強度。

此外,使用顯示器您可以:

  • 選擇用戶安裝的傳感器類型;
  • 管理童鎖功能;
  • 更新韌體。

利特科聯合

透過點擊WiFi欄,用戶將找到有關所連接網路的資訊。二維碼用於在 HomeKit 韌體中配對裝置。

利特科聯合

使用顯示器的示範:

利特科聯合

我們開發了 演示頁面 具有三個連接的恆溫器。

您可能會問:“您的恆溫器有什麼特別之處?”現在市面上有許多具有Wi-Fi功能、定時運作、觸控控制功能的溫控器。愛好者們編寫了與最受歡迎的智慧家庭系統(Majordomo、HomeAssistant 等)互動的模組。

我們的恆溫器與此類系統相容並具有上述所有功能。但其顯著特點是,由於系統的靈活性,恆溫器不斷改進。每次更新,功能都會擴充。在系統管理的標準方法(根據時間表)的基礎上,我們將添加自適應方法。該應用程式可讓您獲取用戶的地理位置。因此,系統將根據其位置動態改變操作模式。天氣模組將讓您適應天氣條件。

和可擴展性。任何人都可以用我們的恆溫器替換現有的傳統恆溫器。用最小的努力。我們選擇了市場上最受歡迎的 5 種感測器,並增加了對它們的支援。但即使感測器具有專有特性,使用者也可以將其連接到我們的恆溫器。為此,您需要校準恆溫器以與特定感測器配合使用。我們將提供說明。

連接恆溫器或任何其他裝置時,它會同時出現在各處:在 Web 介面和 PWA 應用程式中。新增裝置會自動進行:您只需將其連接到 Wi-Fi 網路即可。

我們的系統不需要伺服器,如果伺服器故障,它也不會變成南瓜。即使其中一個組件發生故障,系統也不會在緊急情況下開始運作。控制器、感測器、設備——每個元素既是伺服器又是客戶端,因此完全自主。

對於有興趣的人,我們的社交網絡: Telegram, Instagram, 電報新聞, VK, Facebook.

電子信箱: [電子郵件保護]

PS 我們不鼓勵您放棄伺服器。我們還支援 MQTT 伺服器並擁有自己的雲端。我們的目標是將系統的穩定性和可靠性提升到一個全新的水平。這樣伺服器就不是一個弱點,而是補充了功能並使系統更加方便。

來源: www.habr.com

添加評論