前言
近年來(lái),IoT行業(yè)迎來(lái)了一個(gè)快速發(fā)展的窗口期,隨之可見(jiàn)的是,越來(lái)越多的智能化產(chǎn)品進(jìn)入到了我們的日常生活中,包括隨著健康飲水熱度的攀升而進(jìn)入消費(fèi)者視線的智能化水杯。本項(xiàng)目下的智能化水杯主要針對(duì)辦公室白領(lǐng)和獨(dú)居老人兩類(lèi)群體,具備以下主要功能:
- 支持自定義提醒功能;
- 支持智能分析一段時(shí)間內(nèi)的飲水?dāng)?shù)據(jù);
- 支持屏顯水容量和水溫;
- 支持語(yǔ)音播報(bào)水容量和水溫;
- 支持用戶(hù)人群分類(lèi);
- 首創(chuàng)關(guān)懷模式,支持在子女和老人的賬戶(hù)共享,子女可通過(guò)App查看并提醒老人喝水。
一款產(chǎn)品的原型設(shè)計(jì)至關(guān)重要,而將產(chǎn)品搭在什么平臺(tái)之上,更是值得考究的問(wèn)題。
國(guó)內(nèi)主流的IoT云平臺(tái)各有千秋,涂鴉云平臺(tái)的最大特色是采取標(biāo)準(zhǔn)模塊化開(kāi)發(fā)規(guī)則,這對(duì)于產(chǎn)品的開(kāi)發(fā)者而言,不僅大大降低了開(kāi)發(fā)門(mén)檻,還大幅降低研發(fā)成本和開(kāi)發(fā)周期,快速實(shí)現(xiàn)產(chǎn)品智能化。
正是基于這種標(biāo)準(zhǔn)化開(kāi)發(fā)能力,我們?cè)谕盔f云開(kāi)發(fā)平臺(tái)上看到大量的行業(yè)標(biāo)品,幾乎覆蓋了我們?nèi)粘K芤?jiàn)到的所有智能品類(lèi),這無(wú)疑給開(kāi)發(fā)者們帶了極大的便利。涂鴉云開(kāi)發(fā)平臺(tái)上豐富的開(kāi)發(fā)文檔,從設(shè)備端SDK、移動(dòng)端SDK,再到云端SDK的支持,對(duì)于看重二次開(kāi)發(fā)的開(kāi)發(fā)者是非常不錯(cuò)的福音。這也正是我本次選用涂鴉IoT云開(kāi)發(fā)平臺(tái)開(kāi)發(fā)這款智能水杯的主要考量。
點(diǎn)擊IoT商機(jī)孵化營(yíng),獲取開(kāi)發(fā)資料和相關(guān)硬件物料。
IoT商機(jī)孵化營(yíng):https://t.tuya.com/AY1D3R9mS6
1. 智能單品的創(chuàng)建
選定了涂鴉IoT云平臺(tái)之后,就可以在涂鴉的IoT云平臺(tái)可以快速地創(chuàng)建需要的智能單品:






2. 產(chǎn)品開(kāi)發(fā)
整個(gè)產(chǎn)品開(kāi)發(fā)分為兩大部分:硬件部分和軟件部分。在硬件部分呢,涂鴉只提供標(biāo)準(zhǔn)化的模組(Wi-Fi模塊或藍(lán)牙模組等),并不提供具體的MCU選型以及對(duì)應(yīng)傳感器相關(guān)的選型,這些就需要智能單品開(kāi)發(fā)根據(jù)自己的實(shí)際情況,自行完成選型。
2.1 硬件設(shè)計(jì)
有了基本的IoT云平臺(tái)選型之后,下一步著重要進(jìn)行的就是硬件部分的選型。
硬件選型遵循的原則應(yīng)該是:盡可能選用成熟的硬件方案,選用的硬件型號(hào)應(yīng)略高于滿(mǎn)足你的功能需求,即留有冗余空間,盡可能考慮使用易開(kāi)發(fā)的組件。
主控模塊
主控模塊選用的是開(kāi)發(fā)者最容易上手的增強(qiáng)型 STC12C5A60S2,它是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。對(duì)比傳統(tǒng)的51單片機(jī),它有非常顯著的技術(shù)優(yōu)勢(shì):


藍(lán)牙通訊模塊
選用的是極具性?xún)r(jià)比的涂BT3L藍(lán)牙模組,在基于藍(lán)牙的智能單品上應(yīng)用非常廣泛,它的基本資料如下:


OLED顯示模塊
這里為了在產(chǎn)品中顯示相關(guān)的基礎(chǔ)數(shù)據(jù),包括當(dāng)前水杯溫度、藍(lán)牙連接狀態(tài)、定時(shí)喝水提醒倒計(jì)時(shí)、電池電量、本地計(jì)時(shí)、杯中水量、已喝水量、目標(biāo)水量等等。
考慮成本和接口設(shè)計(jì)等因素,采用的是由 SSD1306芯片驅(qū)動(dòng)的9.6寸的OLED。
OLED 由于同時(shí)具備自發(fā)光,不需背光源、對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡(jiǎn)單等優(yōu)異之特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。同比之下LCD都需要背光,而OLED不需要,因?yàn)樗亲园l(fā)光的,這樣的話同樣的顯示,OLED效果要來(lái)得好一些。

按鍵模塊
按鍵這部分相對(duì)比較簡(jiǎn)單,直接采用的是點(diǎn)觸式非自鎖開(kāi)關(guān);主要是配合應(yīng)用做一些簡(jiǎn)單的功能切換;比如短按的時(shí)候切換屏幕開(kāi)和關(guān),長(zhǎng)按的時(shí)候復(fù)位藍(lán)牙模組,進(jìn)入配網(wǎng)流程等。

溫度傳感器模塊
溫度傳感器主要的用途是測(cè)量水杯的溫度,以便于展示真實(shí)的水溫度。這里我選用的是DS18B20數(shù)字溫度傳感器
DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號(hào),具有體積小,硬件開(kāi)銷(xiāo)低,抗干擾能力強(qiáng),精度高的特點(diǎn)。[1] DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場(chǎng)合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號(hào)多種多樣,有LTM8877,LTM8874等等。
主要根據(jù)應(yīng)用場(chǎng)合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測(cè)溫,高爐水循環(huán)測(cè)溫,鍋爐測(cè)溫,機(jī)房測(cè)溫,農(nóng)業(yè)大棚測(cè)溫,潔凈室測(cè)溫,彈藥庫(kù)測(cè)溫等各種非極限溫度場(chǎng)合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。

RTC時(shí)鐘模塊
RTC時(shí)鐘作為一個(gè)本地計(jì)時(shí)的模塊而存在,選用的是非常經(jīng)典的RTC模塊:DS1302。
DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.0V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。

壓力傳感器模塊
重力/壓力傳感器主要是用于測(cè)量水杯的整體重量,通過(guò)密度、體積、質(zhì)量三者的數(shù)量關(guān)系,從而得出水容量的一種方法。
這里我選用的是HX711:它是一款專(zhuān)為高精度電子秤而設(shè)計(jì)的24位A/D轉(zhuǎn)換器芯片與同類(lèi)型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時(shí)鐘振蕩器等其它同類(lèi)型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強(qiáng)等優(yōu)點(diǎn)。降低了電子秤的整機(jī)成本,提高了整機(jī)的性能和可靠性。該芯片與后端MCU芯片的接口和編程非常簡(jiǎn)單,所有控制信號(hào)由管腳驅(qū)動(dòng),無(wú)需對(duì)芯片內(nèi)部的寄存器編程。

2.2 軟件設(shè)計(jì)
代碼整體框架

MCU主控
主控部分的軟件代碼,采用的是STC12C5A60S2這塊增強(qiáng)型的51單片機(jī),它的軟件開(kāi)發(fā)完全兼容傳統(tǒng)的51單片機(jī),它的開(kāi)發(fā)特定就是易上手,IO口豐富,外設(shè)也相對(duì)豐富,基本滿(mǎn)足需要的功能需求。
在這個(gè)項(xiàng)目,主要使用它的以下幾個(gè)部分:定時(shí)器、雙串口(一個(gè)串口日志調(diào)試、另一個(gè)串口與藍(lán)牙通訊)、ADC、標(biāo)準(zhǔn)的GPIO、E2PROM等。至于其他幾個(gè)外設(shè)傳感器,均采用的GPIO做通訊協(xié)議的模擬。

藍(lán)牙通訊
藍(lán)牙通訊這部分的軟件代碼其實(shí)分為兩部分:藍(lán)牙模組的固件代碼和MCU側(cè)對(duì)接藍(lán)牙模組的軟件代碼。由于是在涂鴉云平臺(tái)上直接創(chuàng)建產(chǎn)品,模組直接選用的是涂鴉的標(biāo)準(zhǔn)藍(lán)牙模組,所以藍(lán)牙模組這部分的固件代碼,是不用開(kāi)發(fā)的,而需要開(kāi)發(fā)的僅僅是通過(guò)簡(jiǎn)單的串口協(xié)議跟藍(lán)牙模塊就能夠?qū)悠饋?lái)。類(lèi)似下邊這張圖的左半部分所展示的這樣:

關(guān)于這種開(kāi)發(fā)方式,是 “MCU低代碼開(kāi)發(fā)”,詳盡的介紹可以參考:https://developer.tuya.com/cn/docs/iot/mcu-access-guide?id=K9hrbv1ub5owo。
涂鴉的MCU側(cè)SDK移植
在涂鴉的IoT云平臺(tái)上創(chuàng)建了對(duì)應(yīng)的智能單品后,云平臺(tái)會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的MCU側(cè)參考SDK,這個(gè)SDK中將對(duì)應(yīng)產(chǎn)品的功能屬性、物模型數(shù)據(jù)都固話在里面了,并且SDK內(nèi)部已經(jīng)很好地實(shí)現(xiàn)了MCU和藍(lán)牙模組的對(duì)接,當(dāng)收到藍(lán)牙模組的數(shù)據(jù)傳遞時(shí),自動(dòng)進(jìn)行處理。
在適配的過(guò)程中,只需要根據(jù)SDK包中的參考文檔,將MCU側(cè)幾個(gè)核心的跟串口收發(fā)的接口適配好后,整一個(gè)與藍(lán)牙模組的通訊功能就可以跑起來(lái)了。
這時(shí),通過(guò)SDK包中的mcu_api.h的接口就可以實(shí)現(xiàn)對(duì)藍(lán)牙模組的各種操作了。

- 更為詳盡的移植步驟,可以參考:https://developer.tuya.com/cn/docs/iot/mcu-sdk-migration-guide?id=K9fs77cw2vy27。
基礎(chǔ)外設(shè)
按鍵觸發(fā)
為了簡(jiǎn)單處理,本項(xiàng)目中采用的簡(jiǎn)單的GPIO實(shí)現(xiàn)單點(diǎn)按鍵的功能;同時(shí),為了實(shí)現(xiàn)單個(gè)按鍵短按和長(zhǎng)按的對(duì)應(yīng)不同的功能,在按鍵處理代碼中,增加了按鍵狀態(tài)機(jī)的處理模型,有效地區(qū)分按鍵短按和長(zhǎng)按狀態(tài)。

OLED顯示
OLED采用的是I2C串行數(shù)據(jù)協(xié)議,考慮到GPIO的分布,本項(xiàng)目采用的是GPIO軟件模擬I2C洗衣的方式,通過(guò)對(duì)不同寄存器的讀寫(xiě)封裝,可以實(shí)現(xiàn)對(duì)OLED區(qū)域的顯示;同時(shí)配合字模制作軟件,可以生成中文字模以及自定義的各式各樣的圖形和符號(hào),極大地方便了顯示的多樣性。

溫度傳感器測(cè)溫
DS18B20溫度傳感器采用的是單數(shù)據(jù)線串行協(xié)議,切換單數(shù)據(jù)線的電平切換實(shí)現(xiàn)對(duì)溫度信息的采集,經(jīng)過(guò)合理的轉(zhuǎn)換運(yùn)算后,得到一個(gè)比較精確的水杯溫度值,用于展示在顯示屏上。

壓力傳感器測(cè)水容量
壓力傳感器用于檢測(cè)水的容量,這是一個(gè)間接的測(cè)量方法,先通過(guò)壓力(重力)傳感器測(cè)得不同水容量下的重量,得出不能容量下的重量分布表;在真正的測(cè)量中,將取得的重量數(shù)據(jù)對(duì)照水容量表格,大致可以得出對(duì)應(yīng)的水容量,從而做水量的數(shù)據(jù)展示。

RTC本地時(shí)鐘
RTC時(shí)鐘,采用的是自定義的串行數(shù)據(jù)協(xié)議,通過(guò)RST、IO、SCK三線的變化,可以準(zhǔn)確地實(shí)現(xiàn)對(duì)RTC時(shí)鐘的讀和寫(xiě);同時(shí)該模塊是采用紐扣電池長(zhǎng)供電的,所以可以長(zhǎng)時(shí)間保持時(shí)鐘的有效性。

電池電量檢測(cè)
本產(chǎn)品由鋰電池或干錳電池供電,借助MCU側(cè)自帶的ADC通道,可以很快地測(cè)出供電電壓。由于STC12C5A60S2的ADC內(nèi)部參考電壓就是供電電壓VCC,所以必須借助2路ADC通道,其中一路外接一個(gè)參考電壓,然后根據(jù)等比關(guān)系計(jì)算出供電電壓VCC。
比如外部參考電壓是V1 = 1.0V,對(duì)應(yīng)這路ADC測(cè)量的電壓值為V11;而另一路ADC測(cè)量出來(lái)的電壓值為V12。他們與VCC的等比關(guān)系是:VCC / V12 = V1 / V11
由此可計(jì)算出:VCC = V1 * V12 / V11
再結(jié)合VCC電壓和鋰電池的降壓特性,初步得出當(dāng)前的電量百分比,隨后送到屏幕展示。
基礎(chǔ)的應(yīng)用邏輯
這里的基礎(chǔ)應(yīng)用邏輯有包括以下幾點(diǎn):
-設(shè)備復(fù)位和設(shè)備配網(wǎng):當(dāng)按鍵長(zhǎng)按3秒以上時(shí),則觸發(fā)藍(lán)牙設(shè)備的解綁,所有本地?cái)?shù)據(jù)都講復(fù)位到默認(rèn)值,同時(shí)藍(lán)牙設(shè)備再次發(fā)起廣播,等到手機(jī)APP的自動(dòng)發(fā)現(xiàn),以及發(fā)起后續(xù)的設(shè)備配網(wǎng)操作。
-飲水提醒: 當(dāng)手機(jī)APP端下發(fā)的飲水提醒時(shí)間已到,則整個(gè)OLED屏幕開(kāi)始1秒鐘開(kāi)滅一次,直到檢測(cè)到一次新的喝水動(dòng)作。
-飲水動(dòng)作的檢測(cè):當(dāng)水杯水容量,前后的變化銳減20ml以上,則認(rèn)為是一次有效的喝水動(dòng)作,此時(shí)已喝水量會(huì)增加對(duì)應(yīng)的喝水量,同時(shí)喝水次數(shù)會(huì)加1,且會(huì)上報(bào)一次全量數(shù)據(jù)。
-本地?cái)?shù)據(jù)定時(shí)上報(bào):本地的數(shù)據(jù),每個(gè)5秒鐘會(huì)觸發(fā)上報(bào),同時(shí)觀察手機(jī)APP,即可看到數(shù)據(jù)的變化。
-藍(lán)牙連接狀態(tài)顯示:藍(lán)牙有3種狀態(tài),0狀態(tài)對(duì)應(yīng)的是設(shè)備未綁定,此時(shí)藍(lán)牙圖標(biāo)每秒鐘閃爍一次;1狀態(tài)對(duì)應(yīng)已綁定但未連接手機(jī),此時(shí)藍(lán)牙圖標(biāo)3秒鐘閃爍一次;2狀態(tài)表示正常已綁定已連接狀態(tài),測(cè)試藍(lán)牙圖標(biāo)常態(tài)化一直顯示。
代碼開(kāi)源
本產(chǎn)品的相關(guān)代碼已開(kāi)源,感興趣可以聯(lián)系我們。
2.3 功能調(diào)試
模擬調(diào)試
涂鴉模組調(diào)試助手是一個(gè)集成了云模組通訊協(xié)議的串口調(diào)試工具,常用于MCU低代碼開(kāi)發(fā)方案的開(kāi)發(fā)調(diào)試。模組調(diào)試助手集成了包括Wi-Fi、藍(lán)牙、Zigbee、NB-IoT等云模組常用串口協(xié)議,既可以模擬模組驗(yàn)證MCU代碼邏輯,也可以模擬MCU調(diào)試配網(wǎng)功能。
這個(gè)助手很好地解決了產(chǎn)品設(shè)計(jì)前期的快速落地驗(yàn)證和原型規(guī)劃,也極大地方便了在實(shí)際開(kāi)發(fā)過(guò)程中遇到數(shù)據(jù)通訊問(wèn)題時(shí)的調(diào)試手段,可以比較快地定位和解決問(wèn)題。

關(guān)于模組調(diào)試助手的詳盡介紹,可以戳這里:https://developer.tuya.com/cn/docs/iot/network-module-overview?id=Ka4z12ojepber。
-設(shè)備調(diào)試
有了模擬調(diào)試的基礎(chǔ)之后,就可以在開(kāi)發(fā)過(guò)程中,進(jìn)行真實(shí)設(shè)備的功能調(diào)試,這里采用的方式也是先從本地的基礎(chǔ)數(shù)據(jù)入手,先把本地的基礎(chǔ)數(shù)據(jù)調(diào)通,比如水溫的探測(cè)、飲水量的檢測(cè)、杯中水量的探測(cè)等等。

聯(lián)網(wǎng)調(diào)試
這里主要驗(yàn)證智能水杯的聯(lián)網(wǎng)功能,包括與 智能生活A(yù)PP的發(fā)現(xiàn)配對(duì)、連接,基礎(chǔ)數(shù)據(jù)的上下行對(duì)接,智能場(chǎng)景聯(lián)動(dòng)等核心功能調(diào)試。


產(chǎn)品核心功能的完整演示視頻,感興趣可以聯(lián)系我們。
最后
看似一個(gè)簡(jiǎn)單的智能單品,但是,從最早的產(chǎn)品孵化再到產(chǎn)品原型的設(shè)計(jì),再到IoT云平臺(tái)、硬件模塊的選型,然后進(jìn)行軟件開(kāi)發(fā)、功能調(diào)試,這一系列的內(nèi)容也是需要經(jīng)過(guò)不斷地思考和打磨,方可把這個(gè)智能化產(chǎn)品真的的落地。
這段開(kāi)發(fā)經(jīng)歷來(lái)說(shuō),最大的收獲并不是說(shuō)把幾個(gè)智能化的核心功能給實(shí)現(xiàn)了,反倒是這個(gè)智能單品的開(kāi)發(fā)全流程能學(xué)習(xí)到了不少技術(shù)以外的內(nèi)容,這些對(duì)于深入理解IoT領(lǐng)域提供了極大的幫助,也相信將來(lái)會(huì)有更多優(yōu)秀的智能單品從這里誕生。
-
單片機(jī)
+關(guān)注
關(guān)注
6059文章
44825瀏覽量
644961 -
mcu
+關(guān)注
關(guān)注
146文章
17732瀏覽量
358508 -
藍(lán)牙模塊
+關(guān)注
關(guān)注
30文章
600瀏覽量
56375 -
涂鴉智能
+關(guān)注
關(guān)注
7文章
247瀏覽量
19835
發(fā)布評(píng)論請(qǐng)先 登錄
芯資訊|基于WT2605C藍(lán)牙語(yǔ)音芯片的電動(dòng)車(chē)中控智能化升級(jí)方案

智能家居Mesh組網(wǎng)方案:實(shí)現(xiàn)智能化生活的無(wú)縫連接NRF52832
云酷藍(lán)牙人員定位系統(tǒng):賦能企業(yè)智能化管理的核心優(yōu)勢(shì)

智能化管理系統(tǒng)在不同領(lǐng)域的應(yīng)用
光伏電站智能化管理系統(tǒng):光伏場(chǎng)站智能化管理的引擎

西安IBMS智能化集成系統(tǒng)源頭廠家直供

智能化管理系統(tǒng):驅(qū)動(dòng)未來(lái)管理與效率革命
智慧醫(yī)院智能化系統(tǒng)設(shè)計(jì)
單軸測(cè)徑儀也可以智能化

安防智能化包含哪些系統(tǒng)
基于新型藍(lán)牙技術(shù)的人員定位方案
【?嵌入式機(jī)電一體化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)?閱讀體驗(yàn)】+《智能化技術(shù)在船舶維護(hù)中的應(yīng)用探索》
第14章-藍(lán)牙遙控小車(chē) 藍(lán)牙串口通訊講解藍(lán)牙APP遙控小車(chē) 藍(lán)牙串口通訊講解

評(píng)論