久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6570|回復: 25
收起左側

【Arduino】168種傳感器模塊系列實驗(146)---MT8870語音解碼

[復制鏈接]
ID:513258 發表于 2020-3-3 12:19 | 顯示全部樓層 |閱讀模式
本帖最后由 eagler8 于 2020-3-3 17:08 編輯

37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里準備逐一動手試試做實驗,不管成功與否,都會記錄下來---小小的進步或是搞不定的問題,希望能夠拋磚引玉。

【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
實驗一百四十六:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路



0.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-3 12:21 | 顯示全部樓層
MT8870
音調譯碼器(Tone Decoder)是 MITEL 公司所開發生產為一顆常用復頻譯碼 IC,這個電路可以接收 DTMF 信號,是一個完整的 DTMF 接收器。它接收了 DTMF 信號后,內部將信號分成高頻帶和低頻帶,并將此信號送至數字譯碼器,然后將訊號送至數字譯碼器以解出按鍵值,接著將解出的按鍵值以二進制的方式以四條線(Q1、Q2、Q3、Q4)輸出到外部共享 Bus 上,其MT8870 接腳說明如表 1 及內部結構如圖 2。值得一提的是,當 MT8870 解出一個按鍵值且輸出到外部時,其 STD 接腳會由低態升為高態,經一段時間后再降為低態,我們便可利用此特點偵測到此腳有訊號時便馬上將 Q1-Q4 接腳所產生的值讀入 CPU,然后解出電話的按鍵值。


0-.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-3 12:50 | 顯示全部樓層
04 (1).jpg

02.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-3 12:58 | 顯示全部樓層
03 (1).jpg
回復

使用道具 舉報

ID:513258 發表于 2020-3-3 13:07 | 顯示全部樓層
DTMF
雙音多頻 DTMF(Dual Tone Multi Frequency),雙音多頻,由高頻群和低頻群組成,高低頻群各包含4個頻率。一個高頻信號和一個低頻信號疊加組成一個組合信號,代表一個數字。DTMF信號有16個編碼。利用DTMF信令可選擇呼叫相應的對講機。

在編碼時將擊鍵或數字信息轉換成雙音信號并發送,解碼時在收到的DTMF信號中檢測擊鍵或數字信息的存在性。一個DTMF信號由兩個頻率的音頻信號疊加構成。這兩個音頻信號的頻率來自兩組預分配的頻率組:行頻組或列頻組。每一對這樣的音頻信號唯一表示一個數字或符號。電話機中通常有16個按鍵,其中有10個數字鍵0~9和6個功能鍵*、#、A、B、C、D。由于按照組合原理,一般應有8種不同的單音頻信號。因此可采用的頻率也有8種,故稱之為多頻,又因它采用分別從高低頻中任意抽出1種進行組合來進行編碼,所以又稱之為“8中取2”的編碼技術。根據CCITT的建議,國際上采用的多種頻率為697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8種。用這8種頻率可形成16種不同的組合,從而代表16種不同的數字或功能鍵。

回復

使用道具 舉報

ID:513258 發表于 2020-3-3 14:15 | 顯示全部樓層
05.jpg
回復

使用道具 舉報

ID:513258 發表于 2020-3-3 14:33 | 顯示全部樓層
MT8870的應用電路
05-2.jpg


05-.jpg


05-1.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-3 16:41 | 顯示全部樓層
1、板載MT8870復頻譯碼芯片
2、板載語音輸入接口
3、板載5個LED指示燈,方便查看輸出狀態
4、芯片主要管腳基本都已經引出
5、PCB尺寸:26.5(mm)x24.5(mm)

06-.jpg


回復

使用道具 舉報

ID:513258 發表于 2020-3-3 17:06 | 顯示全部樓層
模塊電原理圖

07.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-4 07:19 | 顯示全部樓層
本帖最后由 eagler8 于 2020-3-4 08:08 編輯

11-.jpg

雙音多頻信號(DTMF)
電話系統中電話機與交換機之間的一種用戶信令,通常用于發送被叫號碼。
在使用雙音多頻信號之前,電話系統中使用一連串的斷續脈沖來傳送被叫號碼,稱為脈沖撥號。脈沖撥號需要電信局中的操作員手工完成長途接續(早期方法,很老很古董)。

雙音多頻信號是貝爾實驗室發明的,其目的是為了自動完成長途呼叫。

雙音多頻的撥號鍵盤是4×4的矩陣,每一行代表一個低頻,每一列代表一個高頻。每按一個鍵就發送一個高頻和低頻的正弦信號組合,比如'1'相當于697和1209赫茲(Hz)。交換機可以解碼這些頻率組合并確定所對應的按鍵。

雙音多頻(DTMF)是由貝爾實驗室開發的信令方式,通過承載語音的模擬電話線傳送電話撥號信息。每個數字利用兩個不同頻率突發模式的正弦波編碼,選擇雙音方式是由于它能夠可靠地將撥號信息從語音中區分出來。一般情況下,聲音信號很難造成對DTMF接收器的錯誤觸發。DTMF是“TouchTone” (早期AT&T的商標)的基礎, 替代機械式撥號轉盤的按鍵。




回復

使用道具 舉報

ID:513258 發表于 2020-3-4 08:39 | 顯示全部樓層
本帖最后由 eagler8 于 2020-3-4 09:02 編輯

12.jpg

DTMF編碼器
基于兩個二階數字正弦波振蕩器,一個用于產生行頻,一個用于產生列頻。向DSP裝入相應的系數和初始條件,就可以只用兩個振蕩器產生所需的八個音頻信號。典型的DTMF信號頻率范圍是700~1700Hz,選取8000Hz作為采樣頻率,即可滿足Nyquist條件。DTMF雙音頻信號由兩個二階數字正弦振蕩器產生,一個用來產生行音頻信號,另一個產生列音頻信號。

CCITT規定每秒最多按10個鍵,即每個鍵時隙最短為100MS,其中音頻實際持續時間至少為45MS,不大于55MS,時隙的其他時間內保持靜默,因此按鍵產生雙音頻信號時,相繼的兩個信號間隔一段時間;解碼器利用這個時間識別出雙音頻信號,并轉換成對應的數字信息,而且要識別出間隙信息。因此流程包含音頻任務和靜默任務,前者是產生雙音頻采樣值,后者產生靜默樣值,每個任務結束時,要重置定時器和下一個任務。其中靜默任務還要加上一個任務:從數字緩沖區取出數字并解包。解包就是將數字映射為對應的行列音頻特性,裝載指針指向振蕩器特征表對應的正確位置。兩個任務輪流執行。由CCITT(國際電報電話咨詢委員會)的規定,數字之間必須有適當長度的靜音,因此編碼器有兩個任務,其一是音頻信號任務,產生雙音樣本,其二是靜音任務,產生靜音樣本。每個任務結束后,啟動下一個任務前(音頻信號任務或靜音任務),都必須復位決定其持續時間的定時器變量。在靜音任務結束后,DSP從數字緩存中調出下一個數字,判決該數字。信號所對應的行頻和列頻信號,并根據不同頻率確定其初始化參數。

DTMF信號包含兩組音頻信號,解碼器的任務是通過數學變換把它從時域轉化到頻域,然后得出對應的數字信息。由于芯片處理的是數字信號,所以必須把輸入信號數字化,再用DSP芯片處理。頻率檢測時,檢測出DTMF信號的基波及二次諧波,DTMF信號只在基波上有較高的能量,而話音信號則是在基波上疊加有較強的二次諧波,檢測二次諧波的作用是用來區分DTMF信號與語言和音樂信號。

回復

使用道具 舉報

ID:513258 發表于 2020-3-4 09:02 | 顯示全部樓層
10.jpg

DTMF特性
DTMF是由低頻組(fb)和高頻組(fa)兩組頻率信號構成,每個數字信號由低頻組和高頻組的任意一個疊加而成。根據CCITT的建議,DTMF的編譯碼定義可用下式表示 f(t)=A_{a}sin(2f_{a}t)+A_{b}sin(2f_{b}t) 式中兩項分別表示低、高音頻的值,Ab和Aa分別表示低音群合高音群的樣值量化基線,而且兩者幅值比為K=Ab/Aa(0.7<K<0.9)。同時規定,對應于DTMF編譯碼中的標稱頻率在發送時,DTMF信號的頻率偏差不應當超過1.5%,每位數字的信號極限時長應該大于40ms,而接收設備對2%的偏差應能可靠地接收,對30ms~40ms時長的信號可以正常地接收。

與單音編碼不同,DTMF信號是采用8中取2的方式,從高低兩個音組中各取一個音頻復合而成來代表0-9十個號碼和其他功能碼,再加上這8個音頻信號的各頻率間不存在諧波關系,大大減少了虛假信號的干擾,因而DTMF信號工作可靠性特別是抗干擾能力很強。

DTMF應用
DTMF信號即雙音頻信號,最先用于程控電話交換系統來代替號盤脈沖信號,主叫用戶摘機按鍵撥號后,電話號碼所對應的DTMF信號通過電話線傳到程控交換機中的DTMF接受電路,交換機中的微機識別被叫電話號碼后,接通主被叫用戶實現雙方通話。

DTMF信號還用于自動控制系統,如果把DTMF的發送電路用于主控系統,接收電路用于被控系統,就可以方便地組成有線或無線通信系統,其通道數視需要而定,16通道以內每通道只需編一位號碼即可,若需要更多通道,則可像電話號碼編號一樣編為兩位或兩位以上的號碼。DTMF信號還被用于部分型號的車載導航終端,用于遠程下發目的地坐標信息。比如警情自動拔號、DTMF遠程控制系統,基于DTMF編解碼的智能家居電話遠程控制系統等。
回復

使用道具 舉報

ID:513258 發表于 2020-3-4 12:59 | 顯示全部樓層
【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路
  第一項實驗:用arduino的PWM腳(11、12)合成DTMF雙音多頻編碼信號

  1、安裝 "Tone.h"庫: IDE-工具-管理庫-搜索-安裝
  2、項目測試 :將喇叭貼近電話機話筒,然后發送要撥的電話號碼到串口,比如10000,即可撥通電話10000
  3、需要材料:喇叭1個,68Ω電阻兩個
  4、硬件連接:在D11,D12引腳各接一個68Ω電阻一端,
     68Ω電阻另一端接喇叭,然后喇叭另一端接地。

15.jpg


回復

使用道具 舉報

ID:513258 發表于 2020-3-4 13:02 | 顯示全部樓層
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3.   實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路
  4.   
  5.   第一項實驗:用arduino的PWM腳(11、12)合成DTMF雙音多頻編碼信號
  6.   1、安裝 "Tone.h"庫: IDE-工具-管理庫-搜索-安裝
  7.   2、項目測試 :將喇叭貼近電話機話筒,然后發送要撥的電話號碼到串口,比如10000,即可撥通電話10000
  8.   3、需要材料:喇叭1個,68Ω電阻兩個
  9.   4、硬件連接:在D11,D12引腳各接一個68Ω電阻一端,
  10.      68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  11. */

  12. #include <Tone.h>
  13. String Phone_Number = "";
  14. int i = 0, mark = 0;
  15. //定義freq1,freq2為Tone實例,并且定義雙音多頻的頻率

  16. Tone freq1;
  17. Tone freq2;
  18. const int DTMF_freq1[] = {1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336, 1477};
  19. const int DTMF_freq2[] = {941,  697,  697,  697,  770,  770,  770,  852,  852,  852};

  20. void setup()
  21. {
  22.   Serial.begin(9600);
  23.   //定義聲音產生引腳在Arduino的D11,D12
  24.   freq1.begin(11);
  25.   freq2.begin(12);
  26. }

  27. void loop()
  28. {
  29.   //讀出串口數據,串接成Phone_Number字符串
  30.   while (Serial.available() > 0)
  31.   {
  32.     Phone_Number += char(Serial.read());
  33.     delay(2);
  34.     mark = 1;
  35.   }
  36.   //播放DTMF音頻,電話號碼來自Phone_Number,持續長度200ms,間隔長度300ms
  37.   PlayDTMF(Phone_Number, 200, 300);

  38.   //如果剛才接收到串口的電話號碼,因為號碼已經在喇叭輸出了,清空電話號碼并且重置mark
  39.   if (mark == 1)
  40.   {
  41.     Phone_Number = "";
  42.     Serial.println();
  43.     mark = 0;
  44.   }
  45. }
  46. /*
  47.   DTMF播放函數
  48.   調用格式:playDTMF(數字(0~9), 持續時間)。
  49. */
  50. void PlayDTMF(String Number, long duration, long pause)
  51. {
  52.   //如果輸入數字為空,或者持續時間不為正數,或者暫停時間不為正數
  53.   //則視作錯誤,立即停止執行返回主程序。
  54.   if (Number.length() == 0 || duration <= 0 || pause <= 0) return;
  55.   //將Number逐個文字分離,
  56.   for (i = 0; i < Number.length(); i++)
  57.   {
  58.     //如果Number屬于0~9的數字字符
  59.     if (Number[i] >= '0' && Number[i] <= '9')
  60.     {
  61.       //則將它ASCII碼減去‘0’,得到純數字,
  62.       Number[i] = '0';
  63.       //然后在串口輸出一份,便于查看
  64.       Serial.print(i, DEC);
  65.       //輸出雙音多頻之一
  66.       freq1.play(DTMF_freq1[i], duration);
  67.       //輸出雙音多頻之二
  68.       freq2.play(DTMF_freq2[i], duration);
  69.       delay(pause);
  70.     }
  71.   }
  72. }
復制代碼


回復

使用道具 舉報

ID:513258 發表于 2020-3-4 13:36 | 顯示全部樓層
通過串口,嘗試輸入10000號碼,手機11位號碼和一個28位的號碼

16.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-4 16:45 | 顯示全部樓層
視頻——第一項實驗:用arduino的PWM腳(11、12)合成DTMF雙音多頻編碼信號

https://v.youku.com/v_show/id_XNDU3MzExODkzMg==.html

https://v.youku.com/v_show/id_XNDU3MzExODkzMg==.html




回復

使用道具 舉報

ID:513258 發表于 2020-3-4 20:37 | 顯示全部樓層
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3.   實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  4.   第二項實驗:重復播放合成DTMF雙音多頻8675309撥號音
  5.   1、安裝 "Tone.h"庫: IDE-工具-管理庫-搜索-安裝
  6.   2、項目測試 :發送電話號碼8675309到串口
  7.   3、需要材料:喇叭1個,68Ω電阻兩個
  8.   4、硬件連接:在D11,D12引腳各接一個68Ω電阻一端,
  9.      68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  10. */

  11. #include <Tone.h>

  12. Tone freq1;
  13. Tone freq2;

  14. const int DTMF_freq1[] = { 1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336, 1477 };
  15. const int DTMF_freq2[] = {  941,  697,  697,  697,  770,  770,  770,  852,  852,  852 };

  16. void setup()
  17. {
  18.   Serial.begin(9600);
  19.   freq1.begin(11);
  20.   freq2.begin(12);
  21. }

  22. void playDTMF(uint8_t number, long duration)
  23. {
  24.   freq1.play(DTMF_freq1[number], duration);
  25.   freq2.play(DTMF_freq2[number], duration);
  26. }


  27. void loop()
  28. {
  29.   int i;
  30.   uint8_t phone_number[] = { 8, 6, 7, 5, 3, 0 , 9 };

  31.   for (i = 0; i < sizeof(phone_number); i ++)
  32.   {
  33.     Serial.print(phone_number[i], 10);
  34.     Serial.print(' ');
  35.     playDTMF(phone_number[i], 500);
  36.     delay(600);
  37.   }

  38.   Serial.println();
  39.   delay(4000);
  40. }
復制代碼


回復

使用道具 舉報

ID:513258 發表于 2020-3-4 20:39 | 顯示全部樓層
【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  第二項實驗:重復播放合成DTMF雙音多頻8675309撥號音
  1、安裝 "Tone.h"庫: IDE-工具-管理庫-搜索-安裝
  2、項目測試 :發送電話號碼8675309到串口
  3、需要材料:喇叭1個,68Ω電阻兩個
  4、硬件連接:在D11,D12引腳各接一個68Ω電阻一端,
     68Ω電阻另一端接喇叭,然后喇叭另一端接地。

19.jpg


回復

使用道具 舉報

ID:513258 發表于 2020-3-9 13:48 | 顯示全部樓層
20.jpg
回復

使用道具 舉報

ID:513258 發表于 2020-3-9 13:51 | 顯示全部樓層
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3.   實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  4.   第三項實驗:用合成DTMF雙音多頻信號測試咪頭傳感器和DTMF解碼模塊
  5.   1、安裝 "dtmf"庫: 下載https://codeload.github.com/DFRobot/DTMF/zip/master
  6.   2、需要材料:喇叭1個,68Ω電阻兩個,咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  7.   3、合成信號硬件連接:在D11,D12引腳各接一個68Ω電阻一端,68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  8.   4、咪頭模塊接線:
  9.   MAX9814  Arduino
  10.   VCC        5V
  11.   GND        GND
  12.   OUT        IN(接到DTMF)
  13.   5、DTMF解碼模塊接線
  14.   DTMF     Arduino
  15.   VCC        5V
  16.   GND        GND
  17.   Q1         12
  18.   Q2         11
  19.   Q3         10
  20.   Q4         9
  21. */

  22. #include "dtmf.h"

  23. DTMF dtmf;

  24. void setup()
  25. {
  26.   Serial.begin(9600);
  27. }

  28. void loop()
  29. {
  30.   // 讀DTMF代碼并且用串行輸出
  31.   int myDtmf;
  32.   myDtmf = dtmf.getDTMF();
  33.   if (myDtmf != -1)
  34.     Serial.println(myDtmf);
  35.   delay(100); // 以避免收到重復的輸出。
  36. }
復制代碼


回復

使用道具 舉報

ID:513258 發表于 2020-3-9 15:03 | 顯示全部樓層
DTMF解碼識別模塊實驗視頻
https://v.youku.com/v_show/id_XNDU3OTkzOTA4OA==.html

https://v.youku.com/v_show/id_XNDU3OTkzOTA4OA==.html


【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  第三項實驗:用合成DTMF雙音多頻信號測試咪頭傳感器和DTMF解碼模塊
  1、安裝 "dtmf"庫: 下載https://codeload.github.com/DFRobot/DTMF/zip/master
  2、需要材料:喇叭1個,68Ω電阻兩個,咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  3、合成信號硬件連接:在D11,D12引腳各接一個68Ω電阻一端,68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  4、咪頭模塊接線:
  MAX9814  Arduino
  VCC        5V
  GND        GND
  OUT        IN(接到DTMF)
  5、DTMF解碼模塊接線
  DTMF     Arduino
  VCC        5V
  GND        GND
  Q1         12
  Q2         11
  Q3         10
  Q4         9

回復

使用道具 舉報

ID:513258 發表于 2020-3-9 15:24 | 顯示全部樓層
打開"dtmf.h"庫文件查看,發現是針對不同硬件模塊的(板上芯片都是MT8870),由于接腳對不上號,故串口輸出的解碼不對的

21.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-9 15:54 | 顯示全部樓層
不同的硬件模塊(板上芯片都是MT8870),名稱為 Arduino DTMF語音識別擴展板 V1.0


23.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-9 15:58 | 顯示全部樓層
  1. 【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  2.   實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  3.   第四項實驗:不用庫,使用MT8870芯片模塊進行DTMF解碼
  4.   1、需要材料:喇叭1個,68Ω電阻兩個,咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  5.   2、合成信號硬件連接:在D11,D12引腳各接一個68Ω電阻一端,68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  6.   3、咪頭模塊接線:
  7.   MAX9814  Arduino
  8.   VCC        5V
  9.   GND        GND
  10.   OUT        IN(接到DTMF)
  11.   4、DTMF解碼模塊接線
  12.   DTMF     Arduino
  13.   VCC        5V
  14.   GND        GND
  15.   Q1         12
  16.   Q2         11
  17.   Q3         10
  18.   Q4         9

  19. int keyvalue;  // 與音調相關的數字

  20. void setup()
  21. {
  22. Serial.begin(9600);
  23. pinMode(12, INPUT); //從解碼器芯片輸入二進制1的數字
  24. pinMode(11, INPUT); //從解碼器芯片輸入二進制2的數字
  25. pinMode(10, INPUT); //從解碼器芯片輸入二進制4的數字
  26. pinMode(9, INPUT); //從解碼器芯片輸入二進制4的數字
  27. }

  28. void loop()

  29. // 首先確定鍵的以10為底的值 0-11
  30. {
  31. if (digitalRead(6) == HIGH) //如果二進制1為高
  32. {
  33. keyvalue = 1;  //使鍵值等于1
  34. }
  35. else
  36. {
  37. keyvalue = 0;  //否則將其設為零
  38. }

  39. if (digitalRead(7) == HIGH)  //如果二進制2為高
  40. {
  41. keyvalue = keyvalue + 2;  //在鍵值中添加“ 2”
  42. }
  43. if (digitalRead(8) == HIGH)  //如果二進制4為高
  44. {
  45. keyvalue = keyvalue + 4;  //將“ 4”添加到鍵值
  46. }
  47. if (digitalRead(9) == HIGH)  //如果二進制8為高
  48. {
  49. keyvalue = keyvalue + 8;  //將“ 8”添加到鍵值
  50. }
  51. // 現在將鍵值9、10和11轉換為“ 0”,“ *”和“#”
  52. if (keyvalue == 10)
  53. {
  54. Serial.println("0"); //打印零鍵
  55. }
  56. else
  57. {
  58. if (keyvalue == 11)
  59. {
  60. Serial.println("*"); //打印星號鍵
  61. }

  62. else
  63. {
  64. if (keyvalue == 12)
  65. {
  66. Serial.println("#"); //打印井號
  67. }

  68. else
  69. {
  70. Serial.println(keyvalue); //它不是特殊鍵,所以只需打印
  71. }
  72. }
  73. }
  74. delay(500);
  75. }
復制代碼


回復

使用道具 舉報

ID:513258 發表于 2020-3-9 16:04 | 顯示全部樓層
從MT8870 DTMF語音解碼板模塊上,5只解碼LED燈看,是在正常工作,只是串口輸出的數字,依舊好像不對......

22.jpg

回復

使用道具 舉報

ID:513258 發表于 2020-3-9 16:45 | 顯示全部樓層
附錄:基于DTMF編解碼的智能家居電話遠程控制系統

本著“環保與創新”的主題,系統集本地家電控制和監控模塊,DTMF編解碼的電話遠程控制和監控模塊以及以太網web server的遠程家居控制和監控系統模塊三大模塊為一體,實現智能家居控制。電話遠程控制和以太網遠程控制,不需進行專門的布線,不占用無線電頻率資源,避免了電磁污染。且可以通過以太網實時監控家用電器,避免了沒必要的電力資源浪費。

一、本地家電控制和監控模塊

此模塊能夠實時檢測溫濕度、一氧化碳、煙霧等的數值或者濃度,并在1602液晶上顯示相關參數。當超過一定的警戒線,它還會發出警報以及通知主系統(AVR 32)出現何種警情,讓主系統進行相關處理。

二、DTMF編解碼的電話遠程控制和監控模塊

此模塊能夠受手機控制,通過手機撥打家里電話來遠程控制家里的電器的開閉,以及當家里出現盜賊或者出現險情(包括火災、煤氣泄漏等)時固定電話能及時自動撥打電話通知用戶。

三、以太網web server的遠程家居控制和監控系統模塊

此模塊通過網線接入以太網后,用戶可以通過手機或PC機打開相應瀏覽器來遠程控制家里的電器的開閉,以及監控家里的溫濕度,煤氣傳感器和煙霧傳感器的數據。

2.2 性能要求

一、本地家電控制和監控模塊

此模塊性能要求傳感器采集數據要實時,而且要快速,采集出來的數據經過相應轉換后得到的數值與實際數值相差不能超過5%,溫度的精度為0.1℃,濕度的精度為0.5%RH。

二、DTMF編解碼的電話遠程控制和監控模塊

此模塊性能要求能響應速度快,即有人撥打電話時,此模塊能夠在1S內檢測到有電話打入,并記錄下撥打人輸入的按鍵信息。此外,當要實現自動撥打電話時,要求此模塊模擬按下的電話號碼要準確無誤,確保準確性。

三、以太網web server的遠程家居控制和監控系統模塊
此模塊要求接入互聯網,當用戶瀏覽網頁時,家用電器信息和傳感器數據每隔幾秒刷新一次,確保數據傳輸的快速性和準確性。

24 (1).jpg

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日操夜夜操天天操 | 91精品国产色综合久久不卡98口 | 视频一区二区三区在线观看 | 日本一二三区在线观看 | 久久伊人操 | 久久国产精品偷 | 国产一区二区三区久久久久久久久 | 五月天国产| 精品中文字幕在线观看 | 天天看天天操 | 欧洲亚洲一区二区三区 | 色婷婷av一区二区三区软件 | 99re热精品视频 | 国产精品欧美精品日韩精品 | 久久久美女 | 久久精品国产亚洲一区二区 | 久久久久久久久久久爱 | 青青草网站在线观看 | 亚洲精品视频一区二区三区 | 99成人| 色综合天天网 | 亚洲国产成人精品一区二区 | 色一级片| 99爱在线| 亚洲精品久久久久中文字幕欢迎你 | 亚洲精品一区二区三区中文字幕 | 日韩高清一区 | 99免费看 | 美日韩免费 | 俺去俺来也www色官网cms | 伊人在线 | 久久国产视频网站 | 欧美成人免费 | 久久精品免费一区二区三 | 久久亚洲视频 | 久草资源在线 | 国产激情一区二区三区 | 成人a在线 | 欧美激情精品久久久久久 | 国产激情视频 | 国产精品久久久久久久久久久久 |