99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RT-Thread全新打造的私有化定制家用式智能告警系統(tǒng)

嵌入式物聯(lián)網(wǎng)開發(fā) ? 來源:嵌入式物聯(lián)網(wǎng)開發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開發(fā) ? 2022-07-24 20:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 前言

近些年來,隨著科技的更新迭代,IoT行業(yè)迎來了一個快速膨脹發(fā)展的窗口期,我們隨之可見的是,越來越多的智能化產(chǎn)品進(jìn)入到了我們的日常生活中,包括發(fā)展比較早的智能家居類產(chǎn)品、智能家電類產(chǎn)品,還有近些年非常火熱的智能穿戴類產(chǎn)品,這些都得到了市場很好的反饋。

科技不僅能給人們帶來幸福感的提升,而且隨著智能設(shè)備越來越發(fā)達(dá),在某些特定的場景下,它往往還能救人于危難之時。

本文要講述的正是這樣一套智能的IoT系統(tǒng)在家庭環(huán)境下的部署應(yīng)用,它能夠幫助人們解決一些危險難題。

2 項目簡介

2.1 項目名稱

基于N32G457和RT-Thread全新打造的私有化定制家用式智能告警系統(tǒng)

2.2 設(shè)計思路

主體思路采用N32G457芯片作為終端側(cè)的主控MCU,搭載國產(chǎn)實時操作系統(tǒng)RT-Thread,外接ESP8266 Wi-Fi模塊,以及若干用于檢測的傳感器,比如煙霧傳感器、酒精傳感器、天然氣傳感器、空氣質(zhì)量傳感器等,將檢測的信息轉(zhuǎn)換成可能產(chǎn)生的告警數(shù)字信號,通過板載告警指示燈和告警警報器本地輸出告警信息,同時通過Wi-Fi的網(wǎng)絡(luò)能力,將告警信息透過網(wǎng)絡(luò)直接推送到關(guān)注告警信息的相關(guān)人員,實現(xiàn)相對實時的安全解決方案。

2.3 主要解決的問題

主要的解決的問題場景是普通家用環(huán)境下的危險因素告警檢測,這其中包含最基本的煙霧檢測(對應(yīng)明火燃燒)、酒精檢測(對應(yīng)易燃液體)、天然氣泄漏檢測(對應(yīng)易燃易爆)、空氣質(zhì)量檢測(對應(yīng)不明物品燒焦產(chǎn)生有害的氣體充斥在家庭環(huán)境中)。

還有一個家庭環(huán)境中,上述的危險因素會成倍放大的場景是,家中只有獨居老人的時候。比如,我的家人就很經(jīng)常做飯忘了關(guān)天然氣,但是我們年輕人會經(jīng)常發(fā)現(xiàn)并及時提醒他們,才不至于釀成悲劇。但是,獨居老人就是很大的問題,因老人們年紀(jì)上來了,嗅覺、味覺、聽覺、視力等多項身體機能指標(biāo)都下降得很厲害,面對上述場景,也難快速地發(fā)現(xiàn)危險并做出有效的解決措施,那么這就需要一套更加智能的解決方案及時發(fā)現(xiàn)這些危險,以最現(xiàn)眼最宏觀的方式告知獨居老人,及時接觸風(fēng)險。

我這個智能解決方案能夠很好地解決這個場景問題,一方面它自帶了多種探測傳感器,能夠及時發(fā)現(xiàn)危險;同時當(dāng)危險發(fā)生時,通過告警指示燈閃爍和警報器盛宴告警,最大程序地提醒獨居老人,危險已經(jīng)發(fā)生,應(yīng)盡快解除危險;另一方面,這個智能系統(tǒng)支持獨居老人的子女訂閱關(guān)注告警系統(tǒng)推送的危險信息,通過微信的及時性,直接傳達(dá)到子女手中,這也能夠保證危險發(fā)生的第一時間能夠得到子女的關(guān)注和提醒,得以順利協(xié)助老人解除危險。

2.4 項目創(chuàng)新點

輕量化的終端設(shè)計,板載RT-Thread操作系統(tǒng),方便應(yīng)用功能開發(fā),可快速橫向擴展功能;

終端設(shè)備部署可實現(xiàn)分布式,不局限于具體的部署環(huán)境;

整套IoT后端系統(tǒng)完全私有化部署,不受限于任何IoT云平臺;數(shù)據(jù)安全能夠得到很好的保證;

報警推送消息的內(nèi)容可完全自定義配置,設(shè)計非常靈活;

接收報警推送的人員支持可配置,可遠(yuǎn)程實時推送告警消息到多個人員;

面對獨居老人的相關(guān)安全問題,能夠很好地提供高效的解決方案。

3 系統(tǒng)架構(gòu)介紹

3.1 系統(tǒng)核心架構(gòu)圖

整個系統(tǒng)的核心架構(gòu)圖如下所示:

pYYBAGLb7GyAL8oLAARWlxfOAos381.png

從上面這個核心架構(gòu)圖中,我們可以看到整個IoT系統(tǒng)組成,包括智能設(shè)備終端側(cè)、WEB配置前端側(cè)、智能IoT系統(tǒng)平臺后端側(cè),同時還有手機移動端。下面就整個系統(tǒng)的幾大重要組件,我會一一進(jìn)行簡要講解。

3.2 終端側(cè)

終端側(cè)主要承載的是現(xiàn)場環(huán)境要素的檢測,同時做一些邊緣側(cè)的應(yīng)用邏輯處理,還需要具備對外網(wǎng)絡(luò)的通訊能力,能在第一時間把緊要消息通過網(wǎng)絡(luò)通道傳輸出去。

終端側(cè)包括的核心組件有:國民技術(shù)的 N32G457,搭載的是國產(chǎn)實時操作系統(tǒng) RT-Thread,同時外設(shè)板載有 ESP8266 Wi-Fi通訊模組、告警指示燈、聲音告警器、煙霧傳感器、酒精傳感器、天然氣傳感器、空氣質(zhì)量傳感器、若干按鍵等等。

終端側(cè)不僅包含設(shè)備硬件,還需要對應(yīng)的固件軟件,兩者相輔相成,共同完成終端側(cè)的功能邏輯。

poYBAGLb7HCAELuOABLcfvjFPls120.png

3.3 后端側(cè)

這里的后端側(cè),從細(xì)分來看,總有4部分:

EMQ:「隨處運行,無限連接,任意集成」云原生分布式物聯(lián)網(wǎng)接入平臺,一體化的分布式 MQTT 消息服務(wù)和強大的 IoT 規(guī)則引擎,為高可靠、高性能的物聯(lián)網(wǎng)實時數(shù)據(jù)移動、處理和集成提供動力,助力企業(yè)快速構(gòu)建關(guān)鍵業(yè)務(wù)的 IoT 平臺與應(yīng)用。它就一個MQTT的Broker,消息的中轉(zhuǎn)站,終端側(cè)的上報消息能夠有序、高效、穩(wěn)定地傳遞給 Domoticz,它是功不可沒。

pYYBAGLb7HGAJdyXAAHi9qLHE4A819.png

Domoticz:Domoticz 是一個開源的智能家居系統(tǒng),通過它你可以監(jiān)測和控制各種設(shè)備比如:燈、開關(guān) ,各種傳感器、儀表比如: 溫度、雨、風(fēng)、紫外線、電、氣體、水 等等。 還可以向任一移動設(shè)備發(fā)送通知或警告。

SQLite: SQLite 是一個軟件庫,實現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的 SQL 數(shù)據(jù)庫引擎。SQLite 是在世界上最廣泛部署的 SQL 數(shù)據(jù)庫引擎,在我們的系統(tǒng)中,它承載的是整個系統(tǒng)的數(shù)據(jù)、配置、產(chǎn)品等核心數(shù)據(jù)的存儲,具有舉足輕重的地位。

Wechat服務(wù)后臺: 這部分并不是我開發(fā)的,也不是我所能控制的,羅列在此,只為了表示后端系統(tǒng)組成的完整性。

3.4 前端側(cè)

前端側(cè)包括的是開源智能家居系統(tǒng) Domoticz 的配置前端,通過這個前端頁面,可以快速地創(chuàng)建虛擬的智能產(chǎn)品,通過對接數(shù)據(jù)協(xié)議,實現(xiàn)對智能設(shè)備的管理和展示。

同時這個前端頁面可以兼容到PC端瀏覽器和移動端瀏覽器,帶有用戶登陸管控功能,有利于維護數(shù)據(jù)和產(chǎn)品的安全。

當(dāng)它在移動端使用時,可以實現(xiàn)無APP,直接使用手機瀏覽器就夠了,不會過多地消耗手機的存儲空間,很輕量化,依賴相對較少。

它與后端的 Domoticz 是典型的B/S網(wǎng)絡(luò)架構(gòu)模型,與之相對應(yīng)的有C/S網(wǎng)絡(luò)架構(gòu)模型。

B/S網(wǎng)絡(luò)架構(gòu),指的是Browser/Server(瀏覽器/服務(wù)器)架構(gòu),就是只需要安裝維護一個服務(wù)器,而客戶端采用瀏覽器的方式來運行軟件。它是隨著Internet技術(shù)而興起的,是對C/S結(jié)構(gòu)的一種變化和改進(jìn)。主要利用了WWW瀏覽器技術(shù),結(jié)合多種Script語言和新技術(shù),將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護和使用。它是一種全新的軟件系統(tǒng)構(gòu)造技術(shù),它只需要安裝一個瀏覽器和數(shù)據(jù)庫,就可以讓瀏覽器通過Web Server同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。

C/S網(wǎng)絡(luò)架構(gòu),它是一種網(wǎng)絡(luò)體系結(jié)構(gòu),其中客戶端是用戶運行應(yīng)用程序的PC端或者工作站,客戶端要依靠服務(wù)器來獲取資源。C/S架構(gòu)是通過提供查詢響應(yīng)而不是總文件傳輸來減少了網(wǎng)絡(luò)流量。它允許多用戶通過GUI前端更新到共享數(shù)據(jù)庫,在客戶端和服務(wù)器之間通信一般采用遠(yuǎn)程調(diào)用(RPC)或標(biāo)準(zhǔn)查詢語言(SQL)語句。

B/S網(wǎng)絡(luò)架構(gòu)的基本特征:

B / S架構(gòu)的優(yōu)點:

(1)該架構(gòu)不需要安裝客戶端,可以直接運行在Web瀏覽器中;

(2)B/S架構(gòu)可以直接放在Internet網(wǎng)絡(luò)上,從而達(dá)到通過某些特權(quán)來控制多客戶端訪問的目的以及交互方式;

(3)B/S架構(gòu)由于不需要安裝客戶端,因此不存在更新多個客戶端以及升級服務(wù)器等問題。

B / S架構(gòu)的缺點:

(1)在跨瀏覽器中,B/S架構(gòu)不是令人最滿意的架構(gòu),時常容易出現(xiàn)頁面兼容顯示的問題;

(2)在速度和安全性方面,仍然需要花費巨大的設(shè)計成本,這是B/S架構(gòu)中最大的問題;

(3)客戶端服務(wù)器交互是請求響應(yīng)模式,通常需要刷新頁面,這是不愿意看到客戶的。但是這個缺點在Ajax受歡迎之后該問題得到了一定程度的緩解。

網(wǎng)絡(luò)C/S架構(gòu)的基本特征:

(1)客戶端進(jìn)程包含特定于解決方案的邏輯,并提供用戶與應(yīng)用程序系統(tǒng)其余部分之間的接口。服務(wù)器進(jìn)程充當(dāng)管理共享資源(如數(shù)據(jù)庫,打印機,調(diào)制解調(diào)器或高性能處理器)的軟件引擎。

(2)前端任務(wù)和后端任務(wù)對計算資源有著根本不同的要求,例如處理器速度,內(nèi)存,磁盤速度和容量以及輸入/ 輸出設(shè)備。

(3)客戶端和服務(wù)器的硬件平臺和操作系統(tǒng)通常不相同??蛻舳撕头?wù)器進(jìn)程通過一組明確定義的標(biāo)準(zhǔn)應(yīng)用程序接口(API)和RPC進(jìn)行通信。

(4)C/S架構(gòu)的一個重要特征是可擴展性,它們可以水平或垂直縮放。水平擴展意味著添加或刪除客戶端,工作站只會對性能產(chǎn)生輕微影響。垂直擴展意味著遷移到更大更快的服務(wù)器計算機或多服務(wù)器中。

WEB端的顯示配圖如下所示:

pYYBAGLb7HeAG9SbAAF0U3ymWiY498.png

3.5 移動端側(cè)

這個移動端側(cè),包括兩個部分,一個是前面已經(jīng)提及的 Domoticz 在手機移動端瀏覽器依然可以保持很好的顯示兼容性,也能夠完成PC瀏覽器一模一樣的功能;但能放在移動端,它的便捷性就一下子提升了一個級別,并且無APP模式,大大提高了客戶使用的意愿。

另一個部分就是我們的國民APP微信,微信憑借著 10 億月活、8 億日活的運營數(shù)據(jù)牢牢控制住社交APP的頭把交椅,幾乎可以說是人人離不開微信,它確確實實地人們的生活帶來了便利。

通過對Domoticz系統(tǒng)的改裝,使得它在原本的事件通知上也支持推送消息到微信客戶端,這也將大大提升系統(tǒng)產(chǎn)品的易用性和可落地性。

4 系統(tǒng)設(shè)計說明

下面就系統(tǒng)的各個組件的設(shè)計,做簡要的說明。

4.1 硬件部分

硬件部分主要分為四大部分:MCU主控、Wi-Fi模組、各類傳感器、輸出設(shè)備。

MCU主控:N32G457

本次使用的MCU主控來自國民科技的32位高性能MCU,以下是它的板載資源介紹:

pYYBAGLb7HqAJaHFAASdaAFlDE0469.png

在我設(shè)計的這個系統(tǒng)中,我主要使用其UART1(debug功能)、UART2(連接ESP8266)、UART3(連接語音播報模塊)、還有6個GPIO(用于接入各類傳感器的輸入及告警信息的輸出)。

我的硬件實物連接圖如下所示:

poYBAGLb7H2AQ9cAAA32vzIBp_8038.png

Wi-Fi模組: ESP8266

我這里使用的搭建ESP8266 Wi-Fi芯片的模組ESP-12F,它是由安信可科技開發(fā)的,該模塊核心處理器 ESP8266 在較小尺寸封裝中集成了 業(yè)界領(lǐng)先的 Tensilica L106 超低功耗 32 位微型 MCU,帶有 16 位精簡模式,主頻支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板載天線。

各類傳感器:MQ系列煙感、燃?xì)獾葌鞲衅?/p>

這里主要包括系統(tǒng)中使用的煙霧傳感器、酒精傳感器、天然氣傳感器、空氣質(zhì)量傳感器,這幾個都是MQ氣體類傳感器。

MQ氣體傳感器使用的氣敏材料是在清潔空氣中電導(dǎo)率較低的二氧化錫(SnO2)。當(dāng)傳感器所處環(huán)境中存在可燃?xì)怏w時,傳感器的電導(dǎo)率隨空氣中可燃?xì)怏w濃度的增加而增大。使用簡單的電路即可將電導(dǎo)率的變化轉(zhuǎn)換為與該氣體濃度相對應(yīng)的輸出信號。MQ氣體傳感器對甲烷的靈敏度高,對丙烷、丁烷也有較好的靈敏度。這種傳感器可檢測多種可燃性氣體,特別是天然氣,是一款適合多種營養(yǎng)的低成本傳感器。

輸出設(shè)備:DY-SV17F語音播放模塊

DY-SV17F是一款智能語音模塊,集成IO分段觸發(fā),UART串口控制,ONE_line單總線串口控制,標(biāo)準(zhǔn)MP3等7種工作模式;板載5W D類功放,可直接驅(qū)動4Ω,3~5W喇叭;支持MP3,WAV解碼格式,板載32Mbit(4MByte)flash存儲音頻文件,可通過USB數(shù)據(jù)線連接電腦更新音頻文件。

4.2 軟件部分

軟件部分主要分為兩部分:終端固件部分和Domoticz消息推送定制部分。

4.2.1 終端固件開發(fā)

終端固件主要包括四大部分:N32G457的原廠BSP、RT-Thread實時操作系統(tǒng)、ESP8266相關(guān)的配置代碼使能、個性化的應(yīng)用邏輯代碼。

其中N32G457的原廠BSP基本不動,原廠和相關(guān)開發(fā)者已經(jīng)適配好了;通用的RT-Thread操作系統(tǒng)的代碼也不在此處的修改中,直接復(fù)用已有的代碼,這里使用的版本是4.0.2。

ESP8266相關(guān)的AT、網(wǎng)絡(luò)組件代碼也是現(xiàn)成的,使能配置之后就可以直接用了,還是非常的方便。不過這里其實我也是踩坑了,下面的項目復(fù)盤會講到。

所以這里重點講一下,應(yīng)用邏輯的代碼:主要包括幾個傳感器的檢測驅(qū)動、告警指示燈的控制邏輯、音頻播放模塊的驅(qū)動、按鍵觸發(fā)功能的處理等。

整個應(yīng)用軟件部分的程序框架如下圖所示:

poYBAGLb7IWAUKjoAACdyfr4PT8795.png

其中:

Main-Thread:執(zhí)行整個應(yīng)用的初始化,負(fù)責(zé)管理各個子線程的同步和銜接,比如告警信號產(chǎn)生時,觸發(fā)告警信號的對外上報,正是由Main-Thread來執(zhí)行的。

System-Config:用于完成整個系統(tǒng)相關(guān)的屬性配置,比如傳感器探測的周期設(shè)定、傳感器接入的GPIO設(shè)定、UART口的分配、EMQ后端定制的配置、Domticz后端傳感器編號的配置等等;這里的配置項都是全局生效的。

MQTT-Thread:承載整個應(yīng)用對外發(fā)送和對內(nèi)接收的網(wǎng)絡(luò)數(shù)據(jù)通道,告警信息的上報和傳感器數(shù)據(jù)的上報,都深度依賴這個線程。

WiFi-Thread:本線程主要用于定時探測Wi-Fi網(wǎng)絡(luò)的有效性,通過對網(wǎng)絡(luò)設(shè)備節(jié)點的判斷,為應(yīng)用的其他邏輯功能提供一定的參考。

Sensors-Thread: 由于所選用的幾種傳感器都是同一類傳感器,且都是IO類的傳感器,所以通過列表的形式把他們定義在一起,方便輪詢管理;主要的工作就是定時采集數(shù)據(jù),判斷是否有對應(yīng)的傳感器觸發(fā)了告警。

Alert-LED-Thread:本線程要做的是事情就是在Sensors-Thread產(chǎn)生某一種或某幾種告警信號后,里面通過LED的閃爍,達(dá)到以視覺沖擊的告警目的。

Alert-Sound-Thread:本線程與Alert-LED-Thread線程類似,同樣都是處理告警信號的對外傳遞,只不過它用的是聲音的聽覺沖擊來達(dá)到告警的目的。它與Sensors模塊通過郵箱來傳遞播報哪一條報警信息,這與Domoticz后端綁定的通知信息是對等的。

Key-Scan-Thread:這個線程需要做的事情,主要是當(dāng)產(chǎn)生告警信號后,燈亮鈴響時,可以通過按鍵來消除LED告警和聲音告警,使得系統(tǒng)檢測恢復(fù)到初始狀態(tài)。

在軟件設(shè)計過程中,所有涉及到線程間同步的機制,均采用信號量和消息隊列來實現(xiàn),主線程在這其中起到承上啟下的作用。

總結(jié)一下,本次在使用RT-Thread操作系統(tǒng)的時候,使用到了其串口設(shè)備驅(qū)動、GPIO設(shè)備驅(qū)動、AT組件、SAL 套接字抽象層、信號量、郵箱等核心模塊,整體使用上還是挺順手的。

基本代碼示意圖如下所示:

pYYBAGLb7IaAR8zFAAAQ5Po6iPk316.png

poYBAGLb7IeAUrSPAAEC_4mk_88785.png

4.2.2 Domoticz推送定制

這里主要的軟件實現(xiàn)就是,就是將原本Domoticz中需要通過Email推送出去的消息,轉(zhuǎn)到通過HTTP接口推送到微信中,從而關(guān)注了對應(yīng)微信的人員就可以收到對應(yīng)的告警信息推送。這里用到了一個python腳本實現(xiàn)HTTP接口,然后POST消息到微信中。

基礎(chǔ)的改動代碼正如下圖所示:

pYYBAGLb7IiAXcpUAAERXNQnSI0324.png

4.3 私有化部署的 IoT 系統(tǒng)

這里提及的私有化部署,主要是將IoT后端系統(tǒng)部署在個人云服務(wù)器上,以便于通過公網(wǎng)快速訪問;同時,由于是私有化部署,不受限于任何的IoT云平臺,這對比外面普通對接阿里云平臺、涂鴉云平臺、微信云平臺、小米云平臺、百度云平臺等等,是有一個的優(yōu)勢的;至少在個人家庭數(shù)據(jù)的沉淀和數(shù)據(jù)安全上,沒有那么地?fù)?dān)心。

這里的系統(tǒng)部署,包括幾個部分:

EMQ的部署:

EMQ的部署相對比較容易,基本參照官方教程就可以完成,感興趣的可以去了解他們的github開源倉庫。

Domoticz的部署:

這里其實我是踩坑了的,下文的經(jīng)驗總結(jié)會細(xì)講。總之,一開始各種不順,后面推過一系列的摸索學(xué)習(xí),決定采用修改Domoticz的源碼,借助企業(yè)微信的推送功能,打通系統(tǒng)告警消息推送到微信的功能。

企業(yè)微信相關(guān)的部署:

從這里我們知道,要完成Domoticz的通知推送與微信消息推送打通,我們需要借助企業(yè)微信的應(yīng)用功能,企業(yè)微信開放了相關(guān)的接口來實現(xiàn)這部分功能,感興趣的可以參考下 官網(wǎng)的文檔介紹,當(dāng)然也可以參考下我采用的 引路文章。

WEB訪問域名的配置:

當(dāng)Domiticz在私有云服務(wù)器上部署成功之后,基本就可以通過公網(wǎng)IP加對應(yīng)端口的形式,以HTTP或HTTPS的方式訪問;由于IP和端口不容易記憶且容易拼錯,所以才衍生了配置域名訪問的需求,之前我配置過類似的功能,比如使用 http://yyds.recan-li.cn就可以訪問我的CSDN主頁,之前我寫過類似的教程,基本參考教程一步步做可以完成相關(guān)的配置功能了。配置完的效果就是,我可以通過 http://smart.recan-li.cn 就可以訪問Domoticz的WEB配置前端,而不需要輸入繁瑣難記的IP+端口了。

5 項目實施過程

主要實施過程如下所示:

1)搭建后端系統(tǒng),先把EMQ這個MQTT broker搭建起來,使得終端和后端的數(shù)據(jù)通道得以建立起來;

2)部署安裝Domoticz,可選用zip包解壓安裝或源碼編譯安裝,但由于要定制化告警消息推送到微信,這里強烈建議使用源碼級編譯安裝;當(dāng)Domoticz安裝運行起來后,其對應(yīng)的SQLite數(shù)據(jù)庫也是同步在工作的;這時WEB端的訪問服務(wù)也是同步開啟了;

3)通過Domoticz的WEB端配置,建立MQTT類型傳感器,同時在平臺建立與終端一一對應(yīng)的虛擬傳感器;這一步完成之后,便可以使用MQTT.fx等MQTT調(diào)試工具模擬對Domoticz上的虛擬設(shè)備進(jìn)行狀態(tài)推送,看其對應(yīng)的狀態(tài)是否會發(fā)生改變;

4)搭建企業(yè)微信的環(huán)境,包括創(chuàng)建一個企業(yè)微信賬號,再在企業(yè)微信下創(chuàng)建一個應(yīng)用,取得企業(yè)ID、應(yīng)用ID和應(yīng)用私鑰;有這個要素之后,就可以使用微信推送的HTTP接口做消息推送的模擬測試;

5)再在Domoticz源碼上集成應(yīng)用HTTP接口推送(告警)消息到微信客戶端的功能代碼;

6)開發(fā)終端的固件,調(diào)試Wi-Fi通訊,MQTT上下行,以及各個傳感器的工作;

7)需要關(guān)注微信推送消息的人員掃碼關(guān)注企業(yè)微信中對應(yīng)的應(yīng)用,同時打開微信客戶端的通知顯示權(quán)限,這樣當(dāng)新的消息通過企業(yè)微信應(yīng)用推送下來時,手機端就會彈窗提示;

8)終端工作起來,嘗試觸發(fā)一些告警狀態(tài),觀察終端的處理邏輯和狀態(tài)上報到Domoticz的數(shù)據(jù)更新,同時觀察告警消息往微信客戶端的推送情況。

通過上述一系列的實施之后,整個私有化部署的家用式智能告警系統(tǒng)就跑起來了,enjoy it !

6 項目效果顯示

相關(guān)的展示圖片和演示視頻,見下文:

【項目展示圖片】

pYYBAGLb7IuAMCVwAAlH2SHP0qE613.png

poYBAGLb7I2AeO0GAAwJBLi8SCU660.png

pYYBAGLb7I-ASSgLAALsAu_6N9Y329.png

【項目演示視頻】見 B站視頻。

poYBAGLb7JGAIQPaAALmExo1NYk575.jpg

【項目開源代碼】n32g457_esp8266_smart_home

pYYBAGLb7JKAYKBhAALqU6IyMjo989.png

7 項目復(fù)盤

7.1 項目踩的那些坑

RT-Thread Studio的配置項摸索半天,想去搜索一下配置項,又不知何從做起,我是深度Linux環(huán)境開發(fā)者,平時一個grep能解決的事情,我不知道在Windows下有什么好的替代方案,慢不慢先不說,先得有。之前在Linux都是menuconfig,我始終覺得那個更親切。知其然,也知其所以然。

ESP8266的固件燒錄耽誤老半天,上次RDC大會抽中的ESP-12F開發(fā)板,默認(rèn)出來的lua版本,而非AT版本;由于RT-Thread的組件是需要AT版本的,于是找個好幾個教程,費了好大勁才把AT調(diào)出來,期間各種下載失?。ㄟ€是下載到90%才失敗的那種),各種下載工具折騰,下載速度也慢;本來想偷下懶用ESP8266省事的,硬是折騰得想臨時換模組。

ESP8266的AT是通了,但是編譯個N32G457固件使用UART2帶ESP8266,死活work不起來;無奈求助于RT-Thread,很快找到了論壇好友 crystal266 的 基于RT-Thread和N32G457的智能家居demo ,看到他已經(jīng)完成了全部流程,應(yīng)該可以為我所有,所以我借用他的配置代碼,果然ESP8266的通訊能力一下子就拉滿了。那種感覺好像,項目馬上就可以結(jié)項了,絲滑地很。

Domotics的郵件通知功能,在最新版本上就是各個渣渣,還特意閱讀了一個國外同行遇到的同樣的問題,看了他們的issue溝通,然后依然沒有任何思緒。一路執(zhí)行,我放棄了stable版本的Domoticz安裝版本(zip包直接拉起bin文件)轉(zhuǎn)向源碼自行編譯編譯,重新操刀在發(fā)送郵件通知的地方,把通知重定向發(fā)往微信里面。再次,感慨,開源大法好,任何字節(jié)細(xì)致都逃不過你的法眼!你想怎么玩就怎么玩!

具體如何修改相關(guān)的代碼,可以參考上面的4.2.2小節(jié)。

Domiticz是我目前遇到編譯開源軟件,最蛋疼的一次,各種問題,真正的是走一步出問題一步,然后解決一步再前進(jìn)一步,期間過程遇到各種奇葩問題,編譯慢也是知道吐槽一下,所幸最后還是編譯出來了,能夠把它跑起來。

之前在配置Domoticz的郵箱通知功能失敗之后,我考慮過使用它的SMS短信通知功能,無奈Domoticz的大神們都是國外的,給出的接口都是國外公司的,我想注冊一個賬號體驗下,居然死活注冊不成功!說好的技術(shù)無國界呢?放棄!

接下來各種搜索推送通知方案,短信、郵件、HTTP、語音等,了解了阿里云、騰訊云的各種相關(guān)服務(wù),無奈要不是接口做的相對我來說復(fù)雜了些,要不就是功能不能很好地滿足我的功能需求(提供的功能需求限制太多);差點放棄了,后面被我檢索到一篇關(guān)于企業(yè)微信支持開發(fā)者推送消息的文章,讓我眼前一亮,心想這才是我想的為所欲為,這個太棒了。一個python腳本配置一下就可以輕松搞起來,你還能找到比這個更簡單的嗎?

微信推送算是搞定了,接下來的Domoticz的域名網(wǎng)址配置,又出問題了;之前我配置過使用http://yyds.recan-li.cn就可以訪問CSDN主頁的方法,我使用該方法依葫蘆畫瓢,設(shè)置了http://smart.recan-li.cn的域名訪問Domoticz,結(jié)果卻出現(xiàn)了nginx返回http502. 真是無可奈何。

終端側(cè)的槽點倒是沒多少了,但這樣需要重點吐槽下 N32G457在RT-Thread Studio下使用pyocd.exe,時好時壞,有些郁悶。

好像N45G357這板子還有點脆弱,差點焊廢了,差點芯片就起不來了!

最后一個不算是坑的點:使用RT-Thread開發(fā)IoT應(yīng)用這種量級的代碼,用起來還是倍兒爽,希望RT-Thread能把這份爽繼續(xù)發(fā)揚下去。

7.2 項目帶來的啟發(fā)

DDL是第一生產(chǎn)力

我始終覺得我是一個無形之中在不斷踐行這個slogan的開發(fā)者,雖然我知道這個習(xí)慣真的很不好,每次在DDL之前總是付出比平常多幾倍的時間和精力去努力完成既定的任務(wù)和計劃,其實這個投入和產(chǎn)出是非常不正常也不科學(xué)的。所以,當(dāng)我深刻意識到這點之后,我也會努力克制住平時的惰性,爭取把時間計劃做得更細(xì)致,把有限的時間最大化地利用,做一個生活和技術(shù)都自律的人。

優(yōu)先解決主要矛盾

我剛?cè)胄械臅r候,帶我的師傅經(jīng)常跟我們說一句話:“先解決有沒有的問題!”其實,跟這里說的優(yōu)先解決主要矛盾是一樣的,比如你搭這個智能化 IoT 系統(tǒng),如何能快速搭建好產(chǎn)品原型,把終端側(cè)的數(shù)據(jù)和后端打通,那首先你必須得解決終端側(cè)聯(lián)網(wǎng)的問題,這個就是優(yōu)先級最高的,后端系統(tǒng)到可能不是最先的,你有網(wǎng)絡(luò)之后,你可以先用一個本地的MQTT broker一樣可以看到終端側(cè)的數(shù)據(jù)上報,而數(shù)據(jù)端的采集、處理邏輯,我倒認(rèn)為是最次要的;因為你在此之前,你完全可以模擬數(shù)據(jù),你想要什么數(shù)據(jù)就有什么數(shù)據(jù),但是最終在整個數(shù)據(jù)傳到鏈條打通之后,終端側(cè)數(shù)據(jù)的準(zhǔn)確性及多樣化的業(yè)務(wù)邏輯往往可以起到錦上添花的效果。

努力把你當(dāng)那些 TODO 消滅掉

我相信每個人都有自己很多的TODO,但是往往程序猿的TODO又好像代碼里的注釋寫的那種,不僅騙了自己,同時也騙了別人。而項目中的TODO往往就是那些需要優(yōu)化,需要沉淀,需要突破的地方,就好像我這個項目一樣,比如如何做好更好的用戶體驗?比如如何快速、準(zhǔn)確地完成私有化部署?比如如何快速地迭代新的終端側(cè)功能?比如這個產(chǎn)品有沒有更大的潛在商業(yè)價值?這一系列的TODO往往才是核心競爭力的體現(xiàn),只有把它們踏踏實實消滅了,才有可能帶來新的臺階。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1412

    瀏覽量

    41985
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    RT-Thread榮獲2025優(yōu)秀開源項目 | 新聞速遞

    6月底,RT-Thread睿賽德受邀參與由上海開源信息技術(shù)協(xié)會主辦的2025上海開源創(chuàng)新精英薈。上海市商委副主任張杰出席會議并致辭。RT-Thread嵌入操作系統(tǒng)項目憑借其卓越的技術(shù)
    的頭像 發(fā)表于 07-04 09:04 ?1716次閱讀
    <b class='flag-5'>RT-Thread</b>榮獲2025優(yōu)秀開源項目 | 新聞速遞

    揭秘RT-Thread上的AUTOSAR CP系統(tǒng)

    標(biāo)準(zhǔn),同時保留RT-Thread的POSIX支持與可裁剪性,實現(xiàn)了通信隔離、診斷模塊集成等關(guān)鍵技術(shù)突破,為車載系統(tǒng)提供高安全、可擴展的解決方案。車載電子系統(tǒng)與傳統(tǒng)
    的頭像 發(fā)表于 06-23 20:22 ?2327次閱讀
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP<b class='flag-5'>系統(tǒng)</b>

    玄鐵加入RT-Thread 高級會員合作伙伴 | 戰(zhàn)略新篇

    今天起,玄鐵XuanTie正式成為RT-Thread高級會員合作伙伴。此次合作標(biāo)志著雙方將在嵌入操作系統(tǒng)創(chuàng)新、RISC-V生態(tài)構(gòu)建及行業(yè)應(yīng)用落地等領(lǐng)域展開深度協(xié)同,加速推動開源技術(shù)的產(chǎn)業(yè)
    的頭像 發(fā)表于 06-23 20:22 ?462次閱讀
    玄鐵加入<b class='flag-5'>RT-Thread</b> 高級會員合作伙伴 | 戰(zhàn)略新篇

    2025 RT-Thread全球技術(shù)大會議程正式發(fā)布!

    。2024RT-Thread全球技術(shù)大會,由開源操作系統(tǒng)RT-Thread發(fā)起,并聯(lián)合國內(nèi)外領(lǐng)先企業(yè)的重磅嘉賓,攜手國內(nèi)外頂尖企業(yè)專家與超3萬名線上參與者,共議邊緣計算、嵌入
    的頭像 發(fā)表于 05-27 19:28 ?686次閱讀
    2025 <b class='flag-5'>RT-Thread</b>全球技術(shù)大會議程正式發(fā)布!

    RT-Thread嵌入操作系統(tǒng)專業(yè)培訓(xùn)班來上海啦!

    RT-Thread官方將在上海(RT-Thread大本營)發(fā)起為期三天的嵌入操作系統(tǒng)專業(yè)培訓(xùn)班!本次培訓(xùn)將會深入講解RT-Thread嵌入
    的頭像 發(fā)表于 02-27 17:27 ?441次閱讀
    <b class='flag-5'>RT-Thread</b>嵌入<b class='flag-5'>式</b>操作<b class='flag-5'>系統(tǒng)</b>專業(yè)培訓(xùn)班來上海啦!

    如何將RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默認(rèn)支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE上呢?本文內(nèi)容比較簡單但稍有瑣碎,希望對有需要的小伙伴有所幫助。
    的頭像 發(fā)表于 02-13 10:37 ?1940次閱讀
    如何將<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    RT-Thread應(yīng)用開發(fā)寒假師資培訓(xùn)——西安站

    隨著物聯(lián)網(wǎng)和智能系統(tǒng)的快速發(fā)展,嵌入成為當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。為進(jìn)一步提升全國大學(xué)生在嵌入芯片及系統(tǒng)設(shè)計領(lǐng)域的創(chuàng)新能
    的頭像 發(fā)表于 12-11 01:06 ?688次閱讀
    <b class='flag-5'>RT-Thread</b>應(yīng)用開發(fā)寒假師資培訓(xùn)——西安站

    RT-Thread操作系統(tǒng)應(yīng)用開發(fā)寒假師資培訓(xùn)

    隨著物聯(lián)網(wǎng)和智能系統(tǒng)的快速發(fā)展,嵌入成為當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。為進(jìn)一步提升全國大學(xué)生在嵌入芯片及系統(tǒng)設(shè)計領(lǐng)域的創(chuàng)新能
    的頭像 發(fā)表于 12-06 01:06 ?557次閱讀
    <b class='flag-5'>RT-Thread</b>操作<b class='flag-5'>系統(tǒng)</b>應(yīng)用開發(fā)寒假師資培訓(xùn)

    RT-Thread聯(lián)合河北大學(xué)發(fā)起嵌入操作系統(tǒng)專業(yè)班-保定站

    RT-Thread官方將在11月23至24日河北省保定市(河北大學(xué))發(fā)起為期兩天的嵌入操作系統(tǒng)專業(yè)培訓(xùn)班暨RT-Thread師資培訓(xùn)!本次培訓(xùn)將會深入講解
    的頭像 發(fā)表于 11-16 01:09 ?542次閱讀
    <b class='flag-5'>RT-Thread</b>聯(lián)合河北大學(xué)發(fā)起嵌入<b class='flag-5'>式</b>操作<b class='flag-5'>系統(tǒng)</b>專業(yè)班-保定站

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文將介紹如何進(jìn)行RT-ThreadCan移植。接下來我們要完成CAN_FD的驅(qū)動移植,并正常啟動RT-T
    的頭像 發(fā)表于 11-13 01:03 ?2137次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實踐

    開源共生 商業(yè)共贏 | RT-Thread 2024開發(fā)者大會報名啟動!

    開發(fā)者大會將以“開源共生,商業(yè)共贏”為主題,將于2024年12月21日全天在上海臨港中心舉行。開源RT-Thread如何實現(xiàn)商業(yè)?這一直是外界對RT-Thread
    的頭像 發(fā)表于 10-29 08:06 ?968次閱讀
    開源共生 商業(yè)共贏 | <b class='flag-5'>RT-Thread</b> 2024開發(fā)者大會報名啟動!

    新書發(fā)布——《RT-Thread嵌入實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

    我們非常高興地宣布,由鄭苗秀、沈鴻飛和廖建尚編著的《RT-Thread嵌入實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》一書正式發(fā)布。本書的編寫團隊由多位在嵌入和實時操作
    的頭像 發(fā)表于 09-03 08:06 ?1387次閱讀
    新書發(fā)布——《<b class='flag-5'>RT-Thread</b>嵌入<b class='flag-5'>式</b>實時操作<b class='flag-5'>系統(tǒng)</b>內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來襲!

    親愛的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開發(fā)者線下培訓(xùn)即將拉開帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國家,為開發(fā)者提供一個深入學(xué)習(xí)RT-Thread嵌入
    的頭像 發(fā)表于 08-07 08:35 ?2977次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來襲!

    【好書推薦】RT-Thread設(shè)備驅(qū)動開發(fā)指南

    近年來國內(nèi)芯片產(chǎn)業(yè)和物聯(lián)網(wǎng)產(chǎn)業(yè)的快速崛起,行業(yè)發(fā)展迫切需要更多人才,尤其需要掌握嵌入操作系統(tǒng)等底層技術(shù)的人才。隨著RT-Thread被更廣泛地應(yīng)用于行業(yè)中,開發(fā)者對嵌入驅(qū)動開發(fā)的需
    的頭像 發(fā)表于 08-01 08:35 ?1342次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動開發(fā)指南

    RT-Thread內(nèi)部機制大揭秘,帶你深入操作系統(tǒng)內(nèi)核

    一、RT-Thread概述RT-Thread是一款具有顯著優(yōu)勢的開源嵌入實時操作系統(tǒng)。它不僅具備輕量級、實時性強的特點,還擁有廣泛的開源社區(qū)支持和豐富的應(yīng)用場景。在輕量級方面,
    的頭像 發(fā)表于 08-01 08:11 ?5177次閱讀
    <b class='flag-5'>RT-Thread</b>內(nèi)部機制大揭秘,帶你深入操作<b class='flag-5'>系統(tǒng)</b>內(nèi)核