第1章概述1
1.1Python安裝2
1.2查看安裝的庫3
1.3思考題4
第2章Home Assistant5
2.1安裝和測試Home Assistant5
2.2修改經緯度10
2.3Internet信息服務中的天氣預報11
2.4語音與媒體播放器——百度語音與Kodi12
2.4.1創建百度語音應用13
2.4.2配置Home Assistant13
2.4.3使用Kodi進行語音播報14
2.5攝像頭與圖像處理——IP攝像頭15
2.5.1安裝IP攝像頭15
2.5.2修改配置文件15
2.6利用Twilio實現通知提醒17
2.7家電控制——飛利浦燈具18
2.8家電控制——小米設備22
2.8.1添加小米網關及小米ZigBee設備22
2.8.2添加小米WiFi設備25
2.9自動化31
2.9.1觸發器31
2.9.2條件33
2.9.3動作34
2.9.4在Home Assistant前端配置自動化34
2.9.5編寫代碼實現自動化36
2.10思考題38
第3章樹莓派39
3.1樹莓派的安裝和使用39
3.1.1燒寫映像文件至SD卡39
3.1.2啟動樹莓派41
3.1.3PuTTY44
3.1.4VNC Viewer47
3.1.5文件傳輸50
3.1.6Linux常用命令與文本編輯51
3.2樹莓派中的Home Assistant53
3.2.1自啟動Home Assistant53
3.2.2備份映像與SD卡克隆56
3.3組件接入57
3.3.1語音與媒體播放——Google語音與VLC57
3.3.2利用電子郵件實現通知提醒61
3.3.3腳本與自動化64
3.3.4模板與自動化69
3.3.5利用小米遙控器實現家電控制74
3.3.6USB攝像頭77
3.3.7虛擬攝像頭79
3.4人臉識別80
3.4.1dlib配置80
3.4.2本地dlib人臉探測84
3.4.3微軟人臉特征檢測88
3.4.4微軟人臉識別與認證91
3.5界面States UI與Lovelace UI95
3.5.1States UI界面優化95
3.5.2Lovelace UI界面優化97
3.6手機訪問Home Assistant102
3.6.1免費雲服務器102
3.6.2SSH隧道構建109
3.6.3FRP隧道構建111
3.7使用TensorFlow進行物體識別115
3.7.1安裝TensorFlow116
3.7.2配置TensorFlow116
3.7.3在Home Assistant中實現物體識別119
3.8思考題121
第4章Python122
4.1Python快速入門122
4.1.1Python程序編寫122
4.1.2方法123
4.1.3循環124
4.1.4分支124
4.2樹莓派Python編程基礎125
4.2.1變量126
4.2.2值和類型127
4.2.3結構體129
4.2.4控制程序流程133
4.2.5函數135
4.2.6類137
4.2.7模塊140
4.3Python與Home Assistant141
4.3.1組件和域142
4.3.2實體、狀態和屬性143
4.3.3事件和服務148
4.3.4平臺152
4.4編寫二維碼組件153
4.5樹莓派GPIO設備控制156
4.5.1Python編程控制LED158
4.5.2利用Home Assistant組件控制LED164
4.5.3利用自定義Home Assistant服務控制LED165
4.6思考題168
第5章OpenCV169
5.1圖像170
5.1.1圖像讀寫170
5.1.2圖像處理172
5.2視頻179
5.2.1視頻捕獲179
5.2.2保存視頻180
5.3人臉識別180
5.3.1人臉檢測180
5.3.2人臉加工182
5.3.3人臉比對183
5.4運動檢測184
5.5KNN背景分割器186
5.6OpenCV在Home Assistant中的實現187
5.7思考題189
第6章綜合實踐項目190
6.1智能音箱設計與實現190
6.1.1雙傳聲器樹莓派擴展板190
6.1.2喚醒詞服務snowboy192
6.1.3語音識別模塊SpeechRecognition194
6.1.4喚醒後語音識別196
6.1.5文字處理與反饋199
6.1.6圖靈機器人204
6.1.7自定義喚醒詞206
6.2MagicMirror在Home Assistant中的實現209
6.2.1MagicMirror安裝209
6.2.2天氣組件Open Weather的配置與安裝211
6.2.3第三方組件Weekly Schedule的配置與安裝213
6.2.4獲取Home Assistant中的實體信息215
6.2.5與智能音箱聯動217
6.3思考題219