从程序员的角度,来拆解物联网系统中的开发工作_后端开发转物联网(1)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

如果从广义的物联网来看,任何物品,只要能够接入网络,都可以称之为设备,或者称之为 thing。

比如:把一件衣服附上一个电子标签,也是物联网的一个小分子。

图片

我们这里,仍旧以传统意义上的设备来讲解,比如:智慧路灯,智能手表,智能家居里的门磁、报警器等等。

对设备端的开发进行分类的话,从通信方式这个角度来进行划分比较清晰。

一个设备要想接入到网络,肯定需要通信功能,包括:有线通信,无线通信。

在一些传统行业,或者对通信质量要求比较高的场景下,部署有线网络还是比较常见的,例如一些工业场景中。

对于一些民用领域,大部分还是以无线通信为主。

1. 不需要网关的设备

这一类设备,利用 2G/3G/4G 基站来进行数据的传输,产品的形态是:

图片

也就是 单片机+通信模块的方式。

通信模块包括:GPRS 模块、4G 模块、NB-IoT 等等。

在开发这一类产品的时候,单片机负责产品的功能部分;通信模块负责通信部分。

单片机与通信模块之间,在硬件上通过 UART 口通信居多,在协议上可以通过 AT 指令,或者其他的一些专有协议。

图片

近几年,在传统的消费类电子产品上,添加一个通信模块,让产品达到连网的功能,还是比较流行的。

这一类的产品的软件开发工作,与一般的单片机开发并无两样。无非是增加了一些通过网络来上报数据,或者从网络接收控制指令。

只要熟悉所使用的通信协议即可。

上面的这种产品形态,需要对硬件进行重新设计,比较适合从零开始的产品开发。

那么对于那些已有的产品,如果想连接到物联网平台上,但是又不想重新设计,又该怎么办呢?

有需求就有供给!

比如:一些扫地机、吸尘器的厂商,由于找不到其他可以创新、突破的点,于是就开始内卷,纷纷加上连网的功能。

图片

他们直接在产品中,添加一个 ESP8266 或者 ESP32 模组,就立刻升级成一个智能产品,多么高大上。当然了, 价格也同样高大上起来了!

ESP8266 或者 ESP32 与一般的通信模组有一点不一样:它是一个完整的单片机,只不过它们的主要用途就是专门用来解决通信问题,而不是一般的功能控制。

2. 需要网关的设备

图片

如果提到智能家居,可能大部分的人会想到一个词语 ZigBee,这是一个局域网的无线通信协议,大概在 2005 年左右就开始在智能家居中崭露头角了。

ZigBee 类似的无线通信协议还有:ZWaveRF433BLE 等等。

它们的作用都是类似的:都是为了让多个设备能够组网,节点之间以多跳的方式传输数据,达到通信的目的。

这些数据最终会汇总到一个叫做网关的设备,然后与云端的服务器进行通信。

图片

这一类产品的开发,包括:网关开发 和 设备开发这两种。

网关的开发稍微复杂一些。从功能上来说,网关需要实现:

  1. 设备的管理(与物联网平台的设备管理不是一个概念);
  2. 规则引擎(在断网的状态下实现场景联动等功能);
  3. 通信协议转换(把物理网平台的通信协议转成设备私有协议);

有些网关中,还会集成不同的无线通信协议模块,比如:把 ZigBeeBLE红外等功能,集成在一个网关中,这样的话,不同通信方式的设备就可以在一个系统中共存了。

图片

此时,网关就要做更多的工作:

  1. 上行链路(连接到云平台):需要做到协议的统一,也就是说云平台才不关系下面到底是什么样的无线通信技术,云平台只会以统一的数据格式来表示每个设备;
  2. 下行链路(连接到设备):协议转换,把云平台发来的统一的数据格式,转换成不同的无线通信协议特有的数据格式;

设备的开发工作就相对纯粹一点了,它只需要处理某一种无线协议即可。

这一类设备的开发,一般都是使用相应的通信模组,底层的协议栈都是提供好的。

开发者需要做的工作主要就是熟悉应用层的通信协议,完成指令的解析和数据上报工作。

3. WiFi 类设备

图片

这一类产品最常见的就是各种品牌的网络摄像头(IPCamera),比如:小米、360、萤石等等。

摄像头如果作为一个单品来使用,只要把家中的 WiFi SSID 和 密码配置到摄像头中,就可以使用官方的 APP 来远程查看实时画面了。

如果把摄像头集成在一个智能家居的系统中,就需要二次开发。

摄像头厂家一般都会提供 SDK,作为开发者需要做的事情就是:调用 SDK 中的 API 函数,获取实时画面、发送指令控制摄像头云台转动。

这里有一个底层的技术很有意思:P2P 网络穿透。

我们买来一个网络摄像机,是不可能有一个独立的 IP 地址的。也就是说:其他设备(手机)是没办法通过 IP:PORT 的编程方式,直接连接到摄像头的。

但是为了实时画面的传输质量,为了减轻服务器的转发压力,手机最好可以直接与摄像头建立 TCP 通信。

此时,P2P 网络穿透给这种需求提供了可能。

在早期的时候,深圳有大批的摄像头厂商使用的都是 TUTK 这家公司的 P2P 网络穿透服务。

图片

P2P Master(就是一台服务器)的协助下,实现移动端与摄像头之间的网络穿透,直接建立 TCP 连接。

物联网平台开发

物联网平台,作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值