Christopher Rush
Programming the Photon:Getting Started with the Internet of Things
EISBN:978-0-07-184706-3
Copyright ? 2016 by McGraw-Hill Education.
版權(quán)所有。未經(jīng)出版人事先書面許可,對本出版物的任何部分不得以任何方式或途徑復(fù)制或傳播,
包括但不限于復(fù)印、錄制、錄音,或通過任何數(shù)據(jù)庫、信息或可檢索的系統(tǒng)。
本授權(quán)中文簡體字翻譯版由麥格勞
希爾
亞洲
教育出版公司和清華大學(xué)出版社有限公司合作出版。
此版本經(jīng)授權(quán)僅限在中國大陸地區(qū)銷售、不能銷往中國香港、澳門特別行政區(qū)和中國臺灣地區(qū)。
版權(quán)
由麥格勞
希爾
亞洲
教育出版公司與清華大學(xué)出版社有限公司所有。
北京市版權(quán)局著作權(quán)合同登記號 圖字:01-2018-0333
本書封面貼有
McGraw-Hill Education
公司防偽標(biāo)簽,無標(biāo)簽者不得銷售。
版權(quán)所有,侵權(quán)必究。侵權(quán)舉報電話:010-62782989 13701121933
圖書在版編目(CIP)數(shù)據(jù)
物聯(lián)網(wǎng)編程從零開始
美
克里斯多佛
拉什
著;郭俊鳳 譯
—北京:
清華大學(xué)出版社,
書名原文:
Ⅰ
①
… Ⅱ
①克… ②郭… Ⅲ
①互聯(lián)網(wǎng)絡(luò)-應(yīng)用-程序設(shè)計 ②智能技術(shù)-應(yīng)用-程序
設(shè)計 Ⅳ
①
②
中國版本圖書館
數(shù)據(jù)核字
第
號
責(zé)任編輯:王 軍 韓宏志
裝幀設(shè)計:牛靜敏
責(zé)任校對:曹 陽
責(zé)任印制:李紅英
出版發(fā)行:清華大學(xué)出版社
網(wǎng) 址:
,
地 址:北京清華大學(xué)學(xué)研大廈
座
郵 編:
社 總 機:
郵 購:
投稿與讀者服務(wù):
,
質(zhì) 量 反 饋:
,
印 裝 者:北京嘉實印刷有限公司
經(jīng) 銷:全國新華書店
開 本:
×
印 張:
字 數(shù):
千字
版 次:
年
月第
版
印 次:
年
月第
次印刷
定 價:
元
——————————————————————————————————————————
產(chǎn)品編號:
譯 者 序
Particle(www.particle.io)公司提供全球最完善的開源物聯(lián)網(wǎng)軟硬
件開發(fā)平臺,自
2013
年該公司推出第一款基于
TI CC3000
的
STM
CORTEX M3
開源開發(fā)板以來,Particle
以其超強的軟件支持幫助開發(fā)
者將產(chǎn)品接入網(wǎng)絡(luò),提供
Arduino
的
IDE、配套控制
App、網(wǎng)頁端編
譯軟件、應(yīng)用開發(fā)
SDK、JS
開發(fā)庫等支持。其云服務(wù)能讓應(yīng)用于量產(chǎn)
的
Particle
硬件隨時隨地接入云端、集中維護,并能實現(xiàn)在線更新固
件、網(wǎng)絡(luò)訪問、數(shù)據(jù)安全等功能。
Particle
推出的
Photon
是一款功能強大、開發(fā)資源極其豐富、上
手開發(fā)非常容易的Wi-Fi物聯(lián)網(wǎng)開發(fā)模塊。它基于ST公司的Cortex M3
內(nèi)核微處理器以及
BroadCom
公司的
Wi-Fi
芯片,可通過
USB
進行供
電及代碼調(diào)試、下載。Photon
尺寸很小,卻具有強大的處理性能,擁
有完整的生態(tài)系統(tǒng)和良好的兼容性,在復(fù)雜應(yīng)用中的表現(xiàn)更出色。
Particle
公司同時提供基于瀏覽器的集成化開發(fā)環(huán)境(Web IDE),
擁有非常豐富的庫和支持各種應(yīng)用的參考例程,方便全球的開發(fā)人員
進行代碼分享,非常適合嵌入式工程師、網(wǎng)頁開發(fā)工程師、Arduino
愛好者以及
IoT
產(chǎn)品企業(yè)便捷地編寫自己的固件,創(chuàng)建自己的專屬網(wǎng)
站和手機
App。
對初學(xué)者而言,學(xué)習(xí)
Photon
完全不需要了解其內(nèi)部硬件結(jié)構(gòu)和寄
存器設(shè)置,僅知道它的端口作用即可;可以不懂硬件知識,只要會簡
單的
C
語言,就可用
Photon
編寫程序,
只要設(shè)備加了電,固件就會
運行。
本書共分
9
章。第
1
章簡要介紹微控制器、Arduino
和物聯(lián)網(wǎng)(IoT)
等。第
2
章討論將
Photon
開發(fā)板連接到
Particle
云并開始編程的多種
方式,并簡要介紹
Particle Web IDE。第
3
章講述用于給
Photon
編程
的
C
語言的基本編程術(shù)語。第
4
章討論如何控制發(fā)光二極管(LED)、
繼電器和蜂鳴器等輸出設(shè)備。第
5
章給一些輸入設(shè)備編程,例如開關(guān)、
溫度感應(yīng)器等。第
6
章探討如何使用
Particle
函數(shù)通過
Internet
進行控
制,如何獲得溫度設(shè)備的讀數(shù)并顯示在
Web
上。第
7
章介紹
Particle
防
護板和可用的擴充板,說明它們?nèi)绾问鬼椖扛菀淄瓿?,而不必設(shè)計
和測試電路,包括繼電器防護板、穩(wěn)壓防護板、JTAG、Arduino
防護
板、Internet
按鈕等。第
8
章介紹如何使用
IFTTT Web
服務(wù)控制
Photon
開發(fā)板上的電路,以及如何使用
Photon
開發(fā)板控制某些
Web
服務(wù),
例如
Twitter。第
9
章能讓讀者很好地根據(jù)
RGB LED
的閃爍和顏色理
解
Photon
發(fā)生了什么,進而掌握排除設(shè)備故障技術(shù)。
本書適合電子愛好者、機器人愛好者和
Photon
初學(xué)者閱讀,也可
用作院校電子科技實踐活動的參考書。
這里要感謝清華大學(xué)出版社的李陽和韓宏志編輯,這幾位編輯為
本書的翻譯投入了巨大熱情,付出了很多心血。沒有你們的幫助和鼓
勵,本書不可能順利付梓。本書主要章節(jié)由郭俊鳳翻譯,參與翻譯的
還有陳妍、何美英、陳宏波、熊曉磊、管兆昶、潘洪榮、曹漢鳴、高
娟妮、王燕,在此一并表示感謝。
對于這本經(jīng)典之作,譯者本著“誠惶誠恐”的態(tài)度,在翻譯過程
中力求“信、達、雅”,但鑒于譯者水平有限,錯誤和失誤在所難免,
如有任何意見和建議,請不吝指正。
譯 者
作 者 簡 介
Christopher Rush
擁有計算機科學(xué)學(xué)位,最近
10
年一直在一家
電子公司的單板計算部門擔(dān)任產(chǎn)品經(jīng)理。Christopher
還維護著一個
MakerSpace
博客(www.rushmakes.com),為流行的開發(fā)板和附件提供
評論、教程和用戶指南,包括
Raspberry Pi、Arduino、BeagleBone
等。Christopher
是
30 BeagleBone Black Projects for the Evil Genius
一書
的作者。
致 謝
我要感謝
Mike McCabe
和
McGraw-Hill Education
團隊的大力支
持,與你們再次合作非常愉快。
我還要將本書獻給我的伙伴
Jennifer Wozniak,像往常一樣,她不
斷地鼓勵、激勵我,沒有她在我身邊,我會迷失方向的。
前 言
本書全面介紹如何為
Particle Photon
開發(fā)板編程。Particle Photon
是一個真正的物聯(lián)網(wǎng)設(shè)備,它允許編寫代碼,使用云創(chuàng)建電子項目。
它完全可用作項目的大腦,還可使用
Internet
遠程控制和收集數(shù)據(jù),
來擴展功能。
幸好,Photon
平臺采用了
Arduino
樣式的編程語言,同時具備自
己的編程功能。這樣就可以使用
Arduino
領(lǐng)域的海量資源,包括現(xiàn)有
的項目和示例。
為什么使用Photon?Photon開發(fā)板由Particle團隊開發(fā),在2014年11
月面市,價格僅19美元。它是獨一無二的,使用Particle云提供了獨特
的硬件和軟件體驗,可通過Web IDE編程。Photon開發(fā)板取代了Particle
Core,后者通過Kickstarter活動籌措了50多萬美元,配備了Broadcom
BCM43362 Wi-Fi芯片,而不是TI CC3000。
本書旨在使讀者能開始使用
Particle Photon創(chuàng)建自己的硬件項目,
讀者不需要具有連接電路或編程方面的經(jīng)驗,但最好了解一般性計算
機技術(shù)。本書會給讀者提供各種體驗,并簡單介紹
Photon
開發(fā)板的許
多功能。本書只介紹開發(fā)板編程的基礎(chǔ)知識,讀者可在未來的項目中
擴展這些知識。
希望能看到讀者對本書的看法,請通過
www.rushmakes.com
或
Twitter(https://twitter.com/chrisrush85)與作者聯(lián)系。
目 錄
第
1
章
Photon
簡介
............................................................................
1
1.1
微控制器
.........................................................................
1
1.2
什么是
Photon
.................................................................
2
1.3 Particle Photon
和
Spark Core
..........................................
2
1.4
物聯(lián)網(wǎng)
.............................................................................
3
1.5 Particle
云
........................................................................
4
1.6 Photon
板
.........................................................................
4
1.7
小結(jié)
.................................................................................
5
第
2
章 連接
.........................................................................................
7
2.1
開發(fā)板的特征
.................................................................
7
2.2
連接
...............................................................................
11
2.2.1
連接到移動智能設(shè)備上
....................................
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
應(yīng)用和庫
...............................................
24
2.4.2
上傳第一個應(yīng)用
................................................
24
2.4.3
賬戶信息
............................................................
26
2.4.4
使用庫
...............................................................
26
2.5 Photon
板的固件
...........................................................
31
2.6
小結(jié)
...............................................................................
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
循環(huán)
..............................................................
42
3.3.3 while
循環(huán)
..........................................................
42
3.4
數(shù)組
...............................................................................
43
3.5
字符串
...........................................................................
44
3.6
最佳編程實踐
...............................................................
45
3.6.1
縮進
...................................................................
46
3.6.2
注釋代碼
............................................................
46
3.6.3
空白
...................................................................
47
3.7
小結(jié)
...............................................................................
48
第
4
章 輸出
.......................................................................................
49
4.1
數(shù)字輸出
.......................................................................
49
4.1.1
打開和關(guān)閉
LED
...............................................
53
4.1.2 LCD
顯示器
.......................................................
56
4.2
模擬輸出
.......................................................................
62
4.2.1
脈寬調(diào)制
............................................................
63
4.2.2 DAC
...................................................................
65
4.2.3
控制伺服電機
....................................................
67
4.3
小結(jié)
.................................................................................
71
第
5
章 輸入
.......................................................................................
73
5.1
數(shù)字輸入
.......................................................................
73
digitalRead()
..................................................................
77
5.2
模擬輸入
.......................................................................
80
5.3
小結(jié)
...............................................................................
90
第
6
章 物聯(lián)網(wǎng)
...................................................................................
91
6.1
函數(shù)
...............................................................................
91
6.1.1
通過
Internet
控制
LED
.....................................
92
6.1.2
通過
Internet
讀取值
........................................
100
6.2
小結(jié)
.............................................................................
115
第
7
章
Particle
防護板的編程
........................................................
117
7.1 Shield
防護板
..............................................................
117
7.2
繼電器防護板
.............................................................
120
7.3
程序員防護板
.............................................................
126
7.4
穩(wěn)壓防護板
.................................................................
127
7.5 Internet
按鈕
................................................................
128
7.6 Grove Starter Kit for Photon
.........................................
129
7.7 Adafruit Particle NeoPixel
成套工具
...........................
130
7.8
小結(jié)
.............................................................................
132
第
8
章
IFTTT
...................................................................................
133
8.1 IFTTT
概述
.................................................................
133
8.2
“日出”郵件警報
......................................................
134
8.3
使用
Grove
模塊創(chuàng)建
Twitter
警報
.............................
141
8.4
小結(jié)
.............................................................................
147
第
9
章 排除設(shè)備故障
......................................................................
149
9.1
設(shè)備模式
.....................................................................
149
9.2
故障排除模式
.............................................................
151
Photon
物聯(lián)網(wǎng)編程從零開始
9.3
小結(jié)
.............................................................................
152
附錄
A
工具和提示
..........................................................................
153
附錄
B Particle
代碼參考
................................................................
165
第
1
章
Photon
簡介
本章將學(xué)習(xí)微控制器,如
Arduino和物聯(lián)網(wǎng)(Internet of Things,IoT)
等的相關(guān)知識。Photon
板是一種新的開發(fā)板,基于它的前身
Core,并
具有新的硬件和軟件特性,性能更卓越。我們將討論所有這些特性,
并比較兩種開發(fā)板。
1.1
微控制器
微控制器(microcontroller)基本上是一個計算機,可使用某種形式的
編程語言控制多個輸入和輸出。微控制器有各種不同的形狀和尺寸,最
流行的平臺是
Arduino。Arduino
板為創(chuàng)建小型電子項目提供了低成本、
易使用的技術(shù),現(xiàn)代常見的微控制器可使用通用串行總線(Universal
Serial Bus,USB)連接到計算機上,給開發(fā)板供電,并給微控制器編程;
一旦上傳了程序,并使用某種移動電池設(shè)備供電,微控制器還可以去
掉
USB,獨立工作。
其他常見的微控制器有
Raspberry Pi
和
BeagleBone
板。這兩種開
發(fā)板比標(biāo)準(zhǔn)的
Arduino
板更高級,都連接到可視化顯示器上進行可視
化輸出,并帶有基本的操作系統(tǒng),如
Debian。這些開發(fā)板的特點是有
許多硬件功能,提供了更多存儲空間、輸入/輸出引腳、更快的處理速
度,還具有音頻/視頻輸出,可將電子項目提升到更高水平。所有這些
選項都很不錯,但需要把項目連接到
Web
時,幾乎肯定需要額外的硬
件,例如防護板(shield)或
USB
加密狗( dongle),這會顯著增加項目成
本——有時超過了微控制器板的成本。一些開發(fā)板還包括內(nèi)置的
Wi-Fi
或藍牙技術(shù),例如
Arduino Yun,但這個開發(fā)板仍比較貴,超過
70
美
元;一旦加上電子硬件和各種其他成本,項目很容易超過
100
美元。
1.2
什么是
Photon
Particle Photon
是一個微控制器開發(fā)板,類似于
Arduino Nano,但
它是小型化的,而且添加了一些功能,如內(nèi)置了
Wi-Fi
模塊,所以可
使用粒子云(Particle cloud)通過
Internet
進行控制和編程。一旦連接到
本地
Wi-Fi
網(wǎng)絡(luò)上,也可以使用
iOS
或
Android
操作系統(tǒng)中的
Particle
應(yīng)用,通過智能手機控制
Photon
板并編程。Photon
開發(fā)板的各邊有多
個引腳(pin),用作微控制器的輸入輸出。這些通用引腳可連接到傳感
器(sensor)或按鈕上,來監(jiān)聽外界;或連接到發(fā)光器(light)或蜂鳴器
(buzzer)上,進行表演。還有一些引腳可給
Photon
板、電機(motor)或
設(shè)備的輸出供電。另外,Photon
板還帶有一些內(nèi)置的硬件功能,例如
按鈕和發(fā)光二極管(LED),大大簡化了
Photon
板的配置:
● SETUP
按鈕在左側(cè),RESET
按鈕在右側(cè),可使用它們設(shè)置設(shè)
備的模式。
● RGB LED
位于
Photon
開發(fā)板模塊上方的中心處。RGB LED
的顏色指定了
Photon
開發(fā)板當(dāng)前的模式。
●
在
Photon
板上,D7 LED
位于數(shù)字引腳
7
的旁邊。當(dāng)引腳
7
設(shè)置為
HIGH
時,這個數(shù)字引腳會打開
LED。
1.3 Particle Photon
和
Spark Core
Photon
板是
Core
的繼任者,兩者都由
Particle
開發(fā)。把這兩個開
發(fā)板放在一起比較,會發(fā)現(xiàn)它們的外觀十分相似,很難區(qū)分。主要區(qū)
別是硬件方面,Photon
板使用的
Wi-Fi
芯片與
Core
不同,處理器速度
更快,RAM (隨機訪問內(nèi)存)更多。
兩種開發(fā)板上的引腳幾乎相同,因此本書講述的大部分內(nèi)容也適
用于
Core。Photon
板的幾個改進很有價值,例如數(shù)字-模擬轉(zhuǎn)換器
(Digital-to-Analog Converter,DAC)和喚醒引腳(Wakeup Pin,WKP),
取代了
Core
上的
A6
和
A7。
1.4
物聯(lián)網(wǎng)
物聯(lián)網(wǎng)是媒體術(shù)語,它把啞電子設(shè)備連接到
Internet
上,之后可
通過
Web
瀏覽器控制這些設(shè)備,向
Web
服務(wù)器發(fā)送
HTTP
請求,并
返回要顯示的信息。可給應(yīng)用連接許多設(shè)備和傳感器:
●
家用電器
●
氣象站
●
機器人
●
空氣污染監(jiān)控
●
環(huán)境感應(yīng)
●
智能后勤
●
位置跟蹤
●
健康監(jiān)控
目前市場上的物聯(lián)網(wǎng)設(shè)備越來越多,例如智能溫控器(smart
thermostat)或飛利浦
Hue
燈(Philips Hue lamp),它們允許用戶控制家庭
中的供暖方面或情調(diào)照明(mood lighting)。物聯(lián)網(wǎng)的大發(fā)展,使廠商和
玩家更有興趣創(chuàng)建自己的智能項目,而
Photon
板提供了這種可能性,
且成本只有
19
美元——市場上最便宜的開發(fā)板。
有那么多廠商和玩家都在創(chuàng)建新的
IoT
項目,就有必要為硬件和
軟件建立一個簡單框架,給處于任何技能水平的人員提供一個簡單、
易用的系統(tǒng)。所以
Particle
團隊根據(jù)流行的
Arduino
軟件建立了這樣一
個系統(tǒng),把較復(fù)雜的技術(shù)轉(zhuǎn)換為每個用戶都易于使用的開源產(chǎn)品。
1.5 Particle
云
該框架的硬件部分是
Photon
板,它基于流行的
Core
模塊,通過
融資網(wǎng)站
Kickstarter
獲得資金。Photon
板設(shè)計為與
Core
向后兼容,所
以,本書大部分內(nèi)容都適用于
Core。
Particle
為硬件創(chuàng)建了一個軟件框架,允許用戶利用其他技術(shù)和設(shè)
備通過
Internet
與硬件交互操作,這兩個元素很容易協(xié)同工作。使用
Photon
板的
IoT
設(shè)備使用繼電器(relay)或類似電路打開消費設(shè)備;這
里,當(dāng)用戶訪問網(wǎng)頁或移動應(yīng)用,通過其上的一個按鈕打開或關(guān)閉設(shè)
備。用戶點擊網(wǎng)頁上的按鈕時,會把一條消息或一串?dāng)?shù)據(jù)發(fā)送給
Particle
云服務(wù),Particle
云服務(wù)再把該消息轉(zhuǎn)發(fā)給
Photon
板,打開設(shè)
備。如果
Photon
板連接了傳感器,云系統(tǒng)就可按相反順序工作,即點
擊按鈕時,不是
Web
服務(wù)給云發(fā)送信息,而是由
Photon
開發(fā)板把傳
感器的信息發(fā)送給云,再發(fā)送給
Web
服務(wù)器,顯示在
Web
上。整個
Particle
框架使這個工作無縫地完成,對終端用戶而言也不會過于復(fù)雜
——用戶只需要用
Particle
云賬戶注冊
Particle Photon
板即可。
1.6 Photon
板
Photon
板小巧玲瓏,如圖
1-1
所示。
Photon
板上的兩個按鈕
SETUP
和
RESET
可配置
Wi-Fi
憑證,在
需要時重啟設(shè)備。萬一設(shè)備出現(xiàn)問題,聯(lián)合使用它們可執(zhí)行完整的出
廠重置操作。
開發(fā)板的頂部有微型
USB
端口,用于給開發(fā)板供電,在需要時還
可連接到計算機上,進行
USB
編程。
Photon
板有內(nèi)置的芯片型天線(chip antenna),適合于大多數(shù)室內(nèi)
應(yīng)用,Photon
板還有一個外部槽,用于連接
Wi-Fi
天線,進行范圍擴
展和定向天線。Photon
板的默認配置為:在芯片天線和外部天線都可
用的情況下,始終選擇最可靠的方法。也可在固件上手動選擇天線。
圖
1-1 Photon
板
1.7
小結(jié)
現(xiàn)在我們已經(jīng)啟航了。Photon
板是一款在廠商社區(qū)中創(chuàng)建
IoT
項
目、開發(fā)商業(yè)消費產(chǎn)品的優(yōu)秀設(shè)備。下一章將介紹如何設(shè)置
Photon
板,
開始編寫第一個項目。
購買地址:
/tupian/20230522/25321993.html