零、前言

我们这一代人已经开始适应物联网产品。关于物联网有很多炒作。这本书将专注于构建基于物联网的应用,帮助您在物联网方面达到更高的理解水平。它将遵循基于项目的方法,将教你构建独立的令人兴奋的应用,还将教你将你的项目扩展到另一个层次。我们将使用 JavaScript 作为我们的编程语言,使用树莓 Pi 3 作为我们的硬件来构建有趣的物联网解决方案。

这本书涵盖了什么

第一章物联网世界,为您介绍物联网世界。我们将回顾物联网的历史,确定一些用例,并对本书将要涵盖的内容进行技术概述。

第 2 章iotfw . js-I带您了解如何使用 JavaScript 构建开发物联网解决方案的参考框架。在本章中,我们将介绍高级体系结构,并开始安装所需的软件。我们将从下载基础应用开始,并使用 MQTTS 代理和 API 引擎将树莓 Pi 拼接在一起。

第三章IoTFW.js - II 从上一章我们停下来的地方继续,完成了 API 引擎、web app、桌面 app、移动 app 的实现。在本章的最后,我们实现了一个带有发光二极管和温度传感器的简单示例,其中来自应用的指令将打开/关闭发光二极管,温度传感器的值会实时更新。

第 4 章智能农业讲的是利用我们已经搭建的参考架构搭建一个简单的气象站。气象站由四个传感器组成,利用这些传感器我们可以监测农场的情况。我们将对应用编程接口引擎、网络应用、桌面应用和移动应用进行必要的更改。

第 5 章智能农业和语音 AI ,展示了我们如何利用语音 AI 技术的力量构建有趣的物联网解决方案。我们将与智能气象站合作,并在此设置中添加一个单通道机械继电器。然后,使用语音命令和亚马逊 Alexa,我们将管理气象站。

第 6 章智能可穿戴,讲述了医疗保健领域一个有趣的使用案例,术后患者护理。使用装有简单加速度计的智能可穿戴设备,人们可以轻松检测患者是否摔倒。在本章中,我们构建所需的设置注释,以从传感器收集加速度计值。

第 7 章智能可穿戴和 IFTTT】解释了如何利用加速度计采集的数据来检测跌倒,同时通知 API 引擎。使用一个流行的概念如果这个那么那个(iftt)—我们将构建我们自己的规则引擎,它将处理预定义的规则并相应地采取行动。在我们的示例中,如果检测到跌倒,我们将向患者的护理人员发送电子邮件。

第 8 章树莓派图像流,展示了如何利用树莓派相机模块构建实时图像流(MJPEG 技术)解决方案,从世界任何地方监控您的周围环境。我们还将实现基于运动的视频捕获,以便在检测到运动时捕获视频。

第九章智能监控,用亚马逊的 Rekognition 平台带你走过图像识别的过程。当使用树莓 Pi 3 相机模块检测到运动时,我们将捕捉图像。然后,我们将把这张图片发送到亚马逊 Rekognition 平台,检测我们拍摄的图片是入侵者的还是我们认识的人的。

这本书你需要什么

要开始使用 JavaScript 构建物联网解决方案,您需要具备以下条件:

  • JavaScript 的中级到高级知识–ES5 和 ES6
  • MEAN 堆栈应用开发的中级到高级知识
  • Angular 4 的中级到高级知识
  • 电子架构的中高级知识
  • 离子框架 3 的中级到高级知识
  • 数字电子电路的初级到中级知识
  • 树莓派的新手到中等知识
  • 传感器和执行器的初级到中级知识

这本书是给谁的

它面向已经精通 JavaScript 并希望将其 JavaScript 知识扩展到构建物联网领域的硬件解决方案的读者。对创造令人兴奋的项目感兴趣的 IoT 爱好者也会发现这本书很有用。这本书对于擅长使用树莓 Pi 开发独立解决方案的读者也很有用;这本书将帮助他们使用世界上最容易被误解的编程语言,将 IoT 功能添加到现有项目中。

约定

在这本书里,你会发现许多区分不同种类信息的文本样式。以下是这些风格的一些例子和对它们的意义的解释。文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、伪 URL、用户输入和 Twitter 句柄如下所示:“现在,在broker文件夹内,创建另一个名为certscd的文件夹到该文件夹中。”代码块设置如下:

// MongoDB connection options
    mongo: {
        uri: 'mongodb://admin:admin123@ds241055.mlab.com:41055/iotfwjs'
    },

    mqtt: {
        host: process.env.EMQTT_HOST || '127.0.0.1',
        clientId: 'API_Server_Dev',
        port: 8883
    }
};

任何命令行输入或输出都编写如下:

openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem 

新名词重要词语以粗体显示。您在屏幕上看到的单词,例如在菜单或对话框中看到的单词,会出现在文本中,如下所示:“登录后,单击“新建”按钮以创建新的数据库。”

Warnings or important notes appear like this. Tips and tricks appear like this.

读者反馈

我们随时欢迎读者的反馈。让我们知道你对这本书的看法——你喜欢或不喜欢什么。读者反馈对我们来说很重要,因为它有助于我们开发出你真正能从中获益的标题。要给我们发送一般反馈,只需发送电子邮件feedback@packtpub.com,并在您的邮件主题中提及书名。如果您对某个主题有专业知识,并且对写作或投稿感兴趣,请参见我们位于www.packtpub.com/authors的作者指南。

客户支持

现在,您已经自豪地拥有了一本书,我们有许多东西可以帮助您从购买中获得最大收益。

下载示例代码

你可以从你在http://www.packtpub.com的账户下载这本书的示例代码文件。如果您在其他地方购买了这本书,您可以访问http://www.packtpub.com/support并注册将文件直接通过电子邮件发送给您。您可以按照以下步骤下载代码文件:

  1. 使用您的电子邮件地址和密码登录或注册我们的网站。
  2. 将鼠标指针悬停在顶部的“支持”选项卡上。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书的名称。
  5. 选择要下载代码文件的书籍。
  6. 从您购买这本书的下拉菜单中选择。
  7. 点击代码下载。

下载文件后,请确保使用最新版本的解压缩文件夹:

  • 视窗系统的 WinRAR / 7-Zip
  • zipeg/izp/un ARX for MAC
  • 适用于 Linux 的 7-Zip / PeaZip

这本书的代码包也托管在 GitHub 上,网址为 https://GitHub . com/packt publishing/实用的带 JavaScript 的物联网。我们还有来自丰富的图书和视频目录的其他代码包,可在https://github.com/PacktPublishing/获得。看看他们!

下载这本书的彩色图片

我们还为您提供了一个 PDF 文件,其中包含本书中使用的截图/图表的彩色图像。彩色图像将帮助您更好地理解输出中的变化。您可以从https://www . packtpub . com/sites/default/files/downloads/practialinternetofthings with JavaScript _ color images . pdf下载此文件。

正误表

尽管我们尽了最大努力来确保我们内容的准确性,但错误还是会发生。如果你在我们的某本书里发现一个错误,也许是文本或代码中的错误,如果你能向我们报告,我们将不胜感激。通过这样做,你可以让其他读者免受挫折,并帮助我们改进这本书的后续版本。如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata,选择您的书籍,点击勘误表提交表格链接,并输入您的勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。要查看之前提交的勘误表,请前往https://www.packtpub.com/books/content/support并在搜索栏中输入图书名称。所需信息将出现在勘误表部分。

海盗行为

在互联网上盗版受版权保护的材料是一个贯穿所有媒体的持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上遇到任何形式的我们作品的非法拷贝,请立即向我们提供位置地址或网站名称,以便我们寻求补救。请通过copyright@packtpub.com联系我们,获取疑似盗版资料的链接。我们感谢您在保护我们的作者方面的帮助,以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有问题,可以在questions@packtpub.com联系我们,我们将尽最大努力解决问题。