拒绝平庸以程序员的名义定义新桌面

13次阅读

共计 3718 个字符,预计需要花费 10 分钟才能阅读完成。

经过近半年时间的角逐,腾讯云 IoT 应用创新大赛日前完满落下帷幕,大赛期间不少优秀的作品脱颖而出,获得了评委和读者们的认可和喜爱。本文是对其中一篇获奖作品的摘录,基于 TencentOS tiny 与腾讯云物联网开发平台 IoT Explorer,打造一款实现创意桌面的个性化物联网小产品。

点击视频,查看详细作品展示

一、作品简介

现代人群与各类电子终端的接触时间越来越长,桌面作为经常伴随的环境,成为了我们视线和注意力最集中的一角,说是一片个人的小天地也不为过。

好的桌面环境会给我们带来更好的感受,人们希望能够让自己的桌面充实一点,个性化一点,更加智能化一点,保持整洁光亮不枯燥。在此思想出发,本文作者基于 TencentOS tiny 与腾讯云物联网开发平台 IoT Explorer,打造了一款实现桌面个性化的物联网作品,并且可以通过微信小程序去控制。

”Hello-IoT 创意桌面摆件”专注打造个性化桌面!

1. 为什么推出这款产品?

通过大赛提供的机会使用 TencentOS tiny 和腾讯云物联网开发平台 IoT Explorer,感受 IoT 带来的便捷与创新,并且设计一个稍微实用而不失美观的作品,让大家都有机会去体验。

桌面成了我们经常伴随的环境,桌面环境也在潜移默化影响着我们,好的桌面环境会给我们带来更好的感受。基于这些考虑,做出了这样的作品。

2. 为什么需要联网以及通过微信小程序控制?

(1)成本削减

通过联网和利用微信小程序控制,可以去掉一部分硬件成本。屏幕使用的触摸屏成本还是比较高的,通过使用裸屏幕显示就可以把硬件上的电容触摸屏方案省掉。能够把硬件成本压缩下去,作为一个消费级电子产品才更具备竞争力。

(2)适应更多场景

通过微信小程序能够实现更多的应用场景,随着今后物联网应用的推广,以后可能会推出更多的应用功能。

(3)降低开发难度

微信小程序的界面开发比嵌入式平台的界面开发相对来说容易很多,也更易于实现更多的功能和更友好的用户交互界面。

(4)融入腾讯云生态

通过使用腾讯的 TencentOS tiny 和腾讯云物联网开发平台 IoT Explorer 会有稳定的服务,同时有可能通过腾讯云的其它产品平台实现更多的功能,实现产品功能的多样化。

二、技术原理展示

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 创意桌面摆件”前视图

三、优化方向

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 并不会很难。

四、结语

腾讯云物联网开发平台 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~

正文完
 0