1 前言
近些年來,隨著科技的更新迭代,IoT行業迎來了一個快速膨脹發展的窗口期,我們隨之可見的是,越來越多的智能化產品進入到了我們的日常生活中,包括發展比較早的智能家居類產品、智能家電類產品,還有近些年非常火熱的智能穿戴類產品,這些都得到了市場很好的反饋。
在都市日常生活工作中,通常的節奏都比較快,有數據統計中國有近75%的人都處于 “亞健康” 狀態,每個人都或多或少會有這樣那樣的健康問題。隨著大家對健康問題的關注度提高,在智能IoT領域,也出現了越來越多有關運動健康類的智能單品,這些單品的功能核心都是針對某個日常的健康隱患,提供一套智能化的解決方案,使得人們在享受科技便捷的同時,也提升了自己的健康狀態。
2 產品構思
結合當下的市場需求,綜合分析各類健康問題的相關數據,我認為日常 健康飲水 問題,是一個具有可觀前景的智能化單品方向。一方面涉及飲水問題,這是每個人每天都繞不開的話題,所以這是一個有群眾基礎的產品;另一方面,的確有很多人包括我自己會因為各種各樣的原因,使得沒法保證每一天的飲水攝入量,這個在一定程度上會加劇一些慢性病的爆發。
隨著大家對健康意識的蘇醒和認知的提升,越來越多的人愿意為自己的健康問題買單。正是基于這樣的市場調研考慮,我的想法是設計一款新型智能化水杯,著重解決人們日常的飲水健康問題。
2.1 產品名稱
飲水健康類的智能單品:一款基于藍牙通訊的新型智能化水杯
2.2 產品主要解決的問題
主要解決辦公室白領、年輕情侶及獨居老人的健康飲水問題:
- 作為辦公室白領,由于工作性質屬于比較忙的那一種,常常會因為 忙,而忘記補充一定量的飲水,這樣導致的問題就是每天無法保證攝入足量的水分,加上辦公室環境本身就是一個 久坐 的姿態,長此以往容易引發健康問題;
- 作為獨居老人,往往年紀比較大,記性較差,時常會忘記喝水;同時可能眼睛不好使或者耳朵不好使,對普通水杯的容量和溫度不容易判斷,因此引入智能水杯的智能功能很有必要,有助于幫忙獨居老人在一定程度上解決喝水的健康問題;
- 作為情侶,時常需要使用各種秀恩愛的手段來表達愛意,智能水杯獨創的情侶模式,可以很好地解決這個問題。
2.3 產品的創新功能點
- 支持自定義定時提醒喝水的功能;
- 支持聯網統計分析,智能分析一段時間內的飲水健康問題;
- 支持屏顯水容量和水溫;
- 支持語音播報水容量和水溫;
- 支持用戶群體設定(老年人、辦公室白領、兒童等人群分類);
- 首創關懷模式,智能水杯可以在子女和老人的賬戶下共享,當關懷模式開始時,子女的賬戶可遠程操作APP達到及時查看并提醒老人喝水的功能;
- 關懷模式的升級版本:情侶模式,主要適用于年輕的情侶直接,支持一方直接發起即時語音提醒,達到秀恩愛的目的。
3 產品原型
一個好的產品點子從腦海中誕生,到真正能夠以最快的速度打入市場,并能夠獲得不錯的口碑,它的原型設計就顯得非常重要;同時,這個產品搭在一個什么樣的平臺上,也是一個非常值得調研和考究的問題。
3.1 云平臺選型
在國內主流的IoT云平臺有阿里云平臺、騰訊云平臺、京東云平臺、小米云平臺、華為云平臺,還有就是涂鴉云平臺。
每家云平臺各具特色,各有千秋,這其中阿里云平臺相對創立較早,發展也較為成熟,主要是圍繞天貓精靈為核心打造全景式智能方案。
相對于阿里云平臺,涂鴉云平臺的最大特色是采取 標準模塊化開發規則,實現行業標品的標準化;這樣的好處對于產品開發者來說,可以大幅降低研發成本和周期,同時也大大降低開發門檻,快速實現產品智能化。
正是基于這種標品的開發能力,我們可以看到在涂鴉的開發者云平臺上可以看到大量的行業標品,幾乎覆蓋到了我們所能見到的智能單品,這無疑給開發者帶了極大的便利。同時,涂鴉開發者云平臺上,具有非常豐富的開發文檔,包括設備終端側的SDK、手機APP端側的SDK、云端的SDK等等都有完備的支持,這對于看重二次開發的開發者也是一個非常不錯的福音。
IoT領域的智能單品正在爆發式發展,隨之帶來的問題就是,產品功能、品質無法建立標準化,而涂鴉智能的出現,正是為了很好地解決這個痛點,我們也希望這個方向能夠持續深化下去,讓我們能夠在涂鴉云平臺能夠看到更多的標品,這樣我們就有更多的思路和方向去打造屬于自己的智能單品。
綜上的幾個因素,我這個智能水杯單品,我就選用了 涂鴉IoT云平臺。
3.2 智能單品的創建
選定了涂鴉IoT云平臺之后,我就可以在涂鴉的 IoT云平臺 可以快速地 創建 我需要的智能單品:
更多的介紹文檔,大家可以參考 這里,更多的智能單品案例,可以從 這里 多一份了解。
PS:本項目所需要開發資料和相關硬件物料可以戳 這里 .
4 產品開發
整個產品開發分為兩大部分:硬件部分和軟件部分。在硬件部分呢,由于涂鴉只提供標準化的模組(Wi-Fi模塊或藍牙模組等),它并不提供具體的MCU選型以及對應傳感器相關的選型,這些就需要智能單品開發根據自己的實際情況,自行完成選型。
4.1 硬件設計
有了基本的IoT云平臺選型之后,下一步著重要進行的就是硬件部分的選型。
硬件選型遵循的原則應該是:盡可能選用成熟的硬件方案,選用的硬件型號應略高于滿足你的功能需求,即留有冗余空間,盡可能考慮使用易開發的組件。
4.2 軟件設計
主控部分的軟件代碼,采用的是STC12C5A60S2這塊增強型的51單片機,它的軟件開發完全兼容傳統的51單片機,它的開發特定就是易上手,IO口豐富,外設也相對豐富,基本滿足我需要的功能需求。
在這個項目,我主要使用它的以下幾個部分:定時器、雙串口(一個串口日志調試、另一個串口與藍牙通訊)、ADC、標準的GPIO、E2PROM等。至于其他幾個外設傳感器,均采用的GPIO做通訊協議的模擬。
值得注意的是,由于我是一個Linux編譯環境的重度依賴者,我實在沒法忍受KEIL那蛋疼的編譯的IDE環境,所以我查找網上的資料,自行搭建了基于 SDCC 的編譯環境,完美實現Linux環境下編譯51單片機。這塊相關的教程,我回頭整理下,再發出來大家討論討論。
以下便是我的代碼的內容的展示,感興趣可以到我的gitee找相關的開源代碼。
本產品的相關代碼已 開源 在gitee,感興趣的童鞋,可以 戳這里 獲得更多內容。
4.3 功能調試
- 模擬調試
涂鴉 模組調試助手 是一個集成了云模組通訊協議的串口調試工具,常用于 MCU 低代碼開發 方案的開發調試。模組調試助手集成了包括 Wi-Fi、藍牙、Zigbee、NB-IoT 等云模組常用串口協議,既可以模擬模組驗證 MCU 代碼邏輯,也可以模擬 MCU 調試配網功能。
這個助手很好地解決了產品設計前期的快速落地驗證和原型規劃,也極大地方便了在實際開發過程中遇到數據通訊問題時的調試手段,可以比較快地定位和解決問題。
關于模組調試助手的詳盡介紹,可以 戳這里 。
- 設備調試
有了模擬調試的基礎之后,就可以在開發過程中,進行真實設備的功能調試,這里采用的方式也是先從本地的基礎數據入手,先把本地的基礎數據調通,比如水溫的探測、飲水量的檢測、杯中水量的探測等等。
- 聯網調試
這里主要驗證智能水杯的聯網功能,包括與 智能生活APP的發現配對、連接,基礎數據的上下行對接,智能場景聯動等核心功能調試。
PS:本項目所需要開發資料和相關硬件物料可以戳 這里 .
5 產品功能展示
這里我將展示智能水杯單品的核心功能:設備發現、設備配網、設備解綁、設備綁定、設備連接/斷開、基礎數據的屏幕顯示、人機交互的,數據的上下行,設備與智能APP的聯動感應等等。
產品核心功能的完整演示視頻,可以從這里進行觀看,感興趣的戳 這里 。
PS:本項目所需要開發資料和相關硬件物料可以戳 這里 .
6 產品功能拓展
由于時間投入的關系,本次開發主要集中在開發核心的功能特性上,包括基本數據的采集、數據的下發及對云端數據的響應等等。
回到最開始我規劃的幾個特色功能,比如 聯網分析飲水數據、智能語音播報、設備共享、多人提醒互動等特色功能,將會在后續的產品開發中繼續保持功能迭代,感興趣的童鞋可以保持關注。
7 結束語
看似一個簡單的智能單品,但是,從最早的產品孵化再到產品原型的設計,再到IoT云平臺、硬件模塊的選型,然后進行軟件開發、功能調試,這一系列的內容也是需要經過不斷地思考和打磨,方可把這個智能化產品真的的落地。
期間,也遇到了不少之前完全沒有遇到的硬件問題、軟件問題,也使用了一些以前沒有調試過的傳感器,問題都是一個個去解決。期間也去請教了一些IoT的da神,一些IoT相關的問題得到了比較好的解決。
另外,這里著重需要感謝的還有 涂鴉智能云平臺,在這里我可以很快地創建我需要的智能單品,也可以很快地把產品原型進行落地開發,它提供了一個出色的開發者平臺,有各種詳盡的開發對接文檔,還有技術工單等反饋渠道,這些都給了我開發這個智能單品有了更為強大的技術信心。
若對涂鴉智能云平臺快速創建智能產品想了解更多信息,歡迎從 這里 得到更多了解,智能設備從這里開始!
這段開發經歷對我來說,最大的收獲并不是說把幾個智能化的核心功能給實現了,反倒是這個智能單品的開發全流程讓我學習到了不少技術以外的內容,這些對于我深入理解IoT領域提供了極大的幫助,我也相信將來會有更多優秀的智能單品從這里誕生。
最后,感謝IoT,感謝涂鴉,感謝自己;期待一同進步,一同成長。
代碼開源
基礎的應用邏輯
這里的基礎應用邏輯有包括以下幾點:
- 設備復位和設備配網:當按鍵長按3秒以上時,則觸發藍牙設備的解綁,所有本地數據都講復位到默認值,同時藍牙設備再次發起廣播,等到手機APP的自動發現,以及發起后續的設備配網操作。
- 飲水提醒: 當手機APP端下發的飲水提醒時間已到,則整個OLED屏幕開始1秒鐘開滅一次,直到檢測到一次新的喝水動作。
- 飲水動作的檢測:當水杯水容量,前后的變化銳減20ml以上,則認為是一次有效的喝水動作,此時 已喝水量 會增加對應的喝水量,同時喝水次數會加1,且會上報一次全量數據。
- 本地數據定時上報:本地的數據,每個5秒鐘會觸發上報,同時觀察手機APP,即可看到數據的變化。
- 藍牙連接狀態顯示:藍牙有3種狀態,0狀態對應的是設備未綁定,此時藍牙圖標每秒鐘閃爍一次;1狀態對應已綁定但未連接手機,此時藍牙圖標3秒鐘閃爍一次;2狀態表示正常已綁定已連接狀態,測試藍牙圖標常態化一直顯示。
電池電量檢測
本產品由鋰電池或干錳電池供電,借助MCU側自帶的ADC通道,可以很快地測出供電電壓。由于STC12C5A60S2的ADC內部參考電壓就是供電電壓VCC,所以必須借助2路ADC通道,其中一路外接一個參考電壓,然后根據等比關系計算出供電電壓VCC。
比如外部參考電壓是V1 = 1.0V,對應這路ADC測量的電壓值為V11;而另一路ADC測量出來的電壓值為V12。他們與VCC的等比關系是:VCC / V12 = V1 / V11
由此可計算出: VCC = V1 * V12 / V11
再結合VCC電壓和鋰電池的降壓特性,初步得出當前的電量百分比,隨后送到屏幕展示。
基礎外設
按鍵觸發
為了簡單處理,本項目中采用的簡單的GPIO實現單點按鍵的功能;同時,為了實現單個按鍵短按和長按的對應不同的功能,在按鍵處理代碼中,增加了按鍵狀態機的處理模型,有效地區分按鍵短按和長按狀態。
OLED顯示
OLED采用的是I2C串行數據協議,考慮到GPIO的分布,本項目采用的是GPIO軟件模擬I2C洗衣的方式,通過對不同寄存器的讀寫封裝,可以實現對OLED區域的顯示;同時配合字模制作軟件,可以生成中文字模以及自定義的各式各樣的圖形和符號,極大地方便了顯示的多樣性。
溫度傳感器測溫
DS18B20溫度傳感器采用的是單數據線串行協議,切換單數據線的電平切換實現對溫度信息的采集,經過合理的轉換運算后,得到一個比較精確的水杯溫度值,用于展示在顯示屏上。
壓力傳感器測水容量
壓力傳感器用于檢測水的容量,這是一個間接的測量方法,先通過壓力(重力)傳感器測得不同水容量下的重量,得出不能容量下的重量分布表;在真正的測量中,將取得的重量數據對照水容量表格,大致可以得出對應的水容量,從而做水量的數據展示。
RTC本地時鐘
RTC時鐘,采用的是自定義的串行數據協議,通過RST、IO、SCK三線的變化,可以準確地實現對RTC時鐘的讀和寫;同時該模塊是采用紐扣電池長供電的,所以可以長時間保持時鐘的有效性。
涂鴉的MCU側SDK移植
在涂鴉的IoT云平臺上創建了對應的智能單品后,云平臺會自動創建對應的MCU側參考SDK,這個SDK中將對應產品的功能屬性、物模型數據都固話在里面了,并且SDK內部已經很好地實現了MCU和藍牙模組的對接,當收到藍牙模組的數據傳遞時,自動進行處理。
在適配的過程中,只需要根據SDK包中的參考文檔,將MCU側幾個核心的跟串口收發的接口適配好后,整一個與藍牙模組的通訊功能就可以跑起來了。
這時,通過SDK包中的mcu_api.h的接口就可以實現對藍牙模組的各種操作了。
更為詳盡的移植步驟,可以參考這里。
藍牙通訊
藍牙通訊這部分的軟件代碼其實分為兩部分:藍牙模組的固件代碼和MCU側對接藍牙模組的軟件代碼。由于我這是在涂鴉云平臺上直接創建產品,模組直接選用的是涂鴉提供的標準藍牙模組,所以藍牙模組這部分的固件代碼,我是不用開發的,而需要開發的僅僅是通過簡單的串口協議跟藍牙模塊就能夠對接起來。類似下邊這張圖的左半部分所展示的這樣:
關于這種開發方式,涂鴉叫 “MCU低代碼開發”,詳盡的介紹可以參考 這里。
PS:本項目所需要開發資料和相關硬件物料可以戳 這里 .
MCU主控
代碼整體框架
壓力傳感器模塊
重力/壓力傳感器主要是用于測量水杯的整體重量,通過密度、體積、質量三者的數量關系,從而得出水容量的一種方法。
這里我選用的是 HX711:它是一款專為高精度電子秤而設計的24位A/D轉換器芯片與同類型其它芯片相比,該芯片集成了包括穩壓電源、片內時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優點。降低了電子秤的整機成本,提高了整機的性能和可靠性。該芯片與后端MCU 芯片的接口和編程非常簡單,所有控制信號由管腳驅動,無需對芯片內部的寄存器編程。
RTC時鐘模塊
RTC時鐘作為一個本地計時的模塊而存在,我選用的是非常經典的RTC模塊:DS1302。
DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.0V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。
溫度傳感器模塊
溫度傳感器主要的用途是測量水杯的溫度,以便于展示真實的水溫度。這里我選用的是 DS18B20數字溫度傳感器。
DS18B20是常用的數字溫度傳感器,其輸出的是數字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。 [1] DS18B20數字溫度傳感器接線方便,封裝成后可應用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等等。
主要根據應用場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環測溫,鍋爐測溫,機房測溫,農業大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數字測溫和控制領域。
按鍵模塊
按鍵這部分相對比較簡單,我直接采用的是點觸式非自鎖開關;主要是配合應用做一些簡單的功能切換;比如短按的時候切換屏幕開和關,長按的時候復位藍牙模組,進入配網流程等。
OLED顯示模塊
這里為了在產品中顯示相關的基礎數據,包括當前水杯溫度、藍牙連接狀態、定時喝水提醒倒計時、電池電量、本地計時、杯中水量、已喝水量、目標水量等等。
考慮成本和接口設計等因素,我采用的是由 SSD1306 芯片驅動的9.6寸的OLED。
OLED 由于同時具備自發光,不需背光源、對比度高、厚度薄、視角廣、反應速度快、可用于撓曲性面板、使用溫度范圍廣、構造及
制程較簡單等優異之特性,被認為是下一代的平面顯示器新興應用技術。同比之下LCD 都需要背光,而 OLED 不需要,因為它是自發光的,這樣的話同樣的顯示, OLED 效果要來得好一些。
藍牙通訊模塊
這里選用的涂鴉的 BT3L 的的藍牙模組,它極具性價比,在基于藍牙的智能單品上應用非常廣泛,它的基本資料如下:
主控模塊
主控模塊我選用的是開發者最容易上手的增強型 STC12C5A60S2 ,它是宏晶科技生產的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代 8051單片機,指令代碼完全兼容傳統8051,但速度快8-12倍。對比傳統的51單片機,它有非常顯著的技術優勢:
?-
物聯網
+關注
關注
2903文章
44274瀏覽量
371242 -
嵌入式技術
+關注
關注
10文章
360瀏覽量
35648
發布評論請先 登錄
相關推薦
評論