一步步搭建物联网系统(教你设计物联网系统)

 

  © 2014 Phodal Huang.

  1 前言

  设计物联网系统是件有意思的事情,它需要考虑到软件、硬件、通讯等多个不同方面。通过探索不同的语言,不同的框架,从而形成不同的解决方案。

  在这里,我们将对设计物联网系统有一个简单的介绍,并探讨如何设计一个最小的物联网系统。

  1.1 目标读者

  目标读者: 初入物联网领域,希望对物联网系统有一个大概的认识和把握,并学会掌握一个基础的物联网系统的设计。

  硬件开发人员,对物联网有兴趣。

  没有web开发经验

  几乎为0的linux使用经验

  想快速用于生产环境

  对硬件了解有限的开发人员。

  没接触过51、ARM、Arduino

  想了解以下内容:

  RESTful与IOT

  CoAP协议

  MQTT

  本文档对一些概念(如)只做了一些基本介绍,以方便读者理解。如果您想进一步了解这些知识,会列出一些推荐书目,以供参考。

  1.2 不适合人群

  如果你是在这方面已经有了丰富经验的开发者。

  不是为了学习而学习这方面的知识。

  1.3 介绍

  关于内容的选择,这是一个有意思的话题,因为我们很难判断不同的开发者用的是怎样的语言,用的是怎样的框架。

  于是我们便自作主张地选择了那些适合于理论学习的语言、框架、硬件,去除掉其他一些我们不需要考虑的因素,如语法,复杂度等等。当然,这些语言、框架、硬件也是最流行的。

  Arduino: 如果你从头开始学过硬件的话,那么你会爱上它的。

  Raspberry PI: 如果你从头编译过GNU/Linux的话,我想你会爱上她的。

  Python: 简单地来说,你可以方便地使用一些扩展,同时代码就表达了你的想法。

  PHP : 这是一门容易部署的语言,我想你只需要在你的Ubuntu机器上,执行一下脚本就能完成安装了。而且,如果你是一个硬件开发者的话,你会更容易地找到其他开发者。

  Javascript : 考虑到javascript这门语言已经无处不在了,而且会更加流行。所以,在这里CoAP、MQTT等版本是基于Nodejs的。

  HTML、CSS : 这是必须的,同样,他们仍然无处不在。

  GNU/Linux: 作为部署到服务器的一部分——你需要掌握他。当然如果你要用WAMP也是可以的。

  CoAP: 用NodeJS构建IOT CoAP物联网

  1.3.1 为什么没有C ?

  C都不懂还跑过来干嘛。

  1.3.2 为什么不是JAVA ?

  大有以下两个原因

  学习JAVA的人很多,但是它不适合我们集中精力构建与学习,因为无关的代码太多了。

  之前以及现在,我还是不喜欢JAVA (我更喜欢脚本语言,可以提高工作效率)。

  1.4 如何阅读

  这只是一个小小的建议,仅针对于在选择阅读上没有经验的读者。

  当前状态建议

  软件初学者从头阅读

  硬件开发者从头阅读

  没有web经验的开发者从第二部分开始

  我们会在前面十章里简单介绍一些必要的基础知识,这些知识将会在后面我们构建物联网系统时用到。

  某一天,正走在回学校的路上的我突然想到:“未来将会是一个科技的时代——虽然现在也是——只是在未来,科技将会无处不在。如果我们依旧对周围这些无处不在的代码一无所知的话,或许我们会成为黑客帝国之中被控制的普通人。”于是开始想着,有一天人们会像学习一门语言一样开始学习编程,直到又有一天我看到了学习编程如同学习一门语言的说法。这又恰好在我做完最小物联网系统之后,算是一个有趣的时间点,我开始想着像之前做最小物联网系统的那些步骤一样,写一个简单的入门。也可以补充好之前在这个最小物联网系统缺失的那些东西,给那些正在开始试图去解决编程问题的人。

  让我们先从身边的语言下手,也就是现在无处不在的html+javascript+css。

  2 无处不在的HTML

  之所以从html开始,是因为我们不需要配置一个复杂的开发环境,也许你还不知道开发环境是什么东西,不过这也没关系,毕竟这些知识需要慢慢的接触才能有所了解,尤其是对于普通的业余爱好者来说,当然,对于专业选手言自然不是问题。HTML是Web的核心语言,也算是比较基础的语言。

  2.1 html的hello,world