「只要有人的地方,就有物联网技术。」我不清楚这句话的出处,我只知道有人的地方就有江湖~哈哈。我想说的是,「物联网技术」这个名词是一个很大很泛的概念,我可以说不存在这种技术,我也可以说这技术实际上就是当今电子、通信、计算机三大领域的基础技术。
我在这问题下的回答「物联网和互联网的区别和联系?」简单阐明了物联网和互联网之间的关系。请问,1994年中国接入互联网以来,我们作为互联网原著居民的90后,认为互联网技术又是一种怎样的技术呢?
我就奇了怪了,当初教育局怎么不开一个互联网技术专业?实际上现在也没必要开设互联网专业了,当今大学的计算机系本科所学的大部分内容,就是互联网会用到的技术。其中之一是Web建站技术。
Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASPNET、Web Services 是什么? - 张秋怡的回答
什么?你们计算机系不是学这些?来来来,我电脑坏了,过来帮我修一下电脑吧~
总之,互联网是一个时代,物联网,也是一个时代。物联网技术是当今电子、通信、计算机、IT行业技术的大融合。如图,物联网技术的技术组成(简单版)。
# 物联网技术之一:单片机/嵌入式开发
智能硬件,哎,不就是单片机吗?说到底就是一个微控制器,现在出现的智能手表,调光LED灯,蓝牙开锁,WiFi插座等等,说到底不就是单片机开发嘛?单片机,电子和通信专业一般都会教51或AVR、计算机系接触不到。现在流行的Arduino也是单片机开发的一种。
但是要做一款智能硬件,技术上只会单片机编程还是不行的。哎呀嘛什么智能硬件,本质上就是一个电子产品!。所以你要开发一款能拿得出手的智能硬件,电子系统设计必须要会的!
电子系统设计(电子系统设计与实践 (豆瓣)),我不是指《电子系统设计》这本书里的内容,而是一个动手实验过程。要做智能硬件,广看书没用,只会单片机编程也不够的!真正有用的是一个实打实的课程设计,或者一个项目经历。一个电子系统设计流程一般是这样的:
硬件设计阶段:
MCU选择
电路设计(电路图)
验证电路(面包板、万用板)
电路板设计(PCB图)
送工厂打板或自己做板
元器件、物料管理(采购等)
拿到电路板后
焊接芯片和元器件
上电测试
烧写最后版本的代码到芯片里
如果你熟悉以上硬件设计阶段,并知道要做什么事情,已经是一个合格的单片机硬件工程师了哈~接下来就是单片机软件工程师的事情了,单片机软件一般都不会太复杂,有的还是不用上 *** 作系统的裸机开发,做过单片机课程设计的学生都懂。
软件设计流程:
确定软件架构(主循环?状态机轮询?)
编写软件
调试代码(开发板或自己搭建好的电路)
烧写最终版本的代码到电路里
这些都不算复杂了,如果你用的芯片高级一点,不是微控制器而是微处理器的话,那么就是嵌入式开发了。
如图是ARM芯片架构系列。
一般网上STM32开发板的芯片是STM32F103,也就是Cortex-M3核,还算是单片机开发,如果外设没有太多功能,单片机想用更小巧一点的,可以选用M0核的芯片,名副其实的微控制器了。如果使用Cortex-A9开发,你这是要开发手机还是机顶盒(黑人问号)?
Cortex-A系列芯片的开发,或者说这类产品,一般一个人不可能独立完成所有工作,这种嵌入式开发的技术最少分为四个层次:硬件层、驱动层、系统层和应用层。每一层次都需要有人去设计。驱动和系统可以移植,硬件电路板肯定要专门的硬件工程师去做的,应用层可以交给应用工程师,只要上了Linux系统,不也就是Linux应用开发嘛?如果去网上买回来的嵌入式开发板,能拿得出手的项目只能应用层开发,比如什么「数码相框系统」、「视频点播系统」。别告诉我学会移植uboot或Linux就可以找工作了。
# 物联网技术之二:网络通信协议
智能硬件与传统的电子产品最大的差别,就是智能硬件连上了网络。要连上网络,就需要用到网络通信模块及学习网络通信协议——TCP/IP。
TCP/IP是一个技术的总称,里面包含两种协议TCP、UDP,位于网络通信分层模型的传输层,同时也是由 *** 作系统管理。而>
为了让电子产品有联网的能力,只要在电路设计上给主控芯片连接一个通信模块,写好收发网络指令的代码,剩下的就是电子产品设计了。
到这里,基本是一个物联网产品的雏形了,以上也是物联网中基本会用到的电子和通信技术。
# 物联网技术之三:服务端开发框架
Client/Server架构,即客户端/服务器架构。智能硬件连上后台服务器后,其就是一个客户端,一个终端。由于单片机中资源受限,实际上是不太可能用>
服务端开发就比较复杂了。单片机/嵌入式软件开发还好,只要学习好C语言即可打遍天下无敌手,而服务端开发,用Java呢还是Python还是PHP?反正Java和Python选一个就好了,嵌入式出身的工程师,一般都会学Python。
Python服务器端的开发框架种类繁多,Web开发的有Django、Flask、Tornado Web Server,TCP服务器可以用Twisted,等等。MQTT有已经做好的服务器,像这样的服务器不用自己开发,直接部署即可。
如图,这是我开发一个智能硬件的服务器端的框架图。使用Redis作为>
在这个项目开发中,最少需要开发用户端的>
到了这里,服务端开发和前面两个技术可以作为一个分层,前面的单片机/嵌入式和网络通信的开发可以算作是一个电子设备的开发,后台工程师只要拿到了这个电子设备,知道这个设备提供了哪些接口(API),就可以进行后台开发了——把设备连上网络,分配给它一个IP或者什么的,配置好接口及相关 *** 作,剩下的事情就交给前端了。
## 关于前端技术
关于前端技术,我这里不好单独写一个主题,其一,我对前端技术没有那么熟悉,还处于前端技术=HTML+JavaScript+CCS的概念,以及手机端的APP开发;其二,前端技术与电子硬件技术间隔相差太远,前端更多的是和美工沟通,和后台协调,和设计师交流,甚至可能还需要有一定的美感;其三,大部分项目的最重要的是实现设备的稳定性、联网、数据的获取和控制。如果设备不稳定,数据出现差错,没法控制,再漂亮的前端页面也没用。其四,如果是做智能家居,做消费电子领域的项目,针对广大普通消费者,比如WiFi插座,一个漂亮的界面是很重要,但是大多数的物联网项目,只需要一个后台管理界面就行了。
所以,没有前端的设计,界面都是很丑咯!
# 物联网技术之四:无线自组网
无线自组网,或称无线传感网络,这肯定是物联网专业的学生要学的一门学科,属于通信领域,电子、计算机出身的人对这没有太多的概念。无线自组网最典型的技术之一是,ZigBee。
什么是自组网?做个对比,比如我们的WiFi,我们要用手机去连一个SSID,输入密码才能连上WiFi,而且你的手机,一般来说也不可能再发射Wifi出去让其他手机连接,WiFi网络拓扑成星型网。
而自组网不一样,不需要用户输入用户名和密码,直接连到最近的一个自组网设备,最后自组网设备也可以作为一个中间节点,让下一级的设备连接进来,网络拓扑可以成星型网、簇型网和网型网。那么无线自组网的数据怎么流动呢?流去哪?无线自组网一般都会有一个数据汇聚的地方,这个地方就是网关。
但是ZigBee并没有连上互联网啊,它最多只是一个局域网!——这还不简单?这是就是网关要处理的事情了。而且,ZigBee协议栈Z-Stack是有Linux网关版本的。
Z-Stack - ZigBee 协议栈
不过呢,由于各种原因,ZigBee开始走下坡路了,最新的6LoWPAN会逐渐替代。6LoWPAN,是一种低功耗的无线网状网络,其中每个节点都有自己的 IPv6 地址,允许其使用开放标准直接连接到互联网。Zigbee使用网内专用地址,互联网主机无法访问。集成 Ipv6/6LoWPAN 堆栈的开源 *** 作系统Contiki也会逐步取代Z-Stack。
如果大学开设了无线自组网的课程,不是学习ZigBee的Z-Stack就是Contiki。使用无线自组网也并不是一个单独的开发过程,其技术需要结合单片机/嵌入式开发。
## 电源问题
是的,如果要用无线自组网,电池续航的能力是一个问题。如果是类似与WiFi插座、智能饮水机、智能风扇等等,接上市电就能用,这些电源都不是问题。而对于无线自组网,往大的方向说就是所有的便携式智能设备,都受限于电池续航能力,比如智能手表,运动手环。不过呢,突破电池技术并不是物联网开发者所需要做的工作,我们能做的,只能是挑选更低功耗的芯片,设计电路功耗更低一点,让单片机休眠并使用中断唤醒机制。
图,用水果电池供电的某430单片机系统。
# 物联网技术之五:RFID
仔细观察上面那张无线技术的图,最右边,NFC/RFID。嗯,对,RFID,非接触射频识别,也是物联网技术重中之重的技术,很多物联网书籍都会介绍RFID,搞得很多人以为RFID就是物联网。
介绍RFID前先简单说一下条形码。去超市购物的时候,收银员把扫描q对准上面的条形码扫一扫,商品信息和价格就录入到电脑里了。条形码替代了收银员手动输入数据,工作效率提高了几倍。
可是,进入21世纪后,条形码已经不能满足人们的需求,存储能力小、工作距离近、穿透能力弱、不能写 *** 作等等都是条形码的缺点。这个时候就出现了RFID技术。典型应用如下图:
(。。。好像没有什么奇怪的啊?)
一二线城市早已实现了的公交卡,以及校园一卡通,用的就是RFID技术。RFID可读可写,所以公交卡、校园卡的钱能存在卡里面。
NFC,也是RFID的技术一种,目前大部分手机都支持的NFC功能,手机取代公交卡真的是迟早的事。要是手机没有NFC功能,也可以这么装逼:
上班,在地铁里碰到同事。我看他用手机刷卡出入站挺方便,就问他怎么弄的,是不是要下载什么软件。
他告诉我:“这个很简单,只要把公交卡藏在手机套里就行了。”
同样,RFID开发也是离不开单片机开发,网上也有相关的RFID开发套件出售。
# 结语
当然,物联网技术绝对不止以上五种,物联网本身就是所有技术的大融合,做电子产品的还要考虑产品外壳,不过这是结构工程师的事情;做服务器后台的还要考虑用户帐号数据库读写等,前端也要考虑如何把设备数据和 *** 作方式优雅的展现给用户看,这些是IT程序员的事情;电池技术也需要单方面突破,超小体积、超大容量,这个还得等待多时。
与其说物联网是一种技术吧,不如说它是一个时代,物联网通过对相关技术进行整合,形成一个时代的概念,是一个建立在技术基础之上的时代。
课程名称
使用教材
备注
物联网产业与技术导论
《物联网:技术、应用、标准与商业模式》,电子工业出版社,等教材。
在学完高等数学,物理,化学,通信原理,数字电路,计算机原理,程序设计原理等课程后开设本课程,全面了解物联网之RFID、M2M、传感网、两化融合等技术与应用。
C语言程序设计
《C语言程序设计》,清华大学出版社,等教材。
物联网涉及底层编程,C语言为必修课,同时需要了解OSGi,OPC,Silverlight等技术标准
Java程序设计
《Java语言程序设计教程》,机械工业出版社,等教材。
物联网应用层,服务器端集成技术,开放Java技术也是必修课,同时需要了解Eclipse,SWT, Flash, HTML5,SaaS等技术
无线传感网络概论
《无线传感器网络理论、技术与实现》,国防工业出版社,《短距离无线通讯入门与实战》北京航空航天大学出版社,等教材。
学习各种无线RF通讯技术与标准,Zigbee, 蓝牙,WiFi,GPRS,CDMA,3G, 4G, 5G,Mote等等
TCP/IP网络与协议
《TCP/IP网络与协议》,清华大学出版社,等教材。
TCP/IP以及OSI网络分层协议标准是所有有线和无线网络协议的基础,Socket编程技术也是基础技能,为必修课
嵌入式系统
《嵌入式系统技术教程》,人民邮电出版社等教材。
嵌入式系统是物联网感知层和通讯层重要技术,了解TinyOS等,为必修课
传感器技术概论
《传感器技术》,中国计量出版社,等教材。
物联网专业学生需要对传感器技术与发展,尤其是在应用中如何选用有所了解,但不一定需要了解传感器的设计与生产,对相关的材料科学,生物技术等有深入了解
RFID技术概论
《射频识别(RFID)技术原理与应用》,机械工业出版社,等教材。
RFID作为物联网主要技术之一,需要了解,它本身(与智能卡技术融合)可以是一个细分专业或行业,也可以是研究生专业选题方向。
工业信息化及现场总线技术
《现场总线技术及应用教程》,机械工业出版社,等教材。
工业信息化也是物联网主要应用领域,需要了解,它本身也可以是一个细分专业或行业,也可作为研究生专业选题方向。
M2M技术概论
《M2M: The Wireless Revolution》,TSTC Publishing,等教材。
本书是美国“Texas State Techinical College”推出的M2M专业教材,在美国首次提出了M2M专业教学大纲,M2M也是物联网主要领域,需要了解,建议直接用英文授课。
物联网软件、标准、与中间件技术
《中间件技术原理与应用》,清华大学出版社,《物联网:技术、应用、标准与商业模式》,电子工业出版社,等教材。
物联网产业发展的关键在于应用,软件是灵魂,中间件是产业化的基石,需要学习和了解,尤其是对毕业后有志于走向工业和企业界的学生。
Copyright © 1999-2020, CSDNNET, All Rights Reserved
搜索博文/帖子/用户
登录
zhangbijun1230
关注
IOT(25)---Iot都有哪些协议 转载
2018-05-15 08:42:16
1点赞
zhangbijun1230
码龄12年
关注
Iot都有哪些协议
协议对Iot而言尤其重要,可你知道Iot都有哪些协议?收好本文干货
在物联网协议中,我们一般分为两大类,一类是传输协议,一类是通信协议。传输协议一般负责子网内设备间的组网及通信;通信协议则主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通信。那么物联网都有哪些通信协议呢?
协议对Iot而言尤其重要,可你知道Iot都有哪些协议?收好本文干货
物联网七大通信协议
一、REST/>
想要成为一名物联网工程师,可以学习以下几个方面:
1、物联网产业与技术导论:全面了解物联网RFID、M2M、传感网、两化融合等技术与应用。
2、C语言程序设计:物联网涉及底层编程,C语言为必修课,同时需要了解OSGi,OPC,Silverlight等技术标准。
3、Java程序设计:物联网应用层,服务器端集成技术,开放Java技术也是必修课,同时需要了解Eclipse,SWT,Flash,HTML5等技术使用。
4、TCP/IP网络与协议:TCP/IP以及OSI网络分层协议标准是所有有线和无线网络协议的基础,Socket编程技术也是基础技能。
5、嵌入式系统技术:嵌入式系统是物联网感知层和通讯层重要技术。
6、无线传感网络:学习各种无线RF通讯技术与标准,Zigbee,蓝牙,WiFi,GPRS,CDMA,3G,4G,5G等。
扩展资料
物联网的基本特征
1、整体感知
可以利用射频识别、二维码、智能传感器等感知设备感知获取物体的各类信息。
2、可靠传输
通过对互联网、无线网络的融合,将物体的信息实时、准确地传送,以便信息交流、分享。
3、智能处理
使用各种智能技术,对感知和传送到的数据、信息进行分析处理,实现监测与控制的智能化。
1 编程方面:C、汇编
2 嵌入式系统基础
3硬件器件与平台:节点器件(T-Mote Sky、TI MSP430等);平台(Arduino,树莓派等)
3无线传感器网络:基础知识、协议栈(ZigBee,IETF 6LowPan, CoAP 等)
4无线传感器网络 *** 作系统(TinyOS, Contiki等)
5在网上找典型应用案例,学术性综述等,这一工作实际上不是在最后进行,而是贯穿在前面4步中
物联网应用工程师的人才群体,主体应该包括IT和OT工程师。
从事方向大概有:智慧交通、环境保护、政府工作、公共安全、平安家居、智能消防、工业监测、环境监测、老人护理、个人健康、花卉栽培、水系监测、食品溯源、敌情侦查和情报搜集等多个领域而具体
工作岗位有:硬件设计师、嵌入式固件开发人员、无线通讯专家 、后端开发人员 、前端开发人员 、应用开发人员 、自动化与系统集成工程师 、数据科学家等。
硬件设计师:大多数物联网项目都涉及某种形式的定制硬件设计。硬件的复杂度因项目而异。在某些情况下,使用硬件模块和参考设计,基础知识和电气工程知识就足够了。而有些更复杂的项目则需要更多的经验和专业知识。常见的技术有印刷电路板(PCB)设计、无线电频率与天线设计、时钟,信号路由相关的经验、低功耗设计和功耗优化等
嵌入式固件开发人员:让硬件发挥作用,你就需要嵌入式开发人员。他们是从事最底层、最接近裸机硬件的软件开发人员。这样的软件称为固件(介于软件和硬件之间的固件)。一般这些开发人员的背景结合了电气工程、计算机体系结构和软件开发。嵌入式开发人员的工作需要与最终硬件的原型版本打交道,因此通常他们的办公桌看起来都很凌乱。 常见的技术有编程语言(C、汇编语言、C++)、实时 *** 作系统(RTOS)经验(FreeRTOS、Contiki、Zephyr)、嵌入式Linux、源代码版本控制、物理和信息安全等
无线通讯专家:大多数物联网项目都是无线的,但无线技术都很难,因为无线集物理与软件的双重复杂度于一身。通常无线通信专家都来自无线通信、网络协议和软件开发。对于大型物联网系统来说,拥有无线通信的专长才能适当地确定网络与通信模式。而消费级物联网系统则需要无线通信专长来确保通过蓝牙顺利地将设备连接到用户的智能手机。 常见的技术有网络模拟、无线网格网络、对无线传播技术的掌握、对功耗的掌握、协议(TCP/IP、IPv4、IPv6、RPL、TLS、WiFi、蓝牙、6lowpan、ZigBee、LoRA、MQTT、CoAP)
后端开发人员:在物联网系统中,后端需要处理数据库和应用程序逻辑。通常,后端都部署在云主机中,并负责存储来自物联网设备的数据、对用户进行身份验证、为前端以及与其他系统的集成提供API。 常见的技术有编程语言(JavaScript、Go、Python、Ruby)、数据库(MySQL、MongoDB、Redis)、开发运维经验、云平台(亚马逊的AWS、Heroku、微软的Azure)
前端开发人员:大多数物联网项目都有网页形式的前端。用户可以通过这类网页与系统交互。因此,这些网页需要做到易于使用、安全、可在最常见的Web浏览器中运行并保持最新状态。这些前端是用HTML开发的,而且通常都会采用某些现有的JavaScript前端框架。前端开发人员需要通过大量输出到网页上的文本来创建视觉体验。 常见的技术有UI/UX设计、用户访谈与人机交互的经验、HTML、CSS、Javascript、Web开发框架(Vuejs、React、Bootstrap)
应用开发人员:许多面向用户的物联网项目都需要使用移动应用作为用户界面。随着项目的推进,移动应用体验的重要性越来越突出。通常,我们需要开发和维护两个版本:iOS和Android。有时也可以开发混合原生应用(通常用HTML开发)。大多数应用开发人员都清楚原生与混合框架的优缺点。 常见的技术有Android、iOS开发原生/混合框架(Phonegap/Cordova、Ionic、Angular、React、Vue)、编程语言(Java、Swift、Objective C、JavaScript)
自动化与系统集成工程师:许多物联网项目都需要与现有软件集成。软件集成是一项经常被低估的任务,我们常常需要花费大量精力,运用一套特定的技术才能取得成功。此外,一旦软件集成开始,你就必须确保集成保持正常运行。这时我们就需要采用自动测试。系统集成和自动化工程师需要拥有大量实践经验和勇气,因为这是一项艰巨的工作。 常见的技术有自动测试框架(Jenkins、Mocha、Travis)、REST API、编程语言(Javascript、Java、Python、Bash)
数据科学家:物联网项目都需要围绕数据展开,而且你需要充分利用这些数据。在项目的早期阶段,这部分的工作可能很简单,只需将关键绩效指标放入Excel工作表中进行比较即可。但是随着项目的发展,你需要针对数据展开更深入的分析。这时就需要数据科学家的帮忙。数据科学家可以通过复杂的数据,寻找模式以及可付诸行动的信息,而这才是数据的最终价值。 常见的技术有统计、人工智能、机器学习、数据挖掘、编程语言(Matlab、R、Python)
嵌入式的话首先把单片机玩顺了,从最简单的8位51单片机,到16位的MSP430,到32位的STM32这类都要比较熟悉。
同时也要熟悉单片机外围电路,这里用到模电数电知识。
可以利用单片机与各类模块(物联网常用蓝牙、WIFI、ZIGBEE等通信模块)搭配完成几个小项目这样掌握的更扎实一些。
接下来可以接触ARM,学LINUX,通过 *** 作系统来开发项目。
以上就是关于掌握物联网开发技术,未来究竟有多吃香全部的内容,包括:掌握物联网开发技术,未来究竟有多吃香、了解物联网知识需要学习哪些知识、iot设备有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)