<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 一種智能手機(jī)獲取監(jiān)測環(huán)境溫度、濕度的實現(xiàn)方法

          一種智能手機(jī)獲取監(jiān)測環(huán)境溫度、濕度的實現(xiàn)方法

          作者:鄒崢嶸 時間:2015-06-08 來源:電子產(chǎn)品世界 收藏
          編者按:本文介紹一種利用智能手機(jī)耳機(jī)接口音頻傳輸,來實現(xiàn)智能手機(jī)拓展監(jiān)測環(huán)境溫度、濕度的應(yīng)用設(shè)計與實現(xiàn)方案,同時提出了可兼容2種不同耳機(jī)接口標(biāo)準(zhǔn)的解決方案,增強(qiáng)了智能手機(jī)拓展應(yīng)用價值。

          4.1 耳機(jī)連接物理接口電路

          本文引用地址:http://www.ex-cimer.com/article/274760.htm

            本方案兼容這兩種標(biāo)準(zhǔn),通過如圖4電路,硬件自動識別并進(jìn)行對應(yīng)硬件配置,該麥克風(fēng)與地自動判別自適應(yīng)電路包含地信號自適應(yīng)電路和麥克信號自適應(yīng)電路,當(dāng)該電路插入到手機(jī)耳機(jī)端口后,能根據(jù)所插入的類型,自動調(diào)整外設(shè)備端的麥克風(fēng)信號和地信號極性,達(dá)到適應(yīng)不同的手機(jī)耳機(jī)接口的目的。如圖4所示所述地信號自適應(yīng)電路,由分別接至麥克信號與地信號的MOS管Q3或Q4和偏置電阻R24或者R27所組成,該MOS管選用N溝道MOSFET 2N7002,利用手機(jī)地信號和麥克信號的特性來自動調(diào)整相應(yīng)的地信號同設(shè)備地連接。所述的麥克信號自適應(yīng)電路,由兩個分別接于地信號和麥克信號上的二極管D6和D7組成,所述的兩個二極管的正極端分別接至地信號與麥克信號,負(fù)極端與設(shè)備端MIC信號連接,利用手機(jī)麥克信號的直流偏置來自動調(diào)整相應(yīng)的麥克信號同設(shè)備端麥克信號連接。

          4.2 數(shù)據(jù)傳輸模塊的軟件設(shè)計

            耳機(jī)外設(shè)溫濕度測量解決方案需要執(zhí)行兩個軟件程序:

            ● 運行在上的應(yīng)用APP程序;

            ● 運行在耳機(jī)外設(shè)EFM32ZG108F16微控制器上的嵌入式固件。

            通信雙方的手機(jī)與耳機(jī)外設(shè)終端采用軟件方法實現(xiàn)。左聲道被用作手機(jī)至耳機(jī)外設(shè)裝置的數(shù)據(jù)傳輸。有效數(shù)據(jù)被封裝在一個小數(shù)據(jù)包,曼徹斯特線路便把被用于這些數(shù)據(jù)位的編碼。在耳機(jī)外設(shè)裝置上,EFM32內(nèi)置的比較器被用于將模擬數(shù)據(jù)轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)。EFM32用于解碼這些曼徹斯特編碼的比特數(shù)據(jù)流并繼續(xù)處理,這些有效數(shù)據(jù)通過程序?qū)亩鷻C(jī)音頻輸出接口采集到的音頻信號進(jìn)行差分曼徹斯特解碼,解碼后的數(shù)據(jù)命令將指揮微控制器對環(huán)境溫濕度傳感器啟動數(shù)據(jù)采集,并將數(shù)據(jù)存儲在微控制器RAM中,然后依次對這些采集數(shù)據(jù)再進(jìn)行差分曼徹斯特編碼,經(jīng)整形電路,并送到耳機(jī)音頻輸入MIC接口,發(fā)到手機(jī)端作解碼。程序由3個線程構(gòu)成,當(dāng)數(shù)據(jù)傳輸服務(wù)程序在手機(jī)上啟動后形成3個線程:(1)創(chuàng)建一個音頻交流信號左聲道發(fā)送線程,負(fù)責(zé)設(shè)置輸出最大音量,生成固定頻率音頻交流信號,并發(fā)送到音頻輸出線路上;(2)創(chuàng)建一個監(jiān)聽音頻輸入接口數(shù)據(jù)的線程,負(fù)責(zé)對從音頻輸入接口采集到的音頻信號,進(jìn)行差分曼徹斯特解碼,解碼輸出數(shù)據(jù)存放在接收數(shù)據(jù)緩存,然后調(diào)用外部業(yè)務(wù)程序執(zhí)行耳機(jī)外設(shè)的測量溫濕度的命令,上傳采集到的數(shù)據(jù);(3)主線程循環(huán)等待發(fā)送數(shù)據(jù)緩存中的數(shù)據(jù)存入事件,當(dāng)外部業(yè)務(wù)程序在數(shù)據(jù)要發(fā)送時,將要發(fā)送的數(shù)據(jù)放入共享的發(fā)送數(shù)據(jù)緩存時,所述的主線程取到要發(fā)送的數(shù)據(jù),進(jìn)行差分曼徹斯特編碼,再用操作系統(tǒng)的音頻控制接口函數(shù)發(fā)送到音頻輸出接口MIC通路上。

            針對耳機(jī)設(shè)端的嵌入式軟件,主要運行于free RTOS操作系統(tǒng),如圖5為耳機(jī)外設(shè)端軟件流程圖,其中底層數(shù)據(jù)傳送幀格式為:Stat byte+ n byte+ End byte,驅(qū)動層將主要完成曼徹斯特(Manchester)數(shù)據(jù)收發(fā)編碼是關(guān)鍵,MCU將使用內(nèi)部的模擬比較器+定時器捕獲來作解碼;而數(shù)據(jù)編碼則通過MCU內(nèi)部的SPI+DMA 作編碼。

            如圖6所示為應(yīng)用軟件流程圖,這里我們將提供運行于Android操作系統(tǒng)下的App應(yīng)用程序節(jié)選例程,采用java編程,分為通過錄音把耳機(jī)外設(shè)發(fā)送上來的方波數(shù)據(jù)轉(zhuǎn)換為PCM數(shù)據(jù)。

          5 結(jié)語

            本方案設(shè)計并實現(xiàn)了利用耳機(jī)音頻接口傳輸,實現(xiàn)擴(kuò)展監(jiān)測環(huán)境溫濕度數(shù)據(jù)顯示,從實際測試狀況來看,基本達(dá)到了應(yīng)用需求,可兼容滿足2種不同耳機(jī)接口標(biāo)準(zhǔn)的智能手機(jī)拓展應(yīng)用,由此給智能手機(jī)拓展應(yīng)用帶來深遠(yuǎn)影響。

          參考文獻(xiàn):

          [1] Energymicro,EFM32ZG108_Datasheet_Rev1.0[EB/OL].www.energymicro.com,July.2,2014

          [2] Sensirion_Humidity_SHT21_Datasheet_V4[EB/OL].www.sensirion.compdf, May 2014

          [3] Energymicro,an0054_efm32_phone_audio_jack_interface_Rev1.0[EB/OL].www.energymicro.com,May,24,2013[4] Sonal Verma,Andrew Robinson,Prabal Dutta.AudioDAQ: Turning the Mobile Phone's Ubiquitous Headset Port into a Universal Data Acquisition Interface[J], Sensys'12: Proceedings of the 10th ACM Conference on Embedded Networked Sensor Systems, Nov 2012

          [5] Ye-Sheng Kuo,Sonal Verma,Thomas Schmid, Hijacking Power and Bandwidth from the Mobile Phone's Audio Interface[J], First Annual Symposium on Computing for Development (DEV'10), Dec. 2010

          土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理
          溫濕度控制器相關(guān)文章:溫濕度控制器原理

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();