网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
物联网的概念已经被炒了好多年了,奇怪的是:市场中对这个概念的反应总是不愠不火。
随着5G 的迅速普及,不知道是否能够再次把这个领域带火起来。
但是不管怎样,很多大学已经把物联网这个专业给坐实了。
前几天,一位大一的小伙伴私信我:进入物联网专业已经快一年时间了,却不知道以后出去干什么?
这篇文章,我们就从开发者的角度,来简单看一下物联网这个领域使用了哪些技术栈、有哪些开发工作。
物联网系统
这张图从开发者的角度,展示了一个物联网系统中的各种角色,包括它们之间的通信。
如果从软件开发岗位的角度来对这几个模块进行划分的话,这个系统中主要包括:
- 前端、后端开发:负责物联网平台和业务应用的开发;
- 嵌入式软件:主要是设备端的开发,这部分根据使用的不同技术(或者说硬件模块),又可以分为很多不同的子领域;
- 移动端开发:Android APP, iOS APP, H5 小程序,还有目前的鸿蒙系统APP。
设备端的开发
这里描述的设备,还是属于比较狭隘的范畴,仅仅包含了具有通信功能的物理硬件实体。
如果从广义的物联网来看,任何物品,只要能够接入网络,都可以称之为设备,或者称之为 thing。
比如:把一件衣服附上一个电子标签,也是物联网的一个小分子。
我们这里,仍旧以传统意义上的设备来讲解,比如:智慧路灯,智能手表,智能家居里的门磁、报警器等等。
对设备端的开发进行分类的话,从通信方式这个角度来进行划分比较清晰。
一个设备要想接入到网络,肯定需要通信功能,包括:有线通信,无线通信。
在一些传统行业,或者对通信质量要求比较高的场景下,部署有线网络还是比较常见的,例如一些工业场景中。
对于一些民用领域,大部分还是以无线通信为主。
1. 不需要网关的设备
这一类设备,利用 2G/3G/4G 基站来进行数据的传输,产品的形态是:
也就是 单片机+通信模块的方式。
通信模块包括:GPRS 模块、4G 模块、NB-IoT 等等。
在开发这一类产品的时候,单片机负责产品的功能部分;通信模块负责通信部分。
单片机与通信模块之间,在硬件上通过 UART 口通信居多,在协议上可以通过 AT
指令,或者其他的一些专有协议。
近几年,在传统的消费类电子产品上,添加一个通信模块,让产品达到连网的功能,还是比较流行的。
这一类的产品的软件开发工作,与一般的单片机开发并无两样。无非是增加了一些通过网络来上报数据,或者从网络接收控制指令。
只要熟悉所使用的通信协议即可。
上面的这种产品形态,需要对硬件进行重新设计,比较适合从零开始的产品开发。
那么对于那些已有的产品,如果想连接到物联网平台上,但是又不想重新设计,又该怎么办呢?
有需求就有供给!
比如:一些扫地机、吸尘器的厂商,由于找不到其他可以创新、突破的点,于是就开始内卷,纷纷加上连网的功能。
他们直接在产品中,添加一个 ESP8266
或者 ESP32
模组,就立刻升级成一个智能产品,多么高大上。当然了, 价格也同样高大上起来了!
ESP8266
或者 ESP32
与一般的通信模组有一点不一样:它是一个完整的单片机,只不过它们的主要用途就是专门用来解决通信问题,而不是一般的功能控制。
2. 需要网关的设备
如果提到智能家居,可能大部分的人会想到一个词语 ZigBee
,这是一个局域网的无线通信协议,大概在 2005
年左右就开始在智能家居中崭露头角了。
与 ZigBee
类似的无线通信协议还有:ZWave
、RF433
、BLE
等等。
它们的作用都是类似的:都是为了让多个设备能够组网,节点之间以多跳的方式传输数据,达到通信的目的。
这些数据最终会汇总到一个叫做网关的设备,然后与云端的服务器进行通信。
这一类产品的开发,包括:网关开发 和 设备开发这两种。
网关的开发稍微复杂一些。从功能上来说,网关需要实现:
- 设备的管理(与物联网平台的设备管理不是一个概念);
- 规则引擎(在断网的状态下实现场景联动等功能);
- 通信协议转换(把物理网平台的通信协议转成设备私有协议);
有些网关中,还会集成不同的无线通信协议模块,比如:把 ZigBee
、BLE
、红外
等功能,集成在一个网关中,这样的话,不同通信方式的设备就可以在一个系统中共存了。
此时,网关就要做更多的工作:
- 上行链路(连接到云平台):需要做到协议的统一,也就是说云平台才不关系下面到底是什么样的无线通信技术,云平台只会以统一的数据格式来表示每个设备;
- 下行链路(连接到设备):协议转换,把云平台发来的统一的数据格式,转换成不同的无线通信协议特有的数据格式;
设备的开发工作就相对纯粹一点了,它只需要处理某一种无线协议即可。
这一类设备的开发,一般都是使用相应的通信模组,底层的协议栈都是提供好的。
开发者需要做的工作主要就是熟悉应用层的通信协议,完成指令的解析和数据上报工作。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!