0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于51設計的寵物防丟系統(tǒng)(藍牙+Android上位機)

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-05-27 10:37 ? 次閱讀

?

一、環(huán)境介紹

單片機型號: STC89C52

編程軟件: keil5

編程語言: C語言

手機APP:采用QT設計,程序支持跨平臺編譯運行(Android、IOS、Windows、Linux都可以編譯運行,對應平臺上QT的環(huán)境搭建,之前博客已經(jīng)發(fā)了文章講解)

二、功能與硬件介紹

單片機采用STC89C52,資料非常豐富,keil建工程的時候選擇AT89C52即可。

與手機通信藍牙采用:HC05 串口藍牙。

功能介紹:

防丟功能主要是依靠藍牙來判斷是否已經(jīng)斷開。

1. 開發(fā)板復位后,藍牙如果未連接狀態(tài),5秒之后蜂鳴器就會報警

2. 藍牙一旦連接成功后,就需要以300ms的頻率向設備發(fā)送指定的數(shù)據(jù),?;?。

3. 如果藍牙連接上之后,沒有發(fā)送數(shù)據(jù)到設備,300ms之后蜂鳴器就會報警。

4. APP上可以手動點擊觸發(fā)報警

5. 單片機按下復位鍵可以清除報警

APP界面:

如果自己不想焊接,想要直接模塊化搭建環(huán)境,可以直接淘寶買系統(tǒng)板+模塊即可:

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

藍牙HC05是主從一體的藍牙串口模塊,簡單的說,當藍牙設備與藍牙設備配對連接成功后,我們可以忽視藍牙內(nèi)部的通信協(xié)議,直接將將藍牙當做串口用。當建立連接,兩設備共同使用一通道也就是同一個串口,一個設備發(fā)送數(shù)據(jù)到通道中,另外一個設備便可以接收通道中的數(shù)據(jù)。

為了簡化51單片機的編程代碼,可以先使用電腦串口調(diào)試助手,將HC05的的參數(shù)配置完畢,再接到51單片機上。 將HC05藍牙配置成從機模式,設置好配對密碼。

三、51單片機代碼

////////////////////////////////////////
#include 

#define uchar unsigned char 
#define uint unsigned long
    
uchar buffer[8];	//數(shù)據(jù)緩存數(shù)組

uchar rec_flag=0;	//數(shù)據(jù)處理標志 
sbit BUZZER = P1^3;
sbit KEY = P3^4;


void delay1ms(void)   //誤差 0us
{
    unsigned char a,b,c;
    for(c=1;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}

void Delay(int ms)
{
    while(ms--)
    {
        delay1ms();
    }
}


/************************************************
** 函數(shù)名稱 : void InitUART(void)
** 函數(shù)功能 : 串口初始化函數(shù)
** 輸    入 : 無
** 輸    出 : 無
** 說    明 : 定時器1方式2波特率發(fā)生模式,波特率9600bps,晶振11.0592MHZ,誤差0%
**TMOD定時器計數(shù)器寄存器,SCON串行口寄存器,PCON功率控制寄存器,EA訪問外部程序存儲器控制信號,ES串口中斷允許控制位,TR1定時器1的運行控制位
************************************************/
void InitUART(void)
{
    TMOD = 0x20;
    SCON = 0x50;
    TH1 = 0xFD;
    TL1 = 0xFD;
    PCON = 0x00;
    ES = 1;
    TR1 = 1;
	EA = 1;
}

/*********************************************
**名稱:void TxChar(uchar ch)
**功能:串口發(fā)送函數(shù)
**輸入:uchar ch>當前發(fā)送數(shù)據(jù)
**輸出:無
*********************************************/
void TxChar(unsigned char ch)
{
	SBUF=ch;  
	while(!TI);
	TI=0;										
}
void putstring(uchar  *puts) //發(fā)送數(shù)據(jù)
{  
	for(;*puts!=199;puts++)   //遇到停止符199結束 
	TxChar(*puts); 
} 
/************************************************
** 函數(shù)名稱 : void ser(void) interrupt 4
** 函數(shù)功能 : 串口接收中斷函數(shù)
** 輸    入 : 無
** 輸    出 : 無
** 說    明 : 處理串口發(fā)送過來的數(shù)據(jù)串 
************************************************/
void ser(void) interrupt 4
{
	static uchar i;
    if(RI==1)
    {
        RI  =   0;
        if(rec_flag==0)
		{
			if(SBUF==0xff)
			{
				rec_flag=1;	
				i=0;
			}			
		}
		else
		{
			if(SBUF==0xff)
			{
				rec_flag=0;	
				if(i==3)
				{
					//Communication_Decode();		
				}
				i=0;
			}
			else
			{
				buffer[i]=SBUF;
				i++;
			}
		}		
    }
}
/************************************************
** 函數(shù)名稱 : void main(void)
** 函數(shù)功能 : 主函數(shù)
** 輸    入 : 無
** 輸    出 : 無  
寵物檢測

** 說    明 :
************************************************/

void main(void)
{
	uint STOP=0,a=0,a1=0;
	uchar bueezr_flag=0,bueezr_count=0,buzzer_time=3;//蜂鳴器報警變量
	uchar rxbuf[9];
	InitUART();
	rxbuf[0]='A';
	rxbuf[1]=25;
	rxbuf[2]='B';
	rxbuf[3]=99;
	rxbuf[4]='C';
	rxbuf[5]=99;
	rxbuf[6]='D';
	rxbuf[7]=99;
	rxbuf[8]=199;
	while(1)
	{
		putstring(rxbuf);//發(fā)送數(shù)據(jù)函數(shù)
		Delay(300); //延時300ms
		if(KEY==0 && !bueezr_flag){while(KEY==0);rxbuf[1]=22;bueezr_flag=1;}
		if(KEY==0 && bueezr_flag){while(KEY==0);rxbuf[1]=11;bueezr_flag=0;a=0;BUZZER=1;}
		if(!a)STOP++;	
		
        //FF 00 00 01 FF 
        //
        //判斷APP下發(fā)的數(shù)據(jù)
		if(buffer[2]==0x01) //取消蜂鳴器
		{
			STOP=0;
			a1=1;
			buffer[2]=0x00;
		}
		
        //15個300ms還沒有收到APP下發(fā)的數(shù)據(jù),繼續(xù)報警
		if(STOP>15 && a1)
		{
			bueezr_flag=1;			
		}
			
		if(buffer[1]==0x01)  //手動模式報警
		{
			bueezr_flag=1;//蜂鳴器直接響
			a=1;  //手動模式標志位
		}
		
		/*******蜂鳴器報警********/
		bueezr_count++;if(bueezr_count>buzzer_time*10)bueezr_count=buzzer_time+1;
		if(bueezr_count%buzzer_time==0 && bueezr_flag)
		{
			BUZZER=~BUZZER;//蜂鳴器取反  發(fā)出聲音提示
		}		
	}	
}


四、Android手機APP代碼


審核編輯:湯梓紅

?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6052

    文章

    44761

    瀏覽量

    642638
  • Android
    +關注

    關注

    12

    文章

    3953

    瀏覽量

    128793
  • 藍牙
    +關注

    關注

    114

    文章

    5946

    瀏覽量

    172182
  • STC89C52
    +關注

    關注

    41

    文章

    330

    瀏覽量

    82536
收藏 1人收藏
  • jf_218022811

評論

相關推薦

藍牙4.0器設計方案

藍牙4.0器即智能藍牙(Smart Bluetooth)器,采用最新
發(fā)表于 11-10 16:25 ?1.1w次閱讀

基于低功耗藍牙技術的尋物器方案介紹

),是外出尋物的貼身好伙伴。產(chǎn)品功能及特點:1、 適用性廣本設備體積小巧,便于攜帶,通過和手機的綁定,可廣泛適用于錢包,小孩,寵物,公文包,行李拖箱,等其他貴重物品的
發(fā)表于 07-20 08:36

藍牙4.0器方案參考介紹

的貼身好伙伴。設計原理: 手機與之間基于藍牙4.0協(xié)議的2.4G進行無線通信,以通信時的信號強度(RSSI)為參考,再加上一系列的濾波算法,最終基本上實現(xiàn)測量手機與
發(fā)表于 03-21 11:12

【CANNON申請】低功耗藍牙器設計

MCU。藍牙器是結合生活中經(jīng)常一些小東西的情況想出來的創(chuàng)意,希望有機會實現(xiàn)。項目描述:項目主要目的是制作一個藍牙
發(fā)表于 01-26 14:34

基于ZigBee的寵物系統(tǒng),對這個項目有意的請聯(lián)系我哦

基于ZigBee的寵物系統(tǒng),對這個項目有意的請聯(lián)系我哦 qq:779379808功能:1.寵物定位功能 2.安全范圍內(nèi)丟失報警
發(fā)表于 04-14 22:22

天工測控:藍牙網(wǎng)關應用于寵物醫(yī)院__室內(nèi)定位

現(xiàn)在的寵物醫(yī)院一般都會有寵物寄養(yǎng)服務,為了避免因寵物引發(fā)的不良影響,SKYLAB君建議試試藍牙網(wǎng)關室內(nèi)定位方案,精準室內(nèi)定位
發(fā)表于 06-13 15:48

藍牙器方案

藍牙智能器工作原理:藍牙智能器是一種采用藍牙
發(fā)表于 11-05 11:28

藍牙器的特點和功能

智能藍牙器,是采用藍牙技術專門為智能手機設計的器。其工作原理主要是通過距離變化來判斷物品
發(fā)表于 12-24 09:44

如何制作器?

求大神介紹,藍牙器(就是用手機藍牙連接,超過距離藍牙斷開,
發(fā)表于 04-28 23:45

藍牙器原理和作用

想必大家都有丟失過東西吧,比如丟失過手機、錢包、自行車、電動車等等,甚至丟失兒童、老人,丟失設備事小,但是丟失兒童、老人的話,那對一個家庭是一種多么沉痛的打擊啊。所以就出現(xiàn)了器這樣設備。藍牙智能
發(fā)表于 10-13 10:55

藍牙與外設交互(器)

藍牙與外設交互(器)藍牙與外設交互(器)
發(fā)表于 03-03 15:04 ?1次下載

為避免家人走,如何快速制作一款藍牙

,也可用于防止兒童或寵物的走失。 產(chǎn)品采用藍牙4.0技術,具有低功耗、雙向器、自動報警等優(yōu)點。 無線通訊類型 無線通訊類型:藍牙
的頭像 發(fā)表于 09-12 10:26 ?5650次閱讀

藍牙BLE實現(xiàn)器的方法

所謂智能藍牙(SmartBluetooth)器,是采用藍牙技術專門為智能手機設計的器。其
發(fā)表于 05-11 15:22 ?2315次閱讀
<b class='flag-5'>藍牙</b>BLE實現(xiàn)<b class='flag-5'>防</b><b class='flag-5'>丟</b>器的方法

基于51設計的寵物系統(tǒng)(藍牙+Android上位)

基于51設計的寵物系統(tǒng)(藍牙+Android
發(fā)表于 11-25 14:51 ?40次下載
基于<b class='flag-5'>51</b>設計的<b class='flag-5'>寵物</b><b class='flag-5'>防</b><b class='flag-5'>丟</b><b class='flag-5'>系統(tǒng)</b>(<b class='flag-5'>藍牙</b>+<b class='flag-5'>Android</b><b class='flag-5'>上位</b><b class='flag-5'>機</b>)

低功耗藍牙模塊輕松實現(xiàn)智能

手環(huán),智能眼鏡、智能器等,尤其是器,近些年需求旺盛,它能很方便的給出提醒。 ?目前
的頭像 發(fā)表于 05-25 15:19 ?582次閱讀

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會員交流學習
  • 獲取您個性化的科技前沿技術信息
  • 參加活動獲取豐厚的禮品