很榮幸有機(jī)會(huì)參與芯板坊開(kāi)展的鈦極小龜物聯(lián)網(wǎng)開(kāi)發(fā)板評(píng)測(cè)活動(dòng)。該套件是北京鈦云物聯(lián)網(wǎng)推出的一套物聯(lián)網(wǎng)評(píng)估套件–鈦極小龜TiKit-T600-ESP8266B。
該硬件平臺(tái)是一款專(zhuān)門(mén)針對(duì)初學(xué)者入門(mén)的開(kāi)發(fā)套件,由WiFi模組和各樣的傳感器等組合,但與其他物聯(lián)網(wǎng)公司不同的是,首先這家公司不是云平臺(tái)服務(wù)商,其次該套件設(shè)計(jì)還是比較用心的,最后,也是最獨(dú)特的是其使用Java語(yǔ)言進(jìn)行應(yīng)用功能的開(kāi)發(fā)。
也就是說(shuō),即便你不是精通C語(yǔ)言的嵌入式工程師,你或許是擅長(zhǎng)java類(lèi)的軟件工程師,以前苦無(wú)機(jī)會(huì)進(jìn)入嵌入式物聯(lián)網(wǎng)行業(yè)分一杯羹,而現(xiàn)在機(jī)會(huì)就擺在你的眼前。
一.硬件介紹
鈦極小龜物聯(lián)網(wǎng)開(kāi)發(fā)套件(以后簡(jiǎn)稱(chēng):鈦極小龜評(píng)估板)如下圖1所示。拿到手后,相信你肯定會(huì)被其外包裝色彩與圖案設(shè)計(jì)所吸引,其設(shè)計(jì)顯得極具科技味道。套件的硬紙盒質(zhì)感非常好(就我目前拿到/買(mǎi)到的開(kāi)發(fā)板包裝里,該包裝顯得很用心,算是最好的了!之前大很多數(shù)采用透明塑料盒進(jìn)行包裝的。)
圖1 鈦極小龜物聯(lián)網(wǎng)開(kāi)發(fā)套件全家福照片
該包裝盒分為上下兩層,上部分用軟塑料內(nèi)嵌評(píng)估板,下部分裝有一根MicroUSB線,一個(gè)紅外遙控器,另外還有基本的使用說(shuō)明文檔。另外,隨盒附送了一個(gè)鈦云物聯(lián)的宣傳單(封面有句話,很觸動(dòng)我:是時(shí)候用Java開(kāi)發(fā)智能硬件了。之前聽(tīng)說(shuō)過(guò)有用javascript腳本語(yǔ)言進(jìn)行應(yīng)用開(kāi)發(fā)的開(kāi)發(fā)板,沒(méi)想到這次有機(jī)會(huì)玩玩用Java進(jìn)行開(kāi)發(fā)的開(kāi)發(fā)板,再次感謝芯板坊給我這次機(jī)會(huì))。
仔細(xì)端詳鈦極小龜評(píng)估板,你會(huì)發(fā)現(xiàn)其做工非常精細(xì),器件布局錯(cuò)落有致,設(shè)計(jì)風(fēng)格獨(dú)樹(shù)一幟,有別于其他眾多云平臺(tái)廠商推出的開(kāi)發(fā)板,讓用戶很容易識(shí)別各功能模塊區(qū)域。該評(píng)估板上板載有液晶屏模塊,溫濕度傳感器模塊,麥克風(fēng)模塊,普通按鍵模塊,光照度傳感器模塊,紅外接收模塊,繼電器模塊和觸摸按鍵模塊。實(shí)物圖如下圖2所示。
圖2 鈦極小龜評(píng)估板實(shí)物圖
二.軟件簡(jiǎn)介
鈦極OS是一個(gè)支持 Java 語(yǔ)言開(kāi)發(fā)嵌入式智能硬件的物聯(lián)網(wǎng)操作系統(tǒng),支持大部分的Java特性,與標(biāo)準(zhǔn)Java兼容,并通過(guò)Eclipse進(jìn)行開(kāi)發(fā),同時(shí)鈦極OS還支持多應(yīng)用。它的實(shí)現(xiàn)機(jī)制更像安卓、由內(nèi)核掌管底層硬件資源,軟硬隔離,同時(shí)集成高效的Java虛擬機(jī),通過(guò)對(duì)硬件抽象,異步IO, 多線程、沙盒運(yùn)行,事件驅(qū)動(dòng)以及面向?qū)ο蟮腏ava語(yǔ)言開(kāi)發(fā)等多種技術(shù),使物聯(lián)網(wǎng)硬件應(yīng)用開(kāi)發(fā)變得輕松且高效。
鈦極OS由操作系統(tǒng)(TOS)、Java虛擬機(jī)(TiJVM)、功能組件(TiRT)三部分構(gòu)成。TOS負(fù)責(zé)提供任務(wù)調(diào)度和控制、文件操作、基準(zhǔn)時(shí)鐘、資源的分配、外設(shè)操作(GPIO/UART…)等基礎(chǔ)服務(wù)。同時(shí)鈦極OS的特點(diǎn)是內(nèi)核OS支持第三方的RTOS,例如LiteOS、FreeRTOS等。TiJVM的作用是建立Java程序的運(yùn)行環(huán)境,實(shí)現(xiàn)Java語(yǔ)言的各種特性,同時(shí)TiJVM也是TOS的一個(gè)任務(wù)。
TiRT是為用戶開(kāi)發(fā)應(yīng)用程序提供的基礎(chǔ)類(lèi)支持,包括感知層控制、網(wǎng)絡(luò)通信協(xié)議、為物聯(lián)網(wǎng)的安全接入和身份鑒別提供的安全組件、圖形組件包。其體系結(jié)構(gòu)如下圖3所示。
圖3 鈦極OS系統(tǒng)結(jié)構(gòu)圖
總體說(shuō)來(lái),鈦云物聯(lián)提供了豐富的例程資源供用戶遞進(jìn)式的學(xué)習(xí),由于時(shí)間有限,我此次沒(méi)有連接公有云、在手機(jī)上體驗(yàn)和編寫(xiě)手機(jī)端的控制程序,稍感遺憾。將來(lái)時(shí)間允許的話,再進(jìn)行系統(tǒng)功能擴(kuò)展,相信會(huì)有另一番的體驗(yàn)。
三.項(xiàng)目簡(jiǎn)介
當(dāng)時(shí)我的申請(qǐng)計(jì)劃是用鈦極小龜物聯(lián)網(wǎng)開(kāi)發(fā)套件搭建了一個(gè)移動(dòng)式環(huán)境監(jiān)測(cè)系統(tǒng)。在申請(qǐng)的時(shí)候,經(jīng)過(guò)分析、研究相關(guān)資料,從原理圖上可以得到結(jié)論:
若想將其安裝到移動(dòng)平臺(tái)上,除了繼電器接口外,別無(wú)它法(該套件沒(méi)有外擴(kuò)引出任何引腳!若想做更多擴(kuò)展要么換個(gè)平臺(tái)–鈦極OS(TiJOS)物聯(lián)網(wǎng)操作系統(tǒng)開(kāi)發(fā)套件 ESP8266,當(dāng)然也可以借鑒我此次的設(shè)計(jì)方法)。
1. 系統(tǒng)功能簡(jiǎn)介。移動(dòng)式環(huán)境監(jiān)測(cè)系統(tǒng)具有的功能如下所示。
- 用戶通過(guò)紅外遙控器指定移動(dòng)平臺(tái)移動(dòng)到預(yù)定地點(diǎn)的功能;
- 具有SmartConfig配置聯(lián)網(wǎng)功能;
- 移動(dòng)平臺(tái)可以隨時(shí)進(jìn)行環(huán)境參數(shù)的采集功能;
- 移動(dòng)平臺(tái)通過(guò)MQTT協(xié)議將采集到的環(huán)境數(shù)據(jù)上傳到后臺(tái)云上(這里我采用的是本地私有云,當(dāng)然也可以擴(kuò)展到諸如阿里云等公有云平臺(tái)上)。
2. 系統(tǒng)通信協(xié)議
為了完成該套件與移動(dòng)平臺(tái)間的通信,即將該套件安裝到移動(dòng)平臺(tái)上,用戶可以通過(guò)紅外遙控器操作小車(chē)進(jìn)行環(huán)境監(jiān)測(cè),因此制定了如下表1所示的通信協(xié)議。
表1 移動(dòng)式環(huán)境監(jiān)測(cè)系統(tǒng)通信協(xié)議
如前所述,因?yàn)樵撎准](méi)有外擴(kuò)對(duì)外的引腳,所以在此次項(xiàng)目中,我通過(guò)將套件板載的繼電器與移動(dòng)平臺(tái)的GPIO引腳進(jìn)行連接,從而完成兩板子間的物理信道的連接。而實(shí)現(xiàn)邏輯上,移動(dòng)平臺(tái)上的主控系統(tǒng)通過(guò)統(tǒng)計(jì)EXIT接口接收到的中斷申請(qǐng)的次數(shù)來(lái)識(shí)別用戶的控制命令,命令編碼如上表左側(cè)所示。
比如,用戶按下紅外遙控器的按鈕,希望移動(dòng)平臺(tái)右轉(zhuǎn)時(shí),該套件在識(shí)別鍵碼后,通過(guò)吸合板載繼電器4次后,引發(fā)與其相連接的移動(dòng)平臺(tái)上的引腳有4次高低電平的變化,而該引腳復(fù)用了EXTI外部中斷功能,從而移動(dòng)平臺(tái)上的主控解析出相應(yīng)的電機(jī)動(dòng)作。套件與移動(dòng)平臺(tái)間硬件連線圖如下圖4所示。
圖4 套件與移動(dòng)平臺(tái)間硬件連線圖
實(shí)物連接圖如上圖2中左上角紅色文字1/2/3所示,1為NC常閉引腳,2為COM公共引腳,3為NO常開(kāi)引腳。這里連接原理如上圖4所示。
注意,這里板載繼電器電路是帶有防反向電動(dòng)勢(shì)的二極管保護(hù)電路,所以我直接將2塊板子直接相連結(jié)了。如果自行搭建繼電器電路時(shí),需要注意防反措施。原理圖如下圖5紅色圈所示。
圖5 帶有二極管保護(hù)的繼電器電路
四.硬件實(shí)物
硬件實(shí)物如圖6所示。
五.軟件設(shè)計(jì)
1. 鈦極小龜評(píng)估板程序
為了完成信號(hào)的采集,本軟件系統(tǒng)設(shè)計(jì)了3個(gè)線程,分別用于采集溫濕度、光線、環(huán)境音。示例代碼如下圖7和8所示。
圖7 線程的調(diào)用
圖8 溫濕度信號(hào)采集類(lèi)的設(shè)計(jì)
而在主循環(huán)中每1秒將采集到的信息發(fā)送到本地私有云上(效果如視頻所示),示例代碼如下圖9所示。另外采用監(jiān)聽(tīng)器實(shí)時(shí)對(duì)紅外遙控器進(jìn)行解碼分析,如下圖10所示。
圖9 向本地云發(fā)布MQTT消息
圖10 紅外解碼部分代碼
(2)小車(chē)的程序
這里小車(chē)主要有接收協(xié)議編碼、解析協(xié)議、小車(chē)行進(jìn)和壁障等四個(gè)功能,因?yàn)椴皇呛诵牟糠郑涫纠a略過(guò)。
六.實(shí)物
1. 測(cè)試問(wèn)題
(1)當(dāng)網(wǎng)絡(luò)信號(hào)不好時(shí),日志會(huì)彈出如下圖10所示異常。另外,當(dāng)連接wifi模塊創(chuàng)建的網(wǎng)絡(luò)時(shí),系統(tǒng)能連接上,但是無(wú)法向本地云上傳相關(guān)數(shù)據(jù)。
(2)在系統(tǒng)運(yùn)行時(shí),有時(shí)日志會(huì)列舉如下圖11所示的異常,經(jīng)查閱是與DHT11相關(guān)的,且評(píng)估板此時(shí)的DHT11是無(wú)法工作的,還沒(méi)有查出問(wèn)題。
六.使用心得
對(duì)于使用Eclipse進(jìn)行開(kāi)發(fā)時(shí),沒(méi)有連接硬件進(jìn)行debug的功能,有些遺憾!從個(gè)人角度來(lái)說(shuō),每次都得Run as TiJOS Application,對(duì)于與硬件相關(guān)的應(yīng)用開(kāi)發(fā),很難發(fā)現(xiàn)程序中潛在的邏輯/時(shí)序問(wèn)題。
對(duì)我來(lái)說(shuō)(大約花了3周時(shí)間里設(shè)計(jì)本項(xiàng)目),學(xué)習(xí)鈦極小龜評(píng)估板相關(guān)示例程序還是有一些難度的(約20年前學(xué)過(guò)Java語(yǔ)言,看到Java代碼確實(shí)有似曾相識(shí)的感覺(jué),實(shí)則早已忘光了,所以還是花一些時(shí)間來(lái)慢慢熟悉和適應(yīng)的),但是相信對(duì)于Java工程師而言,肯定沒(méi)有問(wèn)題!也就說(shuō)該評(píng)估板確實(shí)可以說(shuō)是一款顛覆傳統(tǒng)開(kāi)發(fā)的物聯(lián)網(wǎng)開(kāi)發(fā)套件,為不需懂硬件電路設(shè)計(jì)的Java工程師打開(kāi)了物聯(lián)網(wǎng)世界開(kāi)發(fā)的大門(mén)。
總體說(shuō)來(lái),鈦云物聯(lián)有別于傳統(tǒng)的云平臺(tái)廠商,通過(guò)創(chuàng)新性地把Java語(yǔ)言應(yīng)用到低資源、低成本的MCU開(kāi)發(fā)中,從而降低了物聯(lián)網(wǎng)產(chǎn)品的開(kāi)發(fā)難度和開(kāi)發(fā)成本。個(gè)人相信其應(yīng)用前景將會(huì)非常廣泛。
本次試用活動(dòng)由芯板坊舉辦。帶大家體驗(yàn)鈦極物聯(lián)開(kāi)發(fā)板,大家可在芯板坊微信(xinzixun321),點(diǎn)擊菜單欄免費(fèi)申請(qǐng)。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。