内容:
- 硬件简介
- 软件简介
- 系统功能概述
- Demo
- TODO
- 使用感想
如今,工业,农业,生活里面的很多设备已经接入物联网,这些设备通过同一的平台进行管理。但是,每家厂商都自己接入自己的物联网设备,造成了设备与平台的割裂。所以打通设备与云平台成为非常重要的一环。而腾讯云物联网开发平台正是为次孕育而生,为整个行业推出一套解决方案。本文主要依据开发文档,一步步实现基于Django web控制智能灯软硬件系统。
本设计包括3部分组成,用户可以通过web界面进与IoT设备进行简单操作。包括Django web平台,腾讯云平台,IoT设备,其系统架构图如下:
系统架构图
硬件简介
用过STM32板子的同学对于开发这个肯定不陌生,但是对于只用过树莓派的同学,还是有很大区别的。
这个板子长这个样子,看上去跟普通的板子没啥区别,但是盒子里面的东西,以及外设的设置都比较良心。列出以下几点:
- 是烧录工具,贴心的4连杜邦线,直接插入即可。妈妈再也不用担心因为插错而烧坏板子!
- 串口直接采用usb串口,无需购买额外ttl转串口工具。
- 板载电池,更适合物联网需求。
各种外设,需要的都在,最关键的是支持各种联网外设,符合各种传输需求:
软件简介
内核开发环境:
- Keil5 推荐
- IAR
- gcc
云平台API
- 数据查询接口
- 设备管理接口
软件开发:
- Django
- Django REST framework
系统功能概述
内核功能修改
添加智能灯设备初始化与控制,自定义修改OLED显示内容
云平台配置
云平台提供相应的模版,可以配置需要的状态以及字段,通过上下行数据进行同步。并且可以通过手动去测试api,上手十分方便。
web服务开发
通过Django搭建基于web服务,通过REST framework存储状态。前端处理用户的控制以及状态、地图的显示。后端处理请求结果,状态同步等工作。
数据同步
借助controller进行硬件、平台和数据库之间状态的转移与同步。并完成发送命令到云平台,进行下发控制。用户根据web界面进行控制操作,并将状态同步到数据库中。控制界面图如下所示:
Demo
时间有限,所以录了一个小视频。
链接地址(Youtube):https://www.youtube.com/watch?v=ctormFkCIqU
屏幕快照 2019-08-14 下午5.13.56_meitu_1.jpg
屏幕快照 2019-08-14 下午5.13.34_meitu_2.jpg
后续改进TODO
由于只开发了2天,所以有多功能每加,列举了之后会加入的想法和功能:
- 根据光照强度调节
- 定时开关灯
- 微信接入,远程控制
试用感受
本次内测由于外设没有那么多,只能够用到现成的资源,修改少部分内核,大部分实现功能在web上面。我之前使用过STM32F103,对于Keil的使用以及配置没有什么太多的问题,如果需要更深修改内核,只需要参考芯片手册即可。所以包括硬件连接,已有内核上代码修改都感觉手难度比较容易。对于腾讯云平台的体验还是不错的,但是网络环境的影响还是稍有些延迟。总体上对于腾讯云平台的调试工具基于好评,支持自动生成代码。但是对于认证比较难用,总是过期,希望腾讯云平台可以改进认证环境,在调试的时候可以简化认证工具。
最后,希望这个开发版可以开发出更多好的应用,希望自己的实践可以为之后的人提供一些思路。
联系方式
邮箱:gzr2008@vip.qq.com
个人主页 WEB PAGE: http://www.ranxiaolang.com | 博客 BLOG: https://nature1995.club