【IoT迷你赛】基于Django和TencentOS tiny的IoT智能灯系统设计

2019-08-16 15:52:33 浏览数 (1)

内容:

  • 硬件简介
  • 软件简介
  • 系统功能概述
  • Demo
  • TODO
  • 使用感想

如今,工业,农业,生活里面的很多设备已经接入物联网,这些设备通过同一的平台进行管理。但是,每家厂商都自己接入自己的物联网设备,造成了设备与平台的割裂。所以打通设备与云平台成为非常重要的一环。而腾讯云物联网开发平台正是为次孕育而生,为整个行业推出一套解决方案。本文主要依据开发文档,一步步实现基于Django web控制智能灯软硬件系统。

本设计包括3部分组成,用户可以通过web界面进与IoT设备进行简单操作。包括Django web平台,腾讯云平台,IoT设备,其系统架构图如下:

系统架构图

系统架构图系统架构图

硬件简介

用过STM32板子的同学对于开发这个肯定不陌生,但是对于只用过树莓派的同学,还是有很大区别的。

这个板子长这个样子,看上去跟普通的板子没啥区别,但是盒子里面的东西,以及外设的设置都比较良心。列出以下几点:

  1. 是烧录工具,贴心的4连杜邦线,直接插入即可。妈妈再也不用担心因为插错而烧坏板子!
  2. 串口直接采用usb串口,无需购买额外ttl转串口工具。
  3. 板载电池,更适合物联网需求。

各种外设,需要的都在,最关键的是支持各种联网外设,符合各种传输需求:

外设1外设1
外设2外设2

软件简介

内核开发环境:

  • Keil5 推荐
  • IAR
  • gcc

云平台API

  • 数据查询接口
  • 设备管理接口

软件开发:

  • Django
  • Django REST framework

系统功能概述

内核功能修改

添加智能灯设备初始化与控制,自定义修改OLED显示内容

初始化GPIO初始化GPIO
控制灯控制灯
云平台配置

云平台提供相应的模版,可以配置需要的状态以及字段,通过上下行数据进行同步。并且可以通过手动去测试api,上手十分方便。

图形化测试平台图形化测试平台
api在线测试平台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

image.pngimage.png

屏幕快照 2019-08-14 下午5.13.34_meitu_2.jpg

image.pngimage.png

后续改进TODO

由于只开发了2天,所以有多功能每加,列举了之后会加入的想法和功能:

  • 根据光照强度调节
  • 定时开关灯
  • 微信接入,远程控制

试用感受

本次内测由于外设没有那么多,只能够用到现成的资源,修改少部分内核,大部分实现功能在web上面。我之前使用过STM32F103,对于Keil的使用以及配置没有什么太多的问题,如果需要更深修改内核,只需要参考芯片手册即可。所以包括硬件连接,已有内核上代码修改都感觉手难度比较容易。对于腾讯云平台的体验还是不错的,但是网络环境的影响还是稍有些延迟。总体上对于腾讯云平台的调试工具基于好评,支持自动生成代码。但是对于认证调试的时候总是过期,希望腾讯云平台可以改进认证环境,在调试的时候可以简化认证工具。

最后,希望这个开发版可以开发出更多好的应用,希望自己的实践可以为之后的人提供一些思路。

联系方式

邮箱:gzr2008@vip.qq.com

个人主页: http://www.ranxiaolang.com | 博客BLOG: https://nature1995.club

0 人点赞