物联网开发需要什么技术呢
物联网开发需要的技术
一:单片机/嵌入式开发
智能硬件,哎,不就是单片机吗?说到底就是一个微控制器,现在出现的智能手表,调光LED灯,蓝牙开锁,WiFi插座等等,说到底不就是单片机开发嘛?单片机,电子和通信专业一般都会教51或AVR、计算机系接触不到。现在流行的Arduino也是单片机开发的一种。
但是要做一款智能硬件,技术上只会单片机编程还是不行的。哎呀嘛什么智能硬件,本质上就是一个电子产品!。所以你要开发一款能拿得出手的智能硬件,电子系统设计必须要会的!
二:网络通信协议
智能硬件与传统的电子产品最大的差别,就是智能硬件连上了网络。要连上网络,就需要用到网络通信模块及学习网络通信协议——TCP/IP。
TCP/IP是一个技术的总称,里面包含两种协议TCP、UDP,位于网络通信分层模型的传输层,同时也是由操作系统管理。而HTTP、DNS、URI等这些技术,属于应用层,位于TCP/UDP之上。同样,最近物联网比较流行的,针对计算能力有限的通讯设备而出的MQTT协议,也属于TCP之上。
为了让电子产品有联网的能力,只要在电路设计上给主控芯片连接一个通信模块,写好收发网络指令的代码,剩下的就是电子产品设计了。
三:服务端开发框架
Client/Server架构,即客户端/服务器架构。智能硬件连上后台服务器后,其就是一个客户端,一个终端。由于单片机中资源受限,实际上是不太可能用HTTP协议的,所以互联网中通用的Web服务器开发并不适合这里。有的厂家会在TCP之上自定义协议,有的就移植别人做好的协议比如MQTT,CoAP等等。
服务端开发就比较复杂了。单片机/嵌入式软件开发还好,只要学习好C语言即可打遍天下无敌手,而服务端开发,用Java呢还是Python还是PHP?反正Java和Python选一个就好了,嵌入式出身的工程师,一般都会学Python。
Python服务器端的开发框架种类繁多,Web开发的有Django、FlaskTornado WebServer,TCP服务器可以用Twisted,等等。MQTT有已经做好的服务器,像这样的服务器不用自己开发,直接部署即可。
如何开发物联网应用程序_物联网软件开发
物联网开发应用最重要的是各种接口的兼容性。首先物联网终端设备数量比手机大得多,而且本身没有显示界面,通常只是能够通过特定网络协议回传数据的传感器(直接连入互联网或者通过网关设备),也就是说在物联网大数据汇聚的前端,数据的汇入是自动化进行的,应用开发的重点是后端的汇聚层。物联网应用后端汇聚层需要有一个智能化软件系统(通常运行于数据中心),来管理物联网设备(包括固件升级等)、网络、处理海量数据,并提供给用户。在设备层、汇聚层之外,物联网应用还需要一个分析层,负责处理物联网设备产生的大数据。最后,是最终用户层,负责将有用的数据分析结果以可视化的方式展示到用户的终端设备中,这个层面的开发,可以是移动web网站也可以是一个手机APP。由于设备层和汇聚层第三方专业产品和服务的完善,实际上今天的物联网应用开发,主要指的是分析层和用户层这两个层面,换而言之,未来物联网开发生态主要建立在成熟的云计算物联网平台上。成熟的物联网平台通常都提供汇聚层需要的大数据存储、实时信息总线以及于前端应用通讯的API。实际上今天已经有大量面向物联网应用开发的平台,例如Xively、Mnubo、BugLabs和ThingWorx等,这些平台通常能够兼容大量物联网产品厂商的设备。