在IoT时代,一套智能硬件项目需要跨越以前软件和硬件,设备和网络的界限。一套完整的智能硬件开发需要以下几个方面:设备硬件、设备软件、云端服务器和手机APP。
对于上述四个层面,我们陆续看到不同的解决方案,旨在降低相应领域的门槛。比如说,像Arduino、树莓派这样的开源硬件,就是降低硬件开发难度的产物。对于云端服务器来说,在过去的一年里,我们也看到不少团队在这方面努力,比如机智云,还有今天要向大家介绍的免费开源的物联网云平台项目IoTgo。
IoTgo实现无需懂服务器前/后台开发,就可以简单开发服务器:像用Arduino,不用懂硬件和嵌入式软件,就能简单开发。 IoTgo项目还通过适配Arduino,树莓派等开源硬件,提供库,开发包和范例代码,来帮助简化硬件和软件的开发难度。IoTgo 后续还会发布开源的App,让一个无App开发基础的爱好者简单看看样例就能实现。
现在的云平台并不少,为何再“另起炉灶”?
Arduino 和树莓派这类开源硬件的出现,大大降低了设备硬件/设备软件部分的开发难度,节约时间和成本,支持更多人进来折腾。但是当创客想做一套IoT的智能设备,设备端可以简单的用开源硬件做出来,不过云端服务器问题,他们还是希望尽可能的简单:所以出现了类似Yeelink ,乐联网这样的免费云平台,他们帮助开发者解决了服务器侧的开发,开放了接口,提供免费的云端服务器服务,甚至为热门的开源硬件提供了代码库,这样可以让爱好者、开发者很容易的就将自己的智能设备连网上,并进行通讯,进而实现一些简单的功能:如远程开关灯,远程查看温湿度,远程红外遥控电视空调等。
但是在网上,能找到这样的物联网开源项目不多,一个原因当然是因为它比较小众的需求,很多人会搭论坛建网店,但是很少人没事建云服务器;另一个原因是这样的平台还涉及了硬件的部分, 很少能有人同时精通硬件部分又精通互联网部分,这需要一个团队来做。我们最开始也是使用Yeelink提供的免费云服务区来DIY自己的远程设备,像远程温湿度计,远程开关。后来我们开始接到一些客户的定制项目,发现这些免费云平台已经无法满足我们的需求了,在网上当时又找不到合适的开源云平台框架,只好为客户重新开发了一套云服务器平台。在给几个客户完成了几个不同的物联网项目后,我们发现其他底层框架都大同小异,只要稍微修改就能适用于各种“智能”硬件。现在的所谓智能硬件功能太单一,我们将这部分内容提取出来,做出了这个云平台框架,并将它开源托管到github上去,这样如果还有其他开发者需要开发一个智能设备的云端服务器的话,就可以直接下载安装并修改了,很多基础部分无需从零开始。
和现有的云平台相比,IoTgo的特点是什么?
主要分为三点:
1. 国内应该是第一个开源的IoT云平台项目,与国内很多开源云平台相比,它是开源全部代码。它不是让用户在淘宝上开个网店,而是在互联网上用软件自己搭一个网店。
2. 支持主流几个物联网协议,比如MQTT、CoAP等。
3. 不仅提供服务器端开源代码,还提供设备端硬件开源设计范例,设备代码范例,甚至开源的手机app范例。
如何促使产品能够被开源社区传播出去?
如果仅仅将代码开源,让有需要的用户去搭建使用,那么早期在传播上的局限性是很大的,所以我们也使用Arduino, RPI 等开源硬件,制作了几个跟IoTgo平台进行交互的实例,并发布能简化硬件部分代码开发的Arduino库和SDK。甚至是开源的手机示例APP代码。正如我们说的,IoTgo 开源的不仅仅是一个服务器端代码,而是包括了硬件参考设计,硬件端范例代码和手机app代码的一整套生态链。
这个项目现在还在Beta阶段,项目负责人表示年后会发布正式版本。希望有更多的人来了解和参与到项目中来。