开发者学堂课程【大咖带你聊物联网:从物联网需求到MQTT协议(上)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/571/detail/7777
从物联网需求到MQTT协议(上)
物联网项目需求分析
从两个例子来理解物联网项目的一个需求分析,首先可以看到一个家庭用的空气净化器,左边是硬件,右边是软件APP,所以这里是对用户的一个界面,从左边我们可以看到,有液晶屏有开关,有传感器,有实际顾虑的这个风扇和互联网右边呢,是我们的 APP 显示,包括室内的空气质量,互联网的一个使用情况,受环境的温度和湿度,开关和各种档位的一个选择,对于这个用户界面呢,中间其实是有很多的一个信号的传输,从左边刚刚说到的,实际上是执行器和传感器的数据,双发控制监测是通过空气净化器中的 WiFi 模块儿与我们 WiFi 路由器进行通信,同时接入了公网,左边是一个空气净化器,到右边 WiFi 路由器接入公网之后接入问题平台,
同时,我们的手机 APP 也是通过工作网接入了服务器,所以整个信号流的过程是这样的,虽然对用户界面指两端,但是中间的流转的过程是比较复杂的,至于服务器里面的软件流程呢,
这里还没有展开,从研发的角度,就不是单一的一个设备,左边是用无数个设备,随着我们的发货量接入服务器,所以整个信号流的过程是这样的,
虽然对于用户界面指两端,但是中间的流转的过程是比较复杂的,那至于服务器里面的软件流程,这里还没有展开,
从研发的角度呢,就不是单一的一个设备。这边是有无数的设备,随着发布量的增大,接入的设备也会不断的增多,右边监控的APP,APP 的数量也不是单一只有一个,所以在这些大量的数据的接入,服务器的一个设计就变得复杂很大,不光有各种设备的接入的存储,可能还会有运算页面展示等等功能的一个设计,每个用户只关心他自己的设备,他并不是关心所有的左边的空间关系,所以他只需要订阅他关心的设备的数据信息,而左边的设备并不需要把所有的数据都发给右边的所有的用户的 APP,他只需要发给订阅他的消息的那个用户,所以这里面的数据关系呢,有点儿像以前订阅纸质杂志的这么一个关系,是一个订阅和发布的关系。
这里有一个类比,就是股票数据和股民的之间的关系,不需要把所有的数据同时发给用户,而是把他订阅的自选股发给用户,作为一个观察用户并不是订阅所有的数据,
所以这里面两者的关系就是一个消息推送消息订阅用户管理,然后实现了一个不同用户订阅不同的数据,在这里面的数据跟互联网的数据有共通的特点,第一个数据包比较短,不像我们用于传统的用浏览器去浏览互联网的时候是很多的,都是大量的大数据包,比如我们浏览音乐图片视频的时候这是很大的一个包,
这里,只是比如说像股市,他发过来的只是一些股票的价格和重视,他并不需要发送很大的水包,但是这个很小的,这个数据却有很大的并发量,因为股民比较多,这左边有很多的股票,所以这个数据的交互是非常大并发的,中间的数据数据库和服务器处理的处理的数据是这种短报文和大明发的一个特点,那用股市的这么一个数据,正确的这么一个数据经营类,大家就可以理解物联网的数据类型和物联网数据流的一个关系。
所以在物联网的向需求里面,左边就是刚刚说的那些空气净化器的设备,那家里面不光有空气净化器,可能还有扫地机器人,还有路由器等等各种互联网的终端,他们的数据通过网络发送给一个数据代理,就是的这个 MT 的消息队列处理,他把相应的订阅的数据推送给订阅者啊,那订阅者就可以在他的客户端查看到他所关心的发布者的发布数据,这就是一个刚刚说的订阅和推送的这么一个关系,那么再举第二个例子,也是一个物联网的项目。各个网络层次分解开琢磨透,其实并不需要做很多很多种实验,而是把各个网络层次去理解,深入之后,就会发现很多项目都是相通,更相近的,那么在介绍这个项目的时候,要会把互联网的网络层次进行一个分割。
那么这个项目它实际上是一个空气净化的一个需求,在空气中有很多的恶有毒的气体,或者是有很多异味的气体,这个设备能够进行一个处理,把它处理成无机盐二氧化碳和水,那在这个处理过程中,它是一个智能和自动化的并且是联网的,后台可以监控到传感器的数据,并且远程可以对设备进行一些监控,那对于设备来说,它的结构有经验的工程师已经可以想象得到,需要传感器来链接传输模块。
首先要来看这个项目地用户界面,右边是的手机APP,左边是设备的硬件,硬件没有展开,可以看到有显示面板,对于 APP 来说,它可以监控左边设备的传感器的数据,同时可以对设备进行一些控制,把左边的设备拆开,同时按照数据流的结构进行的一些分解,那么最下面呢,是经常说的物联网的感知层,它除了有一些传感器之外,还有一些执行器中间呢,是我们选定的 MCU 啊,大家熟悉的 SDM32 在上面呢,是可换可配置的,包括 WiFi 的模块,GPS 模块,NBIOT 的模块以及其他的 LoRa-one 的模块都可以通过这些模块直接入公网,与阿里云的服务器进行通信。