
虽然 Java 是物联网开发中使用最多的语言,但是 Java 和 Python 在物联网开发的不同子域中紧随其后。物联网发展的未来可能仍然是多语言的。
「只要有人的地方,就有物联网技术。」我不清楚这句话的出处,我只知道有人的地方就有江湖~哈哈。我想说的是,「物联网技术」这个名词是一个很大很泛的概念,我可以说不存在这种技术,我也可以说这技术实际上就是当今电子、通信、计算机三大领域的基础技术。
我在这问题下的回答「物联网和互联网的区别和联系?」简单阐明了物联网和互联网之间的关系。请问,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程序员的事情;电池技术也需要单方面突破,超小体积、超大容量,这个还得等待多时。
与其说物联网是一种技术吧,不如说它是一个时代,物联网通过对相关技术进行整合,形成一个时代的概念,是一个建立在技术基础之上的时代。
首先,物理网是一种统称,并非产品。所以需要分开来看。
物理网结构上来说分为:产品、平台、系统(可包含在产品中)、服务器
简单的说
电子模块的设计
结构模块的设计(包括工业设计、机械设计等)
程序编写(即功能程序、系统程序等等)
后面需要做的就是:
架设服务器(这个并非必须,因为现在大的服务商都提供。这里所指的是内网或者是私人网络)
建立平台使得产品功能对接(现在也有一大堆的平台可以使用,所以也不是必须自己来建的)
我们公司就是可以开发的,如果你们公司内部没有这样的技术,团队,可以考虑找软件公司开发,这样也省去了你们学习和犯错的时间,给有技术的软件公司开发相对来说,比你们自己开发的优势还是有很多的。
1现在每个家庭都会使用WiFi,WiFi是由无线路由器发射出来的。一个无线路由器,可以说就是一个局域网(LAN)。只要把那些电子设备连到家里的WiFI,就可以通过终端控制他们了。可是,现在我们常见的能连上WiFi的设备,只有手机和电脑。电视机、空调和电灯都是连不到WiFI的东西。(好像有个名词叫网络电视,这个我就不了解了,有兴趣请自行搜索)
2那么,怎样把电灯连到网络呢,这个时候就需要修改电路了——在电灯这个电路里面加一个网络模块。说起来简单做起来难,现在家用电灯都是日光灯什么的,里面还有什么镇流器。这个时候,就需要有相关专业知识才行了。当然现在也有大功率LED灯了,其发光亮度堪比日光灯,至于能不能替代日光灯成为主流产品,拭目以待。
一,相对的,有客户端就有服务器(server),那个怎么给灯泡里弄一个服务器呢?这个时候就需要给灯泡嵌入一个芯片了,灯泡与芯片结合,就是一个嵌入式系统了。
二,嵌入式系统,就是以应用为中心,以计算机技术为基础,软硬件可裁剪的专用计算机系统。
三。嵌入式这一领域,可以分为嵌入式硬件和嵌入式软件。比如,我思考着搭一个电路,使电灯这个电路受于芯片的控制,这就是嵌入式硬件;电路搭建好了,我就想着在芯片上写一个小小服务器,或者说就写个小程序,可以用手机通过WiFi来控制该芯片,这就是嵌入式软件。
从物联网的定义及各类技术所起的作用来看,物联网的关键核心技术应该是无线传感器网络(WSN)技术,主要原因是:WSN技术贯穿物联网的全部三个层次,是其它层面技术的整合应用,对物联网的发展有提纲挈领的作用。WSN技术的发展,能为其它层面的技术提供更明确的方向。 以下是实现物联网的五大核心技术:核心技术之感知层:传感器技术、射频识别技术、二维码技术、微机电系统和GPS技术1传感器技术传感技术同计算机技术与通信技术一起被称为信息技术的三大技术。从仿生学观点,如果把计算机看成处理和识别信息的“大脑”,把通信系统看成传递信息的“神经系统”的话,那么传感器就是“感觉器官”。微型无线传感技术以及以此组件的传感网是物联网感知层的重要技术手段。2射频识别(RFID)技术射频识别(Radio Frequency Identification,简称RFID)是通过无线电信号识别特定目标并读写相关数据的无线通讯技术。在国内,RFID已经在身份z、电子收费系统和物流管理等领域有了广泛应用。RFID技术市场应用成熟,标签成本低廉,但RFID一般不具备数据采集功能,多用来进行物品的甄别和属性的存储,且在金属和液体环境下应用受限,RFID技术属于物联网的信息采集层技术。3微机电系统(MEMS)微机电系统是指利用大规模集成电路制造工艺,经过微米级加工,得到的集微型传感器、执行器以及信号处理和控制电路、接口电路、通信和电源于一体的微型机电系统。MEMS技术属于物联网的信息采集层技术。4GPS技术GPS技术又称为全球定位系统,是具有海、陆、空全方位实时三维导航与定位能力的新一代卫星导航与定位系统。GPS作为移动感知技术,是物联网延伸到移动物体采集移动物体信息的重要技术,更是物流智能化、智能交通的重要技术。核心技术之信息汇聚层:传感网自组网技术、局域网技术及广域网技术1无线传感器网络(WSN)技术无线传感器网络(Wireless Sensor Network,简称WSN)的基本功能是将一系列空间分散的传感器单元通过自组织的无线网络进行连接,从而将各自采集的数据通过无线网络进行传输汇总,以实现对空间分散范围内的物理或环境状况的协作监控,并根据这些信息进行相应的分析和处理。WSN技术贯穿物联网的三个层面,是结合了计算、通信、传感器三项技术的一门新兴技术,具有较大范围、低成本、高密度、灵活布设、实时采集、全天候工作的优势,且对物联网其他产业具有显著带动作用。2Wi-Fi Wi-Fi(Wireless Fidelity,无线保真技术)是一种基于接入点(Access Point)的无线网络结构,目前已有一定规模的布设,在部分应用中与传感器相结合。Wi-Fi技术属于物联网的信息汇总层技术。3GPRS GPRS(General Packet Radio Service,通用分组无线服务)是一种基于GSM移动通信网络的数据服务技术。GPRS技术可以充分利用现有GSM网络,目前在很多领域有广泛应用,在物联网领域也有部分应用。GPRS技术属于物联网的信息汇总层技术。核心技术之传输层:通信网、互联网、3G网络、GPRS网络、广电网络、NGB 1通信网通信网是一种使用交换设备、传输设备,将地理上分散用户终端设备互连起来实现通信和信息交换的系统。通信最基本的形式是在点与点之间建立通信系统,但这不能称为通信网,只有将许多的通信系统(传输系统)通过交换系统按一定拓扑结构组合在一起才能称之为通信。也就是说,有了交换系统才能使某一地区内任意两个终端用户相互接续,才能组成通信网。23G网络3G是英文the 3rd Generation的缩写,指第三代移动通信技术。相对第一代模拟制式手机(1G)和第二代GSM、CDMA等数字手机,第三代手机(3G)是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。3GPRS网络这是一种基于GSM系统的无线分组交换技术,提供端到端的、广域的无线IP连接。通俗的讲,GPRS是一项高速数据处理的科技,方法是以“分组”的形式传送资料到用户手上。虽然GPRS是作为现有GSM网络向第三代移动通信演变的过渡技术,但是它在许多方面都具有显著的优势。4广电网络广电网通常是各地有线电视网络公司(台)负责运营的,通过HFC(光纤+同轴电缆混合网)网向用户提供宽带服务及电视服务网络,宽带可通过CableModem连接到计算机,理论到户最高速率38M,实际速度要视网络情况而定。5NGB广域网络中国下一代广播电视网(NGB)是以有线电视数字化和移动多媒体广播(CMMB)的成果为基础,以自主创新的“高性能带宽信息网”核心技术为支撑,构建适合我国国情的、三网融合的、有线无线相结合的、全程全网的下一代广播电视网络。核心技术之运营层:专家系统、云计算、API接口、客户管理、GIS、ERP 1企业资源计划(ERP)ERP是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。ERP技术属于物联网的信息处理层技术。2专家系统(Exper System)专家系统是一个含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识和经验来处理该领域问题的智能计算机程序系统。属于信息处理层技术。3云计算云计算概念间由Google提出的,这是一个美丽的网络应用模式,是指IT基础设施的交付和使用,通过网络以按需、易扩展的方式获得所需的资源。核心技术之应用层:垂直行业应用、系统集成、资源打包应用层主要是根据行业特点,借助互联网技术手段,开发各类的行业应用解决方案,将物联网的优势与行业的生产经营、信息化管理、组织调度结合起来,形成各类的物联网解决方案,构建智能化的行业应用。如交通行业,涉及的就是智能交通技术;电力行业采用的是智能电网技术;物流行业采用的智慧物流技术等。行业的应用还要更多涉及系统集成技术、资源打包技术等。
参考资料>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)