基于51單片機(jī)WiFi控制智能窗簾設(shè)計(jì)與制作_第1頁
基于51單片機(jī)WiFi控制智能窗簾設(shè)計(jì)與制作_第2頁
基于51單片機(jī)WiFi控制智能窗簾設(shè)計(jì)與制作_第3頁
基于51單片機(jī)WiFi控制智能窗簾設(shè)計(jì)與制作_第4頁
基于51單片機(jī)WiFi控制智能窗簾設(shè)計(jì)與制作_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

目錄

1產(chǎn)品功能分析....................................................1

2設(shè)計(jì)方案遴選....................................................1

2.1單片機(jī)的選擇...............................................1

2.2通訊方式的選擇.............................................1

2.3系統(tǒng)框圖設(shè)計(jì)...............................................1

3產(chǎn)品硬件設(shè)計(jì)....................................................2

3.1STC89C52RC單片機(jī)核心電路設(shè)計(jì)..............................2

3.2按鍵電路設(shè)計(jì)...............................................2

3.3ESP8266WiFi模塊電路設(shè)計(jì)...................................3

4產(chǎn)品軟件設(shè)計(jì)....................................................4

4.1主程序流程圖...............................................4

4.2ESP8266WiFi模塊控制程序設(shè)計(jì)...............................5

4.3上位機(jī)APP程序設(shè)計(jì).........................................6

4.4產(chǎn)品程序清單...............................................7

5產(chǎn)品使用說明....................................................8

5.1產(chǎn)品裝配圖.................................................8

5.2產(chǎn)品調(diào)試...................................................8

5.3產(chǎn)品使用說明...............................................8

6產(chǎn)品設(shè)計(jì)技術(shù)標(biāo)準(zhǔn).................................................9

參考資料..........................................................10

附錄..............................................................11

附錄1元器件清單..............................................11

附錄2電路原理圖..............................................12

附錄3PCB設(shè)計(jì)圖...............................................13

附錄4產(chǎn)品實(shí)物圖..............................................14

附錄5主程序代碼..............................................16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

基于51單片機(jī)WiFi控制智能窗簾設(shè)計(jì)與制作

1產(chǎn)品功能分析

該設(shè)計(jì)具有窗簾控制系統(tǒng)的最基本的功能,可以通過微動(dòng)開關(guān)控制窗簾開

合,在此基本功能的前提下,該智能窗簾還設(shè)計(jì)了可以通過光照強(qiáng)度控制窗簾

自動(dòng)開合功能,考慮到使用更加方便,本設(shè)計(jì)還了采用WiFi模塊連接手機(jī)APP,

可以用手機(jī)APP控制窗簾開合。

2設(shè)計(jì)方案遴選

2.1單片機(jī)的選擇

采用STC89C52芯片,STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存

儲(chǔ)器的低電壓,高性能微處理器。

2.2通訊方式的選擇

選擇WiFi控制的通訊方式,采用ESP8266串口WiFi模塊,該模塊可以連

接WiFi熱點(diǎn),并與外部設(shè)備進(jìn)行雙向通訊。在此情況下ESP8266可以作為一個(gè)

WiFi接口,去連接外部設(shè)備,連接后就可以發(fā)送和接收數(shù)據(jù)來控制設(shè)備。

2.3系統(tǒng)框圖設(shè)計(jì)

系統(tǒng)組成框圖如圖1所示。

圖1系統(tǒng)組成框圖

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3產(chǎn)品硬件設(shè)計(jì)

3.1STC89C52RC單片機(jī)核心電路設(shè)計(jì)

單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片

機(jī)可以工作的系統(tǒng)。對(duì)51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、

晶振電路、復(fù)位電路。一個(gè)51單片機(jī)的最小系統(tǒng)如圖2所示。

VCCU3VCCJ?

140

P1.0VCC1

24239

P1.1(AD0)P0.02

KS338

P1.2(AD1)P0.13

437

P1.3(AD2)P0.24

536

P1.4(AD3)P0.35

+C1635

P1.5(AD4)P0.46

10uFRESET734

P1.6(AD5)P0.57

3

1833

P1.7(AD6)P0.68

932

RST(AD7)P0.79

1031

P3.0(RXD)EA/VPP

1130CON9

P3.1(TXD)ALE/PROG

R271229

P3.2(INT0)PSEN

10K1328

P3.3(INT1)(A15)P2.7

1427

P3.4(T0)(A14)P2.6

1526

P3.5(T1)(A13)P2.5

C22301625

P3.6(WR)(A12)P2.4

1724

P3.7(RD)(A11)P2.3

1823

XTAL2(A10)P2.2

z1922

XTAL1(A9)P2.1

H2021

MGND(A8)P2.0

2

C2330189C51/C52

圖2最小系統(tǒng)電路圖

單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下

重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行

中,受到環(huán)境干擾出現(xiàn)程序跑飛的時(shí)候,按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開

始執(zhí)行。

一般的晶振振蕩電路都是在一個(gè)反相放大器的兩端接入晶振,再有兩個(gè)電

容分別接到晶振的兩端,每個(gè)電容的另一端再接到地,這兩個(gè)電容串聯(lián)的容量

值就應(yīng)該等于負(fù)載電容,一般的晶振的負(fù)載電容為15pF或12.5pF如果再考慮

元件引腳的等效輸入電容則兩個(gè)22pF的電容構(gòu)成晶振的振蕩電路就是比較好

的選擇。

3.2按鍵電路設(shè)計(jì)

本設(shè)計(jì)僅采用兩個(gè)按鍵:作用是控制窗簾自動(dòng)開合的啟動(dòng)與暫停,以及

電源開關(guān)。電路圖如圖3,圖4所示。

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3圖4

3.3ESP8266WiFi模塊電路設(shè)計(jì)

ESP8266是一個(gè)完整且自成體系的WiFi網(wǎng)絡(luò)解決方案,能夠獨(dú)立運(yùn)行,

也可以作為slave搭載于其他Host運(yùn)行。

在搭載應(yīng)用并作為設(shè)備中唯一的應(yīng)用處理器時(shí),能夠直接從外接閃存中啟

動(dòng)。內(nèi)置的高速緩沖存儲(chǔ)器有利于提高系統(tǒng)性能,并減少內(nèi)存需求。另外一種

情況是,無線上網(wǎng)接入承擔(dān)WiFi適配器的任務(wù)時(shí),可以將其添加到任何基于

微控制器的設(shè)計(jì)中,連接簡(jiǎn)單易行,只需通過SPI/SDIO接口或中央處理器AHB

橋接口即可。

強(qiáng)大的片上處理和存儲(chǔ)能力,使其可通過GPIO口集成傳感器及其他應(yīng)用的

特定設(shè)備,實(shí)現(xiàn)了最低前期的開發(fā)和運(yùn)行中最少地占用系統(tǒng)資源。

高度片內(nèi)集成,包括天線開關(guān)balun、電源管理轉(zhuǎn)換器,因此僅需極少的外

部電路,且包括前端模塊在內(nèi)的整個(gè)解決方案在設(shè)計(jì)時(shí)將所占PCB空間降到最

低。

裝有ESP8266的系統(tǒng)表現(xiàn)出來的領(lǐng)先特征有:節(jié)能VoIP在睡眠/喚醒模式

之間的快速切換、配合低功率操作的自適應(yīng)無線電偏置、前端信號(hào)的處理功能、

故障排除和無線電系統(tǒng)共存特性為消除蜂窩/藍(lán)牙/DDR/LVDS/LCD干擾。

ESP8266的三種工作模式

(1)AP模式(模塊作為熱點(diǎn),可以發(fā)散出wifi信號(hào),實(shí)現(xiàn)手機(jī)或電腦直接與模

塊通訊,實(shí)現(xiàn)局域網(wǎng)無線控制)

(2)STA模式(模塊通過路由器連接互聯(lián)網(wǎng),手機(jī)或電腦通過互聯(lián)網(wǎng)實(shí)現(xiàn)對(duì)設(shè)

備的遠(yuǎn)程控制)

(3)STA+AP模式(兩種模式的共存即可通過互聯(lián)網(wǎng)控制可實(shí)現(xiàn)無縫對(duì)接切換)

本設(shè)計(jì)采用了第一種工作模式,電路原理圖如圖5所示。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5WIFI接口電路

4產(chǎn)品軟件設(shè)計(jì)

4.1主程序流程圖

主程序流程圖如圖6所示。

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖6主程序流程圖

4.2ESP8266WiFi模塊控制程序設(shè)計(jì)

使用軟件keliuVsion5,C語言編寫單片機(jī)程序通過esp8266實(shí)現(xiàn)單片機(jī)與

手機(jī)APP的數(shù)據(jù)通信。通過這個(gè)wifi模塊進(jìn)行局域網(wǎng)模擬控制窗簾。

原理:這里沒有更改8266的at固件,所以編程讓51單片機(jī)使用AT指令

一步一步設(shè)置wifi模塊,讓其開啟AP模式,也就是熱點(diǎn),設(shè)置名字為esp8266

和密碼,配置器開啟服務(wù)器,8080端口,獲取當(dāng)前esp8266的IP地址顯示出來,

此時(shí)手機(jī)打開wifi,連接wifi模塊的,打開手機(jī)上網(wǎng)絡(luò)調(diào)試助手,輸入IP地

址和端口,點(diǎn)擊開啟客戶端,就能夠跟8266連接上了,此時(shí)可以互相發(fā)送數(shù)據(jù),

這里就直接通過單片機(jī)的串口接收中斷來解析對(duì)應(yīng)的命令格式,根據(jù)命令來開

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

閉窗簾。

4.3上位機(jī)APP程序設(shè)計(jì)

上位機(jī)APP開發(fā)使用Androidstudio編寫代碼。

UI界面設(shè)計(jì)流程:

采用RelativeLayout布局,在下方設(shè)計(jì)三個(gè)TextView和一個(gè)EditText,

TextView分別顯示“WiFi智能窗簾控制系統(tǒng)”,“自動(dòng)模式開關(guān)“,”手動(dòng)開

關(guān)”,EditText用于使用者輸入IP地址與端口號(hào)。

接下來設(shè)計(jì)五個(gè)Button,分別用于“關(guān)閉自動(dòng)“,”打開自動(dòng)“,”打

開”,”關(guān)閉”,”停止”。

設(shè)計(jì)Java代碼:

需要Java控制監(jiān)聽五個(gè)button事件,對(duì)每一次按下次做出數(shù)據(jù)反饋,將

數(shù)據(jù)上反饋至單片機(jī)控制窗簾開閉。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.4產(chǎn)品程序清單

圖7產(chǎn)品程序清單

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5產(chǎn)品使用說明

5.1產(chǎn)品裝配圖

圖8產(chǎn)品裝配圖

5.2產(chǎn)品調(diào)試

將元器件電路焊接好,使用萬用表檢測(cè)是否出現(xiàn)短路情況。確保無誤后接

通電源,用光源照射光敏電阻,測(cè)試自動(dòng)測(cè)光開合功能是否正常。

調(diào)試ESP8266WiFi模塊,使用AT命令配置WiFi模塊,設(shè)置模塊熱點(diǎn)的賬

戶號(hào)密碼。

測(cè)試APP是否正常運(yùn)行,連接智能窗簾WiFi信號(hào),控制窗簾開合即可。

5.3產(chǎn)品使用說明

(1)接通電源可使用自動(dòng)模式:可感知光線強(qiáng)度,光強(qiáng)時(shí)控制窗簾關(guān)閉,

光弱時(shí)控制窗簾打開。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

(2)使用ESP8266串口WIFI模塊連接WiFi控制APP,可實(shí)現(xiàn):手動(dòng)模式:

使用APP連接控制,可手動(dòng)打開或關(guān)閉窗簾。

6產(chǎn)品設(shè)計(jì)技術(shù)標(biāo)準(zhǔn)

[1]J-STD-001E電氣與電子組件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E電子組件的可接受性要求

[3]IPC-7711/21電子組件和電路板的返工&返修

[4]GB/T11457-2006信息技術(shù)軟件工程術(shù)語

[5]GB/T8566-2007信息技術(shù)軟件生存周期過程標(biāo)準(zhǔn)

[6]GB/T8567-2006計(jì)算機(jī)軟件文檔編制規(guī)范

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

參考資料

[1]馬忠梅等,單片機(jī)的C語言應(yīng)用程序設(shè)計(jì),北京航空航天大學(xué)出版社,2003修訂版

[2]李廣弟等單片機(jī)基礎(chǔ)北京航空航天出版社,2001.7

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄

附錄1元器件清單

CommentDescriptionDesignatorFootprintLibRefQuantity

Header

Header4X2Header,4-Pin,Dualrow8266HDR2X41

4X2

Header5Header,5-PinbjjkHDR1X5Header51

CapCapacitorC1,C2HDR1X2Cap2

PolarizedCapacitor

CapPol1C3,lb1R.1/.2ACapPol12

(Radial)

Header4Header,4-Pinck1,gmHDR1X4Header42

L324D1LED2.5LED1

Header3Header,3-PindyzPOWER_P3Header31

DIPSwitch,2Position,

SWDIP-2f1SW-PB2.5SWDIP-21

SPST

Res2ResistorR3,xy1AXIAL-0.4Res22

MCUU1DIP40at89c511

DIPSwitch,8Position,ULN2003步

SWDIP-8DIP_SW_8WAY_SMDSWDIP-81

SPST進(jìn)電機(jī)芯片

XTALCrystalOscillatorY1XTAL1_ARCXTAL1

DIPSwitch,2Position,

SWDIP-2使能按鍵DIP-4SWDIP-21

SPST

Diode1AmpGeneralPurposeDiode

降壓二極管DO-411

1N4001Rectifier1N4001

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄2電路原理圖

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄3PCB設(shè)計(jì)圖

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄4產(chǎn)品實(shí)物圖

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄5主程序代碼

單片機(jī)程序

#include"reg51.h"

#defineuintunsignedint

#defineucharunsignedchar

sbitgm=P1^0;

sbitwd1=P1^1;

unsignedcharkongzhi=0;

unsignedcharcodeRUN1[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//正轉(zhuǎn)

unsignedcharcodeRUN2[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//反轉(zhuǎn)

voidchushihua()

{

IE=0x90;

SCON=0x50;

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TCON=0x40;

TR1=1;

ES=1;

EA=1;

}

//串行口連續(xù)發(fā)送char型數(shù)組,遇到終止號(hào)/0將停止

voidfasongshuju(uchar*str)

{

while(*str!='\0')

{

SBUF=*str;

while(!TI);//等待發(fā)送完成信號(hào)(TI=1)出現(xiàn)

TI=0;

str++;

}

}

//延時(shí)函數(shù)

voidyanshi(uintttt)

{

while(ttt--);

}

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

//ESP8266上電初始化

voidwifichushihua()

{

fasongshuju("AT+CIPMUX=1\r\n");

yanshi(50000);

fasongshuju("AT+CIPSERVER=1,8080\r\n");

}

/******延時(shí)函數(shù)****************/

voiddelay(unsignedintt)

{

unsignedintk;

while(t--)

{

for(k=0;k<60;k++)//用for的空循環(huán)延長(zhǎng)程序的執(zhí)行時(shí)間

{}

}

}

//步進(jìn)電機(jī)驅(qū)動(dòng)正轉(zhuǎn)

voidzz()

{

unsignedchari;

for(i=0;i<8;i++)//一個(gè)周期轉(zhuǎn)3.75*8=30度

{

P2=RUN1[i]&0x1f;//取數(shù)據(jù)

delay(2);//調(diào)節(jié)轉(zhuǎn)速

}

}

//步進(jìn)電機(jī)驅(qū)動(dòng)反轉(zhuǎn)

voidfz()

{

unsignedchari;

for(i=0;i<8;i++)//一個(gè)周期轉(zhuǎn)3.75*8=30度

{

P2=RUN2[i]&0x1f;//取數(shù)據(jù)

delay(2);//調(diào)節(jié)轉(zhuǎn)速

}

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

//傳感器自動(dòng)控制的

voidzidong()

{

if(gm==0)//有光的時(shí)候

{

zz();

}

else//無光的時(shí)候

{

fz();

}

}

voidmain()

{

yanshi(50000);

yanshi(5000);

chushihua();

wifichushihua();

while(1)

{

if(kongzhi==1)

{

zz();

}

if(kongzhi==2)

{

fz();

}

if(kongzhi==3)

{

P2=0xff;

}

if(kongzhi==4)

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

{

zidong();

}

if(wd1==0)

{

kongzhi=3;

}

}

}

/*

串口服務(wù)子函數(shù)

*/

voidtime()interrupt4

{

if(RI)

{

RI=0;

switch(SBUF)

{

case'a':kongzhi=1;break;//接收到安卓端的'a'字符

case'b':kongzhi=2;break;//接收到安卓端的'b'字符

case'c':kongzhi=3;break;//接收到安卓端的'b'字符

case'd':kongzhi=4;break;//接收到安卓端的'c'字符

/*

case'e':guangbiaozhiwei=1;P2=0xff;

break;//接收到安卓端的'd'字符

*/

}

}

}

19

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

上位機(jī)APP程序代碼

APP布局程序:

<RelativeLayoutxmlns:android="/apk/res/android"

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".Main">

<Button

android:id="@+id/guanbizidongbtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/dakaizidong"

android:layout_alignBottom="@+id/dakaizidong"

android:layout_alignParentRight="true"

android:text="關(guān)閉自動(dòng)"

android:textSize="20sp"/>

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:text="WiFi智能窗簾控制系統(tǒng)"

android:textSize="30sp"

/>

<EditText

android:id="@+id/iped"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/textView3"

android:layout_centerHorizontal="true"

android:ems="10"

android:text="12:8080"

android:textSize="25sp"/>

<Button

20

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

android:id="@+id/dakaizidong"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/iped"

android:layout_marginTop="122dp"

android:text="打開自動(dòng)"

android:textSize="20sp"/>

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/guanbizidongbtn"

android:layout_centerHorizontal="true"

android:text="自動(dòng)模式開關(guān)"

android:textSize="30sp"/>

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/dakaizidong"

android:layout_centerHorizontal="true"

android:layout_marginTop="74dp"

android:text="手動(dòng)開關(guān)"

android:textSize="30sp"

/>

<Button

android:id="@+id/dakaibtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/textView1"

android:text="打開"

android:textSize="20sp"/>

<Button

android:id="@+id/guanbibtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/dakaibtn"

21

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

android:layout_alignBottom="@+id/dakaibtn"

android:layout_alignParentRight="true"

android:text="關(guān)閉"

android:textSize="20sp"/>

<Button

android:id="@+id/tingzhibtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:text="停止"

android:textSize="20sp"/>

</RelativeLayout>

APPJava程序設(shè)計(jì):

packagecom.example.wificontrol;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.PrintWriter;

import.Socket;

importjava.util.ArrayList;

importjava.util.Timer;

importjava.util.TimerTask;

importandroid.app.Activity;

importandroid.app.PendingIntent;

importandroid.content.ContentValues;

importandroid.content.Context;

importandroid.content.Intent;

importandroid.content.SharedPreferences;

importandroid.content.SharedPreferences.Editor;

importandroid.content.pm.ActivityInfo;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.telephony.TelephonyManager;

importandroid.telephony.gsm.SmsManager;

importandroid.util.Log;

22

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

importandroid.view.KeyEvent;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.view.Window;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.TextView;

importandroid.widget.Toast;

publicclassMainActivityextendsActivity{

EditTextIPText;

Buttondakaizidongbtn,guanbizidongbtn;

Buttondakaibtn,guanbibtn;

Buttontingzhibtn;

privateContextmContext;

privatebooleanisConnecting=false;

privatebooleanonflag=false;

privateThreadmThreadClient=null;

privateSocketmSocketClient=null;

staticBufferedReadermBufferedReaderServer=null;

staticPrintWritermPrintWriterServer=null;

staticInputStreammBufferedReaderClient=null;

staticPrintWritermPrintWriterClient=null;

privateStringrecvMessageClient="";

privateStringrecvMessageServer="";

@Override

protectedvoidonCreate(BundlesavedInstanceState){

//Log.v(tag,"log---------->onCreate!");

super.onCreate(savedInstanceState);

//requestWindowFeature(Window.FEATURE_NO_TITLE);

//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

setContentView(R.layout.activity_main);

mContext=this;

IPText=(EditText)findViewById(R.id.iped);

//按鍵獲取

dakaizidongbtn=(Button)findViewById(R.id.dakaizidong);

guanbizidongbtn=(Button)findViewById(R.id.guanbizidongbtn);

dakaibtn=(Button)findViewById(R.id.dakaibtn);

guanbibtn=(Button)findViewById(R.id.guanbibtn);

23

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

tingzhibtn=(Button)findViewById(R.id.tingzhibtn);

dakaibtn.setOnClickListener(newdakai());

guanbibtn.setOnClickListener(newguanbi());

dakaizidongbtn.setOnClickListener(newdakaizidong());

guanbizidongbtn.setOnClickListener(newguanbizidong());

tingzhibtn.setOnClickListener(newtingzhi());

IPText.setText("12:8080");

lianjie();

}

classdakaiimplementsOnClickListener

{

@Override

publicvoidonClick(Viewv){

if(isConnecting&&mSocketClient!=null){

newThread(){

publicvoidrun(){

Stringoutput="a";

try{

mPrintWriterClient.print(output);//?????????????

mPrintWriterClient.flush();

}

catch(Exceptione){

//TODO:handleexception

Toast.makeText(mContext,"通訊尚未",

Toast.LENGTH_SHORT).show();

24

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

};

}.start();

}

if(mSocketClient==null){

Toast.makeText(mContext,"未連接,請(qǐng)退出之后先連接wifi再打

開APP",Toast.LENGTH_SHORT).show();

}

}

}

classguanbiimplementsOnClickListener

{

@Override

publicvoidonClick(Viewv){

if(isConnecting&&mSocketClient!=null){

newThread(){

publicvoidrun(){

Stringoutput="b";

try{

mPrintWriterClient.print(output);//?????????????

mPrintWriterClient.flush();

}

catch(Exceptione){

//TODO:handleexception

Toast.makeText(mContext,"手機(jī)通信權(quán)限未開放"+

e.getMessage(),

Toast.LENGTH_SHORT).show();

}

};

}.start();

25

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

if(mSocketClient==null){

Toast.makeText(mContext,"未連接,請(qǐng)退出之后先連接wifi再打

開APP",Toast.LENGTH_SHORT).show();

}

}

}

classtingzhiimplementsOnClickListener

{

@Override

publicvoidonClick(Viewv){

if(isConnecting&&mSocketClient!=null){

newThread(){

publicvoidrun(){

Stringoutput="c";

try{

mPrintWriterClient.print(output);//?????????????

mPrintWriterClient.flush();

}

catch(Exceptione){

//TODO:handleexception

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論