<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

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

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

?

一、環境介紹

單片機型號: STC89C52

編程軟件: keil5

編程語言: C語言

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

二、功能與硬件介紹

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

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

功能介紹:

防丟功能主要是依靠藍牙來判斷是否已經斷開。

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

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

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

4. APP上可以手動點擊觸發報警

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

APP界面:

如果自己不想焊接,想要直接模塊化搭建環境,可以直接淘寶買系統板+模塊即可:

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

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

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

三、51單片機代碼

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

#define uchar unsigned char 
#define uint unsigned long
    
uchar buffer[8];	//數據緩存數組

uchar rec_flag=0;	//數據處理標志 
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();
    }
}


/************************************************
** 函數名稱 : void InitUART(void)
** 函數功能 : 串口初始化函數
** 輸    入 : 無
** 輸    出 : 無
** 說    明 : 定時器1方式2波特率發生模式,波特率9600bps,晶振11.0592MHZ,誤差0%
**TMOD定時器計數器寄存器,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)
**功能:串口發送函數
**輸入:uchar ch>當前發送數據
**輸出:無
*********************************************/
void TxChar(unsigned char ch)
{
	SBUF=ch;  
	while(!TI);
	TI=0;										
}
void putstring(uchar  *puts) //發送數據
{  
	for(;*puts!=199;puts++)   //遇到停止符199結束 
	TxChar(*puts); 
} 
/************************************************
** 函數名稱 : void ser(void) interrupt 4
** 函數功能 : 串口接收中斷函數
** 輸    入 : 無
** 輸    出 : 無
** 說    明 : 處理串口發送過來的數據串 
************************************************/
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++;
			}
		}		
    }
}
/************************************************
** 函數名稱 : void main(void)
** 函數功能 : 主函數
** 輸    入 : 無
** 輸    出 : 無  
寵物檢測

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

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);//發送數據函數
		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下發的數據
		if(buffer[2]==0x01) //取消蜂鳴器
		{
			STOP=0;
			a1=1;
			buffer[2]=0x00;
		}
		
        //15個300ms還沒有收到APP下發的數據,繼續報警
		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;//蜂鳴器取反  發出聲音提示
		}		
	}	
}


四、Android手機APP代碼


審核編輯:湯梓紅

?

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

    關注

    6006

    文章

    44035

    瀏覽量

    622140
  • Android
    +關注

    關注

    12

    文章

    3873

    瀏覽量

    125803
  • 藍牙
    +關注

    關注

    112

    文章

    5456

    瀏覽量

    166073
  • STC89C52
    +關注

    關注

    40

    文章

    327

    瀏覽量

    81399
收藏 人收藏

    評論

    相關推薦

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

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

    藍牙4.0器方案參考介紹

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

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

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

    基于ZigBee的寵物系統,對這個項目有意的請聯系我哦

    基于ZigBee的寵物系統,對這個項目有意的請聯系我哦 qq:779379808功能:1.寵物定位功能 2.安全范圍內丟失報警
    發表于 04-14 22:22

    基于CSU8DL3510的自拍器設計

    低功耗技術的推出,一顆紐扣電池就能工作一年,使藍牙器成為不二選擇。本文介紹一種基于芯海CSU8DL3510的藍牙4.0
    發表于 08-09 09:31

    天工測控:藍牙網關應用于寵物醫院__室內定位

    現在的寵物醫院一般都會有寵物寄養服務,為了避免因寵物引發的不良影響,SKYLAB君建議試試藍牙網關室內定位方案,精準室內定位
    發表于 06-13 15:48

    兒童智能器設計方案

      系統軟件流程  3.4 系統預計實現結果 ?。ㄒ唬?b class='flag-5'>防丟失提醒功能:  可以將手腕式的發件器(也叫子)帶在小朋友的手腕上,當然也可放在貴重物品上(如手機、錢包、筆記本電腦、相機、甚
    發表于 11-12 10:40

    電子防盜器能實現什么功能?

    在工作、生活快節奏的現代社會,走老人、小孩或寵物;被偷手機、行李等貴重物品;遺忘鑰匙、錢包等物件的事情幾乎每天都在發生。電子防盜器屬于安
    發表于 08-23 06:12

    藍牙器方案

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

    藍牙器的特點和功能

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

    如何制作器?

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

    藍牙器原理和作用

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

    分享一種藍牙4.2器的設計方案

    藍牙4.2器的設計原理是什么?藍牙4.2器有哪些功能?
    發表于 06-26 07:58

    怎樣去設計一個基于51寵物系統

    ,對應平臺上QT的環境搭建,之前博客已經發了文章講解)完整源碼下載地址里包含了: 51單片源碼、Android手機APP源碼、可執行文件apk、各...
    發表于 12-08 07:19

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

    基于51設計的寵物防丟系統(藍牙+Android上位機)
    發表于 11-25 14:51 ?39次下載
    基于<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'>Android</b><b class='flag-5'>上位</b>機)
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>