物联网的全栈开发之路

吴跃前 吴跃前     2022-08-07     662

关键词:

本文由嵌入式企鹅圈原创团队成员-华南师范大学物联网创新中心黄鑫执笔。

       两年前我还一直专注在android系统定制领域的研究,对物联网关注比较少,尽管我个人对智能家居的概念和场景体验也比较熟悉。真正引起我注意的是有一次在车上,听到电视广播说打开蓝牙,用手机摇一摇就可以摇到红包,我就觉得这个场景很棒,然后就知道了ibeacon和微信摇一摇周边,知道了微信硬件平台和物联网的发展已经深入渗透到我们的生活了。尽管我觉得自己进入物联网不算早,但是考虑到传统电子行业都有升级到物联的需求,加上自身在嵌入式和APP、网络通信方面的积累,我果断选择拥抱物联网。

       传统的物联网从组成架构上有硬件云、设备、APP应用三个部分。随着微信、阿里小智等超级APP的出现,因为其内置了浏览器,所以应用从APP转向了WEB H5开发,也相应地降低了开发难度和缩短了开发周期。当然,因为APP能够完成自主定制,并且体验效果要由于H5,所以物联网APP依然在选择之列,但H5是一种趋势。从这个发展来看,物联网涉及到云、设备、APP和H5四个领域的技术。

       一个物联网研发团队,即使不是云提供商,作为一个方案提供商,也一定要能很好地把握这四个领域的技术。当然,还需要有一个架构师或者技术总监能够把握这四种技术,才能高效地统筹整个项目。也就是所谓的全栈工程师,借用一下这个词。

       对于我,是如何去平衡和把握这四种技术呢?我们团队在微信硬件平台耕耘已经有两年,在这方面有深厚的积累。就从这个开始谈谈物联网的全栈开发之路。

       由于我自身的开发研究背景,设备和APP都不是问题,网络通信也是看家本领,对于socket编程很熟悉。但是云和H5是一个新的领域,就是传统PC领域的后端和前端。物联网并不是全新的技术,它仅仅是多种技术的组合而已。就我个人而言,需要负责一个研发团队,理所当然要求全栈的技术。所以要尽可能高效地学习理解后端框架和编程,还好,本人对面向对象编程比较熟,对架构和框架等技术感兴趣,android linux本身也有很多框架技术可以借鉴,然后选择springMVC + Hibernate为基础搭建环境,开始了后端和前端的学习和开发之旅。如果学习能触类旁通,它就能变得高效,我始终认为软件思想才是最重要的,而不管它是什么语言。

       物联网也不仅仅是四种领域技术的堆砌,更重要的四者自己的互联互通。我认为,以场景作为软件需求的角度去理解物联网的组合和互通是最为重要的,也是最有效的。扫一扫设备就能够绑定,我们觉得这个已经非常方便了。但是,物联网还要考虑到量产的需求,因为如果都扫一扫,那么每个二维码都是不同的,需要去平台申请,然后印刷,粘贴也是很麻烦的事情,所以设备提供商又提供了设备发现和绑定的流程场景。说到底,物联网需要关注用户的需求,也要关注物联网背后的不同厂商之间的利益诉求。物联网产品从场景体验的角度有注册APP,绑定设备,设备接入、通信控制等过程,对于云来说,就要求实现用户管理、设备管理和消息推送能力。

       有了以上对场景的理解,接下来就是实现层面。如何实现?协议和安全是物联网平台的基础。而协议又分应用层协议和传输层协议,当然,物联网是基于IP物联的,开发人员不需要关注IP即以下层的技术,就算是设备端,有socket编程足够了,当然airkiss是个例外。另外,手机和BLE蓝牙是通过蓝牙协议通信,然后手机和平台还是基于IP物联的。对于方案开发,就需要对云接入的协议、设备接入的协议非常精通。当然,现在物联架构也有分化,譬如微信物联,有基础架构,由自己的后台服务接管自己的设备,又有硬件直连SDK架构,即由硬件直接连微信硬件云,省掉自己的后台。这些,都需要深入理解和运用到方案开发中去,才能有深厚的积累。

       所以,全栈技术、场景、协议就是我的物联网开发之路。

未来物联网全栈开发——javascriptorpython?

未来物联网全栈开发——JavaScriptORPython?物联网开发涉及面庞杂,开发周期长,所以我们必须寻找一种覆盖面广的编程语言和方法。JavaScript支持HTTP和JSON、支持函数式编程、可提供交互式环境等特点堪称适用于物联网全栈开发;... 查看详情

javascript——下一代物联网全栈开发

...:李知周,中国科学院微系统与信息技术研究所博士,物联网早期创业者,发起了开源物联网项目Openfpgaduino,目前在国际知名投资银行从事基于大数据与机器学习的网络安全开发。本文为《程序员》杂志原创文章,未经授权,... 查看详情

《从芯片到云端:python物联网全栈开发实践(刘凯著)》pdf

...佳作。这本书从立意到内容在当下都不可多得。既有关物联网开发,又结合python实践。在写作意图上,作者更试图通过python一种语言贯穿物联网开发的各个环节。 内容简介· 查看详情

物联网架构成长之路(39)-bladex开发框架环境搭建

... 上一篇博客已经介绍了,阶段性小结。目前第一版的物联网平台已经趋于完成。框架基本不变了,剩下就是调整一些UI,还有配合硬件和市场那边,看看怎么推广这个平台。能不能挣点外快。第一版系统虽然简陋,但是对于整... 查看详情

物联网架构成长之路(40)-bladex开发框架入门

0.前言  前一小节,讲了如何入门,这里就简单讲一下如何自定义查询和权限控制配置。1.配置多租户  如果要启用该表的多租户功能,需要在application.yml这里配置。2.配置模糊匹配1@GetMapping(value="/list2")2publicR<IPage<Wunaozai... 查看详情

嵌入式操作系统与物联网演进之路

文/屠敏物联网是新一代信息技术的重要组成部分,回顾其发展,其中不得不提的必然是嵌入式系统。传统的嵌入式系统与互联网的发展衍生出物联网,而在如今的物联网热潮之下,嵌入式系统也面临着全新的机遇与挑战。那么... 查看详情

嵌入式linux与物联网进阶之路四:嵌入式驱动开发思路

前言荔枝派nano这块板子,从本章开始,将会发挥它最大的价值,藉由它来带领我们进入嵌入式linux驱动开发的大门。想必大家在玩linux类型的板子之前应该或多或少的都尝试过其他类型的板载系统的开发,诸如裸跑C语言程序的51... 查看详情

http请求头与请求体-某熊的全栈之路-segmentfault

本文从属于笔者的HTTP理解与实践系列文章,对于HTTP的学习主要包含HTTP基础、HTTP请求头与请求体、HTTP响应头与状态码、HTTP缓存这四个部分,而对于HTTP相关的扩展与引申,我们还需要了解HTTPS理解与实践、HTTP/2基础、WebSocket基础... 查看详情

物联网架构成长之路-目录

 一、基础  【http://www.cnblogs.com/wunaozai/p/8067621.html】  物联网架构成长之路(1)-前言  【http://www.cnblogs.com/wunaozai/p/8075640.html】  物联网架构成长之路(2)-脚手架工具准备  【http://www.cnblogs.com/wunaozai/p/8082332.html】  查看详情

物联网学习之路——iot概况

物联网IoT概念  IoT,InternetofThings,即物物相连的互联网。它包含两层意思:一,以互联网为基础;二,物物相连,实现信息的交换和通信。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合... 查看详情

物联网架构成长之路(12)-物联网架构小结1

1.说明  这一小节,也不具体讲些什么了。最近一个半月都在摸鱼,没什么事做,慢慢学习着SpringBoot和SpringCloud。下面两张图是进行的一次小结。以后随着深入,整个架构肯定是会变的。现在记录一下,每个项目成长都是有一... 查看详情

物联网架构成长之路-emq权限验证小结

1.前言  经过前面几小节,讲了一下插件开发,这一小节主要对一些代码和目录结构进行讲解,这些都是测试过程中一些个人经验,不一定是官方做法。而且也有可能会因为版本不一致导致差异。2.目录结构   这个目录... 查看详情

物联网学习之路——物联网通信技术:nbiot

 NBIoT是什么  NB-IoT,NarrowBandInternetofThings,窄带物联网,是一种专为万物互联打造的蜂窝网络连接技术。顾名思义,NB-IoT所占用的带宽很窄,只需约180KHz,而且其使用License频段,可采取带内、保护带或独立载波三种部署方... 查看详情

嵌入式linux与物联网进阶之路五:嵌入式驱动方式点亮led

简化的驱动框架话说前面章节讲到了如何利用嵌入式驱动开发的方式进行驱动开发。由于其学习路线相比于裸机开发来说,上手难度稍微大一些,而且代码量也相对来说较多,所以对刚上手的人来说是颇有难度的。本章节,我们... 查看详情

最值得推荐的6个物联网开发平台

目录一、为什么物联网平台如此火热二、阿里云Iot三、腾讯云消费物联解决方案四、亚马逊AWSIoT五、微软AzureIot服务六、华为云IoT全栈云服务七、小米IoT开发者平台八、横向对比九、总结一、为什么物联网平台如此火热不知不觉&... 查看详情

revelgolang的全栈开发框架

revel是一个golang的全栈web开发框架,支持代码开发阶段的reload,友好的迁移(基于mux支持原有代码的方便迁移)无状态,内置强大的cache,template,job,参数解析,路由安装 goget-ugithub.com/revel/cmd/revel创建应用revelnew-amy-app-r效果&n... 查看详情

物联网架构成长之路(23)-docker练习之elasticsearch服务搭建(代码片段)

0.前言  最近基本都是学一些环境配置,和一些中间件的安装与配置。没有实际编写代码。可能看起来有点水,我对自己的学习方式是,先要了解各个中间件的安装配置以及简单使用,理论应用场景,然后我在小项目中,逐步... 查看详情

物联网架构成长之路(59)-springboot项目作为系统应用,自启动

一、前言  开发完项目,一般调试都是在eclipse或者idea上运行服务的。但是要部署到服务器上,就需要后台运行和自启动等配置了。这里采用Debian系统作为演示。 二、后台运行  工程项目代码采用maven进行打包。1mvnwpackag... 查看详情