• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Arduino和App Inventor2的空氣溫濕度檢測(cè)系統(tǒng)設(shè)計(jì)

      2018-02-28 11:19:18楊靜
      電子技術(shù)與軟件工程 2018年21期
      關(guān)鍵詞:交互設(shè)計(jì)

      楊靜

      摘要

      運(yùn)用Arduino和AppInventor2開發(fā)空氣溫濕度檢測(cè)系統(tǒng),將傳統(tǒng)交互設(shè)計(jì)教學(xué)中的界面與硬件相聯(lián)系,能夠更好的理解交互設(shè)計(jì)與如何增強(qiáng)用戶體驗(yàn)。該系統(tǒng)主要由溫濕度傳感器、Arduino UNO開發(fā)板、藍(lán)牙通信模塊、手機(jī)App等構(gòu)成,具有結(jié)構(gòu)簡(jiǎn)單、成本低廉、綜合能力要求較高的特點(diǎn),適合作為項(xiàng)目教學(xué)案例應(yīng)用于交互設(shè)計(jì)專業(yè)和創(chuàng)客教育中。

      【關(guān)鍵詞】Arduino App Inventor2 溫濕度藍(lán)牙通信 交互設(shè)計(jì)

      智能家居作為物聯(lián)技術(shù)在居住環(huán)境中的綜合體現(xiàn),現(xiàn)今己被越來(lái)越多的中國(guó)消費(fèi)者所接受。環(huán)境監(jiān)測(cè)作為其中的一項(xiàng)重要組成部分,通常會(huì)通過各種傳感器對(duì)空氣溫度、濕度、燃?xì)鉂舛取⒒鹧嫣綔y(cè)等項(xiàng)目進(jìn)行監(jiān)測(cè)。其中空氣溫濕度的智能檢測(cè)常作為附加功能應(yīng)用于空調(diào)、加濕器、除濕器等家電,需要啟動(dòng)體量較大的家電才能實(shí)現(xiàn)檢測(cè),成本較高;而傳統(tǒng)的簡(jiǎn)易物理溫濕度測(cè)量?jī)x不具備手機(jī)實(shí)時(shí)顯示的功能,便捷性較低。本文設(shè)計(jì)提出的基于Arduino和APP Inventor2的空氣溫濕度檢測(cè)系統(tǒng),具有通過手機(jī)APP遠(yuǎn)程控制并實(shí)時(shí)顯示空氣溫濕度訊息的功能,具備系統(tǒng)結(jié)構(gòu)簡(jiǎn)易、硬件連接簡(jiǎn)單、軟件制作便捷、APP軟件界面用戶體驗(yàn)順暢、成本較低的優(yōu)點(diǎn),十分適合作為項(xiàng)目教學(xué)案例應(yīng)用于交互設(shè)計(jì)專業(yè)和創(chuàng)客教育中的編程教育中。

      1 系統(tǒng)結(jié)構(gòu)

      本系統(tǒng)由檢測(cè)對(duì)象、溫濕度傳感器、Arduino開發(fā)板、無(wú)線通信模塊、手機(jī)川,P等部分構(gòu)成。檢測(cè)對(duì)象為空氣溫濕度信息;傳感器把在空氣中獲取的溫濕度信息轉(zhuǎn)變?yōu)殡娦盘?hào)輸出至Arduino開發(fā)板;開發(fā)板首先將接收到的空氣溫濕度信息進(jìn)行數(shù)據(jù)處理,通過比特與數(shù)值的換算公式,輸出可直接讀取的溫濕度數(shù)字和符號(hào)信息,例如“32℃78%”;然后開發(fā)板通過無(wú)線通信模塊與控制手機(jī)相連接,手機(jī)APP接收并顯示開發(fā)板輸出的溫濕度信息。

      2 Arduino的硬件連接與編程

      本文設(shè)計(jì)中使用的電路硬件有ArduinoUNO板、DHT11溫濕度傳感器以及HC-06無(wú)線藍(lán)牙通信模塊。Arduino是一個(gè)集合開發(fā)板硬件、Arduino IDE程序開發(fā)環(huán)境、Arduino編程語(yǔ)言,三個(gè)部分的開源工作平臺(tái),擁有適合編程零基礎(chǔ)的學(xué)生學(xué)習(xí)的編程語(yǔ)言和強(qiáng)大的控制器,因其跨平臺(tái)、開源性、易學(xué)性、靈活性、可擴(kuò)展、硬件成本低等特點(diǎn),活躍于國(guó)內(nèi)外的交互設(shè)計(jì)教育中。Arduino UNO是Arduino硬件家族中最為適宜初學(xué)者使用的開發(fā)板,主要由處理器、電源接口、擴(kuò)展插槽,三大部分組成。DHT11溫濕度傳感器是一款可輸出數(shù)字信號(hào)的溫濕度復(fù)合傳感器,穩(wěn)定性較強(qiáng),它的濕度精度為+-5%RH,量程為20%-90%,溫度精度為+-2℃,量程為0℃-50℃。由于本文設(shè)計(jì)中使用的APP hiventor2平臺(tái)支持的無(wú)線通信連接方式僅支持藍(lán)牙,所以選擇HC-06作為通信硬件。HC-06藍(lán)牙模塊是一個(gè)從機(jī)模式無(wú)線藍(lán)牙數(shù)據(jù)傳輸器件,具有低耗能、低成本、傳輸速率高等優(yōu)點(diǎn),通電后可自動(dòng)進(jìn)入AT模式,快速閃爍紅色小燈,有藍(lán)牙設(shè)備接入時(shí)紅燈一直亮,本設(shè)計(jì)中用于接收和傳遞來(lái)自Arduino和手機(jī)APP的指令。

      DHT11溫濕度傳感器與Arduino UNO的接線方式為:VCC接Arduino的5V;GND接Arduino的GND;NC為不連接空腳;DATA接Arduino的數(shù)字I/O腳位2。

      HC-06藍(lán)牙模塊與Arduino UNO的接線方式為:VCC接Arduino的5V;GND接Arduino的GND;TXD發(fā)送端接Afduino的數(shù)字I/O腳位0(RN);RXD接收端接Arduino的數(shù)字I/O腳位1(TX)。

      本設(shè)計(jì)中有關(guān)于Arduino的編程使用Arduino IDE進(jìn)行開發(fā),用于程序驗(yàn)證、上傳、調(diào)試和下載的操作,可在電腦端的串口監(jiān)視器中讀取實(shí)時(shí)采集到的空氣溫濕度數(shù)值。程序主要由定義變量及接口名稱、設(shè)置通信波特率、定義串口指令、獲取數(shù)據(jù)、校對(duì)數(shù)據(jù)、處理數(shù)據(jù)、空氣溫濕度數(shù)據(jù)顯示等部分構(gòu)成,在串口監(jiān)視器中輸入“A”時(shí)開始檢測(cè)溫濕度,輸入“B”時(shí)停止檢測(cè),每隔1秒向串口監(jiān)視器發(fā)送一次溫濕度數(shù)據(jù),程序代碼如下所示:

      #include

      #define pin 2

      int temp;//溫度

      int hurni;//濕度

      int tol;//校對(duì)碼

      int j;

      unsigned int loopCnt;

      int chr[40]={0};//創(chuàng)建數(shù)字?jǐn)?shù)組存儲(chǔ)數(shù)據(jù)

      unsigned long time;

      char flag_on=0;

      void setupo(){Serial.begin(9600);//設(shè)置波特率為9600}

      void loop()

      {

      while(Scrial.available()>0){

      char c=Serial.read();

      if(c=='A'){flag_on=1;//設(shè)置開}

      else if(c=='B'){flag_on=0://設(shè)置關(guān)}

      }

      if(flag_on)//設(shè)置溫濕度檢測(cè){

      bgn:

      delay(2000);

      pinMode(pin,OUTPUT);//設(shè)置2號(hào)接口為輸出模式

      digitalWrite(pin,LOW);//輸出低電平

      delay(20);

      digitalWrite(pin,HIGH);//輸出高電平

      delayMicroseconds(40);

      digitalWrite(pin,LOW);

      piliMode(pin,INPUT);//設(shè)置2號(hào)接口為輸入模式

      //高電平響應(yīng)信號(hào)

      loopCnt=10000;

      while(digitaiRead(pin)!=HIGH){

      if(loopCnt--==0){

      //若不返回高電平,輸出提示從新開始

      Scrial.println("HIGH");

      goto bgn;

      }

      }

      //低電平響應(yīng)信號(hào)

      loopCnt-30000;

      while(digitalRead(pin)!=LOW){

      if(loopCnt--==0){

      //若不返回低電平,輸出提示從新開始

      Serial.println("LOW");

      goto bgn;

      }

      }

      for(int i=0;i<40;i++){

      while(digitaiRead(pin)==LOW){}

      time=micros();

      while(digitaiRead(pin)==HIGH){}

      if(micros()-time>50){chr[i]=1;}

      else{chr[i]=0;}

      }

      //將濕度的8位bit轉(zhuǎn)換為數(shù)值

      humi=chr[0]*128+chr[1]*64+chr[2]*32+chr[3]*16+chr[4]*8+chr[5]*4+chr[6]*2+chr[7];

      //將溫度的9位的bit轉(zhuǎn)換為數(shù)值

      temp=chr[16]*128+chr[17]*64+chr[18]*32+chr[19]*16+chr[20]*8+chr[2]]*4+chr[22]*2+chr[23];

      //將校對(duì)碼的8位的bit轉(zhuǎn)換為數(shù)值

      tol=chr[32]*128+chr[33]*64+chr[34]*32+chr[35]*16+chr[36]*8+chr[37]*4+chr[38]*2+chr[39];

      //輸出溫度和濕度

      Serial.print(temp);

      Serial.print("°C");

      Serial.print(humi);

      Serial.print("%");

      delay(1000);

      }

      }

      3 手機(jī)APP軟件設(shè)計(jì)

      本文設(shè)計(jì)中采用APP Inventor2作為制作手機(jī)APP軟件的平臺(tái)。APP Inventor2是一個(gè)最初由谷歌公司發(fā)布,后移交給MIT進(jìn)行維護(hù)的圖形可視化安卓手機(jī)應(yīng)用制作平臺(tái),廣泛應(yīng)用于非計(jì)算機(jī)專業(yè)的手機(jī)應(yīng)用制作中與樂高機(jī)器人創(chuàng)客活動(dòng)中。該平臺(tái)的軟件設(shè)計(jì)工作區(qū)由組件設(shè)計(jì)和邏輯設(shè)計(jì)兩大部分組成,用戶可通過拖拽模塊進(jìn)行積木式的拼接實(shí)現(xiàn)設(shè)計(jì)與編程,還可使用平臺(tái)附帶的AI伴侶或安卓模擬器進(jìn)行實(shí)時(shí)調(diào)試,極大程度上的降低了學(xué)生的學(xué)習(xí)成本,提高了編程工作者的工作效率。據(jù)研究公司Gartner于2018年2月分享的數(shù)據(jù)表明,2017年全球銷售的智能手機(jī)中Android占據(jù)了86%的份額,本文設(shè)計(jì)中僅設(shè)計(jì)安卓應(yīng)用符合手機(jī)應(yīng)用市場(chǎng)趨勢(shì)。

      手機(jī)App客戶端功能包括選擇藍(lán)牙設(shè)備、連接/斷開藍(lán)牙、開啟\關(guān)閉空氣溫度和濕度檢測(cè)、顯示溫濕度的數(shù)值4個(gè)功能模塊。在組件設(shè)計(jì)部分中,需要使用組件面板中的按鈕、列表選擇框、標(biāo)簽、對(duì)話框、圖像、水平布局、垂直布局、藍(lán)牙客戶端、計(jì)時(shí)器8種組件,組件列表與實(shí)際手機(jī)App初始化界面如圖1所示,“開關(guān)關(guān)”組件屬性為不顯示,右側(cè)初始化界面中的自適應(yīng)手機(jī)界面效果可通過調(diào)整組件列表中水平與垂直布局的組件屬性實(shí)現(xiàn)。

      邏輯設(shè)計(jì)主要分為5個(gè)部分軟件初始化、藍(lán)牙設(shè)備的選擇、藍(lán)牙設(shè)備的連接、設(shè)置按鍵、數(shù)值信息接收。(圖2一圖5)為增強(qiáng)用戶體驗(yàn),在整個(gè)用戶操作過程中增加了多個(gè)狀態(tài)與提示的消息彈出框的設(shè)計(jì),并設(shè)置界面中的按鈕按照操作步驟的順序啟用,啟用狀態(tài)下文字呈現(xiàn)黑色。按鈕填充色為深灰色,禁用狀態(tài)下文字與按鈕呈淺灰色,使界面視覺為界面操作順序進(jìn)行正確的引導(dǎo)。

      (1)軟件初始化。彈出一個(gè)消息框顯示“歡迎使用!”,界面中僅“選擇設(shè)備”列表選擇框可被點(diǎn)擊,其他按鍵皆不可用,溫濕度數(shù)值無(wú)顯示。

      (2)藍(lán)牙設(shè)備的選擇。點(diǎn)擊“選擇設(shè)備”列表選擇框,選擇藍(lán)牙設(shè)備,彈出“請(qǐng)確認(rèn)手機(jī)己和對(duì)方配對(duì)!”的消息框,“連接”按鈕啟用。在實(shí)際手機(jī)應(yīng)用中操作時(shí),首先需要完成手機(jī)藍(lán)牙與HC-06藍(lán)牙之間的配對(duì),待配對(duì)成功后,方可利用平臺(tái)的藍(lán)牙客戶端組件進(jìn)行藍(lán)牙設(shè)備的選擇。

      (3)藍(lán)牙設(shè)備的連接。當(dāng)“連接”按鈕被點(diǎn)擊時(shí),如果藍(lán)牙為非連接狀態(tài),消息框提示“藍(lán)牙連接成功”,“連接”按鈕文本變?yōu)椤皵嚅_連接”,啟用兩個(gè)開關(guān)按鈕,關(guān)閉按鈕不顯示;如果藍(lán)牙為連接狀態(tài),消息框提示“藍(lán)牙己斷開”,“連接”按鈕文本變?yōu)椤罢?qǐng)連接”,禁用兩個(gè)開關(guān)按鈕和計(jì)時(shí)器。

      (4)設(shè)置按鍵。點(diǎn)擊“開關(guān)開”,調(diào)用藍(lán)牙客戶端組件發(fā)送文本"A",啟用計(jì)時(shí)器,“開關(guān)開”隱藏,“開關(guān)關(guān)”顯示,Arduino端開始檢測(cè)空氣溫濕度;點(diǎn)擊“開關(guān)關(guān)”,調(diào)用藍(lán)牙客戶端組件發(fā)送文本“B”,關(guān)閉計(jì)時(shí)器,“開關(guān)關(guān)”隱藏,“開關(guān)關(guān)”顯示,Arduino端中止檢測(cè)溫濕度。

      (5)數(shù)值信息接收。啟用計(jì)時(shí)器時(shí),每100毫秒調(diào)用藍(lán)牙客戶端組件接收Arduino端發(fā)送的溫濕度數(shù)值,在“溫濕度數(shù)值”標(biāo)簽處進(jìn)行顯示。

      4 結(jié)語(yǔ)

      運(yùn)用Arduino和APP Inventor2開發(fā)空氣溫濕度檢測(cè)系統(tǒng),將傳統(tǒng)交互設(shè)計(jì)教學(xué)中的界面與硬件相聯(lián)系,能夠幫助學(xué)生更好的理解交互設(shè)計(jì)與如何增強(qiáng)用戶體驗(yàn),提升學(xué)生綜合思考問題的能力。實(shí)際教學(xué)中可依據(jù)該項(xiàng)目引導(dǎo)學(xué)生進(jìn)行溫濕度條件提示、溫度或濕度的單一應(yīng)用、與其它電路器件組合等方向的編程與界面的設(shè)計(jì)探究。

      參考文獻(xiàn)

      [1]王登宏,歷佳男,賀雪輝等,基于Arduino的手機(jī)同步顯示溫濕度檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2016,29(07):43-49.

      [2]張展瑋,唐細(xì)永,葉展鵬,申耀武.基于Arduino控制的移動(dòng)平臺(tái)設(shè)計(jì)[J].無(wú)線互聯(lián)科技,2017(02):48-49+57.

      [3]劉彥,王倩,王可.Arduino單片機(jī)在產(chǎn)品交互原型設(shè)計(jì)課程中的實(shí)驗(yàn)教學(xué)實(shí)踐[J].藝術(shù)科技,2016(12):1-3.

      猜你喜歡
      交互設(shè)計(jì)
      RRS交互機(jī)制分析及基于該機(jī)制的節(jié)水APP實(shí)現(xiàn)
      淺談交互設(shè)計(jì)在工業(yè)設(shè)計(jì)中的運(yùn)用
      莆田電子商務(wù)界面設(shè)計(jì)的藝術(shù)研究
      交互設(shè)計(jì)在工業(yè)設(shè)計(jì)中的應(yīng)用分析
      资源县| 苍山县| 翁牛特旗| 灵武市| 开平市| 沙洋县| 巨野县| 额敏县| 保康县| 灵川县| 辽阳市| 翁源县| 六枝特区| 繁昌县| 右玉县| 双鸭山市| 安远县| 惠东县| 崇左市| 弥勒县| 平利县| 乌兰县| 米脂县| 调兵山市| 扶余县| 富阳市| 如东县| 克什克腾旗| 恩平市| 大兴区| 苗栗县| 米脂县| 高邑县| 温宿县| 赤城县| 攀枝花市| 广饶县| 邢台市| 钟祥市| 莲花县| 格尔木市|