掌握物联网开发技术,未来究竟有多吃香

掌握物联网开发技术,未来究竟有多吃香,第1张

「只要有人的地方,就有物联网技术。」我不清楚这句话的出处,我只知道有人的地方就有江湖~哈哈。我想说的是,「物联网技术」这个名词是一个很大很泛的概念,我可以说不存在这种技术,我也可以说这技术实际上就是当今电子、通信、计算机三大领域的基础技术。

我在这问题下的回答「物联网和互联网的区别和联系?」简单阐明了物联网和互联网之间的关系。请问,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程序员的事情;电池技术也需要单方面突破,超小体积、超大容量,这个还得等待多时。

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

当前,物联网(IoT)技术领域充释着各种标准,像NB-IoT、LoRa、SigFox等,他们正通过各自擅长的技术和应用抢夺IoT风口,以争取在这片广阔的市场上取得优势。
这里写描述
NB-IoT是由电信标准延伸而出的,主要是由电信运营商支持,而LoRa则是一个商业运用平台,两者主要区别在于商业运营的模式:NB-IoT基本是由电信运营商来把控运营,所以使用者必须使用它的网关及服务,而LoRa就量对开放一些,有各种不同的组合方式,商业的模式是完全不同的。
技术层面上来看,NB-IoT和LoRa的差异其实并不是很大,属于各有优劣。而相对于某些领域,国内有一些用户在并行使用这两种技术和网络。NB-IoT相对而言是受限于基站的,而LoRa则要加入一个网关相对简单容易,并且总的来说价格要比NB-IOT低廉。用户可以根据需求,增加不同的网关覆盖。所以从覆盖程度上来说LoRa的覆盖程度可能比NB-IoT更广一点。
LPWAN又称LPN,全称为LowPower Wide Area Network或者LowPower Network,指的是一种无线网络。这种无线网络的优势在于低功耗与远距离,通常用于电池供电的传感器节点组网。因为低功耗与低速率的特点,这种网络和其他用于商业,个人数据共享的无线网络(如WiFi,蓝牙等)有着明显的区别。
在广泛应用中,LPWAN可使用集中器组建为私有网络,也可利用网关连到公有网络上去。
LPWAN因为跟LoRaWAN名字类似,再加上最近的LoRaWAN在IoT领域引起的热潮,使得不少人对这两个概念有所混淆。事实上LoRaWAN仅仅是LPWAN的一种,还有几种类似的技术在与LoRaWAN进行竞争。
概括来讲,LPWAN具有如下特点:
• 双向通信,有应答
• 星形拓扑(一般情况下不使用中继器,也不使用Mesh组网,以求简洁)
• 低数据速率
• 低成本
• 非常长的电池使用时间
• 通信距离较远
LPWAN适合的应用:
• IoT,M2M
• 工业自动化
• 低功耗应用
• 电池供电的传感器
• 智慧城市,智慧农业,抄表,街灯控制等等
LoraWAN和Lora之间关系
虽然一样是因为名字类似,很多人会将LoRaWAN与LoRa两个概念混淆。事实上LoRaWAN指的是MAC层的组网协议。而LoRa只是一个物理层的协议。虽然现有的LoRaWAN组网基本上都使用LoRa作为物理层,但是LoRaWAN的协议也列出了在某些频段也可以使用GFSK作为物理层。从网络分层的角度来讲,LoRaWAN可以使用任何物理层的协议,LoRa也可以作为其他组网技术的物理层。事实上有几种与LoRaWAN竞争的技术在物理层也采用了LoRa。
LoraWAN的主要竞争技术
这里写描述
如今市场上存在多个同样使用LoRa作为物理层的LPWAN技术,例如深圳艾森智能(AISenz Inc)的aiCast。aiCast支持单播、多播和组播,比LoRaWAN更加复杂完备。许多LoRaWAN下不可能的应用因此可以实现。
Sigfox使用慢速率的BPSK(300bps),也有一些较有前景的应用案例。
NB-IoT(Narrow Band-IoT)是电信业基于现有移动通信技术的IoT网络。其特点是使用现有的蜂窝通信硬件与频段。不管是电信商还是硬件商,对这项技术热情不减。
关键技术Lora简介
LoRaWAN的核心技术是LoRa。而LoRa是一种Semtech的私有调制技术(2012收购CycleoSAS公司得来)。所以为了便于不熟悉数字通信技术的人们理解,先介绍两个常见的调制技术FSK与OOK。选用这两个调制方式是因为:
1这两个是最简单、最基础、最常见的数字通信调制方式
2在Semtech的SX127x芯片上与LoRa同时被支持,尤其是FSK经常被用来与LoRa比较性能。
OOK
OOK全称为On-Off Keying。核心思想是用有载波表示一个二进制值(一般是1,也可能反向表示0),无载波表示另外一个二进制值(正向是0,反向是1)。
在0与1切换时也会插入一个比较短的空的无载波间隔,可以为多径延迟增加一点冗余以便接收端解调。OOK对于低功耗的无线应用很有优势,因为只用传输大约一半的载波,其余时间可以关掉载波以省功耗。缺点是抗噪音性能较差。
这里写描述
FSK
FSK全称为Frequency Shift Keying。LoRaWAN协议也在某些频段写明除LoRa之外也支持(G)FSK。FSK的核心思想是用两种频率的载波分别表示1与0。只要两种频率相差足够大,接收端用简单的滤波器即可完成解调。
对于发送端,简单的做法就是做两个频率发生器,一个频率在Fmark,另一个频率在Fspace。用基带信号的1与0控制输出即可完成FSK调制。但这样的实现中,两个频率源的相位通常不同步,而导致0与1切换时产生不连续,最终对接收器来讲会产生额外的干扰。实际的FSK系统通常只使用一个频率源,在0与1切换时控制频率源发生偏移。
这里写描述
GFSK是基带信号进入调制前加一个高斯(Gaussian)窗口,使得频率的偏移更加平滑。目的是减少边带(Sideband)频率的功率,以降低对相邻频段的干扰。代价是增加了码间干扰。
对于这一方面的研究实验发现:学习Lora调制技术的一些准备及发现
然而,对于“悠久历史积累”和高安全、易部署等综合优势的LoRa阵营来说,最近几年里,在技术和落地方面虽取得了长足的进步,但离真正的规模、解决行业客户的切实问题是有着不小的差距。那么,究竟是技术壁垒突破较难?产业链生态不健全?亦或者是商业模式限制了从业者对市场规模的想象?对于LoRa产业链的广大从业者而言,找到制约LoRa技术大规模发展的瓶颈,并联手产业合力突围对推动产业良性发展至关重要。

把各个子系统集成在一个统一的数据平台上,实现各系统之间实时数据的交流和共享,弥补了传统智能建筑数据采集孤立的缺陷,解决了系统难以联动的问题。物联网数据服务平台中汇集了海量的数据信息,应用开发平台灵活且功能齐全,使其具有很强的可扩展性。各种软硬件应用已经瀚如烟海,开发人员具备成熟的技术积累,终端用户能享受到各种便利。基于物联网技术,只需构建一个统一的数据服务平台,将各系统的运行数据信息汇总,既可实现高效、便捷的集中式管理,又降低了运营成本。物联网平台所拥有的专家系统引擎,能够进行对从各子系统采集到的实时数据进行整合、分析和计算,并结合预案,对非正常状况作出判断,并实施预警联动。因此将物联网技术引入园区建设必将是未来智能园区的发展趋势,而物联网应用平台就是从数据接入、数据处理、数据应用3个层面,为智能园区提供统一的应用与管理平台。

1、改变开发物联网解决方案的方法
IDC预测,到 2020年,全世界范围内的物联网市场将达到17万亿美元。不过,虽然物联网市场在疯狂增长,物联网开发者的数量却增长缓慢。事实上,一份由VisionMobile主导的研究表明,到2020年,物联网开发者的需求量将达到4500万。鉴于物联网解决方案的复杂性,物联网开发者需要掌握多样技能,以精通各种不同的组件和物联网解决方案开发的各个方面也就不足为奇了。

为了在获得投资收益的同时可以利用物联网创造价值,各企业不得不改变我们开发物联网解决方案的方法,以使这个过程不仅更容易,而且要更快速且有效。通过提供使所有开发物联网解决方案相关组件和工具互联的技术, 物联网平台可以解决这种困局。
2、利用物联网生态系统而非包办一切
除了物联网平台外,为了开发一个物联网解决方案,企业还不得不寻找其他组件(比如兼容硬件、扩展、适合第三方的集成、应用程序,等等)。与其筋疲力尽地去尝试构建所有这些内部组件,企业不如把注意力转向生态系统,这些要求生态系统都能够满足。看一看智能手机产业以及其在应用程序开发方面的巨大成就,就能很清楚地知道整个生态系统的共同努力会有什么样的影响力了。
利用生态系统及其现有的产品不仅能实现更高效率,而且会使生态系统中的每一个合作伙伴都能集中精力做到最好,这样最终我们将获得高质量的物联网解决方案。
3、开发满足未来需求的物联网解决方案
随着企业渐渐地将其业务整合到物联网,物联网解决方案的范围和要求也会定期地发生改变。能否有效地逐渐形成一个物联网解决方案,以及这些一直在变化的要求将最终定义解决方案在未来的有效性及价值。因此,选择在任何时候都能够容易地整合第三方系统和产品,并且能够利用其他组件实现扩展功能的物联网技术将不仅能满足企业目前的需求,还能满足未来项目的规模需求。
最后,要确保生态系统的合作伙伴和开发者(他们提供配套技术及开箱即用的功能)支持您选择的物联网技术,因为这样在长期来看会节省您的资源。
 4、找到与您的方案完美整合的兼容技术
在开发您的物联网解决方案的过程中,最后您会不得不决定将哪种技术整合到您的解决方案中。这时您立即会想到的决定性因素是成本和功能,您可能还会考虑您打算使用的这些技术是否在物联网平台上进行了测试。
您应该想到要检验一下物联网平台的提供商是否提供了兼容和已测试技术清单,或者能够实现设备容易整合的预构建软件组件。通过这种方法您将节约很多资源,这些节约的资源无疑将是任何潜在节约成本的一部分。而这些仅仅通过基于技术价格做出的决定您可能就已经实现了。
 5、促进协同以创造物联网价值
由于生态系统会提供您的解决方案所需的许多组件,所以生态系统在有效开发物联网解决方案中扮演着重要的角色。能否容易地利用生态系统将对您的开发过程产生直接的影响。物联网线上市场允许用户和物联网技术供应商通过简单且有效的途径进行合作并分享资源,这将使双方能够快速地得到结果。此外,通过合作创造价值以及分享预构建组件将使各行业更快地接受物联网。
6、在做任何购买决定前测试物联网技术
通常,在采用物联网技术时,用户在市场中没有多少机会获得任何使用物联网技术的经验。在作出任何购买决定前,您应该试着真正体验一下您打算购买的物联网技术。一些技术供应商会提供开发者论坛,在那里新手和有经验的用户都可以找到指导教程以了解技术的方方面面。
<p>

物联网就是通过信息传感设备,按照约定的协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
通俗地讲,物联网就是“物物相连的互联网”,它包含两层含义:
第一,物联网是互联网的延伸和扩展,其核心和基础仍然是互联网;
第二,物联网的用户端不仅包括人,还包括物品,物联网实现了人与物品及物品之间信息的交换和通信。
物联网作为新一代信息技术的高度集成和综合运用,具有渗透性强、带动作用大、综合效益好的特点,是继计算机、互联网、移动通信网之后信息产业发展的又一推动者。

物联网系统开发涉及的环节、人员及内容非常多,把物联网系统开发分成四大阶段,主要是需求阶段、研发阶段、测试阶段、发布阶段等,实现循序渐进,完成物联网系统项目开发。
1、需求阶段
企业在开发前就需要清楚想要什么类型的系统,产品经理与客户进行沟通讨论时,就包括开发类型、开发平台、功能需求、页面设计、开发周期、开发预算等问题反复讨论,之后还将这些需求梳理、需求分类,整理出大致的物联网系统功能框架原型图,只到确认原型图符合要求。
2、研发阶段
在需求阶段梳理完成后,进入物联网系统项目研发时,UI设计师会根据互联网系统原型图进行界面设计,在经过过多次与项目经理沟通修改后,形成初步的互联网系统的页面设计效果图。页面设计完成后,项目开发的前后端工程师根据需求文档进行需求评审,需要程序编写人员根据计划表,按计划和模块进行编写;在编码阶段择合适的程序设计语言、制定编码规范、建立数据库系统、进行程序编码。
3、测试阶段
测试是项目中较为重要的环节,其保证软件系统最后的质量。在物联网系统开发的测试中大致环节包含:测试用例设计、单元测试、集成测试、系统测试、编写《测试分析报告》。在此过程中,测试人员会将出现bug的部分,按计划反馈给前后端的相关负责人或工程师,然后相应工程师进行修改,直至项目在测试环节无bug问题,与客户进行沟通开始验收。
4、发布交付
软件系统开发公司根据合同向企业交付相关程序和文档,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/10417948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-08
下一篇 2023-05-08

发表评论

登录后才能评论

评论列表(0条)

保存