软件工程发展趋势

注册

 

发新话题 回复该主题

物联网主要学什么 [复制链接]

1#

互联网是一个时代,物联网,也是一个时代。最近听到一句话“只要有人的地方,就有物联网技术”,物联网技术是当今电子、通信、计算机、IT行业技术的大融合。如图,物联网技术的技术组成(简单版),也就是物联网的主要学习内容。

#物联网技术之一:单片机/嵌入式开发

智能硬件不就是单片机吗?说到底就是一个微控制器,现在出现的智能手表,调光LED灯,蓝牙开锁,WiFi插座等等,说到底不就是单片机开发嘛?单片机,电子和通信专业一般都会教51或AVR、计算机系接触不到。现在流行的Arduino也是单片机开发的一种。

但是要做一款智能硬件,技术上只会单片机编程还是不行的。什么智能硬件,本质上就是一个电子产品。所以你要开发一款能拿得出手的智能硬件,电子系统设计必须要会的!

硬件设计阶段:

lMCU选择

l电路设计(电路图)

l验证电路(面包板、万用板)

l电路板设计(PCB图)

l送工厂打板或自己做板

l元器件、物料管理(采购等)

l拿到电路板后,焊接芯片和元器件、上电测试、烧写最后版本的代码到芯片里

如果你熟悉以上硬件设计阶段,并知道要做什么事情,已经是一个合格的单片机硬件工程师了哈~接下来就是单片机软件工程师的事情了,单片机软件一般都不会太复杂,有的还是不用上操作系统的裸机开发,做过单片机课程设计的学生都懂。

软件设计流程:

l确定软件架构(主循环?状态机轮询?)

l编写软件

l调试代码(开发板或自己搭建好的电路)

l烧写最终版本的代码到电路里

这些都不算复杂了,如果你用的芯片高级一点,不是微控制器而是微处理器的话,那么就是嵌入式开发了。

#物联网技术之二:网络通信协议

智能硬件与传统的电子产品最大的差别,就是智能硬件连上了网络。要连上网络,就需要用到网络通信模块及学习网络通信协议——TCP/IP。

TCP/IP是一个技术的总称,里面包含两种协议TCP、UDP,位于网络通信分层模型的传输层,同时也是由操作系统管理。而HTTP、DNS、URI等这些技术,属于应用层,位于TCP/UDP之上。同样,最近物联网比较流行的,针对计算能力有限的通讯设备而出的MQTT协议,也属于TCP之上。为了让电子产品有联网的能力,只要在电路设计上给主控芯片连接一个通信模块,写好收发网络指令的代码,剩下的就是电子产品设计了。到这里,基本是一个物联网产品的雏形了,以上也是物联网中基本会用到的电子和通信技术。

#物联网技术之三:服务端开发框架

Client/Server架构,即客户端/服务器架构。智能硬件连上后台服务器后,其就是一个客户端,一个终端。由于单片机中资源受限,实际上是不太可能用HTTP协议的,所以互联网中通用的Web服务器开发并不适合这里。有的厂家会在TCP之上自定义协议,有的就移植别人做好的协议比如MQTT,CoAP等等。

服务端开发就比较复杂了。单片机/嵌入式软件开发还好,只要学习好C语言即可打遍天下无敌手,而服务端开发,用Java还是Python呢?反正Java和Python选一个就好了,嵌入式出身的工程师,一般都会学Python。

Python服务器端的开发框架种类繁多,Web开发的有Django、Flask、TornadoWebServer,TCP服务器可以用Twisted,等等。MQTT有已经做好的服务器,像这样的服务器不用自己开发,直接部署即可。

到了这里,服务端开发和前面两个技术可以作为一个分层,前面的单片机/嵌入式和网络通信的开发可以算作是一个电子设备的开发,后台工程师只要拿到了这个电子设备,知道这个设备提供了哪些接口(API),就可以进行后台开发了——把设备连上网络,分配给它一个IP或者什么的,配置好接口及相关操作,剩下的事情就交给前端了。

#物联网技术之四:无线自组网

无线自组网,或称无线传感网络,这肯定是物联网专业的学生要学的一门学科,属于通信领域,电子、计算机出身的人对这没有太多的概念。无线自组网最典型的技术之一是ZigBee。

#物联网技术之五:RFID

仔细观察上面那张无线技术的图,最右边,NFC/RFID。对,RFID,非接触射频识别,也是物联网技术重中之重的技术。

早已实现了的公交卡以及校园一卡通,用的就是RFID技术。RFID可读可写,所以公交卡、校园卡的钱能存在卡里面。NFC,也是RFID的技术一种。

#结语

当然,由于物联网本身就是所有技术的大融合,做电子产品的还要考虑产品外壳,不过这是结构工程师的事情;做服务器后台的还要考虑用户帐号数据库读写等,前端也要考虑如何把设备数据和操作方式优雅的展现给用户看,这些是IT程序员的事情;电池技术也需要单方面突破,超小体积、超大容量等等。

与其说物联网是一种技术吧,不如说它是一个时代,物联网通过对相关技术进行整合,形成一个时代的概念,是一个建立在技术基础之上的时代。

将挑战看成跳板,超越挑战,你能跳得更远。

分享 转发
TOP
发新话题 回复该主题