内容简介
本书首先介绍了如何设置一个中心网络服务器作为设备的连接中心。之后,进一步介绍了搭建网页服务来实现已连接设备之间的高层次通信。利用Arduino和树莓派Zero作为终端设备,本书展示了设备之间如何通信,如何实现各种任务,以及如何用JavaScript从一个中心设备进行控制。后,本书创建了一个复合的APP来控制设备,这些设备可以通过网页或智能手机运行。
作者简介
关 于 作 者 About the AuthorRubén Oliva Ramos是一名计算机系统工程师。他在墨西哥拉萨尔大学巴西欧分校(University of Salle Bajio)获得计算机和电子系统硕士学位,远程通信网络方向。他有五年以上基于Arduino和树莓派的控制、监视网络应用开发经验,擅长利用网页框架和云服务搭建物联网应用。
他目前是拉萨尔大学巴西欧分校的机电工程老师,指导机电系统设计工程专业的硕士学生。他还在墨西哥瓜纳华托州莱昂的Centro de Bachillerato Tecnologico Industrial 225教学。所教内容包括电力电子、机器人与控制、自动化和微控制器。教学地点在机械电子技师中心。他还是一名咨询师和开发者,包括的领域有监控系统和数据采集。使用的技术包括ndroid、iOS、Windows Phone、Visual Studio .NET、HTML5、PHP、CSS、Ajax、JavaScript、Angular、ASP .NET databases (SQlite、mongoDB和MySQL)和网页服务器(Node.js和IIS)。Ruben在Arduino、Raspberry Pi、Ethernet Shield、GPS与GSM/GPRS、ESP8266上均做过硬件编程。他还精通控制和监控数据采集系统。
“我想感谢上帝的帮助,感谢他对我的启发。感谢我的妻子Mayte和我的儿子Ruben、Dario在创作这本书期间对我的支持,也感谢他们对我所有项目的支持。感谢我亲爱的父母和兄弟姐妹。
我希望这本书能涵盖学习物联网(Internet of things)项目所需的主要论题,以及开发这类应用所需的先决条件。”
目录
译者序
关于作者
前言
第1章 初识树莓派Zero1
1.1 设置树莓派Zero1
1.1.1 准备SD卡2
1.1.2 安装Raspbian操作系统2
1.1.3 利用串口控制电缆调试树莓派Zero3
1.1.4 使用COM串口测试和通信4
1.2 联网与远程控制树莓派7
1.2.1 连接以太网络7
1.2.2 用SSH接入树莓派Zero8
1.2.3 连接Wi-Fi10
1.3 如何安装无线工具10
1.4 测试通信13
1.5 更新package库14
1.6 远程桌面16
1.7 自定义网络服务器18
1.8 测试PHP安装19
1.9 总结21
第2章 连接树莓派Zero22
2.1 数字信号输入:传感器DS18B2022
2.1.1 硬件要求22
2.1.2 硬件连接23
2.2 自定义单线协议24
2.2.1 软件自定义25
2.2.2 在屏幕上显示读数26
2.3 用模数转换器MCP3008输入模拟信号26
2.4 树莓派GPIO引脚头28
2.5 连接RTC32
2.6 设置DS3231模块35
2.7 测试RTC37
2.8 I2C设备设置37
2.9 最终测试RTC38
2.10 总结39
第3章 接入传感器——测量现实事物40
3.1 读取流水传感器来计算水的体积41
3.1.1 硬件连接41
3.1.2 读取传感器信号41
3.2 用Arduino读取和统计脉冲42
3.3 根据统计的脉冲数量计算水流速度43
3.4 计算水的流速和体积44
3.5 测量煤气浓度48
3.6 用传感器测量酒精浓度50
3.7 用传感器监测火焰51
3.8 测量植物湿度53
3.9 测量容器中的水量55
3.10 测量温度、湿度和光照,并把数据显示到LCD屏幕上57
3.10.1 硬件和软件要求57
3.10.2 测试传感器59
3.10.3 在LCD上显示数据60
3.11 用PIR传感器监测物体运动62
3.12 用簧片开关监测门是否被打开63
3.13 用指纹传感器管理进门人员64
3.13.1 硬件设置64
3.13.2 保存指纹65
3.13.3 测试传感器69
3.14 总结71
第4章 控制连接的设备72
4.1 利用Node.js制作一个简单的网络服务器72
4.2 利用Restful API和Node.js让树莓派控制一个继电器73
4.2.1 JSON 结构74
4.2.2 aREST API指令74
4.2.3 在树莓派Zero上安装Node.js74
4.3 从浏览器用aREST指令控制继电器75
4.4 将电脑上的Node.js设置成网络服务器77
4.4.1 下载Node.js78
4.4.2 安装Node.js78
4.4.3 用Node.js设置网络服务器端口808080
4.5 用Arduino Wi-Fi扩展板和Node.js监控温度、湿度和光照81
4.6 用Arduino以太网扩展板和Node.js监控温度、湿度和光照87
4.6.1 Arduino以太网扩展板的应用代码87
4.6.2 设置设备的Node.js90
4.7 总结91
第5章 在你的安全系统中添加网络摄像头92
5.1 Arduino和树莓派间的互动92
5.1.1 在Raspbian系统下安装Arduino IDE93
5.1.2 远程连接树莓派93
5.1.3 用图像接口执行Arduino93
5.2 Raspbian系统下的Arduino界面94
5.2.1 准备工作95
5.2.2 选择串口95
5.2.3 从图形界面下载程序96
5.3 从树莓派Zero控制一个Arduino的输出口97
5.4 用Python控制Arduino98
5.5 将TTL串口摄像头连接到Arduino,并将图像保存到micro SD卡99
5.6 用TTL串口摄像头监测运动101
5.7 用树莓派控制快照拍摄102
5.8 用网页控制摄像头104
5.8.1 通过PHP启动Python脚本104
5.8.2 Python脚本代码105
5.9 在安全网络中监控USB摄像头106
5.9.1 设置Arduino YUN106
5.9.2 从MJPG-STREAMER服务器监控108
5.9.3 用树莓派监控USB摄像头108
5.10 总结109
第6章 搭建网络监视器和用仪表盘控制设备110
6.1 设置MySQL数据服务器110
6.1.1 安装MySQL111
6.1.2 安装PHP的MySQL驱动113
6.1.3 测试PHP和MySQL113
6.2 安装phpMyAdmin管理数据库115
6.2.1 设置Apache服务器116
6.2.2 从远程控制面板进入phpMyAdmin118
6.2.3 展示Arduinobd数据库118
6.2.4 从Arduino的以太网扩充板发送数据到网页服务器119
6.3 MySQL的Datalogger121
6.3.1 脚本语言编程121
6.3.2 测试连接122
6.4 数据库查询123
6.4.1 脚本软件123
6.4.2 展示特定数据的脚本124
6.4.3 查询记录的温度125
6.5 LED的控制和调光126
6.5.1 软件要求126
6.5.2 测试LED127
6.5.3 从界面控制LED128
6.6 控制直流电机129
6.7 用电路控制灯132
6.8 其他电气用具135
6.8.1 控制门锁135
6.8.2 控制浇水136
6.9 从任何地方远程访问树莓派Zero136
6.9.1 如何访问并设置路由器137
6.9.2 设置动态DNS139
6.9.3 创建No-ip.org账号140
6.10 控制灯并且测量电流消耗141
6.11 从已经连接的设备和传感器上控制与监视Arduino、Wi-Fi和以太网扩展板147
6.11.1 编写控制和监控设备的单一接口代码147
6.11.2 为监视和控制添加设备148
6.12 总结150
第7章 用物联网仪表盘搭建监视设备151
7.1 可以检测噪声的监听麦克风151
7.2 管理交流灯调光器的电流153
7.2.1 硬件要求153
7.2.2 软件代码154
7.3 用RFID卡控制访问156
7.3.1 硬件要求156
7.3.2 软件要求157
7.3.3 软件代码157
7.4 监测烟雾160
7.5 用树莓派Zero
前言/序言
Preface 前 言
树莓派Zero是一个功能强大、价格低廉、信用卡大小的电脑,非常适合作为复杂家庭自动化设备的控制装置。利用板上资源,树莓派Zero可以扩展连接几乎无限数量的安全传感器或设备。
另一方面,Arduino平台更加灵活且适合搭建包含物联网应用的项目。所以,在本书中你会看到:整合功能强大的Arduino板以及与其连接的设备;整合树莓派Zero,利用一个像集线器(hub)一样的中心接口来控制和监控设备。利用软件编程,你可以创造出基于最前沿的JavaScript、HTML5和Node.js等技术的物联网系统。
我想介绍的正是这个。你将学会使用树莓派Zero板创建许多本地的项目,以便日后满足自己的需要。
在这本书中,每个章节教你制作不同的项目。这些项目包含了从准备工作到硬件、传感器、通信和软件编程控制等所有的领域,最终实现一个完整的控制和监控系统。
章节概要第1章详细叙述了如何安装树莓派和Arduino板,以及如何在设备间通信。我们将安装并设置操作系统,把树莓派联网,然后远程连接它。该章还将讨论如何保证树莓派的安全,以及如何让树莓派知道正确的时间。
第2章展示了如何把信号传输到树莓派Zero和Arduino上。探索GPIO接口和它的诸多功能。该章还将探索诸多利用GPIO连到树莓派的设备。
第3章展示了如何应用传感器来获取不同类型的信号。这些信号涉及安全系统、能源电流、居家安防、安装油气传感器、用水流信号来测量水的体积以及利用指纹传感器控制家庭大门的安全系统。
第4章展示了通过树莓派Zero的中央接口面板(central interface dashboard)上网络部分的通信模块控制Arduino。
第5章展示了如何通过设置一个连到板上的网络摄像头来实现物联网安全系统的监测。
第6章介绍了如何搭建系统来利用网络服务监视你的安全系统,整合树莓派Zero和Arduino搭建了一个完整的系统连接设备和监视器。
第7章介绍了如何制作不同的迷你家庭本地项目,还介绍了如何用物联网连接网络服务并且监视你的安全系统。
第8章解释了如何利用Android Studio和APP Inventor开发一个智能手机APP,并且用APP控制Arduino和树莓派。
第9章展示了如何把所有东西整合起来,包括所有的项目、电子领域、软件的设置和电源。
阅读本书前需要的准备工作你将需要以下软件:
Win32 Disk Imager 0.9.5 和 PuTTYI2C工具Python的WiringPi2Node.js 4.5或更新的版本Windows下的Node.js V7.3.0或更新的版本Python 2.7.x或Python 3.xphpMyAdmin DatabaseMySQL模块创建Gmail账号来登录APP InventorAndroid Studio和SDK模块Arduino软件第1章将介绍如何设置树莓派Zero,以及所有基础知识,让你在之后的章节里不会遇到问题。这里将用到很多基础的元器件,例如传感器,然后随着书的进展会渐渐用到更复杂的元器件。
至于软件,掌握一定的编程知识会对阅读有所帮助,特别是JavaScript和Node.js的知识。但是,我会详细解释本书中关于软件的所有知识。所以即使你还没有掌握JavaScript编程技能,也可以跟上进度。
目标读者本书的目标读者是所有希望让自己的家居更加自动化或者智能化,并且希望完整掌握这些智能设备的人。如果你就是这样的人,在本书中,你可以学会如何用强大的树莓派Zero的所有相关知识来控制你的项目。
本书还适合那些过去已经玩过类似开发板(例如Arduino)的人。如果你是这样的人,你可以学会如何用树莓派平台的力量搭建智能家居。你还可以学到如何搭建一些可以轻松移植到其他平台的项目,例如用树莓派Zero创建一个无线的安全摄像机。
下载本书的相关资源本书的代码在GitHub上共享。地址是https://github.com/PacktPublishing/Internet-of-Things-Programming-with-Javascript。快去看看!
物联网系统开发:树莓派JavaScript编程指南 电子书 下载 mobi epub pdf txt