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 板,
开始编写第一个项目。

购买地址:

/tupian/20230522/25321993.html


网站栏目:Photon物联网编程从零开始-创新互联
路径分享:http://myzitong.com/article/eoddi.html