一、什么是物联网
物联网,英文是“Internet Of things”,简称IoT。物联网字面意思,就是物物相连的互联网,所以物联网仍是互联网的一个组成部分。它和互联网的主要区别是:互联网主要角色是人、 电脑或移动设备、服务器,而物联网会有很多物品相连。物联网通常被认为是继计算机、互联网后信息产业发展的第三次浪潮。
事实上物联网并不是一个新鲜的概念,早在1990年施乐公司就曾研发过网络可乐贩售机。1999年,美国麻省理工学院(MIT)的Kevin Ash-ton教授首次提出了物联网的概念。
根据国际电信联盟(ITU)的定义,物联网主要解决物品与物品(Thing to Thing,T2T)、人与物品(Human to Thing,H2T)、人与人(Human to Human,H2H)之间的互连。
二、物联网的技术架构
物联网架构可分为三层:感知层、网络层、应用层。
感知层由各种 传感器组成,将物体的数据,通过传感器收集后,由网络层传输出去。网络层包含互联网、云端、运营商网络、各种短距离局域网(如ZigBee等)。
应用层是物联网与用户的接口,一般以UI界面的形式展现。
三、物联网感知层关键技术
物品可能是电器(如洗衣机、冰箱)、物体(如门、窗)等。在物联网应用中,物品上有三项关键技术应用(一些非物联网的通用技术不作介绍,如模电、数电、射频、PCB布线等知识):
嵌入式系统技术
传感器技术
网络连接技术
1. 嵌入式系统技术
目前物联网行业的在嵌入式方面,arm架构是最主要的架构。对于要长期致力于嵌入式开发的同学来讲,arm是必须要学的。入门学习可以从stm32学习板开始,使用keil作为主要的开发工具。学习过程中要完全理解掌握开发板的各种用法、液晶屏和LED屏、数码管的控制使用等。一些常用的通讯,如:RS232、RS485、I2C需要学习掌握。
其它一些 单片机,如51系列也可以进行学习,在物联网中也有较多应用。
如果非 电子专业的,只是把物联网作为兴趣爱好,那嵌入式的学习可以选择一些简单上手的平台,如Arduino、树霉派等。
2. 传感器技术
物联网技术中,传感器应用极其广泛,学习过程中要把常用的传感器用法完全掌握,如:霍尔传感器、加速度传感器、压力传感器、人体红外感应传感器等。
3. 网络连接技术
不管是做物品端开发,还是服务器、APP等开发,网络连接技术都是必须深入学习。一般专业课都会有以太网、TCP/IP原理讲解,专业课的知识必须掌握,另外要学习一些基于TCP/IP的高级通讯协议,如HTTP协议、MQTT协议。
物联网还有一些专用的通讯协议需要学习,如:
Zigbee
NFC
WiFi
GPRS
USB
NB-IoT
RFID
蓝牙
Lora
这些通讯协议并不是都要完全学习掌握,根据个人学习精力可以逐步安排学习。在使用开发板学习时,通常都包含这些组件,可以直接进行实验学习。
四、物联网云端开发关键技术
1. 网络后端开发技术
网络后端技术,目前国内流行的主要是Java、PHP、Python等。学习网络后端技术,以Java为例,需要学习掌握以下内容:
Java 常用开发框架(SSH、SpringMVC、SpringBoot等)
Java Web开发
Java 数据库基础操作
Java Socket通讯技术(Netty框架等)
分布式开发与负载均衡
Java MQTT 服务端技术,有开源系统可以部署使用,以上几条都是基础,这一条是物联网需要的核心技术
2. 网络安全相关技术
防火墙
防重放
防遇权
防伪造
3. 大数据存储与分析技术
由于物联网常常会产生大量的数据,现在大数据的存储与分析在物联网行业得到了普遍的应用。国内大数据通常需要掌握以下技术:
大数据平台的搭建与维护(如Hadoop、HBase、Cassandra等)
大数据分析技术,如Hive、Spark、Storm、Elasticsearch等。
五、物联网移动端开发关键技术
国内现在物联网技术的应用,主要集中在家电物联网、远程抄表类应用,这个过程中移动端往往成为重要的展示设备,如果要学习移动端开发,主要要学习以下技术:
安卓应用程序开发、iOS应用程序开发
HTML5 移动端开发,如angularJS、React、Vue等
MQTT 通讯协议