前言
近年來,IoT行業(yè)迎來了一個快速發(fā)展的窗口期,隨之可見的是,越來越多的智能化產品進入到了我們的日常生活中,包括隨著健康飲水熱度的攀升而進入消費者視線的智能化水杯。本項目下的智能化水杯主要針對辦公室白領和獨居老人兩類群體,具備以下主要功能:
- 支持自定義提醒功能;
- 支持智能分析一段時間內的飲水數(shù)據(jù);
- 支持屏顯水容量和水溫;
- 支持語音播報水容量和水溫;
- 支持用戶人群分類;
- 首創(chuàng)關懷模式,支持在子女和老人的賬戶共享,子女可通過App查看并提醒老人喝水。
一款產品的原型設計至關重要,而將產品搭在什么平臺之上,更是值得考究的問題。
國內主流的IoT云平臺各有千秋,涂鴉云平臺的最大特色是采取標準模塊化開發(fā)規(guī)則,這對于產品的開發(fā)者而言,不僅大大降低了開發(fā)門檻,還大幅降低研發(fā)成本和開發(fā)周期,快速實現(xiàn)產品智能化。
正是基于這種標準化開發(fā)能力,我們在涂鴉云開發(fā)平臺上看到大量的行業(yè)標品,幾乎覆蓋了我們日常所能見到的所有智能品類,這無疑給開發(fā)者們帶了極大的便利。涂鴉云開發(fā)平臺上豐富的開發(fā)文檔,從設備端SDK、移動端SDK,再到云端SDK的支持,對于看重二次開發(fā)的開發(fā)者是非常不錯的福音。這也正是我本次選用涂鴉IoT云開發(fā)平臺開發(fā)這款智能水杯的主要考量。
點擊IoT商機孵化營,獲取開發(fā)資料和相關硬件物料。
IoT商機孵化營:https://t.tuya.com/AY1D3R9mS6
1. 智能單品的創(chuàng)建
選定了涂鴉IoT云平臺之后,就可以在涂鴉的IoT云平臺可以快速地創(chuàng)建需要的智能單品:
2. 產品開發(fā)
整個產品開發(fā)分為兩大部分:硬件部分和軟件部分。在硬件部分呢,涂鴉只提供標準化的模組(Wi-Fi模塊或藍牙模組等),并不提供具體的MCU選型以及對應傳感器相關的選型,這些就需要智能單品開發(fā)根據(jù)自己的實際情況,自行完成選型。
2.1 硬件設計
有了基本的IoT云平臺選型之后,下一步著重要進行的就是硬件部分的選型。
硬件選型遵循的原則應該是:盡可能選用成熟的硬件方案,選用的硬件型號應略高于滿足你的功能需求,即留有冗余空間,盡可能考慮使用易開發(fā)的組件。
主控模塊
主控模塊選用的是開發(fā)者最容易上手的增強型 STC12C5A60S2,它是宏晶科技生產的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。對比傳統(tǒng)的51單片機,它有非常顯著的技術優(yōu)勢:
藍牙通訊模塊
選用的是極具性價比的涂BT3L藍牙模組,在基于藍牙的智能單品上應用非常廣泛,它的基本資料如下:
OLED顯示模塊
這里為了在產品中顯示相關的基礎數(shù)據(jù),包括當前水杯溫度、藍牙連接狀態(tài)、定時喝水提醒倒計時、電池電量、本地計時、杯中水量、已喝水量、目標水量等等。
考慮成本和接口設計等因素,采用的是由 SSD1306芯片驅動的9.6寸的OLED。
OLED 由于同時具備自發(fā)光,不需背光源、對比度高、厚度薄、視角廣、反應速度快、可用于撓曲性面板、使用溫度范圍廣、構造及制程較簡單等優(yōu)異之特性,被認為是下一代的平面顯示器新興應用技術。同比之下LCD都需要背光,而OLED不需要,因為它是自發(fā)光的,這樣的話同樣的顯示,OLED效果要來得好一些。
按鍵模塊
按鍵這部分相對比較簡單,直接采用的是點觸式非自鎖開關;主要是配合應用做一些簡單的功能切換;比如短按的時候切換屏幕開和關,長按的時候復位藍牙模組,進入配網(wǎng)流程等。
溫度傳感器模塊
溫度傳感器主要的用途是測量水杯的溫度,以便于展示真實的水溫度。這里我選用的是DS18B20數(shù)字溫度傳感器
DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。[1] DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等等。
主要根據(jù)應用場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數(shù)字測溫和控制領域。
RTC時鐘模塊
RTC時鐘作為一個本地計時的模塊而存在,選用的是非常經(jīng)典的RTC模塊:DS1302。
DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.0V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。
壓力傳感器模塊
重力/壓力傳感器主要是用于測量水杯的整體重量,通過密度、體積、質量三者的數(shù)量關系,從而得出水容量的一種方法。
這里我選用的是HX711:它是一款專為高精度電子秤而設計的24位A/D轉換器芯片與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點。降低了電子秤的整機成本,提高了整機的性能和可靠性。該芯片與后端MCU芯片的接口和編程非常簡單,所有控制信號由管腳驅動,無需對芯片內部的寄存器編程。
2.2 軟件設計
代碼整體框架
MCU主控
主控部分的軟件代碼,采用的是STC12C5A60S2這塊增強型的51單片機,它的軟件開發(fā)完全兼容傳統(tǒng)的51單片機,它的開發(fā)特定就是易上手,IO口豐富,外設也相對豐富,基本滿足需要的功能需求。
在這個項目,主要使用它的以下幾個部分:定時器、雙串口(一個串口日志調試、另一個串口與藍牙通訊)、ADC、標準的GPIO、E2PROM等。至于其他幾個外設傳感器,均采用的GPIO做通訊協(xié)議的模擬。
藍牙通訊
藍牙通訊這部分的軟件代碼其實分為兩部分:藍牙模組的固件代碼和MCU側對接藍牙模組的軟件代碼。由于是在涂鴉云平臺上直接創(chuàng)建產品,模組直接選用的是涂鴉的標準藍牙模組,所以藍牙模組這部分的固件代碼,是不用開發(fā)的,而需要開發(fā)的僅僅是通過簡單的串口協(xié)議跟藍牙模塊就能夠對接起來。類似下邊這張圖的左半部分所展示的這樣:
關于這種開發(fā)方式,是 “MCU低代碼開發(fā)”,詳盡的介紹可以參考:https://developer.tuya.com/cn/docs/iot/mcu-access-guide?id=K9hrbv1ub5owo。
涂鴉的MCU側SDK移植
在涂鴉的IoT云平臺上創(chuàng)建了對應的智能單品后,云平臺會自動創(chuàng)建對應的MCU側參考SDK,這個SDK中將對應產品的功能屬性、物模型數(shù)據(jù)都固話在里面了,并且SDK內部已經(jīng)很好地實現(xiàn)了MCU和藍牙模組的對接,當收到藍牙模組的數(shù)據(jù)傳遞時,自動進行處理。
在適配的過程中,只需要根據(jù)SDK包中的參考文檔,將MCU側幾個核心的跟串口收發(fā)的接口適配好后,整一個與藍牙模組的通訊功能就可以跑起來了。
這時,通過SDK包中的mcu_api.h的接口就可以實現(xiàn)對藍牙模組的各種操作了。
- 更為詳盡的移植步驟,可以參考:https://developer.tuya.com/cn/docs/iot/mcu-sdk-migration-guide?id=K9fs77cw2vy27。
基礎外設
按鍵觸發(fā)
為了簡單處理,本項目中采用的簡單的GPIO實現(xiàn)單點按鍵的功能;同時,為了實現(xiàn)單個按鍵短按和長按的對應不同的功能,在按鍵處理代碼中,增加了按鍵狀態(tài)機的處理模型,有效地區(qū)分按鍵短按和長按狀態(tài)。
OLED顯示
OLED采用的是I2C串行數(shù)據(jù)協(xié)議,考慮到GPIO的分布,本項目采用的是GPIO軟件模擬I2C洗衣的方式,通過對不同寄存器的讀寫封裝,可以實現(xiàn)對OLED區(qū)域的顯示;同時配合字模制作軟件,可以生成中文字模以及自定義的各式各樣的圖形和符號,極大地方便了顯示的多樣性。
溫度傳感器測溫
DS18B20溫度傳感器采用的是單數(shù)據(jù)線串行協(xié)議,切換單數(shù)據(jù)線的電平切換實現(xiàn)對溫度信息的采集,經(jīng)過合理的轉換運算后,得到一個比較精確的水杯溫度值,用于展示在顯示屏上。
壓力傳感器測水容量
壓力傳感器用于檢測水的容量,這是一個間接的測量方法,先通過壓力(重力)傳感器測得不同水容量下的重量,得出不能容量下的重量分布表;在真正的測量中,將取得的重量數(shù)據(jù)對照水容量表格,大致可以得出對應的水容量,從而做水量的數(shù)據(jù)展示。
RTC本地時鐘
RTC時鐘,采用的是自定義的串行數(shù)據(jù)協(xié)議,通過RST、IO、SCK三線的變化,可以準確地實現(xiàn)對RTC時鐘的讀和寫;同時該模塊是采用紐扣電池長供電的,所以可以長時間保持時鐘的有效性。
電池電量檢測
本產品由鋰電池或干錳電池供電,借助MCU側自帶的ADC通道,可以很快地測出供電電壓。由于STC12C5A60S2的ADC內部參考電壓就是供電電壓VCC,所以必須借助2路ADC通道,其中一路外接一個參考電壓,然后根據(jù)等比關系計算出供電電壓VCC。
比如外部參考電壓是V1 = 1.0V,對應這路ADC測量的電壓值為V11;而另一路ADC測量出來的電壓值為V12。他們與VCC的等比關系是:VCC / V12 = V1 / V11
由此可計算出:VCC = V1 * V12 / V11
再結合VCC電壓和鋰電池的降壓特性,初步得出當前的電量百分比,隨后送到屏幕展示。
基礎的應用邏輯
這里的基礎應用邏輯有包括以下幾點:
-設備復位和設備配網(wǎng):當按鍵長按3秒以上時,則觸發(fā)藍牙設備的解綁,所有本地數(shù)據(jù)都講復位到默認值,同時藍牙設備再次發(fā)起廣播,等到手機APP的自動發(fā)現(xiàn),以及發(fā)起后續(xù)的設備配網(wǎng)操作。
-飲水提醒: 當手機APP端下發(fā)的飲水提醒時間已到,則整個OLED屏幕開始1秒鐘開滅一次,直到檢測到一次新的喝水動作。
-飲水動作的檢測:當水杯水容量,前后的變化銳減20ml以上,則認為是一次有效的喝水動作,此時已喝水量會增加對應的喝水量,同時喝水次數(shù)會加1,且會上報一次全量數(shù)據(jù)。
-本地數(shù)據(jù)定時上報:本地的數(shù)據(jù),每個5秒鐘會觸發(fā)上報,同時觀察手機APP,即可看到數(shù)據(jù)的變化。
-藍牙連接狀態(tài)顯示:藍牙有3種狀態(tài),0狀態(tài)對應的是設備未綁定,此時藍牙圖標每秒鐘閃爍一次;1狀態(tài)對應已綁定但未連接手機,此時藍牙圖標3秒鐘閃爍一次;2狀態(tài)表示正常已綁定已連接狀態(tài),測試藍牙圖標常態(tài)化一直顯示。
代碼開源
本產品的相關代碼已開源,感興趣可以聯(lián)系我們。
2.3 功能調試
模擬調試
涂鴉模組調試助手是一個集成了云模組通訊協(xié)議的串口調試工具,常用于MCU低代碼開發(fā)方案的開發(fā)調試。模組調試助手集成了包括Wi-Fi、藍牙、Zigbee、NB-IoT等云模組常用串口協(xié)議,既可以模擬模組驗證MCU代碼邏輯,也可以模擬MCU調試配網(wǎng)功能。
這個助手很好地解決了產品設計前期的快速落地驗證和原型規(guī)劃,也極大地方便了在實際開發(fā)過程中遇到數(shù)據(jù)通訊問題時的調試手段,可以比較快地定位和解決問題。
關于模組調試助手的詳盡介紹,可以戳這里:https://developer.tuya.com/cn/docs/iot/network-module-overview?id=Ka4z12ojepber。
-設備調試
有了模擬調試的基礎之后,就可以在開發(fā)過程中,進行真實設備的功能調試,這里采用的方式也是先從本地的基礎數(shù)據(jù)入手,先把本地的基礎數(shù)據(jù)調通,比如水溫的探測、飲水量的檢測、杯中水量的探測等等。
聯(lián)網(wǎng)調試
這里主要驗證智能水杯的聯(lián)網(wǎng)功能,包括與 智能生活APP的發(fā)現(xiàn)配對、連接,基礎數(shù)據(jù)的上下行對接,智能場景聯(lián)動等核心功能調試。
產品核心功能的完整演示視頻,感興趣可以聯(lián)系我們。
最后
看似一個簡單的智能單品,但是,從最早的產品孵化再到產品原型的設計,再到IoT云平臺、硬件模塊的選型,然后進行軟件開發(fā)、功能調試,這一系列的內容也是需要經(jīng)過不斷地思考和打磨,方可把這個智能化產品真的的落地。
這段開發(fā)經(jīng)歷來說,最大的收獲并不是說把幾個智能化的核心功能給實現(xiàn)了,反倒是這個智能單品的開發(fā)全流程能學習到了不少技術以外的內容,這些對于深入理解IoT領域提供了極大的幫助,也相信將來會有更多優(yōu)秀的智能單品從這里誕生。
-
單片機
+關注
關注
6035文章
44553瀏覽量
634715 -
mcu
+關注
關注
146文章
17133瀏覽量
351014 -
藍牙模塊
+關注
關注
30文章
573瀏覽量
55726 -
涂鴉智能
+關注
關注
7文章
204瀏覽量
19462
發(fā)布評論請先 登錄
相關推薦
評論