从端到云-全面讲解物联网全栈开发之道-阿里云开发者社区

开发者社区> IoT> 正文

从端到云-全面讲解物联网全栈开发之道

简介: 万物互联的时代即将到来,互联网作为当今最为火热的方向之一,无数开发者沉迷其中,那么从事物联网开发需要哪些知识储备呢?在本次分享中,来自创客学院的刘正道老师从物联网就业与岗位分析、物联网与嵌入式、物联网行业解决方案、物联网课程体系四部分全面讲解物联网全栈开发之道,带你走向物联网开发世界。

万物互联的时代即将到来,互联网作为当今最为火热的方向之一,无数开发者沉迷其中,那么从事物联网开发需要哪些知识储备呢?在本次分享中,来自创客学院的刘正道老师从物联网就业与岗位分析、物联网与嵌入式、物联网行业解决方案、物联网课程体系四部分全面讲解物联网全栈开发之道,带你走向物联网开发世界。

数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!

戳我回顾视频直播

击此处下载分享PPT


物联网就业与岗位分析

bfc5d092c3de38a7e21e88b2956cdb29a9996e2e 

上图是从智联招聘、51Job等大型招聘网站上截取到的数据。通过这些数据可以看出物联网是一个综合型的交叉学科,就业行业分布比较广泛,偏向于软件应用方向。大型物联网公司通常招聘的岗位包括软件方向的Android应用、web/html5前端、web后台;硬件类的嵌入式硬件、系统集成;支撑类的运维实施、售前售后;市场类的市场营销、需求分析、商务投标等。通过这些数据分析,我们可以得出要从事物联网方向的就业人员需要掌握嵌入式软件开发以及嵌入式硬件开发。

物联网技术知识体系

下面从分层的角度来介绍下物联网技术知识体系。

99ba6e75c1602531a5e8d82f278243ec578b345f 

在本文中,我们将物理网技术分为应用层、平台层、感知层和网络层四层。应用层主要开发与用户交互、体验的产品,需要具备软件工程、Android应用开发、Web前端应用开发以及与之对应的Web后台设计开发;平台层方向需要具备物联网中间件开发能力,数据库设计与运维能力、云计算与服务器开发能力以及Web后台设计开发、网络编程等方面的知识;本次培训课程体系主要针对感知层和网络层。在网络层,物联网知识体系中必须掌握N多种无线通信技术,如ZigBeeBLEWIFI433IPv6Lora;其次,需要在智能硬件上运行嵌入式Linux操作系统;同时,涉及到网络通信,还需要具备M2M技术以及网络安全方面的知识。在最低端的感知层,需要掌握单片机与嵌入式的开发技术、传感器原理与应用、RFID射频技术和嵌入式微操作系统。这四层构成了整体的物联网知识体系。

下面针对不同的岗位需求来具体分析。

841d9f0e7103c09d4b5f70e45a859d854718c88a 

对于应用层开发人员,具体要求如下:

Android应用:了解微信公众号开发,androidiosH5JSMySQL,有项目开发经验优先,配合产品经理设计界面原型;

Web/HTML5:根据产品需求和设计完成兼容性良好的应用页面和前端页面制作,与后台工程师协作,完成数据交互、动态信息展现;

UI设计:对用户体验、交互操作流程、及用户需求有深入理解;

软件测试:有强烈的上进心和求知欲,善于学习和运用新知识,善于沟通和逻辑表达,有较强的团队意识和执行力。

2a6143bdf743e9142eab58c902deae65dceadda1 

对于嵌入式软件和嵌入式硬件开发的要求如下:

嵌入式软件:计算机、物联网、嵌入式、电子等相关理工类专业,大专及以上学历,参加过电子设计/物联网设计大赛的优先考虑;掌握单片机、ARM及相关嵌入式C语言编程,具有I2C/UART/SPI等驱动开发经验,有STM32系列处理器开发经验更佳(重点);负责嵌入式硬件驱动的开发工作,参与物联网前沿技术和解决方案的研究,设计嵌入式软件测试环境与测试方案(重点);有强烈的上进心和求知欲,善于学习和运用新知识,善于沟通和逻辑表达,有较强的团队意识和执行力。

嵌入式硬件:物联网、嵌入式、电子等相关理工类专业,大专及以上学历,参加过电子设计/物联网设计大赛的优先考虑;能看懂原理图及英文数据手册,可以自行设计硬件并LAYOUT,至少会Protel硬件设计软件;负责产品硬件的设计开发,包括原理图,PCB设计、器件选型、输出规范的BOM;设计测试环境与测试方案;样板焊接及调试;跟踪生产线并及时处理生产线上的问题,协助改进和完善生产工艺技术。

34fb1092ad8b95e1664440806aaa2446503a92b0 

对于支撑端,要从事物联网相关的职位,具体要求如下:

系统集成:计算机、物联网、嵌入式、电子、通讯、电子、自动化控制等相关专业专科以上学历;熟悉嵌入式、RFID、传感、自动控制、无线传输等物联网技术;掌握综合布线、系统集成等综合技能;

运维实施:负责项目现场勘察、需求调研和项目实施方案制定,完成项目现场产品安装部署、客户培训、系统维护和项目验收等工作;

售前售后:具有问题判断、分析及解决能力;良好的沟通能力及团队合作精神;具备独立实施项目的能力;有较强责任心,吃苦耐劳。

对于市场与产品方向,具体要求如下::

产品助理:物联网、计算机及通讯大专以上学历,熟悉产品/销售/市场流程,有项目销售经验者优先;

市场营销:了解物联网相关技术,有一定的项目运维和项目实施基础,有信息化解决方案售前工作经验,熟悉招投标流程者优先;

需求分析:负责企业客户的开发,为客户提供物联网项目解决方案;负责物联网项目的技术方案编写、标书的准备、及用户答疑等工作;参与产品的需求分析,协助产品经理做好项目管理;

商务投标:具备良好的文笔功底,良好的语言表达、沟通和演讲能力。

 

物联网与嵌入式

a61cb734f7f432acc3515cb6b6fc6f671ef1c79e 

众所周知,人工智能是当今最火的方向之一。物联网、大数据、人工智能以及云计算的关系如上图右侧所示。物联网负责人与物、物与物之间的连接,产生的数据交付给云计算处理;云计算的出现方便了数据的存储与分析;通过云计算能够处理大数据,进行深度挖掘、定量分析;然后大数据将分析结果反馈给人工智能,人工智能再下行做决策。

嵌入式组成

6d7966d73991620c174dbcb336b143adcbdccc9f 

嵌入式系统一般由嵌入式硬件和软件组成。硬件层核心是嵌入式微处理器,在微处理器周围配置了丰富的外设,包括D/AA/DI/O、通用接口、ROMSDRAM,以及对外提供的人机交互接口;软件层最底层是驱动层,主要驱动硬件外设为操作系统提供标准接口,便于操作系统控制硬件,中间OS层除嵌入式操作系统之外,还包括文件系统和图形用户接口;最上层是应用层,对外提供应用程序。

物联网开发平台

8495ce9cb24736cfc3c24d5dce5bdd8c1f4f27d2 

物联网开发平台包括微控制器MCU、微处理器MPU以及无线通信技术。

物联网与嵌入式

62cf71b770c36e4602ae997983fd3e1b8c3e3978 

物联网与嵌入式开发与ARM核密切相关,目前ARM推出的全新嵌入式架构:ARM Cortex-A&Cortex-M双平台实现了万物智能互联。Cortex-M系列面向小数据开发,如智能硬件、物联网的终端设备;对于平台级别的,如平板、手机、机顶盒等,面向大数据开发需要使用Cortex-A系列,因此整个物联网开发是围绕ARM平台进行开发,开发人员需要掌握ARM Cortex-A&Cortex-M双平台。

下面来具体了解物联网开发平台的具体组成。

06fbeb474cf9303b0314d622948a876bb2da7a5a 

上图是目前主流的微控制器MCU实物图,采用ARM Cortex-M架构,具备高性能、低功耗、单片化、集成度高等优势,其中,单片化是在在一个芯片内集成了丰富的外设。基于该MCU,可以开发一些物联网终端。

0d7462f0ba172d9166f7f27eb29c45ebef693610 

目前常见的MCU包括8051AVRPICMSP430STM32(市场主流),其具体架构、总线、主流型号、开发环境、简要说明如上图所示,这里不再一一叙述。

微处理器MPU

e3d6c70603abb357efa77c6d366b2e22696d1c10 

目前最火的微处理器MPUARM Cortex-A系列,除此之外IBMPower PCMIPS等产品。上图左侧是Cortex-A5 的具体内核架构,主要用于平板、安卓手机等大型平台开发。

b2a97c11896f11de9ddd91867b5b72bb72692949 

ARM Cortex-A系列整体架构如上图所示,前期基于ARMv7-A的体系架构(图中绿色部分);后期是基于ARMv8-A(图中蓝色部分),自下而上又根据性能分为三层,不同的设备采用不同的处理器。这些处理器的性能已经远超Cortex-M系列,目前我们教学主要使用Cortex-A9Cortex-A53

物联网无线通信技术

811ea946e03fd5d14a5df9b1bc880b5f232b6dee 

物联网无线通信技术是本次课程的重点内容,未来的物联网无线通信网络将会是多种技术共生的异构网络,如低功耗广域网LoRA/SigfoxNB-IoT等;低功耗局域网的ZIgBeeWifi、蓝牙等;2G\3G\4G等蜂窝网络。

b6d7b461d0af3ff4f5bca2036a5feac8b461b502 

对于如此之多无线通信技术,当进行物联网项目开发时,如何选取哪种呢?上图从功耗和通信距离两个角度给出了解决办法。从通信距离角度考虑,LoRA/SigfoxNB-IoT等通信距离最长,达到10km以上;从功耗角度出发,传统的2G\3G\4G等蜂窝网络功耗最大。因此,对于不同的项目,需要结合具体使用场景,开发者可以从通信距离、传输速率、网络容量、芯片功耗、芯片成本、协议标准六大方面出发选择特定的无线通信技术。


物联网行业解决方案

常见的物联网行业解决方案包括共享经济、智能家居、工业4.0、车联网、智慧水务、智慧农业、智慧硬件。

共享经济

c0a3790ea822d234f462e2d28c321b1f999b889f 

共享经济中的共享单车是物联网落地的一个经典应用,也是国内真正做到量级的应。与之类似的无人售货机和共享按摩椅也逐渐流行起来。这些应用中包含多种物联网技术,以摩拜单车为例,其感知层包含传感器,用于收集外界信息;之后通过单片机对数据处理;完成处理后,使用传输模块将数据发送出去(最早使用2GGPRS技术),云服务器端的中间件将单车上传的数据进行解析后,存储到数据库中,不同的数据存储在不同表中;摩拜对应的APP利用数据库提供的接口将数据呈现给用户,这样一来形成了完整的共享单车物联网应用。

智能家居

af501743862438ffc42ff06a24935db78911bfdf 

在智能家居场景中,需要部署一个网关Gateway(需定制开发),用于连接物联网终端设备。Gateway下可以挂载多个节点,如烟感、进水控制、温湿度控制、房间开关、视频监控等。

车联网

76aa5d9608e7011a908371c8312beff0cc3789ed 

车联网也是物联网一个比较成熟的应用场景。上图给出了汽车中常用的零件模块,其中汽车与汽车之间的通讯是一种简单的车联网应用场景;除此之外,车联网中常见的物联网应用还有导航、远程控制、人机语音交互等等。

智慧水务

a7ccb5734250768410411520828f47e927ba4ab4 

智慧水务也是物联网常见的应用场景,并且每年国家投资占比也较为客观。井水/河水等水源经过自来水厂/水处理中心后输送到企事业单位/住宅区,在整个流程中包含大量的管网监测、水表检测等,在未使用物联网时,这些管网的状况需要人为去排查。通过物联网技术,在每个水表或官网上植入无线模块,这样一来管网\水表的信息可以实时查看,并且可以对检测的数据进行处理,实现水资源动态智能调控,做到智慧水务。

智慧农业

6f36af2c2ec72a4af3f8de8ebb9ec4920b34df81 

智慧农业可以说是物联网落地最大的应用场景,但仍处于发展阶段。智慧农业又分为智慧设施(日光温室等)、畜禽养殖、水产养殖、大田灌溉四大场景。

智能硬件

53c1453e3c3187c88ca36fbe74d5b477dc7b005a 

智能硬件是物联网贴近生活的一种应用,通过将传统的家用电器智能化、联网化,实现硬件的智能。

 

物联网课程体系

上文中我们从宏观和微观等多个视角分析了物联网技术人员需要的技术以及可能从事的行业,下面来介绍一下本次分享的重点——物联网课程体系。

物联网课程体系共分为六大阶段。

第一阶段-物联网基础课程

b5f361a0447635e963a5ded6c1df8f5a87ad788a 

在物联网基础课程学习阶段,主要学习Linux C语言、C高级(包括Linuxshell命令和MakeFile)、数据结构等方面的基础知识,通过该阶段的学习建立编程思维,结合计算器、字符串解析器通讯录、小游戏开发等项目在实战中掌握基础编程,适用于职业规划为嵌入式Linux C语言开发工程师、Linux软件开发工程师。

第二阶段-物联网应用层核心课程

 

7587aafedd3a22b022be3f88a4e98859676d5ea8 

通过第一阶段的基础知识储备,在第二阶段我们主要学习应用层核心课程,课程设计包括文件IO、并发程序设计(多线程、多进程)、网络编程、数据库开发和在线词典综合实战;通过命令行解析器、文件服务器以及网络聊天室ping客户端的实现等实战项目,实现知识技能提升和编程能力突破,适用于职业规划为嵌入式Linux应用工程师、Linux网络开发工程师。

第三阶段-物联网底层核心课程

62aaaeb33a0b8ec14fe4784d5d5cb78c9c543f00 

在第三阶段我们主要学习物联网底层核心课程。课程涵盖ARM体系架构、系统移植、驱动开发初级、高级,通过软中断程序、LED控制程序、内核移植、根文件系统移植、第三方驱动移植、led灯驱动、按键驱动等大量实战项目系统学习底层开发技能,适用于职业规划为嵌入式Linux系统工程师、Linux kernel工程师以及嵌入式Linux驱动工程师。

第四阶段-物联网开发关键技术

 

 

767ecd5fa009c5fff842ab9a2d00f5b8c1269358 

在第四阶段,我们主要学习物联网开发关键技术,包括stm32 嵌入式系统设计、数字电路&模拟电路、原理图&PCB设计,通过数字电路和模拟电路、双面板完整设计、四层板完整设计、蜂鸣器、SPI读写Flash等实战项目进行物联网开发核心技能系统学习,适用于职业规划为嵌入式ARM工程师、实时操作系统开发工程师、PCB设计工程师、计算机硬件开发工程师、单片机开发工程师。

第五阶段-物联网高级开发内容

ee1a56e1294b5a61246fe15f7a7033975484ff51 

在第五阶段,我们主要学习Zigbee系统开发、蓝牙4.0 BLE开发从入门到精通、WiFi开发与应用、RFID开发与应用、LoRa开发与应用、NB-IOT开发与应用、物联网云平台对接与应用,通过zigbee智慧农业、蓝牙智能手环、RFID智能货架、LoRa智慧牧场、NB-IOT智慧消防、WiFi智能家居实战项目实现物联网开发高级技能系统学习,适用于职业规划为RDID应用开发工程师、物联网开发工程师。

第六阶段-综合项目实战

 

 

 

cb2791300bce13fd88bcb70e085a18090ac4ab65 

经过前五个阶段的学习,我们基本掌握了物联网开发的全部知识,因此在第六阶段,我们进行物联网大项目实战,包括智能仓储项目和智能安防项目,具体包括Ubuntu系统下web服务器搭建及cgi接口调用、mjpeg-streamer视频流服务器的跨平台移植开发,通过该课程不仅掌握嵌入式linux操作系统下应用层开发,同时也掌握驱动开发及移植原理,以及以M0为终端的多种传感器数据采集、分析和开发,适用于职业规划为嵌入式开发高级工程师、物联网开发高级工程师。

欢迎关注下方微信公众号,获取更多信息。

aac49ac3a677582940dac49c404d4fe11c9304fe 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
IoT
使用钉钉扫一扫加入圈子
+ 订阅

物联网软硬件开发者一站式基地

其他文章