BMduino進階程式開發: 雲端連線篇
| 作者 | 曹永忠/ 許智誠/ 蔡英德 |
|---|---|
| 出版社 | 崧燁文化事業有限公司 |
| 商品描述 | BMduino進階程式開發: 雲端連線篇:本書是「BMduino系列程式設計」的第二本書,主要教導新手與初階使用者之讀者熟悉搭配BMduino開發板網路模組如何透過物聯網架構與雲端平 |
| 作者 | 曹永忠/ 許智誠/ 蔡英德 |
|---|---|
| 出版社 | 崧燁文化事業有限公司 |
| 商品描述 | BMduino進階程式開發: 雲端連線篇:本書是「BMduino系列程式設計」的第二本書,主要教導新手與初階使用者之讀者熟悉搭配BMduino開發板網路模組如何透過物聯網架構與雲端平 |
內容簡介 本書是「BMduino系列程式設計」的第二本書,主要教導新手與初階使用者之讀者熟悉搭配BMduino開發板網路模組如何透過物聯網架構與雲端平臺與MQTT Broker伺服器之網路通訊技術之範例教學。 接下來從輸入型感測模組開始介紹,接下來介紹氣體感測模組,接下來介紹智慧家庭常用之感測模組,到最後介紹應用情境感測模組,一步一步介紹這些模組之技術概念,如何建立基本電路範例與感測模組專用函式庫之使用與典範範例之介紹,讓讀者閱讀之後可以輕鬆使用本書介紹之所有模組。 BMduino開發板最強大的不只是它的簡單易學的開發工具,最強大的是它網路功能與簡單易學的模組函式庫,幾乎Maker想到應用於物聯網開發的東西,只要透過眾多的周邊模組,都可以輕易的將想要完成的東西用堆積木的方式快速建立,而且BMduino開發板市售價格比原廠Arduino Yun或Arduino + Wifi Shield更具優勢,最強大的是BMduino開發板低廉的價格與Wifi與藍芽模組都可以透過外加方式擴充,更符合物聯網的基本需求,這是今年以來BMduino開發板為何這樣火熱的原因,希望透過這個系列書籍的分享,讓Maker不需要具有深厚的電子、電機與電路能力,就可以輕易駕御BMduino開發板與周邊模組。 筆者很早就開始使用BMduino開發板,也算是先驅使用者,感謝社團法人中華倍創STEAM教育發展協會與倍創科技的支持,本書才得以付梓出版,若沒有這些先進協助,本書無法付梓,所以筆者不勝感激,在本書創作過程,筆者也將所有的感測模組與技術核心教學,都透過YouTube直播與教學簡報書,讀者可以到網址:http: ncnu.arduino.org.tw brucetsao myteachingppt.php,使用這些筆者建立的知識分享的免費資源,更希望讀者可以得到更多的技術學習的機會,讓整個BMduino開發版系列的使用者與社群可以更加茁壯,最後希望筆者可以推出更多的入門書籍給更多想要進入「BMduino開發板」、「物聯網」、「健康醫療」、「AI科技」這個未來大趨勢,所有才有這個系列的產生。
作者介紹 曹永忠 (Yung-Chung Tsao) 國立中央大學資訊管理學系博士, 目前在國立暨南國際大學電機工程學系擔任兼任助理教授與 國立高雄大學電機工程學系擔任兼任助理教授 與社團法人中華倍創STEAM教育發展協會擔任技術顧問, 專注於軟體工程、軟體開發與設計、物件導向程式設計、 物聯網系統開發、Arduino開發、嵌入式系統開發。 長期投入資訊系統設計與開發、企業應用系統開發、 軟體工程、物聯網系統開發、軟硬體技術整合等領域, 並持續發表作品及相關專業著作。 Email:mailto:[email protected] Line ID:dr.brucetsao WeChat:dr_brucetsao 作者網站:http: ncnu.arduino.org.tw brucetsao myprofile.php 影片中程式碼下載區: https: github.com BestModules-Libraries BMduino_Books 臉書社群(Best Modules 倍創科技): https: www.facebook.com BestModulesCorp Github網站:https: github.com BestModules-Libraries YouTube:https: www.youtube.com @BestModules 蔡英德 (Yin-Te Tsai) 國立清華大學資訊科學系博士,目前是靜宜大學資訊傳播工程學系教授、靜宜大學國際學院院長,主要研究為演算法設計與分析、生物資訊、軟體開發、視障輔具設計與開發。 Email:mailto:[email protected] 作者網頁:http: www.csce.pu.edu.tw people bio.php?PID=6#personal_writing 許智誠 (Chih-Cheng Hsu) 美國加州大學洛杉磯分校(UCLA) 資訊工程系博士,曾任職於美國IBM等軟體公司多年,現任教於中央大學資訊管理學系專任副教授,主要研究為軟體工程、設計流程與自動化、數位教學、雲端裝置、多層式網頁系統、系統整合、金融資料探勘、Python建置(金融)資料探勘系統。 Email: mailto:[email protected] 作者網頁:http: www.mgt.ncu.edu.tw ~khsu
產品目錄 推薦序 自序 自序 自序 目錄 圖目錄 表目錄 BMduino系列 開發板介紹 BMduino開發板特色: BMduino開發板強大競爭力: BMduino開發板的外表尺寸介紹 BMduino開發板與Arduino-UNO R3開發板比較 BMduino開發板IO腳位介紹 BMduino 系列開發者介紹 BMduino系列資源介紹 Arduino開發IDE程式安裝 開始安裝畫面 執行Arduino IDE 開發軟體 Arduino IDE 工具列介紹 Arduino IDE 菜單列 Arduino開發工具基本設定 Arduino函式庫安裝(安裝線上函式庫) 安裝BMduino Arduino 整合開發環境 設定BMduino為目前開發板 設定BMduino 通訊埠 BMduino-UNO開發板測試燒錄是否正確 章節小結 Arduino 程式語法 官方網站函式網頁 Arduino程式主要架構 區塊式結構化程式語言 註解 變數 型態轉換 邏輯控制 算術運算 輸入輸出腳位設定 時間函式 數學函式 亂數函式 通訊函式 系統函式 章節小結 如何使用網路傳輸資料到雲端平台 ESP-12F WiFi模組基礎知識 RESTful API 基本原理 電路組立 系統架構與流程圖 系統開發準備 系統正式開發 引用網路自訂模組 建立網路全域變數 主程式自訂函式區 初始化所有感測模組 系統初始化區 無線網路初始化 主程式setup()處理網路連線問題 介紹雲端建置架構 溫溼度資料處理原理 建立資料收集端傳送感測資料機制 建立雲端處理程序 組合HTTP GET URL字串 開始HTTP GET連線 確認回傳頁面內容 建立判斷雲端傳輸成功法則 網路狀態沒有連線成功 試著重新連接網路 重新檢視傳送感測資料到感測資料雲端代理人之函式 整理自訂函式 修改主程式具備傳送感測資料到感測資料雲端代理人功能 處理引入外部自訂模組程式 執行傳送感測資料到雲端處理程序 合理化主程式區 系統測試 章節小結 如何MQTT Broker架構進行網路傳輸 ESP-12F WiFi模組基礎知識 MQTT 基本概念與架構 MQTT 緣起介紹 MQTT 架構組成 MQTT Broker 核心原理 核心技術特性 分散式溫溼度系統開發 系統架構與流程圖 獨立的系統角色 電路組立 系統開發準備 系統正式開發 MQTT模組 OLEDLib.h模組 DHTLib.h模組 TCP.h模組 系統主程式區 系統主程式setup()區 系統主程式loop()區 讀取並顯示溫溼度資料 傳送溫溼度資訊到MQTT Broker 每一輪迴工作等待時間 系統測試 分散式代理人開發 系統架構 使用相同的雲端系統架構 MQTT-Based分散式資料代理人開發 訂閱MQTT Broker伺服器並顯示訂閱資料 訂閱MQTT Broker伺服器並顯示訂閱資料之系統流程 程式解說 安裝MQTT套件畫面 系統測試 轉發訂閱主題後收到感測文件後傳送到雲端平台 轉發訂閱主題後收到感測文件後轉發到雲端平台之系統流程 程式解說 安裝MQTT套件畫面 系統測試 章節小結 如何MQTT Broker架構遠端控制與顯示 Wi-Fi基礎知識 透過訂閱MQTT Broker伺服器之感測資料顯示器 系統架構與流程圖 獨立的系統角色 電路組立 系統開發準備 系統正式開發 MQTT模組 OLEDLib.h模組 DHTLib.h模組 TCP.h模組 系統主程式區 系統主程式setup()區 系統主程式loop()區 讀取並顯示溫溼度資料 處理訂閱資料 在序列埠輸出接收到的訂閱資料相關訊息 解析接收到的 JSON 資料 將解析結果輸出到序列監視視窗 將解析出的資料顯示在OLED顯示模組上 系統測試 透過訂閱資料之解譯命令進行控制驅動繼電器 系統架構與流程圖 獨立的系統角色 電路組立 系統開發準備 系統正式開發 專案個別模組開發 MQTT模組 OLEDLib.h模組 TCP.h模組 RelayLib.h模組 建立網路全域變數 引用外部感測模組 建立模組感測物件 自定義函式宣告區 自定義函式實體程式區宣告抬頭 初始化繼電器模組 開啟第 n 個繼電器 關閉第 n 個繼電器 開啟所有繼電器 關閉所有繼電器 取得所有繼電器狀態 取得第n個繼電器狀態 列印繼電器號碼於OLED上 顯示命令在OLED上 主程式模組開發 系統主程式區運作程序程式碼 全域變數宣告區 引用外部感測模組自訂模組 自定義函式宣告區 初始化所有感測模組 初始化整體系統 初始化 WiFi 網路連線 連線成功後顯示網路資訊 系統主程式setup()區 初始化系統與感測器 系統主程式loop()區 處理訂閱資料 在序列埠輸出接收到的訂閱資料相關訊息 解析接收到的 JSON 資料 將解析結果輸出到序列監視視窗 將解析出的資料顯示在OLED顯示模組上 判斷接收到的命令並執行對應的繼電器操作 系統測試 章節小結 本書總結 作者介紹 附錄 BMduino-UNO腳位圖 BMduino-NANO腳位圖 參考文獻
| 書名 / | BMduino進階程式開發: 雲端連線篇 |
|---|---|
| 作者 / | 曹永忠 許智誠 蔡英德 |
| 簡介 / | BMduino進階程式開發: 雲端連線篇:本書是「BMduino系列程式設計」的第二本書,主要教導新手與初階使用者之讀者熟悉搭配BMduino開發板網路模組如何透過物聯網架構與雲端平 |
| 出版社 / | 崧燁文化事業有限公司 |
| ISBN13 / | 9786264169134 |
| ISBN10 / | |
| EAN / | 9786264169134 |
| 誠品26碼 / | 2683124323002 |
| 頁數 / | 550 |
| 裝訂 / | P:平裝 |
| 語言 / | 1:中文 繁體 |
| 尺寸 / | 23x17 cm |
| 級別 / | N:無 |
自序 : 推薦序
在科技日新月異的時代,微控制器不再只是工程師手中的專業工具,而是每一位創客、學生及開發者理解科技運作的起點。BMduino 開發板正是以此理念為基礎而誕生——秉持開放、易學、可實作的精神,讓更多人能以最直覺的方式,進入電子與程式設計的世界。
本書以「從原理到實作」為核心,引導讀者一步步理解 BMduino 的硬體架構、基本電路與驅動邏輯,並透過實際範例,逐步掌握感測、控制、通訊等應用。不同於單純的範例彙集,本教材更重視背後的機制與原理,讓學習不止於模仿,而能融會貫通、靈活創作。
本書內容涵蓋從基礎微控制器架構,數位與類比訊號處理,至輸入輸出介面設計,包括GPIO、PWM、ADC 及通訊協定(如I2C、SPI、UART)等核心技術。除此之外,書中還包含實務專案設計流程,協助讀者將理論運用於真實世界的應用,培養問題分析及系統整合能力。
學習微控制器實作不僅需要理解程式碼的撰寫,更要掌握硬體特性及其運作原理,這是許多初學者易忽略卻關鍵的環節。BMduino 專為教育及創新應用設計,其開放架構與豐富的周邊擴充性,為學習者提供了理想的平台,兼具實用與擴展潛力。
在當今物聯網與智慧自動化迅速發展的浪潮中,擁有扎實的微控制器知識與實作能力,將是每位科技從業者不可或缺的專業技能。期望透過本書,能幫助讀者培養紮實的基礎,激發持續學習的熱情,並啟發無限創意,成為未來科技革新的推動者。
本教材特別針對創客及高中職等中等學校學生設計,教學目標著重於培養學生獨立思考與動手實作能力。透過循序漸進的內容安排與豐富專案實例,激發學生對電子與程式設計的興趣,鼓勵他們將創意轉化為具體作品。教材同時兼顧理論基礎與實務操作,使學生能在理解微控制器原理的基礎上,勇於挑戰自我,完成從簡單應用到複雜系統整合的多樣專案,為未來升學和職涯發展奠定堅實基礎。
我們相信,透過不斷實作與探索,讀者將能在 BMduino 平台上發揮自身潛力,創造屬於自己的智慧應用。願本書成為你踏上創新之路的良師益友,陪你一起迎接未來科技挑戰,照亮探索電子與程式世界的每一步。
倍創科技股份有限公司總經理 徐人凱
內文 : 開發板介紹
BMduino 開發板是一系列低成本,低功耗的單晶片微控制器,BMduino-UNO BM53A367A 是 Holtek 32-bit MCU HT32F52367 的開發板,特別設計成與 Arduino UNO R3 開發板腳位兼容,可支援Arduino IDE 開發平台和 Keil IDE 開發平台,幫助初學者更容易地學習程式設計。
BM53A367A 採用 3.3V 系列 Arm® Cortex® -M0+內核的 HT32F52367 為主控 MCU,支援多種供電方式, 具備額外的 I2C、SPI、UART、USB 等常用通訊介面。
BMduinoUNO 開發板使用Arm® Cortex® -M0+ 內核的HT32F52367 為主控 MCU,其功能強大無比,特別介紹BMduino 開發板特色於下列所述:
BMduino 開發板特色:
⚫ MCU:HT32F52367 (64-pin LQFP 封裝)
- Cortex®-M0+,60MHz
- Flash 記憶體:256KB
- SRAM:32KB
⚫ 31 個數位 I/O 腳位 (其中 17 個可作為 PWM 輸出)
⚫ 7 個類比輸入,A/D 轉換器解析度為 12-bit
⚫ 14 個外部中斷
⚫ EEPROM:4KB
⚫ 通訊介面:UART、SPI、I2C、USB
⚫ 電源輸入:USB 介面 x 2,DC 介面,外部 Vin
- e-Link32 Lite USB:Type-C USB 介面
- Native USB:Type-C USB 介面,支援 BC 1.2 與快充 QC 2.0,快充預設升壓為 12V
- DC 介面:DC Jack (桶式插座),連接外部電源 (例如:變壓器),電壓範圍 DC 5V~24V
- 外部Vin:Vin 腳位,電壓範圍 DC 5V~24V
⚫ 除錯工具:e-Link32 Lite (ICE),透過開發板上的 e-Link32 Lite 電路進行程式除錯
⚫ 燒錄方式:
- ICP (In-Circuit Programing):透過開發板上的e-Link32 Lite 電路進行燒錄
- IAP (In Application Programming):透過 COM 埠進行燒錄 (與 Arduino UNO R3 相同)
⚫ 開發環境:支援 Arduino IDE、Keil IDE
⚫ 連接器:
- BMCOM1:腳距 2.54mm,可選 3.3V 或 5V
- BMCOM2:腳距 1.0mm,可選 3.3V 或 5V
- SPI1:腳距 2.54mm,可選 3.3V 或 5V
⚫ 與 Arduino UNO R3 開發板腳位相容
⚫ 尺寸:54 x 94 x 14 mm
⚫ 淨重:28.5g
⚫ 產品包含:1. BM53A367A x 1 | 2. 跳帽 x 1
BMduino UNO 開發板使用Arm® Cortex® -M0+ 內核的HT32F52367 為主控 MCU,特別設計成與 Arduino UNO R3 開發板腳位兼容,可支援 Arduino IDE 開發平台和 Keil IDE 開發平台,幫助初學者更容易地從原來Arduino 開發板使用者可以無痛轉換到BMduino UNO 開發板學習程式設計,特別介紹BMduino 開發板強大的競爭力於下列所述:
BMduino 開發板強大競爭力:
⚫ Arduino UNO R3 腳位相容
◼ BMduino-UNO BM53A367A 的腳位與 Arduino UNO R3 相容,電壓準位為 3.3V (Arduino UNO R3 則為 5V)。
◼ 除了標準的 Arduino UNO R3 腳位之外,BM53A367A 另提供BMCOM1 及 BMCOM2 兩個連接器,並貼心地設計用跳帽設定連接器的電壓準位為 3.3V 或 5V。
◼ 板上自帶有電壓轉換電路,讓您在外接使用 5V 電壓的模組
時,可以直接連接 BMCOM,不須擔心電壓轉換的問題。
⚫ 燒錄方式
◼ BM53A367A 開發板上自帶有 e-Link32 Lite 電路,可用來除錯及燒錄,因此 BM53A367A 燒錄程式時不須使用 TX 及 RX腳位 (Arduino UNO R3 則需使用)。
◼ Arduino UNO R3 上的 6-pin ICSP 連接器,在 BM53A367A 上則不需要有 ICSP 的功能,因此 BM53A367A 將此 6-pin 連接器設計成為另一組 SPI/UART 介面,其電壓準位也可用跳帽選擇 3.3V 或 5V,外接 5V 的模組時不需額外的電壓轉換電路。
⚫ 開發環境
◼ 除了在 Arduino IDE 開發環境下工作,BM53A367A 也可工作於 Keil IDE 開發環境,其使用方式與 ESK32-30510,HT32F52367 開發套件相同。
⚫ 原廠自創BMCOM 生態技術特色
◼ BMCOM 是一個由 I2C/UART 模組所組成的生態系統,其中包括感測器、執行器、顯示器和無線模組等,可以加速原型設計。
◼ BMCOM 連接器有兩種型式:BMCOM1 是 2.54mm 間距的 5 針接頭,而 BMCOM2 是 1mm 間距的 5 針 JST 連接器。
最佳賣點 : 本書以BMduino為核心,從開發板架構與Arduino開發環境入門,逐步帶入程式語法與實作技巧,協助建立嵌入式系統基礎。內容延伸至WiFi模組與雲端資料傳輸,結合RESTful與MQTT架構,完整呈現資料上傳、訂閱與遠端控制流程。透過實際案例與模組整合,讓讀者掌握系統設計與應用開發的能力。