Christopher Rush
Programming the Photon:Getting Started with the Internet of Things
EISBN:978-0-07-184706-3
Copyright © 2016 by McGraw-Hill Education.
版权所有。未经出版人事先书面许可,对本出版物的任何部分不得以任何方式或途径复制或传播,
包括但不限于复印、录制、录音,或通过任何数据库、信息或可检索的系统。
本授权中文简体字翻译版由麦格劳
希尔
亚洲
教育出版公司和清华大学出版社有限公司合作出版。
此版本经授权仅限在中国大陆地区销售、不能销往中国香港、澳门特别行政区和中国台湾地区。
版权
由麦格劳
希尔
亚洲
教育出版公司与清华大学出版社有限公司所有。
北京市版权局著作权合同登记号 图字:01-2018-0333
本书封面贴有 
McGraw-Hill Education 
公司防伪标签,无标签者不得销售。
版权所有,侵权必究。侵权举报电话:010-62782989 13701121933
图书在版编目(CIP)数据
物联网编程从零开始 
美
克里斯多佛 
拉什
著;郭俊凤 译
—北京:
清华大学出版社,
书名原文:
Ⅰ
①
… Ⅱ
①克… ②郭… Ⅲ
①互联网络-应用-程序设计 ②智能技术-应用-程序
设计 Ⅳ
①
②
中国版本图书馆 
数据核字
第 
号
责任编辑:王 军 韩宏志
装帧设计:牛静敏
责任校对:曹 阳
责任印制:李红英
出版发行:清华大学出版社
网 址:
,
地 址:北京清华大学学研大厦 
座 
邮 编:
社 总 机:
邮 购:
投稿与读者服务:
,
质 量 反 馈:
,
印 装 者:北京嘉实印刷有限公司
经 销:全国新华书店
开 本:
×
印 张:
字 数:
千字
版 次:
年 
月第 
版 
印 次:
年 
月第 
次印刷
定 价:
元
——————————————————————————————————————————
产品编号:
译 者 序
Particle(www.particle.io)公司提供全球最完善的开源物联网软硬
件开发平台,自 
2013 
年该公司推出第一款基于 
TI CC3000 
的 
STM
CORTEX M3 
开源开发板以来,Particle 
以其超强的软件支持帮助开发
者将产品接入网络,提供 
Arduino 
的 
IDE、配套控制 
App、网页端编
译软件、应用开发 
SDK、JS 
开发库等支持。其云服务能让应用于量产
的 
Particle 
硬件随时随地接入云端、集中维护,并能实现在线更新固
件、网络访问、数据安全等功能。
Particle 
推出的 
Photon 
是一款功能强大、开发资源极其丰富、上
手开发非常容易的Wi-Fi物联网开发模块。它基于ST公司的Cortex M3
内核微处理器以及 
BroadCom 
公司的 
Wi-Fi 
芯片,可通过 
USB 
进行供
电及代码调试、下载。Photon 
尺寸很小,却具有强大的处理性能,拥
有完整的生态系统和良好的兼容性,在复杂应用中的表现更出色。
Particle 
公司同时提供基于浏览器的集成化开发环境(Web IDE),
拥有非常丰富的库和支持各种应用的参考例程,方便全球的开发人员
进行代码分享,非常适合嵌入式工程师、网页开发工程师、Arduino
爱好者以及 
IoT 
产品企业便捷地编写自己的固件,创建自己的专属网
站和手机 
App。
对初学者而言,学习 
Photon 
完全不需要了解其内部硬件结构和寄
存器设置,仅知道它的端口作用即可;可以不懂硬件知识,只要会简
单的 
C 
语言,就可用 
Photon 
编写程序, 
只要设备加了电,固件就会
运行。
本书共分 
9 
章。第 
1 
章简要介绍微控制器、Arduino 
和物联网(IoT)
等。第 
2 
章讨论将 
Photon 
开发板连接到 
Particle 
云并开始编程的多种
方式,并简要介绍 
Particle Web IDE。第 
3 
章讲述用于给 
Photon 
编程
的 
C 
语言的基本编程术语。第 
4 
章讨论如何控制发光二极管(LED)、
继电器和蜂鸣器等输出设备。第 
5 
章给一些输入设备编程,例如开关、
温度感应器等。第 
6 
章探讨如何使用 
Particle 
函数通过 
Internet 
进行控
制,如何获得温度设备的读数并显示在 
Web 
上。第 
7 
章介绍 
Particle 
防
护板和可用的扩充板,说明它们如何使项目更容易完成,而不必设计
和测试电路,包括继电器防护板、稳压防护板、JTAG、Arduino 
防护
板、Internet 
按钮等。第 
8 
章介绍如何使用 
IFTTT Web 
服务控制 
Photon
开发板上的电路,以及如何使用 
Photon 
开发板控制某些 
Web 
服务,
例如 
Twitter。第 
9 
章能让读者很好地根据 
RGB LED 
的闪烁和颜色理
解 
Photon 
发生了什么,进而掌握排除设备故障技术。
本书适合电子爱好者、机器人爱好者和 
Photon 
初学者阅读,也可
用作院校电子科技实践活动的参考书。
这里要感谢清华大学出版社的李阳和韩宏志编辑,这几位编辑为
本书的翻译投入了巨大热情,付出了很多心血。没有你们的帮助和鼓
励,本书不可能顺利付梓。本书主要章节由郭俊凤翻译,参与翻译的
还有陈妍、何美英、陈宏波、熊晓磊、管兆昶、潘洪荣、曹汉鸣、高
娟妮、王燕,在此一并表示感谢。
对于这本经典之作,译者本着“诚惶诚恐”的态度,在翻译过程
中力求“信、达、雅”,但鉴于译者水平有限,错误和失误在所难免,
如有任何意见和建议,请不吝指正。
译 者
作 者 简 介
Christopher Rush 
拥有计算机科学学位,最近 
10 
年一直在一家
电子公司的单板计算部门担任产品经理。Christopher 
还维护着一个
MakerSpace 
博客(www.rushmakes.com),为流行的开发板和附件提供
评论、教程和用户指南,包括 
Raspberry Pi、Arduino、BeagleBone
等。Christopher 
是 
30 BeagleBone Black Projects for the Evil Genius 
一书
的作者。
致 谢
我要感谢 
Mike McCabe 
和 
McGraw-Hill Education 
团队的大力支
持,与你们再次合作非常愉快。
我还要将本书献给我的伙伴 
Jennifer Wozniak,像往常一样,她不
断地鼓励、激励我,没有她在我身边,我会迷失方向的。
前 言
本书全面介绍如何为 
Particle Photon 
开发板编程。Particle Photon
是一个真正的物联网设备,它允许编写代码,使用云创建电子项目。
它完全可用作项目的大脑,还可使用 
Internet 
远程控制和收集数据,
来扩展功能。
幸好,Photon 
平台采用了 
Arduino 
样式的编程语言,同时具备自
己的编程功能。这样就可以使用 
Arduino 
领域的海量资源,包括现有
的项目和示例。
为什么使用Photon?Photon开发板由Particle团队开发,在2014年11
月面市,价格仅19美元。它是独一无二的,使用Particle云提供了独特
的硬件和软件体验,可通过Web IDE编程。Photon开发板取代了Particle
Core,后者通过Kickstarter活动筹措了50多万美元,配备了Broadcom
BCM43362 Wi-Fi芯片,而不是TI CC3000。
本书旨在使读者能开始使用 
Particle Photon创建自己的硬件项目,
读者不需要具有连接电路或编程方面的经验,但最好了解一般性计算
机技术。本书会给读者提供各种体验,并简单介绍 
Photon 
开发板的许
多功能。本书只介绍开发板编程的基础知识,读者可在未来的项目中
扩展这些知识。
希望能看到读者对本书的看法,请通过 
www.rushmakes.com 
或
Twitter(https://twitter.com/chrisrush85)与作者联系。
目 录
第 
1 
章 
Photon 
简介
............................................................................
1
1.1 
微控制器
......................................................................... 
1
1.2 
什么是 
Photon
................................................................. 
2
1.3 Particle Photon 
和 
Spark Core
.......................................... 
2
1.4 
物联网
............................................................................. 
3
1.5 Particle 
云
........................................................................ 
4
1.6 Photon 
板
......................................................................... 
4
1.7 
小结
................................................................................. 
5
第 
2 
章 连接 
......................................................................................... 
7
2.1 
开发板的特征 
................................................................. 
7
2.2 
连接
............................................................................... 
11
2.2.1 
连接到移动智能设备上 
.................................... 
11
2.2.3 
通过 
USB 
连接
.................................................. 
14
2.3 
使用 
Tinker
.................................................................... 
16
2.3.1 Tinker API
.......................................................... 
18
2.3.2 
同时运行 
Tinker 
和脚本
.................................... 
20
2.4 
使用 
Particle Web IDE
................................................... 
22
2.4.1 Particle 
应用和库
............................................... 
24
2.4.2 
上传第一个应用
................................................ 
24
2.4.3 
账户信息
............................................................ 
26
2.4.4 
使用库 
............................................................... 
26
2.5 Photon 
板的固件 
........................................................... 
31
2.6 
小结
............................................................................... 
31
第 
3 
章 
Particle 
语法
..........................................................................
33
3.1 
什么是编程 
................................................................... 
33
3.2 
变量
............................................................................... 
35
3.2.1 
浮点型 
............................................................... 
37
3.2.2 
布尔型 
............................................................... 
38
3.2.3 
字符型 
............................................................... 
40
3.3 
命令
................................................................................. 
40
3.3.1 if 
语句
................................................................ 
40
3.3.2 for 
循环
.............................................................. 
42
3.3.3 while 
循环
.......................................................... 
42
3.4 
数组
............................................................................... 
43
3.5 
字符串
........................................................................... 
44
3.6 
最佳编程实践 
............................................................... 
45
3.6.1 
缩进 
................................................................... 
46
3.6.2 
注释代码
............................................................ 
46
3.6.3 
空白 
................................................................... 
47
3.7 
小结
............................................................................... 
48
第 
4 
章 输出 
.......................................................................................
49
4.1 
数字输出
....................................................................... 
49
4.1.1 
打开和关闭 
LED 
............................................... 
53
4.1.2 LCD 
显示器
....................................................... 
56
4.2 
模拟输出
....................................................................... 
62
4.2.1 
脉宽调制
............................................................ 
63
4.2.2 DAC
................................................................... 
65
4.2.3 
控制伺服电机
.................................................... 
67
4.3 
小结
................................................................................. 
71
第 
5 
章 输入 
.......................................................................................
73
5.1 
数字输入
....................................................................... 
73
digitalRead() 
.................................................................. 
77
5.2 
模拟输入
....................................................................... 
80
5.3 
小结
............................................................................... 
90
第 
6 
章 物联网 
...................................................................................
91
6.1 
函数
............................................................................... 
91
6.1.1 
通过 
Internet 
控制 
LED 
..................................... 
92
6.1.2 
通过 
Internet 
读取值
........................................ 
100
6.2 
小结
............................................................................. 
115
第 
7 
章 
Particle 
防护板的编程
........................................................
117
7.1 Shield 
防护板
.............................................................. 
117
7.2 
继电器防护板 
............................................................. 
120
7.3 
程序员防护板 
............................................................. 
126
7.4 
稳压防护板 
................................................................. 
127
7.5 Internet 
按钮
................................................................ 
128
7.6 Grove Starter Kit for Photon
......................................... 
129
7.7 Adafruit Particle NeoPixel 
成套工具 
........................... 
130
7.8 
小结
............................................................................. 
132
第 
8 
章 
IFTTT
...................................................................................
133
8.1 IFTTT 
概述 
................................................................. 
133
8.2 
“日出”邮件警报
...................................................... 
134
8.3 
使用 
Grove 
模块创建 
Twitter 
警报
............................. 
141
8.4 
小结
............................................................................. 
147
第 
9 
章 排除设备故障
......................................................................
149
9.1 
设备模式
..................................................................... 
149
9.2 
故障排除模式 
............................................................. 
151
Photon 
物联网编程从零开始
9.3 
小结
............................................................................. 
152
附录 
A 
工具和提示 
..........................................................................
153
附录 
B Particle 
代码参考 
................................................................
165
第 
1 
章
Photon 
简介
本章将学习微控制器,如 
Arduino和物联网(Internet of Things,IoT)
等的相关知识。Photon 
板是一种新的开发板,基于它的前身 
Core,并
具有新的硬件和软件特性,性能更卓越。我们将讨论所有这些特性,
并比较两种开发板。
1.1 
微控制器
微控制器(microcontroller)基本上是一个计算机,可使用某种形式的
编程语言控制多个输入和输出。微控制器有各种不同的形状和尺寸,最
流行的平台是 
Arduino。Arduino 
板为创建小型电子项目提供了低成本、
易使用的技术,现代常见的微控制器可使用通用串行总线(Universal
Serial Bus,USB)连接到计算机上,给开发板供电,并给微控制器编程;
一旦上传了程序,并使用某种移动电池设备供电,微控制器还可以去
掉 
USB,独立工作。
其他常见的微控制器有 
Raspberry Pi 
和 
BeagleBone 
板。这两种开
发板比标准的 
Arduino 
板更高级,都连接到可视化显示器上进行可视
化输出,并带有基本的操作系统,如 
Debian。这些开发板的特点是有
许多硬件功能,提供了更多存储空间、输入/输出引脚、更快的处理速
度,还具有音频/视频输出,可将电子项目提升到更高水平。所有这些
选项都很不错,但需要把项目连接到 
Web 
时,几乎肯定需要额外的硬
件,例如防护板(shield)或 
USB 
加密狗( dongle),这会显著增加项目成
本——有时超过了微控制器板的成本。一些开发板还包括内置的 
Wi-Fi
或蓝牙技术,例如 
Arduino Yun,但这个开发板仍比较贵,超过 
70 
美
元;一旦加上电子硬件和各种其他成本,项目很容易超过 
100 
美元。
1.2 
什么是 
Photon
Particle Photon 
是一个微控制器开发板,类似于 
Arduino Nano,但
它是小型化的,而且添加了一些功能,如内置了 
Wi-Fi 
模块,所以可
使用粒子云(Particle cloud)通过 
Internet 
进行控制和编程。一旦连接到
本地 
Wi-Fi 
网络上,也可以使用 
iOS 
或 
Android 
操作系统中的 
Particle
应用,通过智能手机控制 
Photon 
板并编程。Photon 
开发板的各边有多
个引脚(pin),用作微控制器的输入输出。这些通用引脚可连接到传感
器(sensor)或按钮上,来监听外界;或连接到发光器(light)或蜂鸣器
(buzzer)上,进行表演。还有一些引脚可给 
Photon 
板、电机(motor)或
设备的输出供电。另外,Photon 
板还带有一些内置的硬件功能,例如
按钮和发光二极管(LED),大大简化了 
Photon 
板的配置:
● SETUP 
按钮在左侧,RESET 
按钮在右侧,可使用它们设置设
备的模式。
● RGB LED 
位于 
Photon 
开发板模块上方的中心处。RGB LED
的颜色指定了 
Photon 
开发板当前的模式。
● 
在 
Photon 
板上,D7 LED 
位于数字引脚 
7 
的旁边。当引脚 
7
设置为 
HIGH 
时,这个数字引脚会打开 
LED。
1.3 Particle Photon 
和 
Spark Core
Photon 
板是 
Core 
的继任者,两者都由 
Particle 
开发。把这两个开
发板放在一起比较,会发现它们的外观十分相似,很难区分。主要区
别是硬件方面,Photon 
板使用的 
Wi-Fi 
芯片与 
Core 
不同,处理器速度
更快,RAM (随机访问内存)更多。
两种开发板上的引脚几乎相同,因此本书讲述的大部分内容也适
用于 
Core。Photon 
板的几个改进很有价值,例如数字-模拟转换器
(Digital-to-Analog Converter,DAC)和唤醒引脚(Wakeup Pin,WKP),
取代了 
Core 
上的 
A6 
和 
A7。
1.4 
物联网
物联网是媒体术语,它把哑电子设备连接到 
Internet 
上,之后可
通过 
Web 
浏览器控制这些设备,向 
Web 
服务器发送 
HTTP 
请求,并
返回要显示的信息。可给应用连接许多设备和传感器:
● 
家用电器
● 
气象站
● 
机器人
● 
空气污染监控
● 
环境感应
● 
智能后勤
● 
位置跟踪
● 
健康监控
目前市场上的物联网设备越来越多,例如智能温控器(smart
thermostat)或飞利浦 
Hue 
灯(Philips Hue lamp),它们允许用户控制家庭
中的供暖方面或情调照明(mood lighting)。物联网的大发展,使厂商和
玩家更有兴趣创建自己的智能项目,而 
Photon 
板提供了这种可能性,
且成本只有 
19 
美元——市场上最便宜的开发板。
有那么多厂商和玩家都在创建新的 
IoT 
项目,就有必要为硬件和
软件建立一个简单框架,给处于任何技能水平的人员提供一个简单、
易用的系统。所以 
Particle 
团队根据流行的 
Arduino 
软件建立了这样一
个系统,把较复杂的技术转换为每个用户都易于使用的开源产品。
1.5 Particle 
云
该框架的硬件部分是 
Photon 
板,它基于流行的 
Core 
模块,通过
融资网站 
Kickstarter 
获得资金。Photon 
板设计为与 
Core 
向后兼容,所
以,本书大部分内容都适用于 
Core。
Particle 
为硬件创建了一个软件框架,允许用户利用其他技术和设
备通过 
Internet 
与硬件交互操作,这两个元素很容易协同工作。使用
Photon 
板的 
IoT 
设备使用继电器(relay)或类似电路打开消费设备;这
里,当用户访问网页或移动应用,通过其上的一个按钮打开或关闭设
备。用户点击网页上的按钮时,会把一条消息或一串数据发送给
Particle 
云服务,Particle 
云服务再把该消息转发给 
Photon 
板,打开设
备。如果 
Photon 
板连接了传感器,云系统就可按相反顺序工作,即点
击按钮时,不是 
Web 
服务给云发送信息,而是由 
Photon 
开发板把传
感器的信息发送给云,再发送给 
Web 
服务器,显示在 
Web 
上。整个
Particle 
框架使这个工作无缝地完成,对终端用户而言也不会过于复杂
——用户只需要用 
Particle 
云账户注册 
Particle Photon 
板即可。
1.6 Photon 
板
Photon 
板小巧玲珑,如图 
1-1 
所示。
Photon 
板上的两个按钮 
SETUP 
和 
RESET 
可配置 
Wi-Fi 
凭证,在
需要时重启设备。万一设备出现问题,联合使用它们可执行完整的出
厂重置操作。
开发板的顶部有微型 
USB 
端口,用于给开发板供电,在需要时还
可连接到计算机上,进行 
USB 
编程。
Photon 
板有内置的芯片型天线(chip antenna),适合于大多数室内
应用,Photon 
板还有一个外部槽,用于连接 
Wi-Fi 
天线,进行范围扩
展和定向天线。Photon 
板的默认配置为:在芯片天线和外部天线都可
用的情况下,始终选择最可靠的方法。也可在固件上手动选择天线。

图 
1-1 Photon 
板
1.7 
小结
现在我们已经启航了。Photon 
板是一款在厂商社区中创建 
IoT 
项
目、开发商业消费产品的优秀设备。下一章将介绍如何设置 
Photon 
板,
开始编写第一个项目。
购买地址:
/tupian/20230522/25321993.html
本文标题:Photon物联网编程从零开始-创新互联
转载来于:http://www.scyingshan.cn/article/eoddi.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 