通过近半年时间的角逐, 腾讯云IoT应用创新大赛日前完满落下帷幕,大赛期间很多优秀的做品脱颖而出,得到了评委和读者们的承认和喜好。本文是对其中一篇获奖做品的摘录,基于TencentOS tiny与腾讯云物联网开发平台IoT Explorer,打造一款实现创意桌面的个性化物联网小产品。
点击视频,查看详细做品展现html
现代人群与各种电子终端的接触时间愈来愈长,桌面做为常常伴随的环境,成为了咱们视线和注意力最集中的一角,说是一片我的的小天地也不为过。前端
好的桌面环境会给咱们带来更好的感觉,人们但愿可以让本身的桌面充实一点,个性化一点,更加智能化一点,保持整洁光亮不枯燥。在此思想出发,本文做者基于TencentOS tiny与腾讯云物联网开发平台IoT Explorer,打造了一款实现桌面个性化的物联网做品,而且能够经过微信小程序去控制。git
”Hello-IoT 创意桌面摆件”专一打造个性化桌面!github
经过大赛提供的机会使用TencentOS tiny和腾讯云物联网开发平台IoT Explorer,感觉IoT带来的便捷与创新,而且设计一个稍微实用而不失美观的做品,让你们都有机会去体验。小程序
桌面成了咱们常常伴随的环境,桌面环境也在潜移默化影响着咱们,好的桌面环境会给咱们带来更好的感觉。基于这些考虑,作出了这样的做品。微信小程序
(1)成本削减服务器
经过联网和利用微信小程序控制,能够去掉一部分硬件成本。屏幕使用的触摸屏成本仍是比较高的,经过使用裸屏幕显示就能够把硬件上的电容触摸屏方案省掉。可以把硬件成本压缩下去,做为一个消费级电子产品才更具有竞争力。微信
(2)适应更多场景网络
经过微信小程序可以实现更多的应用场景,随着从此物联网应用的推广,之后可能会推出更多的应用功能。框架
(3)下降开发难度
微信小程序的界面开发比嵌入式平台的界面开发相对来讲容易不少,也更易于实现更多的功能和更友好的用户交互界面。
(4) 融入腾讯云生态
经过使用腾讯的TencentOS tiny和腾讯云物联网开发平台IoT Explorer会有稳定的服务,同时有可能经过腾讯云的其它产品平台实现更多的功能,实现产品功能的多样化。
首先经过xFrame单片机软件框架来实现硬件底层和系统抽象层来适配TencentOS tiny。这样的话就能够在不修改或者最小修改上层应用代码的前提下适应咱们不一样的单片机和硬件平台,以及RTOS。
其次经过Platform平台适配层,经过虚拟的方式将单片机应用放到Windows或者Linux上运行,咱们这里至关部分的应用开发即是放到Windows上进行虚拟开发的,在电脑上虚拟了LCD/触摸/按键/SPI Flash/文件系统/24C02等。
下图展现了"Hello-IoT 桌面摆件“的设备端软件层次结构图:
设备端单片机的软件层次结构图
GitHub上的TencentOS tiny项目下,开发者们贡献了不少开发板的TencentOS tiny的移植例程,我使用的单片机是STM32F103VET6,因此我直接参考整点原子的工程进行了移植。
把HAL库改为了标准库,GUI须要的内存比较大,又把TencentOS tiny的堆栈大小由0x6000改为了0x1000,其它的保留不变,移植就完成了,TencentOS tiny的移植很是简单便捷。
这里的用户图形界面比较多,因此使用了一个叫作LemonGUI的组件框架方便咱们的用户交互开发,下图为相关的GUI组件框架结构图:
GUI组件框架图
这里设备经过ESP8266 AT指令链接网络,间接经过路由器与腾讯云物联网开发平台IoT Explorer实现对接,在GitHub上也都提供了不少的例程参考。
第一次使用物联网云平台感受并无想象中的那么难,佷方便,可以把时间和精力都放到产品应用开发上,减短开发周期及时推出产品。尤为是做为小团队,没有专门的人去搭建和维护服务器,使用腾讯云物联网开发平台IoT Explorer是一个很不错的选择。
由于以前有安卓界面的开发经验和有完善素材库的支持,因此很快实现了微信小程序的开发。
关于微信小程序如何经过腾讯云物联网开发平台IoT Explorer控制咱们的设备,GitHub上已经提供有微信小程序智慧灯的参考例程,因此我就借鉴例程进行了开发,最终实现了微信小程序对设备的操做。
微信小程序主界面的截图
微信小程序按照原来预想的完整用户业务对接实现,界面布局参考了APP的样式,这样界面会好看一点,同时之后须要写对应的安卓APP的话也会方便点,界面微信小程序的功能组织框架图以下:
咱们这里使用的是一块以STM32F103VET6为主控的单片机硬件平台,带有ESP8266和JDY32蓝牙串口模块,以此实现联网和输出调试,W25Q128 Flash芯片做为字库和素材存储,SD卡做为文件系统和桌面电子相册相片的存储。
硬件PCB加上咱们的LCD面板基本就能够实现最小功能了,而后搭配了一个塑料支架,可调仰俯角,方便实用。LCD面板使用ISP全视角面板,即便摆得很偏也能保持惊艳的观看效果。
电路原理图
PCB3D版图
”Hello-IoT创意桌面摆件”前视图
由于至关部分人没有制做硬件的经验,因此借助便宜的第三方硬件方案多是更好的选择。这里选择国产某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刷屏不流畅的缺点,实现更多的功能。
因为微信小程序须要搭建服务器,不利于我的DIY,因此对设备的操做最好是使用手机APP直接访问腾讯云物联网开发平台IoT Explorer进行操做。这里就须要把微信小程序的功能用JAVA实现到安卓APP上。腾讯云物联网开发平台IoT Explorer非常完善,提供了JAVA的API接口,相信实现这么一个APP并不会很难。
腾讯云物联网开发平台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: