手機藍牙與單片機的通信如何實現?

陳名芳


手機藍牙與單片機的通信有兩種實現方式:使用藍牙模塊;使用帶有藍牙功能的單片機。

實現這兩種方式的前提是:首先手機必須有藍牙功能,其次手機上有能夠實現藍牙通信的APP軟件。

一、單片機連接藍牙模塊與手機藍牙通信

這種方式實現起來簡單多了,藍牙模塊與單片機之間採用串口通信方式,對於單片機的串口程序,相信搞單片機的人都很熟悉,並且都能夠很輕鬆的搞定串口程序,所以對於這種實現方式,不用多說,對單片機有所瞭解的人,都能輕鬆搞定。

二、使用帶有藍牙功能的單片機與手機藍牙通信

現在很多單片機都自帶了藍牙功能,像TI的CC2540(這個芯片是基於51內核的,開發起來相對要簡單),TI最新推出的還有CC2640系列,這個是基於ARM cortex m3內核的,還有nordic公司的等等,這個開發起來就有一定難度了,不過好的一點是,這些廠家一般都有退出藍牙開發包,開發者藉助這種工具能夠比較快速地開發出來。不過一般情況下,只有用量較大的公司,芯片廠家才會免費提供這些軟件包,而對於一般用戶,可能需要付費。


老馬識途單片機


現在藍牙通信已經是非常成熟的無線通訊技術了,在手機、智能穿戴設備等產品中幾乎是標配了。正是因為如此,現在市面上已經有很多藍牙芯片了,這大大降低了藍牙技術的開發難度。

單片機要通過藍牙與手機實現無線通訊,方案成熟,要實現這一功能,需要涉及如下幾個方面:

▲單片機系統硬件電路的設計;

▲藍牙芯片硬件電路的設計;

▲單片機程序以及藍牙協議棧程序的編寫;

▲手機端APP應用軟件的編寫;


1.單片機/藍牙系統硬件電路的設計

這一部分要求所選用的單片機具有UART的片上資源,單片機要通過串口和藍牙芯片實現數據的交互,藍牙芯片將數據打包成符合藍牙標準的數據實現與手機的通信。單片機和藍牙的通信需要用到四根線:VCC,GND,TXD,RXD。

特別要注意的是單片機和藍牙要交叉連接。 如下圖所示為藍牙芯片QN9022的引腳分佈圖:

2.單片機程序及藍牙程序

單片機的程序需要實現串口通信,這一部分配置起來簡單。主要是藍牙部分,現在很多藍牙芯片都是數據透傳的,或者直接購買藍牙模塊,像這種模塊程序都是調好的,拿來直接用。

3.手機端APP的編程

對於Android系統而言,需要用到socket編程,其實就是讀取藍牙的數據流,然後根據uuid提取所需要的信息。對上位機軟件的編程,我不太專業,不敢多說。不過上位機這一部分也有成熟的解決方案,選用藍牙模塊時,廠家都會配套手機端的調試軟件,方便用戶調試。也可以下載藍牙串口調試助手進行調試。

以上就是這個問題的簡單回答,更多精彩內容請關注頭條號玩轉嵌入式


玩轉嵌入式


本篇回答,前半部分簡單介紹一下,後半部分很詳細!歡迎大家關注:電氣電子視界

手機藍牙與單片機的通信實現方式如下。

  1. 使用藍牙轉串口模塊連接51單片機的 RX和TX引腳,這一步實現源端數據轉換;單片機在串口中斷服務函數里邊讀取藍牙模塊的指令。
  2. 手機內部進行app的程序設計,調用藍牙模塊並讀取數據,同時通過app往藍牙模塊發送數據給單片機。
電路圖如下:



安卓手機通過單片機與單片機通信

概述:手機端打開編寫的藍牙通信軟件,與單片機端藍牙串口模塊連接,而後,手機通過藍牙發送讀數據命令到單片機,單片機開始讀取傳感器信息。

將採集到的傳感器信息通過藍牙發送到手機端,手機端軟件接收到後顯示。

整體圖:


焊接板圖:

本項目
設計四個部分

1.手機端軟件

2.單片機端編程

3.外設電路設計

4.手機與單片機通信

下面對四個部分進一步敘述

一:手機端軟件為安卓軟件,只需要編寫一個普通的藍牙串口調試使軟件即可。下邊是正常運行源碼中的部分代碼。

(1)藍牙連接代碼


(2)手機藍牙發送數據代碼


(3)手機藍牙接收數據代碼



二:單片機端

單片機採用Arduino開發版,因其簡單易學。

單片機斷的代碼比較簡單,是一些對應的傳感器採集數據代碼和串口通訊代碼。

三:外設焊接

外設有兩個傳感器,一個藍牙串口模塊。

藍牙串口模塊負責藍牙通信,傳感器負責採集信息。

四:手機與單片機通信

首先約定一個命令符,當單片機端接收到手機端發送的命令符時,即開始採集傳感器信息,將採集到的信息進行加工,然後傳給安卓手機,安卓手機接收數據後,隨機顯示出來。

2018.3.11

電氣電子視界


電氣電子視界


第一,你說的單片機的藍牙是什麼概念咯。

現在基本上藍牙IC本身就是一塊單片機,比如TI的CC2540 就是一塊51內核的單片機。而且還帶定時器等外部資源,所以想開發智能燈泡什麼的就可以直接實現了。

第二,如果說你想用另外的MCU去使用藍牙與手機連接,那現在比較好用的就是藍牙串口。當然你可以直接使用藍牙協議棧編寫程序直接與手機通訊、

第三,手機端的APP支持,這個在你做測試的時候可以下載個藍牙助手之類的。可以實現藍牙透傳數據傳輸之類的就可以了。

個人建議直接網上買一隻藍牙串口模塊。然後使用串口與單片機通訊,買回來的模塊會配有詳細的AT指令說明書,告訴你怎麼操作這個模塊。

之後怎麼發揮看你自己了。

當然如果你想把東西做的足夠集成,產品化的話,建議還是研究下藍牙協議棧的使用方法。比如現在比較成熟的BLE協議棧。CC2540 CC2541系列。那樣就可以一顆IC搞定所有事情了


分享到:


相關文章: