目录
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