一,概述
? ?手機app通過藍牙模塊發(fā)送指令實時控制單片機的外設(shè)功能,比如發(fā)送衣柜開關(guān)門指令(舵機旋轉(zhuǎn)),衣架上升降落(步進電機正轉(zhuǎn)反轉(zhuǎn)),遠程開啟去污除濕功能(繼電器控制打開\關(guān)閉小風(fēng)扇+加熱片)。
本次例子:手機APP連接藍牙模塊遠程控制SG90舵機正轉(zhuǎn)(0-180°)和反轉(zhuǎn)(180°-0);
控制SG90舵機參考:SG90舵機控制模塊
二,JDY-31藍牙模塊
2.1元器件鏈接
電子元器件:
【淘寶】https://m.tb.cn/h.UJ1qfaP?tk=VHxRdjjvk4D CZ0001 「【優(yōu)信電子】藍牙3.0模塊 SPP透傳 兼容HC-05/06從機 JDY-31」
2.2 JDY-31藍牙產(chǎn)品介紹
em.... 藍牙模塊怎么說呢? 個人粗建:大多數(shù)市面上買的單品元器件已封裝完整,是穩(wěn)定,成熟面向用戶的產(chǎn)品,也就是說 ,買回來只要把相關(guān)參數(shù)設(shè)置好,就直接可以用的,電子元器產(chǎn)品信息和相關(guān)參數(shù)可通過你購買的產(chǎn)品上知道,當(dāng)然,購買之后,直接找店家要產(chǎn)品參考手冊或者找一下店家的技術(shù)支持也可以,建議買之前問好可不可以幫忙調(diào)試。藍牙模塊我是把它當(dāng)做單片機的串口(USART)來使用的,下圖1-JDY-31藍牙模塊正面,1為藍牙模塊的天線部分,2是藍牙模塊集成控制中心,3藍牙的控制引腳,圖2-JDY-31藍牙模塊反面,反面看一下框里的信息,驅(qū)動電平在3.6-6V之間,以及RX和TX引腳。
圖1:JDY-31藍牙模塊正面
?圖2:JDY-31藍牙模塊反面
2.3 通信示意圖
單片機通過藍牙模塊與手機app實現(xiàn)遠程通信,通信協(xié)議為UART通信協(xié)議,其中單片機RX接藍牙模塊的TX,單片機的TX接藍牙模塊的RX,通信示意圖如下圖所示:
?2.4JDY-31資料&指令
鏈接:https://pan.baidu.com/s/1bNb5n7LvbDsgRMvx_mU4yg?
提取碼:hexi
關(guān)于這款藍牙的資料放在百度網(wǎng)盤里面了,有需要自提哦。
2.5 JDY-31藍牙串口配置
參考廠家給出資料,可使用廠家默認配置或者自己查詢/設(shè)置配置信息。
具體方法:一根串口線轉(zhuǎn)USB的線子:?
沒有的參考以下鏈接
【淘寶】https://m.tb.cn/h.Uqtpnc0?tk=l7jSdQLUs1g CZ3457 「黑PL2303HX USB轉(zhuǎn)TTL RS232模塊升級 USB轉(zhuǎn)串口下載線中九刷機線」
白色 RX 綠色 TX? 連接該藍牙設(shè)備,USB接入電腦
?sscom 串口組手連接USB口,可以選擇性配置。
三,STMCUBEMAX配置
3.1cubemax時鐘樹配置
HCLK時鐘頻率配置72Mhz,其余配置如下圖所示:
?3.2 USART2(串口信息)配置
配置串口2配置信息如下所示,配置信息按默認配置,波特率配置115200。
注意:波特率設(shè)置和藍牙魔塊設(shè)置一致
3.3USART2串口中斷使能配置
?CuBemax 配置完畢,點擊生成代碼,打開keil5編譯代碼。
四,Keil_V5代碼部分
第一步:main.c中while添加如下代碼。
HAL_UART_RxCpltCallback(&huart2);
?第二步:函數(shù)體,只是舉例了控制舵機的部分,看你工程需要,在下面自己添加字符控制。
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) //′??ú?D??
{
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
if(huart->Instance==USART2) //串口2判斷
{
HAL_UART_Receive(&huart2,&rx,1,HAL_MAX_DELAY);
if(rx=='o')
{
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,50);
HAL_UART_Transmit(&huart2,"門打開\r\n",13,HAL_MAX_DELAY);
}
else if(rx=='f')
{
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,250);
HAL_UART_Transmit(&huart2,"門關(guān)閉!\r\n",13,HAL_MAX_DELAY);
}
else
{
printf("input erro\r\n");
HAL_UART_Transmit(&huart2,"input erro\r\n",13,HAL_MAX_DELAY);
}
}
rx=0;
}
?五,手機APP端測試
手機藍牙app鏈接:
通過百度網(wǎng)盤分享的文件:base.apk
鏈接:https://pan.baidu.com/s/1YtbBDiFRK0Nx5IXqSIVaDA?
提取碼:hxcc
復(fù)制這段內(nèi)容打開「百度網(wǎng)盤APP 即可獲取」
5.1 連接藍牙模塊
首次使用藍牙模塊時,如果在app里面掃描不出來 ,建議先打開手機app藍牙連接好之后,在進入app里。向下滑動掃描藍牙設(shè)備。圖中圈出的就是該藍牙,名稱在上面步驟更改過。
5.2藍牙指令平面板設(shè)置
?鏈接上藍牙模塊之后,JDY-31的燈會長亮,表示連接成功。先設(shè)置兩個按鈕,按鈕1的設(shè)置方式為長按該按鈕,彈出彈窗,配置如下圖2所示,長按按鈕2,彈出彈窗,配置信息如下圖3所示,在連接藍牙過程中,如果3處顯示離線了,再次點擊可以連接藍牙。
?圖1
?圖2
?圖3
5.3實現(xiàn)效果圖
?
?5.4實際控制測試
藍牙app遠程控制sg90舵機旋轉(zhuǎn)文章來源:http://www.zghlxwxcb.cn/news/detail-429497.html
六,總結(jié)
? 這款藍牙模塊還是比較經(jīng)典的吧,我當(dāng)時調(diào)試藍牙的時候,買了兩款,這款是首先買的,那時候是小白,并沒有把這款藍牙調(diào)通,后面買了HC08那款藍牙才調(diào)通的,兩款對比差異不大,只不過這款有密碼,對比那款要有私密性一點吧,當(dāng)然作為入門級的藍牙測試,很練手了,接下來準備更oled顯示屏的博文,估計半個月后更出。文章來源地址http://www.zghlxwxcb.cn/news/detail-429497.html
到了這里,關(guān)于JDY-31藍牙模塊遠程控制STM32F103單片機的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!