拒絕平庸,以程序員的名義定義新桌面!

通過近半年時間的角逐, 騰訊雲IoT應用創新大賽日前完滿落下帷幕,大賽期間很多優秀的做品脫穎而出,得到了評委和讀者們的承認和喜好。本文是對其中一篇獲獎做品的摘錄,基於TencentOS tiny與騰訊雲物聯網開發平臺IoT Explorer,打造一款實現創意桌面的個性化物聯網小產品。

點擊視頻,查看詳細做品展現html

1、做品簡介

現代人羣與各種電子終端的接觸時間愈來愈長,桌面做爲常常伴隨的環境,成爲了咱們視線和注意力最集中的一角,說是一片我的的小天地也不爲過。前端

好的桌面環境會給咱們帶來更好的感覺,人們但願可以讓本身的桌面充實一點,個性化一點,更加智能化一點,保持整潔光亮不枯燥。在此思想出發,本文做者基於TencentOS tiny與騰訊雲物聯網開發平臺IoT Explorer,打造了一款實現桌面個性化的物聯網做品,而且能夠經過微信小程序去控制。git

」Hello-IoT 創意桌面擺件」專一打造個性化桌面!github

1. 爲何推出這款產品?

經過大賽提供的機會使用TencentOS tiny和騰訊雲物聯網開發平臺IoT Explorer,感覺IoT帶來的便捷與創新,而且設計一個稍微實用而不失美觀的做品,讓你們都有機會去體驗。小程序

桌面成了咱們常常伴隨的環境,桌面環境也在潛移默化影響着咱們,好的桌面環境會給咱們帶來更好的感覺。基於這些考慮,作出了這樣的做品。微信小程序

2. 爲何須要聯網以及經過微信小程序控制?

(1)成本削減服務器

經過聯網和利用微信小程序控制,能夠去掉一部分硬件成本。屏幕使用的觸摸屏成本仍是比較高的,經過使用裸屏幕顯示就能夠把硬件上的電容觸摸屏方案省掉。可以把硬件成本壓縮下去,做爲一個消費級電子產品才更具有競爭力。微信

(2)適應更多場景網絡

經過微信小程序可以實現更多的應用場景,隨着從此物聯網應用的推廣,之後可能會推出更多的應用功能。框架

(3)下降開發難度

微信小程序的界面開發比嵌入式平臺的界面開發相對來講容易不少,也更易於實現更多的功能和更友好的用戶交互界面。

(4) 融入騰訊雲生態

經過使用騰訊的TencentOS tiny和騰訊雲物聯網開發平臺IoT Explorer會有穩定的服務,同時有可能經過騰訊雲的其它產品平臺實現更多的功能,實現產品功能的多樣化。

2、技術原理展現

1. 設備端軟件層次結構

首先經過xFrame單片機軟件框架來實現硬件底層和系統抽象層來適配TencentOS tiny。這樣的話就能夠在不修改或者最小修改上層應用代碼的前提下適應咱們不一樣的單片機和硬件平臺,以及RTOS。

其次經過Platform平臺適配層,經過虛擬的方式將單片機應用放到Windows或者Linux上運行,咱們這裏至關部分的應用開發即是放到Windows上進行虛擬開發的,在電腦上虛擬了LCD/觸摸/按鍵/SPI Flash/文件系統/24C02等。

下圖展現了"Hello-IoT 桌面擺件「的設備端軟件層次結構圖:

設備端單片機的軟件層次結構圖

2. TencentOS tiny的移植

GitHub上的TencentOS tiny項目下,開發者們貢獻了不少開發板的TencentOS tiny的移植例程,我使用的單片機是STM32F103VET6,因此我直接參考整點原子的工程進行了移植。

把HAL庫改爲了標準庫,GUI須要的內存比較大,又把TencentOS tiny的堆棧大小由0x6000改爲了0x1000,其它的保留不變,移植就完成了,TencentOS tiny的移植很是簡單便捷。

3. 用戶交互開發

這裏的用戶圖形界面比較多,因此使用了一個叫作LemonGUI的組件框架方便咱們的用戶交互開發,下圖爲相關的GUI組件框架結構圖:

GUI組件框架圖

4. 對接騰訊雲物聯網開發平臺IoT Explorer

這裏設備經過ESP8266 AT指令鏈接網絡,間接經過路由器與騰訊雲物聯網開發平臺IoT Explorer實現對接,在GitHub上也都提供了不少的例程參考。

第一次使用物聯網雲平臺感受並無想象中的那麼難,佷方便,可以把時間和精力都放到產品應用開發上,減短開發週期及時推出產品。尤爲是做爲小團隊,沒有專門的人去搭建和維護服務器,使用騰訊雲物聯網開發平臺IoT Explorer是一個很不錯的選擇。

5.微信小程序開發

由於以前有安卓界面的開發經驗和有完善素材庫的支持,因此很快實現了微信小程序的開發。

關於微信小程序如何經過騰訊雲物聯網開發平臺IoT Explorer控制咱們的設備,GitHub上已經提供有微信小程序智慧燈的參考例程,因此我就借鑑例程進行了開發,最終實現了微信小程序對設備的操做。

微信小程序主界面的截圖

微信小程序按照原來預想的完整用戶業務對接實現,界面佈局參考了APP的樣式,這樣界面會好看一點,同時之後須要寫對應的安卓APP的話也會方便點,界面微信小程序的功能組織框架圖以下:

                       

6.設備硬件平臺

咱們這裏使用的是一塊以STM32F103VET6爲主控的單片機硬件平臺,帶有ESP8266和JDY32藍牙串口模塊,以此實現聯網和輸出調試,W25Q128 Flash芯片做爲字庫和素材存儲,SD卡做爲文件系統和桌面電子相冊相片的存儲。

硬件PCB加上咱們的LCD面板基本就能夠實現最小功能了,而後搭配了一個塑料支架,可調仰俯角,方便實用。LCD面板使用ISP全視角面板,即便擺得很偏也能保持驚豔的觀看效果。

電路原理圖

PCB3D版圖

」Hello-IoT創意桌面擺件」前視圖

3、優化方向

1. 選用低成本硬件平臺

由於至關部分人沒有製做硬件的經驗,因此藉助便宜的第三方硬件方案多是更好的選擇。這裏選擇國產某TKM32F499,這個芯片帶有8MB的RAM和240MHz的主頻。官方硬件板卡成本價格相對來講很便宜。

(1)TencentOS tiny的移植**

由於這款MCU的是基於M4內核的,GitHub上也正好有正點原子F429開發板的TencentOS tiny移植例程。只要是內核同樣,直接複製粘貼文件就能夠移植,因此移植TencentOS tiny到這個平臺是有可能的。

(2)板卡自帶ESP8266模塊

正好知足了咱們WiFi聯網到騰訊雲物聯網開發平臺IoT Explorer的需求,不過須要說明的是ESP8266的固件仍是須要手動燒錄騰訊提供的固件,這個能夠從GitHub上下載。

(3)240MHz的主頻和8MB內存

能夠彌補當前STM32刷屏不流暢的缺點,實現更多的功能。

2. 通過APP訪問騰訊雲物聯網開發平臺IoT Explorer

因爲微信小程序須要搭建服務器,不利於我的DIY,因此對設備的操做最好是使用手機APP直接訪問騰訊雲物聯網開發平臺IoT Explorer進行操做。這裏就須要把微信小程序的功能用JAVA實現到安卓APP上。騰訊雲物聯網開發平臺IoT Explorer非常完善,提供了JAVA的API接口,相信實現這麼一個APP並不會很難。

4、結語

騰訊雲物聯網開發平臺IoT Explorer和TencentOS tiny系統給開發者帶來的開發效率和開發便利性不是一點點的提高。做爲一個入門的產品工程師,我深知一個消費級產品對開發週期的敏感性,若是一個消費級產品沒有在最短期內完成開發、調試、推廣,就頗有可能讓競爭對手搶佔先機佔據市場份額。

做爲開發者應當使產品的開發週期在保證質量的前提下儘量地短。那麼在物聯網產品的開發中怎麼才能即能保證質量的同時縮短開發週期呢?騰訊雲物聯網開發平臺IoT Explorer的出現無疑是一個很好的途徑與方式。

大多數嵌入式工程師每每在網絡後臺和前端都不是很擅長,騰訊雲物聯網開發平臺IoT Explorer不須要開發者實現前端與後臺只須要實現對應的接口就能網絡通訊和前端用戶交互,因而用戶->設備端->網絡->服務器後臺->前端用戶交互->IoT設備端就很快捷地對接起來了。

舉一個例子,做者本人在本次比賽以前幾乎沒有接觸過任何網絡開發,也沒接觸過任何物聯網雲平臺,連最基本Linux下的socket通訊demo和ESP8266 SDK開發都沒有接觸過,更不要說MTQQ之類的了,此前也就接觸過單片機串口通訊,在物聯網行業連小白都算不上。

這一次比賽期間,正是基於騰訊雲物聯網開發平臺IoT Explorer,做者在一天以內就完成了ESP8266的開發環境部署與遠程控制開發,實現了基本的通訊功能,因此騰訊雲物聯網開發平臺IoT Explorer在開發效率上佔據很大優點。

我就是依賴GitHub上提供的參考文檔和騰訊雲物聯網開發平臺IoT Explorer的API文檔一點一點地把這個比賽做品搭建起來的。

另外,TencentOS tiny的多平臺支持很是全面,各個廠商的多個系列芯片還有官方板卡的例程工程應有盡有,尤爲是STM32的支持連正點原子的開發板都適配了,給開發者帶來了極大的便利。

參考資料:

[1] 騰訊雲物聯網開發平臺IoT Explorer:

https://cloud.tencent.com/product/iotexplorer

[2] TencentOS tiny:

https://github.com/Tencent/TencentOS-tiny

點擊__查看做品路演PPT~

相關文章
相關標籤/搜索