科技>计算机>计算机硬件
完美图解物联网IoT实操:使用JavaScript,Node.JS,Arduino,RaspberryPi

完美图解物联网IoT实操:使用JavaScript,Node.JS,Arduino,RaspberryPi"

作者:赵英杰
ISBN:9787121319365
定价:¥99.0
字数:473千字
页数:376
出版时间:2017-09
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

《完美图解物联网技术》系列图书是当前物联网开发技术应用的集大成者。本书内容强调串联网络软件和微电脑控制板,以JavaScript 为主轴,开发网络应用程序、手机App、互动网页、数据库程序和操控微电脑。书中包含网页式远程遥控LED 灯、即时温湿度网站、自动感测拍照搜证、网页式远程LED 绘图板、即时影像监控网站、影像辨识摆头控制摄像机云台、云端温湿度监控、即时信息动态图表等多元化范例。希望本书能帮助读者了解物联网程序设计,进而开发出自己的云端物联网应用。

前言

序 本书探讨的核心主题是串联、汇流整合。互联网从最初的人际沟通桥梁,拓展成机器之间协同合作的交流管道。 本书强调的是串联网络软件和微电脑控制板,以JavaScript 为主轴,开发网络应用程序、手机App、互动网页、数据库程序和操控微电脑。笔者假设读者曾经使用Arduino 开发工具写过Arduino 程序。 本书使用在物联网应用中两种最根本的语言来创建应用程序: Arduino 的 C 语言 :Arduino 系列控制板是电子互动 Maker 的最爱,许多非Arduino 控制板,也强调跟Arduino 的程序开发环境或者控制引脚相容,尽管控制板厂商不断推陈出新,但是C 语言仍是当家主流。 JavaScript:在全球信息网(World-Wide Web)中,最通行的语言是 JavaScript,也是所有网页/ 网站开发人员必知必会的程序语言。经过数年的发展,JavaScript 的应用也扩展到计算机应用程序、手机App 开发,甚至操控微电脑控制板领域。 本书中采用的控制板类型比较多元化,不限于Arduino,但它们的控制程序都是用C 或JavaScript 编写的。 当今市场上不乏大师级的JavaScript 相关著作,像本书的每个章节,从互动网页、网站数据库程序设计、动态图表到手机App 开发,都有专门的参考书籍,但它们都鲜少提及JavaScript 在物联网和微控制器方面的整合应用。所以本书的定位,并不是要取代这些书籍,而是一种延伸和扩充。 感谢电子工业出版社编辑林瑞和先生以及葛娜女士在出版过程中给予的宝贵意见和指正,让本书顺利问世。衷心期盼本书能帮助读者了解物联网程序设计,进而开发出自己的云端物联网应用。 赵英杰 2017 年6 月15 日于中国台湾·糖安居

目录

目录 0无所不在的JavaScript 与物联网设备 .........................................1 0.1 JavaScript 与物联网.........................................................................3 0.2 MPU、MCU 与SoC 介绍........................................................................ 6 0.3 章节导读.......................................................................................... 9 1 JavaScript 入门 ........................................................................13 1.1 JavaScript 入门..............................................................................14 1.2 JavaScript 语言基础.......................................................................19 1.3 函数定义与事件处理程序................................................................ 29 1.4 定时产生随机数............................................................................. 32 1.5 Array(数组)对象......................................................................... 34 1.6 认识Object(对象)类型................................................................ 36 1.7 BOM(浏览器对象模型)与DOM(文档对象模型)..............................41 动手做 操作网页对象........................................................................... 43 1.8 在网页中嵌入JavaScript................................................................. 44 1.9 事件触发程序................................................................................. 46 2 认识jQuery 库 ..........................................................................53 2.1 jQuery 简介.................................................................................... 54 2.2 jQuery 语法基础............................................................................. 59 2.3 AJAX 技术:动态更新HTML 内容....................................................... 64 动手做 从Arduino 输出纯文本温度........................................................ 66 2.4 网页消息交换格式........................................................................... 69 2.5 Arduino 输出JSON 消息.................................................................... 73 2.6 调整灯光亮度的网页界面................................................................. 76 动手做 接收调光值的Arduino 网站程序................................................. 76 2.7 使用jQuery UI 附加网页用户界面元素............................................. 79 动手做 制作滑块界面网页..................................................................... 82 2.8 AJAX 的安全限制............................................................................. 85 3 Node.js 入门 .............................................................................91 3.1 在电脑以及树莓派上安装Node.js..................................................... 94 3.2 Node 编程起步................................................................................ 99 3.3 使用http 模块创建网站服务器程序................................................ 103 3.4 事件驱动、非阻塞I/O 示范:读取文件........................................... 107 3.5 global(全局)对象与模块文件.................................................... 113 3.6 安装与管理模块:使用npm 工具程序.............................................115 3.7 使用Express 框架开发网站应用程序............................................. 118 3.8 接收URL 数据............................................................................... 122 3.9 接收与处理POST 数据.................................................................... 125 3.10 使用package.json 管理Node 项目的模块程序................................ 129 动手做 从Arduino 传递温湿度值给Node 网站..................................... 131 3.11 使用JSONP 格式跨网域访问信息.................................................. 136 4 Node.js 串口通信与树莓派GPIO 控制 ...................................143 4.1 安装编译Node 模块所需的软件.....................................................144 4.2 安装C/C++ 编译器..........................................................................147 动手做 Node.js 串口通信..................................................................... 150 动手做 从Node.js 发送串口数据.......................................................... 154 4.3 通过Node.js 运行系统指令(运行raspistill 指令拍照)................... 157 4.4 树莓派的GPIO 简介....................................................................... 162 4.5 Node.js 程序GPIO 控制:使用onoff 模块........................................ 166 动手做 GPIO 输入/ 输出信号练习:按开关闪烁LED............................... 167 动手做 通过红外传感模块拍摄照片..................................................... 170 4.6 树莓派GPIO 集成Arduino 控制板................................................... 172 4.7 5V 和3.3V 电压准位转换................................................................ 182 4.8 MOSFET 逻辑电位转换电路原理解说................................................ 185 5 使用霹雳五号操控Arduino .....................................................189 5.1 霹雳五号:用JavaScript 控制Arduino........................................... 190 动手做 用霹雳五号指挥Arduino 闪烁LED............................................ 192 动手做 启用上拉电阻并读取开关信号...................................................200 动手做 模拟输入与PWM 输出程序实验.................................................. 201 动手做 检测温度.................................................................................203 动手做 控制舵机................................................................................ 207 动手做 控制LED 矩阵显示图像.............................................................209 5.2 使用socket.io 创建实时连接......................................................... 211 动手做 创建实时通信程序...................................................................214 动手做 浏览器与矩阵LED 作画............................................................ 217 6 电子邮件、串流视频、计算机视觉与操控舵机 .......................227 6.1 通过Node 发送电子邮件................................................................ 228 动手做 云搜证:拍照自动发送E-mail................................................. 233 动手做 串流视频:推播实时影像........................................................ 234 6.2 使用MJPG 压缩与串流视频............................................................. 240 6.3 控制舵机云台............................................................................... 246 动手做 使用方向键操控舵机云台........................................................ 247 动手做 摄像头云台的Node 服务器代码................................................ 249 6.4 使用触摸屏幕虚拟摇杆操控摄像头云台...........................................250 6.5 浏览器连接游戏控制器(电玩控制器)............................................ 254 动手做 使用gamepad.js 库创建游戏器操作的网页程序..........................255 6.6 计算机视觉(computer vision)应用...............................................260 6.7 使用tracking.js 侦测人脸............................................................. 264 动手做 脸孔侦测与舵机联动............................................................... 270 动手做 侦测颜色................................................................................ 273 7 使用MongoDB 数据库以及ejs 模板引擎创建动态网页 ..........279 7.1 数据库简介.................................................................................. 280 7.2 安装MongoDB................................................................................ 285 7.3 MongoDB 的基本操作...................................................................... 289 7.4 查询数据...................................................................................... 294 7.5 更新与删除数据............................................................................ 298 7.6 使用mongoose 包连接MongoDB 数据库.............................................299 7.7 连接MongoDB 并读取数据的程序.................................................... 303 动手做 存储Arduino 上传的温湿度数据............................................... 307 7.8 认识模板引擎................................................................................309 动手做 在ejs 模板中显示最近10 笔温湿度数据................................... 315 动手做 分页显示数据......................................................................... 318 8 数据可视化——使用C3.js 与D3.js 绘制图表 .........................321 8.1 使用C3.js 绘制图表...................................................................... 322 8.2 显示动态平移的实时线条图........................................................... 327 动手做 使用数据库数据描绘折线........................................................ 331 8.3 动态显示Arduino 检测模拟值........................................................ 334 8.4 简易数字滤波............................................................................... 340 8.5 使用D3 库.................................................................................... 344 8.6 认识SVG....................................................................................... 348 8.7 使用D3 绘制SVG 图像.................................................................... 353 8.8 使用动态数据绘制折线图...............................................................355 8.9 结合数据动态附加HTML 元素......................................................... 364

作者简介

赵英杰,网昱多媒体 技术总监,美国密歇根 S.V. 州立大学传播与多媒体硕士,开源硬件技术达人。__eol__专长为Arduino、Flash、Dreamweaver 等,在台湾大学、台湾科技大学等大专院校及教育训练单位担任讲师、并著有《超图解Arduino 互动设计入门》、《超图解物联网IoT 实作入门》、 《Dreamweaver CS6 教学范本(适用SiliconStone 认证考试教材)等多本相关书籍。 《超图解 Arduino 互动设计入门》 已授权 Arduino 原厂发行多国语言版本,为华文世界 Arduino 教材首例!

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个