物联网开发需要什么技术呢

物联网开发需要什么技术呢,第1张

物联网开发需要的技术
一:单片机/嵌入式开发
智能硬件,哎,不就是单片机吗说到底就是一个微控制器,现在出现的智能手表,调光LED灯,蓝牙开锁,WiFi插座等等,说到底不就是单片机开发嘛单片机,电子和通信专业一般都会教51或AVR、计算机系接触不到。现在流行的Arduino也是单片机开发的一种。
但是要做一款智能硬件,技术上只会单片机编程还是不行的。哎呀嘛什么智能硬件,本质上就是一个电子产品!。所以你要开发一款能拿得出手的智能硬件,电子系统设计必须要会的!
二:网络通信协议
智能硬件与传统的电子产品最大的差别,就是智能硬件连上了网络。要连上网络,就需要用到网络通信模块及学习网络通信协议——TCP/IP。
TCP/IP是一个技术的总称,里面包含两种协议TCP、UDP,位于网络通信分层模型的传输层,同时也是由 *** 作系统管理。而>

IOT网关,接收sensor数据的总入口,主要是日志,安全防护,流控,协议转换等功能,

图1 IOT网关

之前有提到IOT网关是基于python的twisted框架实现的,初期的时候该IOT网关主要实现的功能是 数据接收和转换功能 安全防护

数据接收和转换功能 ,这里很简单,拟定好数据交互格式后,IOT网关按照约定好的格式进行解析,然后转发给后端服务进行进一步的处理

安全防护 ,设备的区分主要是依靠烧录到硬件的SN号来实现,SN号包含的信息比较多,如生产批次,设备型号等,受制于厂商我安全防护不能做的非常完善,同时sensor与IOT网关的交互不能非常复杂。安全防护这一块理论上是设备接入要一型一密或者一机一密,协议上还应该启用tls/ssl安全通信协议。

图2 鉴权

安全防护要做ssl这类的安全通信协议的话,要考虑设备厂商实现通信模块能力,设备功耗,设备性能(低端设备cpu性能可能比较差,可考虑对称加密形式),IOT网关也需要引入相应模块。

另外认证从性能方面考虑,后期在设备比较多的情况下,可以加入redis等内存型key-value数据库,缓存设备信息,提高鉴权模块性能。

实践中,我们的sensor基本都是依靠电池供电,因此我们的IOT网关基本是面向短链接(后期我们有监测设备,依靠外部电源直接供电,为长连接),因此在每次发起连接我们都要进行一次鉴权,鉴权通过后,设备方可上传传感器监测数据和设备自身状态。

图3 数据交互流程

这一块的调试工作长达半年左右,才基本稳定下来,主要集中在设备商处除了硬件稳定性,还有在调试中发现传输的字符串乱码(c语言处理问题),沾包(厂商开发人员tcp协议不熟),优化传输效率,关闭cork或者 Nagle 算法(传输包很小)。

因为IOT网关不能主动断连接,理论 *** 作中,IOT网关应该和sensor有心跳协议,保证连接的有效性。设备商在数据流程交互完成后,竟然没有close 连接,直接休眠,导致网关所在服务器的连接的文件描述符一直没有正常释放,后面为了预防这种现象,我开启了 *** 作系统层面的keepalve定时器,回收失效连接(系统默认时间是2小时左右,我缩短了失效时间),理论上来说应该是应用层面去实现心跳协议。

整个IOT网关的设计,是无状态,可伸缩的,单网关在普通型ecs上可轻松达到数百tps。

Python这只小虫子最近随着大数据的兴起可以说是十分的火了。有越来越多的人不敢小觑Python这门语言了。也有更多的人在学习Python。Python为何会有如此大的魅力?为什么从事大数据行业必学Python?这还要从Python这门语言的优点开始讲起。
虽然Python这种语言不如Java、C++这些语言普及,却早在1991年就已经诞生了。它的语法简单清晰,以实用为主,是门十分朴素的语言。同时,它还是编程语言中的“和事佬”,被人戏称为胶水语言。因为它能够将其他语言制作的各种模块很轻松的联结在一起。
如果将Python语言拟人化,它绝对属于“老好人”的那一类,让人容易亲近,人们与它交流并不需要花太多心思。但它却拥有强大的功能。很多语言不能完成的任务,Python都能轻易完成。它几乎可以被用来做任何事情,应用于多个系统和平台。无论是系统 *** 作还是Web开发,抑或是服务器和管理工具、部署、科学建模等,它都能轻松掌握。因此,从事海量数据处理的大数据行业,自然少不了这个“万能工具”。
除此之外,Python这只小虫子还受到了大数据老大哥Google的青睐。Google的很多开发都用到了Python。这使得人们能够找到Python的很多指南和教程。让你学起来更方便,你在使用中可能遇到的很多问题大多数都已经被Google给解决了,并把解决方法发布到了网络平台。
Python还拥有一系列非常优秀的库,这省了你编程中的很多时间。尤其是在人工智能和机器学习领域,这些库的价值体现得更为明显。
不管怎么说,从事大数据工作,少不得要在网络上爬取数据,不用Python爬虫,你还打算用什么呢?
因此,在当前的大数据领域,从事大数据行业必学Python。
人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
————————————————
版权声明:本文为CSDN博主「duozhishidai」的原创文章,遵循CC 40 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:>学会Python可以有以下几类工作方向:
Python开发工程师:一般需要精通Python编程语言,有Django等框架的使用经验,实习无要求。
Python高级工程师:北上广深的话,薪金在1万以上,需要精通Linux/Unixg平台,有英语阅读功底。
Web网站开发方向:熟悉Web开发的常用 Python框架,熟悉掌握Mysql类数据库的 *** 作即可。
SEO工程师:为自己或公司开发和改进SEO相关软件,实现自动化搜索引擎优化和日常重复工作。
Python自动化测试:熟悉自动化流程、方法和常用的模块的使用,有英文读写的能力。
Linux运维工程师: Linux服务器管理,数据分析、自动化处理任务、分析网站日志、定时计划管理,解放双手。
Python游戏开发工程师: 网络游戏后端服务器逻辑的开发和处理,有大型数据库使用经验,喜欢从事游戏相关工作。
Python自学爱好者: 可以自己开发一些小软件和应用,带图形化界面的软件,方便日常工作。
Python语言无所不包,能做非常多的事情,适合各类企业的开发工作,这里就不一一介绍了,总之,学好Python,前途宽广!
未来十年将是大数据、人工智能爆发的时代,到时候对于Python工程师的需求也是水涨船高,因为Python对数据的处理,人工智能应用方向,有着得天独厚的优势。

阶段一:Python开发基础
Python全栈开发与人工智能之Python开发基础知识学习内容包括:Python基础语法、数据类型、字符编码、文件 *** 作、函数、装饰器、迭代器、内置方法、常用模块等。
阶段二:Python高级编程和数据库开发
Python全栈开发与人工智能之Python高级编程和数据库开发知识学习内容包括:面向对象开发、Socket网络编程、线程、进程、队列、IO多路模型、Mysql数据库开发等。
阶段三:前端开发
Python全栈开发与人工智能之前端开发知识学习内容包括:Html、CSS、JavaScript开发、Jquery&bootstrap开发、前端框架VUE开发等。
阶段四:WEB框架开发
Python全栈开发与人工智能之WEB框架开发学习内容包括:Django框架基础、Django框架进阶、BBS+Blog实战项目开发、缓存和队列中间件、Flask框架学习、Tornado框架学习、Restful API等。
阶段五:爬虫开发
Python全栈开发与人工智能之爬虫开发学习内容包括:爬虫开发实战。
阶段六:全栈项目实战
Python全栈开发与人工智能之全栈项目实战学习内容包括:企业应用工具学习、CRM客户关系管理系统开发、路飞学城在线教育平台开发等。
阶段七:算法&设计模式
阶段八:数据分析
Python全栈开发与人工智能之数据分析学习内容包括:金融量化分析。
阶段九:机器学习、图像识别、NLP自然语言处理
Python全栈开发与人工智能之人工智能学习内容包括:机器学习、图形识别、人工智能玩具开发等。
阶段十:Linux系统&百万级并发架构解决方案
阶段十一:高并发语言GO开发
Python全栈开发与人工智能之高并发语言GO开发学习内容包括:GO语言基础、数据类型与文件IO *** 作、函数和面向对象、并发编程等。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存