1 前言
近些年來,隨著科技的更新迭代,IoT行業迎來了一個快速膨脹發展的窗口期,我們隨之可見的是,越來越多的智能化產品進入到了我們的日常生活中,包括發展比較早的智能家居類產品、智能家電類產品,還有近些年非?;馃岬闹悄艽┐黝惍a品,這些都得到了市場很好的反饋。
科技不僅能給人們帶來幸福感的提升,而且隨著智能設備越來越發達,在某些特定的場景下,它往往還能救人于危難之時。
本文要講述的正是這樣一套智能的IoT系統在家庭環境下的部署應用,它能夠幫助人們解決一些危險難題。
2 項目簡介
2.1 項目名稱
基于N32G457和RT-Thread全新打造的私有化定制家用式智能告警系統
2.2 設計思路
主體思路采用 N32G457 芯片作為終端側的主控MCU,搭載國產實時操作系統 RT-Thread,外接 ESP8266 Wi-Fi 模塊,以及若干用于檢測的傳感器,比如煙霧傳感器、酒精傳感器、天然氣傳感器、空氣質量傳感器等,將檢測的信息轉換成可能產生的告警數字信號,通過板載告警指示燈和告警警報器本地輸出告警信息,同時通過Wi-Fi的網絡能力,將告警信息透過網絡直接推送到關注告警信息的相關人員,實現相對實時的安全解決方案。
2.3 主要解決的問題
主要的解決的問題場景是普通家用環境下的危險因素告警檢測,這其中包含最基本的煙霧檢測(對應明火燃燒)、酒精檢測(對應易燃液體)、天然氣泄漏檢測(對應易燃易爆)、空氣質量檢測(對應不明物品燒焦產生有害的氣體充斥在家庭環境中)。
還有一個家庭環境中,上述的危險因素會成倍放大的場景是,家中只有獨居老人的時候。比如,我的家人就很經常做飯忘了關天然氣,但是我們年輕人會經常發現并及時提醒他們,才不至于釀成悲劇。但是,獨居老人就是很大的問題,因老人們年紀上來了,嗅覺、味覺、聽覺、視力等多項身體機能指標都下降得很厲害,面對上述場景,也難快速地發現危險并做出有效的解決措施,那么這就需要一套更加智能的解決方案及時發現這些危險,以最現眼最宏觀的方式告知獨居老人,及時接觸風險。
我這個智能解決方案能夠很好地解決這個場景問題,一方面它自帶了多種探測傳感器,能夠及時發現危險;同時當危險發生時,通過告警指示燈閃爍和警報器盛宴告警,最大程序地提醒獨居老人,危險已經發生,應盡快解除危險;另一方面,這個智能系統支持獨居老人的子女訂閱關注告警系統推送的危險信息,通過 微信 的及時性,直接傳達到子女手中,這也能夠保證危險發生的第一時間能夠得到子女的關注和提醒,得以順利協助老人解除危險。
2.4 項目創新點
輕量化的終端設計,板載RT-Thread操作系統,方便應用功能開發,可快速橫向擴展功能;
終端設備部署可實現分布式,不局限于具體的部署環境;
整套IoT后端系統完全私有化部署,不受限于任何IoT云平臺;數據安全能夠得到很好的保證;
報警推送消息的內容可完全自定義配置,設計非常靈活;
接收報警推送的人員支持可配置,可遠程實時推送告警消息到多個人員;
面對 獨居老人 的相關 安全問題,能夠很好地提供高效的解決方案。
3 系統架構介紹
3.1 系統核心架構圖
整個系統的核心架構圖如下所示:
從上面這個核心架構圖中,我們可以看到整個IoT系統組成,包括智能設備終端側、WEB配置前端側、智能IoT系統平臺后端側,同時還有手機移動端。下面就整個系統的幾大重要組件,我會一一進行簡要講解。
3.2 終端側
終端側主要承載的是現場環境要素的檢測,同時做一些邊緣側的應用邏輯處理,還需要具備對外網絡的通訊能力,能在第一時間把緊要消息通過網絡通道傳輸出去。
終端側包括的核心組件有:國民技術的 N32G457,搭載的是國產實時操作系統 RT-Thread,同時外設板載有 ESP8266 Wi-Fi通訊模組、告警指示燈、聲音告警器、煙霧傳感器、酒精傳感器、天然氣傳感器、空氣質量傳感器、若干按鍵等等。
終端側不僅包含設備硬件,還需要對應的固件軟件,兩者相輔相成,共同完成終端側的功能邏輯。
3.3 后端側
這里的后端側,從細分來看,總有4部分:
EMQ :「隨處運行,無限連接,任意集成」云原生分布式物聯網接入平臺,一體化的分布式 MQTT 消息服務和強大的 IoT 規則引擎,為高可靠、高性能的物聯網實時數據移動、處理和集成提供動力,助力企業快速構建關鍵業務的 IoT 平臺與應用。它就一個MQTT的Broker,消息的中轉站,終端側的上報消息能夠有序、高效、穩定地傳遞給 Domoticz,它是功不可沒。
Domoticz :Domoticz 是一個開源的智能家居系統,通過它你可以監測和控制各種設備比如:燈、開關 ,各種傳感器、儀表比如:溫度、雨、風、紫外線、電、氣體、水 等等。還可以向任一移動設備發送通知或警告。
SQLite : SQLite 是一個軟件庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。SQLite 是在世界上最廣泛部署的 SQL 數據庫引擎,在我們的系統中,它承載的是整個系統的數據、配置、產品等核心數據的存儲,具有舉足輕重的地位。
Wechat服務后臺 : 這部分并不是我開發的,也不是我所能控制的,羅列在此,只為了表示后端系統組成的完整性。
3.4 前端側
前端側包括的是開源智能家居系統 Domoticz 的配置前端,通過這個前端頁面,可以快速地創建虛擬的智能產品,通過對接數據協議,實現對智能設備的管理和展示。
同時這個前端頁面可以 兼容 到PC端瀏覽器和移動端瀏覽器,帶有用戶登陸管控功能,有利于維護數據和產品的安全。
當它在移動端使用時,可以實現無APP,直接使用手機瀏覽器就夠了,不會過多地消耗手機的存儲空間,很輕量化,依賴相對較少。
它與后端的 Domoticz 是典型的 B/S網絡架構模型,與之相對應的有 C/S網絡架構模型。
B/S網絡架構,指的是 Browser/Server(瀏覽器/服務器) 架構,就是只需要安裝維護一個服務器,而客戶端采用瀏覽器的方式來運行軟件。它是隨著Internet技術而興起的,是對C/S結構的一種變化和改進。主要利用了WWW瀏覽器技術,結合多種Script語言和新技術,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。它是一種全新的軟件系統構造技術,它只需要安裝一個瀏覽器和數據庫,就可以讓瀏覽器通過Web Server同數據庫進行數據交互。
C/S網絡架構,它是一種網絡體系結構,其中客戶端是用戶運行應用程序的PC端或者工作站,客戶端要依靠服務器來獲取資源。C/S架構是通過提供查詢響應而不是總文件傳輸來減少了網絡流量。它允許多用戶通過GUI前端更新到共享數據庫,在客戶端和服務器之間通信一般采用遠程調用(RPC)或標準查詢語言(SQL)語句。
B/S網絡架構的基本特征:
B / S架構的優點:
(1)該架構不需要安裝客戶端,可以直接運行在Web瀏覽器中;
(2)B/S架構可以直接放在Internet網絡上,從而達到通過某些特權來控制多客戶端訪問的目的以及交互方式;
(3)B/S架構由于不需要安裝客戶端,因此不存在更新多個客戶端以及升級服務器等問題。
B / S架構的缺點:
(1)在跨瀏覽器中,B/S架構不是令人最滿意的架構,時常容易出現頁面兼容顯示的問題;
(2)在速度和安全性方面,仍然需要花費巨大的設計成本,這是B/S架構中最大的問題;
(3)客戶端服務器交互是請求響應模式,通常需要刷新頁面,這是不愿意看到客戶的。但是這個缺點在Ajax受歡迎之后該問題得到了一定程度的緩解。
網絡C/S架構的基本特征:
(1)客戶端進程包含特定于解決方案的邏輯,并提供用戶與應用程序系統其余部分之間的接口。服務器進程充當管理共享資源(如數據庫,打印機,調制解調器或高性能處理器)的軟件引擎。
(2)前端任務和后端任務對計算資源有著根本不同的要求,例如處理器速度,內存,磁盤速度和容量以及輸入/ 輸出設備。
(3)客戶端和服務器的硬件平臺和操作系統通常不相同??蛻舳撕头掌鬟M程通過一組明確定義的標準應用程序接口(API)和RPC進行通信。
(4)C/S架構的一個重要特征是可擴展性,它們可以水平或垂直縮放。水平擴展意味著添加或刪除客戶端,工作站只會對性能產生輕微影響。垂直擴展意味著遷移到更大更快的服務器計算機或多服務器中。
WEB端的顯示配圖如下所示:
3.5 移動端側
這個移動端側,包括兩個部分,一個是前面已經提及的 Domoticz 在手機移動端瀏覽器依然可以保持很好的顯示兼容性,也能夠完成PC瀏覽器一模一樣的功能;但能放在移動端,它的便捷性就一下子提升了一個級別,并且無APP模式,大大提高了客戶使用的意愿。
另一個部分就是我們的 國民APP微信,微信憑借著 10 億月活、8 億日活的運營數據牢牢控制住社交APP的頭把交椅,幾乎可以說是人人離不開微信,它確確實實地人們的生活帶來了便利。
通過對Domoticz系統的改裝,使得它在原本的事件通知上也支持推送消息到微信客戶端,這也將大大提升系統產品的易用性和可落地性。
4 系統設計說明
下面就系統的各個組件的設計,做簡要的說明。
4.1 硬件部分
硬件部分主要分為四大部分:MCU主控、Wi-Fi模組、各類傳感器、輸出設備。
MCU主控 :N32G457
本次使用的MCU主控來自國民科技的32位高性能MCU,以下是它的板載資源介紹:
在我設計的這個系統中,我主要使用其UART1(debug功能)、UART2(連接ESP8266)、UART3(連接語音播報模塊)、還有6個GPIO(用于接入各類傳感器的輸入及告警信息的輸出)。
我的硬件實物連接圖如下所示:
Wi-Fi模組 : ESP8266
我這里使用的搭建ESP8266 Wi-Fi芯片的模組ESP-12F,它是由安信可科技開發的,該模塊核心處理器 ESP8266 在較小尺寸封裝中集成了 業界領先的 Tensilica L106 超低功耗 32 位微型 MCU,帶有 16 位精簡模式,主頻支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板載天線。
各類傳感器 :MQ系列煙感、燃氣等傳感器
這里主要包括系統中使用的煙霧傳感器、酒精傳感器、天然氣傳感器、空氣質量傳感器,這幾個都是MQ氣體類傳感器。
MQ氣體傳感器使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫(SnO2)。當傳感器所處環境中存在可燃氣體時,傳感器的電導率隨空氣中可燃氣體濃度的增加而增大。使用簡單的電路即可將電導率的變化轉換為與該氣體濃度相對應的輸出信號。MQ氣體傳感器對甲烷的靈敏度高,對丙烷、丁烷也有較好的靈敏度。這種傳感器可檢測多種可燃性氣體,特別是天然氣,是一款適合多種營養的低成本傳感器。
輸出設備 :DY-SV17F語音播放模塊
DY-SV17F是一款智能語音模塊,集成IO分段觸發,UART串口控制,ONE_line單總線串口控制,標準MP3等7種工作模式;板載5W D類功放,可直接驅動4Ω,3~5W喇叭;支持MP3,WAV解碼格式,板載32Mbit(4MByte)flash存儲音頻文件,可通過USB數據線連接電腦更新音頻文件。
4.2 軟件部分
軟件部分主要分為兩部分:終端固件部分和Domoticz消息推送定制部分。
4.2.1 終端固件開發
終端固件主要包括四大部分:N32G457的原廠BSP、RT-Thread實時操作系統、ESP8266相關的配置代碼使能、個性化的應用邏輯代碼。
其中N32G457的原廠BSP基本不動,原廠和相關開發者已經適配好了;通用的RT-Thread操作系統的代碼也不在此處的修改中,直接復用已有的代碼,這里使用的版本是 4.0.2 。
ESP8266相關的AT、網絡組件代碼也是現成的,使能配置之后就可以直接用了,還是非常的方便。不過這里其實我也是踩坑了,下面的項目復盤會講到。
所以這里重點講一下,應用邏輯的代碼:主要包括幾個傳感器的檢測驅動、告警指示燈的控制邏輯、音頻播放模塊的驅動、按鍵觸發功能的處理等。
整個應用軟件部分的程序框架如下圖所示:
其中:
Main-Thread :執行整個應用的初始化,負責管理各個子線程的同步和銜接,比如告警信號產生時,觸發告警信號的對外上報,正是由Main-Thread來執行的。
System-Config :用于完成整個系統相關的屬性配置,比如傳感器探測的周期設定、傳感器接入的GPIO設定、UART口的分配、EMQ后端定制的配置、Domticz后端傳感器編號的配置等等;這里的配置項都是全局生效的。
MQTT-Thread :承載整個應用對外發送和對內接收的網絡數據通道,告警信息的上報和傳感器數據的上報,都深度依賴這個線程。
WiFi-Thread :本線程主要用于定時探測Wi-Fi網絡的有效性,通過對網絡設備節點的判斷,為應用的其他邏輯功能提供一定的參考。
Sensors-Thread : 由于所選用的幾種傳感器都是同一類傳感器,且都是IO類的傳感器,所以通過列表的形式把他們定義在一起,方便輪詢管理;主要的工作就是定時采集數據,判斷是否有對應的傳感器觸發了告警。
Alert-LED-Thread :本線程要做的是事情就是在Sensors-Thread產生某一種或某幾種告警信號后,里面通過LED的閃爍,達到以視覺沖擊的告警目的。
Alert-Sound-Thread :本線程與Alert-LED-Thread線程類似,同樣都是處理告警信號的對外傳遞,只不過它用的是聲音的聽覺沖擊來達到告警的目的。它與Sensors模塊通過郵箱來傳遞播報哪一條報警信息,這與Domoticz后端綁定的通知信息是對等的。
Key-Scan-Thread :這個線程需要做的事情,主要是當產生告警信號后,燈亮鈴響時,可以通過按鍵來消除LED告警和聲音告警,使得系統檢測恢復到初始狀態。
在軟件設計過程中,所有涉及到線程間同步的機制,均采用信號量和消息隊列來實現,主線程在這其中起到承上啟下的作用。
總結一下,本次在使用RT-Thread操作系統的時候,使用到了其 串口設備驅動、GPIO設備驅動、AT組件、SAL 套接字抽象層、信號量、郵箱 等核心模塊,整體使用上還是挺順手的。
基本代碼示意圖如下所示:
4.2.2 Domoticz推送定制
這里主要的軟件實現就是,就是將原本Domoticz中需要通過Email推送出去的消息,轉到通過HTTP接口推送到微信中,從而關注了對應微信的人員就可以收到對應的告警信息推送。這里用到了一個python腳本實現HTTP接口,然后POST消息到微信中。
基礎的改動代碼正如下圖所示:
4.3 私有化部署的 IoT 系統
這里提及的私有化部署,主要是將IoT后端系統部署在個人云服務器上,以便于通過公網快速訪問;同時,由于是私有化部署,不受限于任何的IoT云平臺,這對比外面普通對接阿里云平臺、涂鴉云平臺、微信云平臺、小米云平臺、百度云平臺等等,是有一個的優勢的;至少在個人家庭數據的沉淀和數據安全上,沒有那么地擔心。
這里的系統部署,包括幾個部分:
EMQ的部署 :
EMQ的部署相對比較容易,基本參照官方教程就可以完成,感興趣的可以去了解他們的github開源倉庫。
Domoticz的部署 :
這里其實我是踩坑了的,下文的經驗總結會細講??傊?,一開始各種不順,后面推過一系列的摸索學習,決定采用修改Domoticz的源碼,借助企業微信的推送功能,打通系統告警消息推送到微信的功能。
企業微信相關的部署 :
從這里我們知道,要完成Domoticz的通知推送與微信消息推送打通,我們需要借助企業微信的應用功能,企業微信開放了相關的接口來實現這部分功能,感興趣的可以參考下 官網的文檔介紹,當然也可以參考下我采用的 引路文章。
WEB訪問域名的配置 :
當Domiticz在私有云服務器上部署成功之后,基本就可以通過公網IP加對應端口的形式,以HTTP或HTTPS的方式訪問;由于IP和端口不容易記憶且容易拼錯,所以才衍生了配置域名訪問的需求,之前我配置過類似的功能,比如使用 http://yyds.recan-li.cn就可以訪問我的 CSDN主頁,之前我寫過類似的教程,基本參考教程一步步做可以完成相關的配置功能了。配置完的效果就是,我可以通過 http://smart.recan-li.cn 就可以訪問Domoticz的WEB配置前端,而不需要輸入繁瑣難記的IP+端口了。
5 項目實施過程
主要實施過程如下所示:
1)搭建后端系統,先把EMQ這個MQTT broker搭建起來,使得終端和后端的數據通道得以建立起來;
2)部署安裝Domoticz,可選用zip包解壓安裝或源碼編譯安裝,但由于要定制化告警消息推送到微信,這里強烈建議使用源碼級編譯安裝;當Domoticz安裝運行起來后,其對應的SQLite數據庫也是同步在工作的;這時WEB端的訪問服務也是同步開啟了;
3)通過Domoticz的WEB端配置,建立MQTT類型傳感器,同時在平臺建立與終端一一對應的虛擬傳感器;這一步完成之后,便可以使用MQTT.fx等MQTT調試工具模擬對Domoticz上的虛擬設備進行狀態推送,看其對應的狀態是否會發生改變;
4)搭建企業微信的環境,包括創建一個企業微信賬號,再在企業微信下創建一個應用,取得企業ID、應用ID和應用私鑰;有這個要素之后,就可以使用微信推送的HTTP接口做消息推送的模擬測試;
5)再在Domoticz源碼上集成應用HTTP接口推送(告警)消息到微信客戶端的功能代碼;
6)開發終端的固件,調試Wi-Fi通訊,MQTT上下行,以及各個傳感器的工作;
7)需要關注微信推送消息的人員掃碼 關注 企業微信中對應的應用,同時打開微信客戶端的通知顯示權限,這樣當新的消息通過企業微信應用推送下來時,手機端就會彈窗提示;
8)終端工作起來,嘗試觸發一些告警狀態,觀察終端的處理邏輯和狀態上報到Domoticz的數據更新,同時觀察告警消息往微信客戶端的推送情況。
通過上述一系列的實施之后,整個私有化部署的家用式智能告警系統就跑起來了,enjoy it !
6 項目效果顯示
相關的展示圖片和演示視頻,見下文:
【項目展示圖片】
【項目演示視頻】見 B站視頻。
【項目開源代碼】n32g457_esp8266_smart_home
7 項目復盤
7.1 項目踩的那些坑
RT-Thread Studio的配置項摸索半天,想去搜索一下配置項,又不知何從做起,我是深度Linux環境開發者,平時一個grep能解決的事情,我不知道在Windows下有什么好的替代方案,慢不慢先不說,先得有。之前在Linux都是menuconfig,我始終覺得那個更親切。知其然,也知其所以然。
ESP8266的固件燒錄耽誤老半天,上次RDC大會抽中的ESP-12F開發板,默認出來的lua版本,而非AT版本;由于RT-Thread的組件是需要AT版本的,于是找個好幾個教程,費了好大勁才把AT調出來,期間各種下載失?。ㄟ€是下載到90%才失敗的那種),各種下載工具折騰,下載速度也慢;本來想偷下懶用ESP8266省事的,硬是折騰得想臨時換模組。
ESP8266的AT是通了,但是編譯個N32G457固件使用UART2帶ESP8266,死活work不起來;無奈求助于RT-Thread,很快找到了論壇好友 crystal266 的 基于RT-Thread和N32G457的智能家居demo ,看到他已經完成了全部流程,應該可以為我所有,所以我借用他的配置代碼,果然ESP8266的通訊能力一下子就拉滿了。那種感覺好像,項目馬上就可以結項了,絲滑地很。
Domotics的郵件通知功能,在最新版本上就是各個渣渣,還特意閱讀了一個國外同行遇到的同樣的問題,看了他們的issue溝通,然后依然沒有任何思緒。一路執行,我放棄了stable版本的Domoticz安裝版本(zip包直接拉起bin文件)轉向源碼自行編譯編譯,重新操刀在發送郵件通知的地方,把通知重定向發往微信里面。再次,感慨,開源大法好,任何字節細致都逃不過你的法眼!你想怎么玩就怎么玩!
具體如何修改相關的代碼,可以參考上面的 4.2.2 小節。
Domiticz 是我目前遇到編譯開源軟件,最蛋疼的一次,各種問題,真正的是走一步出問題一步,然后解決一步再前進一步,期間過程遇到各種奇葩問題,編譯慢也是知道吐槽一下,所幸最后還是編譯出來了,能夠把它跑起來。
之前在配置Domoticz的郵箱通知功能失敗之后,我考慮過使用它的SMS短信通知功能,無奈Domoticz的大神們都是國外的,給出的接口都是國外公司的,我想注冊一個賬號體驗下,居然死活注冊不成功!說好的技術無國界呢?放棄!
接下來各種搜索推送通知方案,短信、郵件、HTTP、語音等,了解了阿里云、騰訊云的各種相關服務,無奈要不是接口做的相對我來說復雜了些,要不就是功能不能很好地滿足我的功能需求(提供的功能需求限制太多);差點放棄了,后面被我檢索到一篇關于企業微信支持開發者推送消息的文章,讓我眼前一亮,心想這才是我想的 為所欲為,這個太棒了。一個python腳本配置一下就可以輕松搞起來,你還能找到比這個更簡單的嗎?
微信推送算是搞定了,接下來的Domoticz的域名網址配置,又出問題了;之前我配置過使用 http://yyds.recan-li.cn 就可以訪問CSDN主頁的方法,我使用該方法依葫蘆畫瓢,設置了 http://smart.recan-li.cn 的域名訪問Domoticz,結果卻出現了nginx返回http502. 真是無可奈何。
終端側的槽點倒是沒多少了,但這樣需要重點吐槽下 N32G457在RT-Thread Studio下使用pyocd.exe,時好時壞,有些郁悶。
好像N45G357這板子還有點脆弱,差點焊廢了,差點芯片就起不來了!
最后一個不算是坑的點:使用RT-Thread開發IoT應用這種量級的代碼,用起來還是 倍兒爽,希望RT-Thread能把這份爽繼續發揚下去。
7.2 項目帶來的啟發
DDL是第一生產力
我始終覺得我是一個無形之中在不斷踐行這個slogan的開發者,雖然我知道這個習慣真的很不好,每次在DDL之前總是付出比平常多幾倍的時間和精力去努力完成既定的任務和計劃,其實這個投入和產出是非常不正常也不科學的。所以,當我深刻意識到這點之后,我也會努力克制住平時的惰性,爭取把時間計劃做得更細致,把有限的時間最大化地利用,做一個生活和技術都自律的人。
優先解決主要矛盾
我剛入行的時候,帶我的師傅經常跟我們說一句話:“先解決 有沒有 的問題!”其實,跟這里說的優先解決主要矛盾是一樣的,比如你搭這個智能化 IoT 系統,如何能快速搭建好產品原型,把終端側的數據和后端打通,那首先你必須得解決終端側聯網的問題,這個就是優先級最高的,后端系統到可能不是最先的,你有網絡之后,你可以先用一個本地的MQTT broker一樣可以看到終端側的數據上報,而數據端的采集、處理邏輯,我倒認為是最次要的;因為你在此之前,你完全可以模擬數據,你想要什么數據就有什么數據,但是最終在整個數據傳到鏈條打通之后,終端側數據的準確性及多樣化的業務邏輯往往可以起到錦上添花的效果。
努力把你當那些 TODO 消滅掉
我相信每個人都有自己很多的 TODO,但是往往程序猿的 TODO 又好像代碼里的注釋寫的那種,不僅騙了自己,同時也騙了別人。而項目中的 TODO 往往就是那些需要優化,需要沉淀,需要突破的地方,就好像我這個項目一樣,比如如何做好更好的用戶體驗?比如如何快速、準確地完成私有化部署?比如如何快速地迭代新的終端側功能?比如這個產品有沒有更大的潛在商業價值?這一系列的 TODO 往往才是核心競爭力的體現,只有把它們踏踏實實消滅了,才有可能帶來新的臺階。
7.3 未來的一些想法和規劃
斷舍離
短期內,這應該會是我參加的最后一次這種設計大賽了,倒不是說這樣的設計大賽無法給我帶來學習和成長的價值,而是我發現我現在的工作需要承擔更多的東西,我需要靜下來心去實現新的突破。相比之下,現階段在工作上的突破或許要比在設計大賽上的成長對我來說更為重要。工作和生活是不可能完全隔離,但需要做好權衡,畢竟人的精力是有限的,我希望把它花在最需要成長的地方。
技術備忘錄
技術備忘錄里的幾十個技術備選課題等著我去靜下心來梳理、沉淀和轉換,這往往會耗費大量的精力去琢磨。熟悉我的朋友可知,我每月在 RT-Thread論壇 至少輸出2篇技術干貨,很榮幸連續拿了3個月度優秀文章,同時還有好幾篇技術文章得到【優秀】稱號,還有收到論壇好友的友情打賞,這些都在激勵著我不斷前行,我也會堅持把這個月度技術輸出繼續下去,希望可以把自己的技術經驗傳遞給更多需要的技術人。
一年之計在于春
最近剛寫了一篇心靈雞湯,感興趣的可以當做水文一篇,沒事解解乏?!韭殘鲂撵`雞湯】以多年來拿最佳的心路歷程來復盤【如何成為優秀的5%】
8 致謝
感謝強大的政府,深明大義的果斷決策,才得以控制住在深圳眼看就要大概率多點擴散的新冠疫情,才有今天安靜地坐在辦公室碼代碼的自由。
感謝 RT-Thread的小師弟,不屈不撓地催促(初略算了下,不少于3次)我趕緊完成比賽項目,趕緊提交比賽文檔,錯過這村就沒這店了,才不至于讓我的參賽項目流產。
感謝論壇好友 crystal266 的 參賽作品文章及基礎代碼 快速地幫我們踩了ESP8266在N32G457上面的坑,才得以項目在 DDL 之前完成作品的提交。
感謝家人對這段時間工作安排的密集和生活照料的無暇,才得以全心思地投入作品創作。
最后,不求最佳,但求無憾!
原文標題:【N32G457】從0到1打造一個私有化部署的家用式智能告警系統
文章出處:【微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處?!?/p>
評論
查看更多