0408~0410_4月選書

BMduino進階程式開發(雲端連線篇)

  • 79 631
    799

活動訊息

全館滿$1,200送150點金幣,4月歡慶兒童節,童書、玩具、文具滿1000元再送200點金幣!

內容簡介

本書是「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:prgbruce@gmail.com
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:yttsai@pu.edu.tw
作者網頁:http://www.csce.pu.edu.tw/people/bio.php?PID=6#personal_writing

許智誠 (Chih-Cheng Hsu)
美國加州大學洛杉磯分校(UCLA) 資訊工程系博士,曾任職於美國IBM等軟體公司多年,現任教於中央大學資訊管理學系專任副教授,主要研究為軟體工程、設計流程與自動化、數位教學、雲端裝置、多層式網頁系統、系統整合、金融資料探勘、Python建置(金融)資料探勘系統。
Email: mailto:khsu@mgt.ncu.edu.tw
作者網頁: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-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 連接器。

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9786264169134
    • 分級
    • 普通級
    • 頁數
    • 550
    • 商品規格
    • 18開17*23cm
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing