《Arduino開發實戰指南:智能家居卷》主要介紹了智能家居的原理及實現過程。全書共分8章,外加兩個附錄。主要內容是:藍牙燈、藍牙鎖和LED燈光調節、電視遙控器、溫濕度計與溫控、短信告警、背景音樂、物聯網平臺、微信智能家居平臺。書中的8章分別對應8個實例,詳細介紹了其硬件配置及連接,并給出了相關的軟件代碼。附錄A介紹了下載開發包的方法,附錄B介紹了書中實例代碼在百度云盤的地址,方便讀者研究和使用。作者采用圖文并荗、逐步引導的講述方式,有很強的實用性和可操作性。《Arduino開發實戰指南:智能家居卷》適合于物聯網的工程技術人員,大中專院校的相關專業教師和學生,以及物聯網、智能家居技術的愛好者。
結合微信的Arduino手把手智能家居應用開發教程。
結合App inventor,讓不懂編程和硬件的讀者能夠開發出有創意的應用。
電路、代碼和實例完整,可實現一對一動手操作。
很多初學者在掌握了Arduino基礎知識之后開始望而卻步,卻沒能做出一個像樣的應用。家是一個你永遠值得用心去投入的場所。用Arduino結合一些現在熱門的互聯網應用,你就能夠改造它,讓它更溫馨,更舒服,更靈活。你可以用Arduino控制你的臺燈,控制你的家電,控制你的廚房,甚至通過微信將他們與互聯網連接,實現真正的智能家居。本書將成為你改造自己家的一個完全手冊。
智能家居,又稱智能住宅,在國外常用Smart Home表示。通俗來說,智能家居是將燈光、家電、家庭影院、燃氣預警、遠程控制、電動窗簾、安防設備、背景音樂等連接成一個網絡——物聯網,通過一臺智能家居主機(控制管理系統)進行統一管理,實現家居設備的自動化和智能化控制,給使用者帶來最大程度的高效、便捷、舒適與安全的體驗。
使用者可通過語音、短信、手機或平板電腦觸摸屏、無線遙控器、上網設備等在家里或通過網絡遠程控制家用設備。我們想象一下,在回家的路上,你可以提前用手機打開家中的空調和熱水器;晚上走進自己家的門廳時,對著門廳直接說“開燈”,門廳的燈就亮了;開門時,安卓密碼鎖功能開啟,系統會自動打開電子門鎖,安防撤防;坐在沙發上用手機遙控自己家的電視、空調;睡覺前在床上就可以用手機關閉所有房間的燈光。這一切是多么愜意啊!
出門在外,如果突然想起家里的水壺還在爐臺上加熱,我們可以通過網絡遠程、短信等關閉燃氣閥門;也可以在接到家中安防告警的短信或家中患病的老人通過手機發來的SOS短信時,在網上通過攝像頭觀察家中的情況。
我們還可以進一步設定和執行各種復雜的場景操作,假如使用安卓手機設計了一個“家庭影院”場景,當按下“家庭影院”場景按鈕時,智能家居系統將自動執行事先設定好的多個動作:關閉窗簾、關閉吊燈、打開背景燈、打開電視并切換到高清輸入模式、打開DVD、打開功放等,以前需要執行多個動作,現在只需按一個鍵就可以全部完成了。正如比爾·蓋茨在《未來之路》中曾經說過的那樣:“在不遠的未來,沒有智能家居系統的住宅會像今天不能上網的住宅那樣不合潮流。”
趙 志 中國電信沈陽分公司網絡運維部高級工程師,主要負責網絡運維和設計施工相關工作。對路由器、交換機、單片機等系統設計開發有深入的研究。他還是一位骨灰級的開源硬件愛好者,酷愛Arduino開源技術,在智能家居應用方面有非常豐富的實踐經驗。
前言
第1章 藍牙燈 1
1.1 Arduino簡介 1
1.1.1 Arduino硬件 1
1.1.2 Arduino硬件驅動的安裝 2
1.1.3 Arduino編譯軟件安裝 5
1.2 藍牙燈的制作 8
1.2.1 硬件需求及連接圖 8
1.2.2 程序代碼 9
1.3 App Inventor基礎 10
1.3.1 創建App Inventor開發環境 11
1.3.2 App Inventor結構 12
1.4 制作一個App 14
1.4.1 新建一個項目 14
1.4.2 Designer界面設計 15
1.4.3 Blocks Editor界面設計 16
1.4.4 程序運行 22
1.4.5 下載程序 23
第2章 藍牙鎖和LED燈光調節 25
2.1 藍牙鎖 25
2.1.1 電子鎖 25
2.1.2 硬件需求 25
2.1.3 程序代碼 26
2.1.4 制作App 27
2.1.5 Designer界面設計 27
2.1.6 Blocks Editor界面設計 28
2.1.7 程序運行 30
2.2 LED燈調節 30
2.2.1 LED燈 30
2.2.2 硬件需求 30
2.2.3 程序代碼 31
2.2.4 制作App 32
2.2.5 Designer界面設計 33
2.2.6 Blocks Editor界面設計 33
2.2.7 程序運行 35
第3章 電視遙控器 36
3.1 紅外編碼基礎 36
3.2 IRmote庫函數 38
3.2.1 IRsend類定義 38
3.2.2 IRsend類成員函數 39
3.2.3 IRrecv類定義 39
3.2.4 IRrecv類成員函數 40
3.3 獲取遙控器編碼 41
3.3.1 所需器件 41
3.3.2 硬件連接 41
3.3.3 程序代碼 42
3.4 制作Arduino遙控器 42
3.4.1 所需器件 43
3.4.2 硬件連接 43
3.4.3 程序代碼 44
3.5 “未知類型”遙控器代碼 46
3.5.1 庫函數定義的原始協議碼格式 46
3.5.2 Arduino代碼命令修改 47
3.6 制作遙控器的App 47
3.6.1 新建一個項目 48
3.6.2 Designer界面設計 48
3.6.3 Blocks Editor界面設計 49
3.6.4 程序運行 51
3.7 語音識別模塊 52
3.7.1 VoiceClass類定義 52
3.7.2 VoiceClass類成員函數 52
3.7.3 示例 53
3.8 語音遙控器的制作 55
3.8.1 硬件連接 55
3.8.2 程序代碼 56
第4章 溫濕度計與溫控 59
4.1 溫濕度傳感器 59
4.1.1 DHT11傳感器的特點 59
4.1.2 DHT11傳感器的通信過程 60
4.1.3 DHT11連線圖 62
4.2 溫濕度計程序代碼 62
4.2.1 設計思路 62
4.2.2 程序代碼 62
4.2.3 DHT11子函數 63
4.3 溫濕度計的App制作 65
4.3.1 新建一個項目 65
4.3.2 Designer界面設計 65
4.3.3 Blocks Editor界面設計 67
4.3.4 程序運行 68
4.4 語音合成模塊 69
4.4.1 Syn6288類定義 69
4.4.2 Syn6288類成員函數 70
4.5 語音溫濕度計的制作 71
4.5.1 硬件連接 71
4.5.2 程序代碼 72
4.6 智能溫度控制 74
4.6.1 硬件搭建 74
4.6.2 程序代碼 75
4.7 智能溫度控制的App 81
4.7.1 新建一個項目 82
4.7.2 Designer界面設計 82
4.7.3 Blocks Editor界面設計 84
4.7.4 程序運行 86
第5章 短信告警 88
5.1 燃氣和漏水/溢水監控 88
5.1.1 氣體傳感器 88
5.1.2 水位傳感器 90
5.1.3 電磁閥和閥門機械手 91
5.1.4 GSM/GPRS通信模塊 91
5.1.5 GSM短信編碼方式 92
5.1.6 程序代碼 93
5.2 火災監控 96
5.2.1 火焰傳感器 96
5.2.2 分勵脫扣器+輔助開關 97
5.2.3 程序代碼 98
5.3 安防監控 99
5.3.1 熱釋電紅外傳感器 99
5.3.2 網絡攝像頭 100
5.3.3 程序代碼 100
5.4 制作短信告警的App 101
5.4.1 新建一個項目 101
5.4.2 Designer界面設計 102
5.4.3 Blocks Editor界面設計 103
5.4.4 程序運行 104
第6章 背景音樂 105
6.1 硬件搭建 105
6.1.1 MP3播放模塊 105
6.1.2 程序代碼 107
6.2 制作節目單的App 109
6.2.1 新建一個項目 109
6.2.2 Designer界面設計 109
6.2.3 Blocks Editor界面設計 111
6.2.4 程序運行 114
第7章 物聯網平臺 115
7.1 Yeelink平臺 115
7.1.1 Yeelink平臺設置 115
7.1.2 利用網頁查看溫濕度變化 118
7.1.3 利用網頁遠程控制開關燈 122
7.1.4 微博發布 127
7.2 樂聯網平臺 128
7.2.1 樂聯網平臺設置 128
7.2.2 程序代碼 130
7.2.3 微信互動 132
7.3 Xively平臺 138
7.3.1 Xively平臺設置 138
7.3.2 程序代碼 139
第8章 微信智能家居平臺 142
8.1 服務器的搭建 142
8.1.1 百度BAE服務器端搭建 142
8.1.2 新浪SAE服務器端搭建 145
8.2 服務器端代碼的編輯 147
8.2.1 示例代碼 147
8.2.2 鏈接微信平臺代碼 149
8.2.3 鏈接Arduino代碼 151
8.2.4 代碼上傳到服務器 152
8.2.5 數據庫編輯 153
8.3 Arduino程序設計 154
8.4 微信公眾平臺搭建 156
8.5 驗證 159
附錄A 下載開發包的方法 160
附錄B 從百度云盤下載本書資料 161