专栏首页腾讯云IoT【IoT应用创新大赛】"Hello-IoT 创意桌面摆件"
原创

【IoT应用创新大赛】"Hello-IoT 创意桌面摆件"

本文章为个人原创,如果有转载请在文章头部注明出处以及本原文链接,谢谢合作!

一、前言

大家好,很高兴能够参与这次腾讯云IoT应用创新大赛,非常希望能够在这次比赛中得到收获与提升,同时也希望能够通过这次比赛能与各位交流学习。为了能有更多的人能够参与进来,所以希望能够设计一个稍微实用而不失美观的作品,每个人都有可能在此基础上动手使用我们的TencentOS-tiny与IoT Explorer通过微信小程序去控制的这么一个设计。

二、作品简介

<1>现在越来越多的人群与桌面接触的时间越来越长,有伏在工作台上天天画图的UI设计师和前端,有长时间在电脑屏幕前写代码的程序员,有在键盘上不停打字的白领,动鼠标做PPT的业务,甚至作业做不完的学生。。。桌面成了我们经常伴随的环境,由此桌面成为我们视线和注意力最集中的一角,说是一片个人的小天地一点不为过。所以桌面的环境也在影响着我们更多人的心情和做事的态度,桌面环境在潜移默化之间影响着我们。好的桌面环境会给我们带来更好的感受,整洁光亮不枯燥。。。事与愿违,不是每个人都能在这方面做得足够好的,人们希望能够让自己的桌面充实一点,个性化一点,智能化一点---所以一款以打造个桌面个性化的物联网作品横空出世了。

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

<2>为什么需要推出“Hello-IoT桌面摆件

•1.希望能够设计一个稍微实用而不失美观的作品,大家都有机会玩的那种

•2.通过这次机会使用TencentOS-tiny和腾讯IoT Explorer服务,让大家感受IoT带来的便捷与创新

•3.现在越来越多的人群与桌面接触的时间越来越长,桌面成了我们经常伴随的环境,由此桌面成为我们视线和注意力最集中的一角。桌面环境在潜移默化之间影响着我们。好的桌面环境会给我们带来更好的感受,整洁光亮不枯燥。

•4.人们希望能够让自己的桌面充实一点,个性化一点,智能化一点---所以一款以打造个桌面个性化的物联网作品横空出世了。

<3>“Hello-IoT 创意桌面摆件为什么需要联网以及通过微信小程序控制?

1.一个是const down的问题,因为通过联网通过微信小程序进行控制,那么就可以去掉一部分硬件成本。屏幕使用的触摸屏成本还是非常高的,通过使用裸屏幕显示就可以把硬件上的电容触摸屏方案省掉,能够把硬件成本压缩下去。作为一个消费级电子产品也才更具备竞争力。 2.另一个原因是通过微信小程序能够实现更多的应用场景,随着今后物联网应用的推广,那么以后的也才能推出更多的应用功能。 3.其次就是微信小程序的界面开发比嵌入式平台的界面开发相对来说容易很多,也更易于实现更多的功能更友好的用户交互界面。

4.通过使用腾讯的TencentOS-tiny和IoT Explorer会有稳定的服务,以及已有有可能通过腾讯云的其它产品平台实现更多的功能,这样产品也才会更多样化。

<4>”Hello-IoT 创意桌面摆件”能够用微信小程序实现哪些操作,实现什么功能?后面将会通过PPT演示.

三、PPT演示与视频演示

(1)PPT技术篇

Hello-IoT创意桌面摆件-技术篇.pptx

(2)PPT展示篇,这是给用户看的,希望各位不要笑话,因为这个PPT体积太大提交失败,所以通过图片展示了,源文件PPT通过百度云上传链接:https://pan.baidu.com/s/1hwsEjZzGv6O8N2spaRmk0Q 提取码:efa6

四、"Hello-IoT创意桌面摆件"使用的相关技术和基本的框图以及网络拓扑结构

1.这里通过基于一个叫做xFrame的单片机软件框架来实现硬件底层和系统抽象层来适配我们的TencentOS-tiny。这样的话就可以在不修改或者最小修改上层应用代码的前提下是适应我们不同的单片机和硬件平台,还有我们的RTOS。其次通过Platform平台适配层,将有可能通过虚拟的方式将单片机应用放到Windows或者Linux上运行,这里的相当部分应用开发便是放到Windows上进行虚拟开发,在电脑上虚拟了LCD/触摸/按键/SPI Flash/文件系统/24C02等,本来也打算用c语言虚拟出IoT Explorer上的设备端的,但是发现只提供了Linux的设备端C语言版本的代码,只好作罢。下图是"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指令连接网络,间接通过路由器与腾讯物联网平台实现对接,这里在github上都已经提供了很多的例程。我是直接搬来用的,第一次使用物联网云平台感觉并没有想象中的那么难,佷方便,能够把时间和精力都放到产品应用开发上,减短开发周期及时推出产品,这也是使用腾讯网云平台的好处之一。尤其是作为小团队,没有专门的人去搭建和维护服务器,第三方物联网云平台是一个很不错的选择。

5.微信小程序的开发,说明一下这里是我第一次开发微信小程序。可以说是会者不难难者不会,接触之前以为很难,但是实际上花了一个上午和一个晚上第二天我就已经开始这个项目的微信小程序的开发了,这个界面是第二天做出来的,因为之前有安卓界面的开发经验和有完善素材库的支持,所以很快就实现了微信小程序的开发。其次是微信小程序如何通过IoT Explorer控制我们的设备,因为github上已经有提供了微信小程序智慧灯的参考例程,所以就借鉴例程进行开发,实现了微信小程序对设备的操作。

这是微信小程序主界面的截图,其它的在PPT里已经有了,这里就不发了

微信小程序按照原来预想的完整的用户业务对接实现,界面布局参考了APP的样式,这样界面会好看一点同时以后需要写对应的安卓APP的话也会方便点,界面微信小程序的功能组织框架图如下(有些功能没有实现)

6.设备硬件平台,我们这里使用的是一块以STM32F103VET6为主控的单片机硬件平台,带有ESP8266和JDY32蓝牙串口模块,以此实现联网和输出调试,W25Q128 Flash芯片作为字库和素材存储,SD卡原本是作为文件系统和桌面电子相册相片存储的,但是SD卡槽貌似硬件上有问题,只能搁置。硬件PCB加上我们的LCD面板基本就可以实现最小功能了,然后加上了一个塑料支架,如果再对硬件PCB优化一下,是已经接近基本的实用化了。尤其是搭配了一个塑料支架,可调仰俯角,很方便实用,摆在桌面上更合适不过了。如下图

电路原理图如下

Hello-IoT桌面摆件原理图

硬件PCB图如下

PCB3D版图

硬件PCB加上我们的LCD面板基本就可以实现最小功能了,然后加上了一个塑料支架,如果再对硬件PCB优化一下,是已经接近基本的实用化了,LCD面板使用的ISP全视角面板说实话观看效果很不错,摆得很偏也能保持效果惊艳。

”Hello-IoT创意桌面摆件”前视图
侧视效果图
搭配了一个塑料支架,可调仰俯角,很方便实用

视频效果演示如下

视频内容

、篇幅限制,具体的技术细节就不多披露了,整个工程量不算庞大但是也不小,这里展示一下,文字太多这里通过视频讲解给各位吧。

六、改进计划与开源计划

总的来说,”Hello-IoT 创意桌面摆件”的设计还是非常仓促的,加上自己也是搁置几天投入几天,所以距离实用化还是有挺远的。所以为了更多的对这个桌面摆件感兴趣的人能够参与进来,这里在现有的基础上对这个摆件提出了改进的计划和开源计划。

为了能让更多感兴趣的人使用这个小设计打算对这个桌面摆件进行一些改进

1.共同的底成本硬件平台,因为相当部分人没有制作硬件的经验,所以可以借助便宜第三方的硬件方案更好不过。这里选择国产好钜润的TKM32F499,这个芯片带有8MB的RAM和240MHz的主频。官方硬件板卡成本价格相对来说很便宜(这是已经包含了屏幕的价格的情况下),平台我觉得很合适

官方硬件板卡价格(已经包含屏幕)

2.移植TencentOS -tiny的可能性,因为这款MCU的是基于M4内核的,据说是用的STM32F429的die版图,github上也正好有正点原子F429开发板TencentOS -tiny的移植例程。根据Arthur前辈的描述,只要是内核一样,直接复制粘贴文件就可以移植,所以移植TencentOS -tiny到这个平台是有可能的。

3.板卡自带ESP8266模块,正好满足了我们WIFI联网到腾讯云物联平台IoT Explorer的需求,不过需要说明的是ESP8266的固件还是需要手动烧录腾讯提供的固件,这个可以从github上下载。

4.240MHz的主频和8MB内存,可以弥补当前STM32刷屏不流畅的缺点,可以实现更多的功能。

5.由于微信小程序需要搭建服务器,但是不利于个人DIY,所以对设备的操作最好是使用手机APP直接访问腾讯物联网平台进行操作,这里就需要把微信小程序的功能用JAVA实现到安卓APP上。腾讯的物联网云平台很是完善,提供了JAVA的API接口,相信实现这么一个APP并不会很难

6.其它,由于个人时间有限,后面有时间将会对此进行改进,做到实用化,让更多感兴趣的人能参与到这个基于TencentOS -tiny和腾讯IoT Explorer平台的低成本桌面摆件。

7.关于开源,如果后面做出来的话,这里只打算半开源,只提供腾讯物联网云平台IoT Explorer的模板json文件、APP安装包、硬件原理图、MCU固件、ESP8266固件、还有SD卡关键系统文件等。

七、总结

1.关于TencentOS-tiny和腾讯云IoT Explorer大家都已经在内测阶段了解得差不多了,入门教程也写得挺不错了,这里限于篇幅我就不再重复介绍了。作为一个新手由于参加这个比赛第一次接触TencentOS-tiny、第一次接使用腾讯云IoT Explore、第一次接触微信小程序开发,这里说下我的两点感受: (1).腾讯云IoT Explorer平台和TencentOS-tiny系统给开发者带来的开发效率和开发便利性不是一点点的提升。作为一个入门的产品工程师,深知一个消费级产品对开发周期的敏感性,如果一个消费级产品没有在最短时间内完成开发、调试、推广,就很有可能让竞争对手抢占先机占据市场份额。作为开发者应当使产品的开发周期在保证质量的前提下尽可能地短。那么在物联网产品的开发中怎么才能即能保证质量的同时缩短开发周期呢?腾讯云IoT Explorer平台的出现无疑是一个很好的途径与方式,大多数嵌入式工程师往往在网络后台前端都不是很擅长,腾讯云IoT Explorer平台不需要开发者实现前端与后台只需要实现对应的接口就能网络通信和前端用户交互,于是用户->设备端->网络->服务器后台->前端用户交互->IoT设备端就很快捷地对接起来了。举一个例子,作者本人在本次比赛之前几乎没有接触过任何网络开发,也没接触过任何物联网云平台,连最基本linux下的socket通信demo和ESP8266 SDK开发都没有接触过,更不要说MTQQ之类的了,此前也就接触过单片机串口通信,在物联网行业连小白都算不上。这一次比赛中,正是基于腾讯云平台,作者在一天之内就完成了ESP8266的开发环境部署与远程控制开发,实现了基本的通信功能,所以腾讯云IoT平台在开发效率上很是占据优势。 (2).腾讯在IoT Explorer和TencentOS-tiny的技术支持和推广方面做得挺不错。技术支持上,TencentOS-tiny技术交流群与官方比赛群对技术问题的回复都很快,尤其是汪前辈还有Arthur前辈总能在第一时间解答,这个要比别的平台好得多。然后就是参考文档,必要的入门文档,作者就是依赖github上提供的参考文档和腾讯云IoT平台的API文档一点一点地把这个比赛作品搭建起来的。还有的就是TencentOS-tiny的多平台支持非常全面,各个厂商的多个系列的芯片还有官方板卡的例程工程应有尽有,尤其是STM32的支持连正点原子的开发板都适配了。给我印象深刻的基于RISC-V指令集的国产芯片RV32都有支持。正是有这么多的平台适配例程可选择,作者也才能在半天内把TencentOS-tiny移植到自己画的物联网开发板上。值得说一下的就是TencentOS-tiny的架构思想和代码品质很值得学习,只是注释用的英文,读起来有点慢哈哈。至于腾讯对IoT Explorer和TencentOS-tiny的推广方面我就不多说了,大家都懂的,能够一下子免费发放那么多开发板和举办这么一个人数众多的比赛,也就大厂能够这么做了,点个赞!

八、结尾

赶在最后几分钟提交。还是没有把预想的所有功能都做完,胖子不是一口气吃成的,一个成熟的设计也是需要多次版本迭代功能才能更完善,还请多多见谅!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 云桌面真的那么好用吗?

    最近某学校提出希望降低电脑更新换代的成本、同时降低日常电脑的软硬件维护工作量,因此当地运营商公司的同事提出使用云桌面来解决这些问题!向客户讲到云桌面的...

    希望的田野
  • 【干货】容器Web Console技术实现

    现如今,随着容器技术的普及,越来越多的公司都开始尝试将其与自身的业务相结合,以提高生产和运维效率。

    杨振涛
  • 【干货】容器Web Console技术实现

    现如今,随着容器技术的普及,越来越多的公司都开始尝试将其与自身的业务相结合,以提高生产和运维效率。

    杨振涛
  • Asp.Net WebApi 调试利器“单元测试”

    当我们编辑好一个WebApi应用程序后,需要对该Api接口进行调试,传统的调试办法是在方法内设置断点,然后用PostMan等http工具模拟访问进行查看WebA...

    码农阿宇
  • RNA-seq的counts值,RPM, RPKM, FPKM, TPM 的异同

    提到了RPKM值被淘汰,很多粉丝留言表示不能理解,这里解释一下不同值的异同点。 现在常用的基因定量方法包括:RPM, RPKM, FPKM, TPM。这些表达...

    生信技能树
  • WCF系列教程之客户端异步调用服务

    本文参考自http://www.cnblogs.com/wangweimutou/p/4409227.html,纯属读书笔记,加深记忆 一、简介 在前面的随笔中...

    郑小超.
  • Redis - 事物控制和发布订阅

    Aichen
  • Qt官方示例-QML扩展对象

    ❝该示例展示如何使用qmlRegisterExtendedType()将扩展对象(LineEditExtension)提供给QLineEdit,而无需对其进行修...

    Qt君
  • 锯齿湖-最具商用价值的开源区块链项目:超级账本(4)

    Sawtooth Lake(锯齿湖)是由超级账本联盟成员英特尔(Intel)公司发起的分布式账本平台试验项目,最初发布的时候称为intelledger,在进入超...

    Henry Zhang
  • Tesseract:安装与命令行使用

    http://www.zmonster.me/2015/04/17/tesseract-install-usage.html

    bear_fish

作者介绍

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券