Photon物联网编程从零开始
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
板,
开始编写第一个项目。
购买地址:
http://product.dangdang.com/25321993.html
新闻名称:Photon物联网编程从零开始
浏览路径:http://scyanting.com/article/iispii.html