電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶有可編程WirelessSIM和Grove按鈕的硬件設(shè)備

帶有可編程WirelessSIM和Grove按鈕的硬件設(shè)備

2023-07-12 | zip | 1.61 MB | 次下載 | 免費(fèi)

資料介紹

描述

到了我奶奶 90 歲生日的時(shí)候,我正在為送什么禮物給她而苦惱。她對(duì)我的生活產(chǎn)生了很大的影響,我想做一些事情來證明這一點(diǎn)。我知道我想以某種方式整合 Twilio,因?yàn)樗贻p時(shí)是Bell Telephone的接線員。然后它像一大堆電話一樣擊中了我。我將創(chuàng)建一個(gè)帶有編程 WirelessSIM和 Grove 按鈕的硬件設(shè)備。當(dāng)奶奶按下 Grove 按鈕時(shí),語音呼叫將被路由到她的電話,接線員將告訴她我有多愛她并祝她生日快樂。?

我需要什么來送一些生日愛

對(duì)于此項(xiàng)目,您將需要以下組件:

這是如何運(yùn)作的?

我想使用Wio LTE從我的Twilio SIM生成呼叫Grove Button連接到 Wio LTE 并用于物理交互。單擊 Grove 按鈕時(shí),它將在 Twilio 中觸發(fā)回調(diào)。要進(jìn)行調(diào)用,我需要?jiǎng)?chuàng)建一些將響應(yīng)回調(diào)的TwiML 。然后,當(dāng)呼叫接通時(shí),我需要另一塊 TwiML,它將使用Amazon Polly播放文本轉(zhuǎn)語音消息。由于我們將電路板上的 SIM 卡連接到真實(shí)設(shè)備,因此我們將使用一些變通方法來播放消息。通過在 ` 上包含 `url` 屬性` Twilio 會(huì)在接通電話之前向接聽電話的人播放 TwiML。這被稱為耳語。

購(gòu)買 Twilio 號(hào)碼并注冊(cè) Twilio SIM

首先,購(gòu)買Twilio 電話號(hào)碼。此電話號(hào)碼將用于使用語音數(shù)據(jù)將呼叫從可編程無線SIM 路由到我祖母的電話。

從包裝中取出 Twilio SIM,注冊(cè)并激活您的 SIM 。

使用 Amazon Polly 創(chuàng)建文本轉(zhuǎn)語音 TwiML

我想使用TwiML創(chuàng)建文本轉(zhuǎn)語音消息。TwiML,或 Twilio 標(biāo)記語言,是一種基于 XML 的語言,它指示 Twilio 如何處理各種事件,例如來電和去電、SMS 消息和 MMS 消息。在構(gòu)建 Twilio 應(yīng)用程序時(shí),您將在將所需操作傳達(dá)給 Twilio 時(shí)使用 TwiML。TwiML Bin是一種無需自己創(chuàng)建和托管 Web 服務(wù)器即可與 TwiML 交互原型的方法。

為此,我使用了 TwiML 動(dòng)詞來創(chuàng)建一條消息,當(dāng)我的祖母接聽電話時(shí),該消息將被口頭表達(dá)。為了讓它更逼真,我使用語音屬性選擇了Amazon Polly語音,聽起來更逼真。

?

<Response>
        <Say voice="Polly.Joey" language="en-US">Happy Birthday Gram! I love you.Say>
Response>

完成以下上述步驟后,您的 TwiML 應(yīng)如下所示。保存 TwiML Bin 并確保復(fù)制 TwiML Bin 的 URL,它會(huì)立即使用。

為您的 SIM 創(chuàng)建可編程語音 URL TwiML

文本轉(zhuǎn)語音部分已準(zhǔn)備就緒,接下來我需要使用 TwiML 從 SIM路由入站可編程語音呼叫。這些是設(shè)置它的步驟:

在 Programmable Voice & SMS 下,將Voice Url更改TwiML

  • 在 Twilio 控制臺(tái)中導(dǎo)航到可編程無線
  • Overview中,選擇新注冊(cè)的 SIM
  • 單擊可編程語音和短信選項(xiàng)卡
  • 將下面的 TwiML 粘貼到框中
  • 將您的 Twilio 電話號(hào)碼添加到Dial Verb的callerId屬性

將 TwiML Bin URL 粘貼到數(shù)字名詞的URL屬性中


<Response>
    <Dial callerId="YOUR_TWILIO_NUMBER">
        <Number url="TWIML_BIN_URL">{{To}}Number>
    Dial>
Response>

偉大的!SIM 現(xiàn)在配置為使用 Twilio 電話號(hào)碼路由傳出語音呼叫,并使用文本到語音轉(zhuǎn)換為我的祖母朗讀自定義消息。毫無疑問,那是一口蛋糕。接下來讓我們把它做成一個(gè)物理設(shè)備。

硬件設(shè)置

打開Wio LTE開發(fā)板的包裝箱,然后使用提供的 Micro-USB 數(shù)據(jù)線將開發(fā)板連接到計(jì)算機(jī)。根據(jù)操作系統(tǒng)的不同,可能需要USB 驅(qū)動(dòng)程序才能連接到 Wio LTE。

將您注冊(cè)的Twilio SIM 卡插入開發(fā)板背面的 Wio LTE SIM 插槽中。

Wio LTE 盒子內(nèi)有一根 LTE 天線。從包裝中取出 LTE 天線,將 LTE 天線連接到 Wio LTE 背面,上面寫著LTE main

現(xiàn)在從包裝中取出Grove Button ,然后將 Grove Button 連接到 Wio LTE 的 D38 插座。

軟件環(huán)境設(shè)置

接下來下載Arduino IDE 。這將用于編程和上傳代碼到 Wio LTE。安裝 Arduino IDE 后,從 GitHub 下載Wio LTE Arduino 庫(kù)并按照本指南安裝庫(kù)該庫(kù)是STM32F4 芯片的包裝器,它利用Arduino 核心并添加了 Quectel EC21-A調(diào)制解調(diào)器功能。

?
?

接下來將 Wio LTE 置于引導(dǎo)加載程序模式。需要啟用此模式才能將代碼上傳到電路板。要啟用引導(dǎo)加載程序模式:

按住電路板下方的BOOT0按鈕

按下電路板頂部的RST

釋放 BOOT0 按鈕以啟用引導(dǎo)加載程序模式

創(chuàng)建代碼

創(chuàng)建一個(gè)新的 Arduino 草圖(文件 -> 新建)。

首先添加 Wio LTE 庫(kù)文件wio_tracker.h并在setup()函數(shù)上方為Grove Button定義一個(gè)全局變量。接下來使用變量wio創(chuàng)建WioTracker的實(shí)例并創(chuàng)建一個(gè)計(jì)數(shù)器變量。計(jì)數(shù)器將用于對(duì)Grove Button 進(jìn)行去抖動(dòng),因此我們可以更好地控制 Grove Button 的交互。

#include "wio_tracker.h"
#define BUTTON_PIN  (D38)
WioTracker wio = WioTracker();
int counter = 0;

setup()函數(shù)用于在啟動(dòng)時(shí)初始化程序的各個(gè)方面。pinMode()用于設(shè)置 Grove Button 連接到的物理引腳以及板期望的功能類型。然后該板會(huì)運(yùn)行其初始化過程并將 Twilio SIM 連接到蜂窩網(wǎng)絡(luò)

void setup()
{
  // Grove Button Setup
  pinMode(BUTTON_PIN, INPUT);
  // Wio LTE Power Up
  SerialUSB.println("Wait for power on...");
  wio.Power_On();
  SerialUSB.println("Power On O.K!");
  // Wio LTE Initialization
  while (!wio.init()) {
    delay(1000);
    SerialUSB.println("Accessing network...");
  }
  SerialUSB.println("Initialize done...");
  // Connect to the network
  bool ret = wio.waitForNetworkRegister();
  if (true == ret) {
    SerialUSB.println("Network accessed!");
  } else {
    SerialUSB.println("Network failed!");
    return;
  }
  SerialUSB.println("Ready!");
}

該程序的 Grove Button 邏輯是在loop()函數(shù)中創(chuàng)建的。該函數(shù)持續(xù)監(jiān)聽板的狀態(tài)變化。在這種情況下,它正在等待Grove Button 狀態(tài)改變變量buttonState使用digitalRead()從板上的物理引腳讀取傳入的 Grove 按鈕狀態(tài)更改。

void loop()
{
  // Define Grove Button state
  int buttonState = digitalRead(BUTTON_PIN);
  // Define the counter functionality
  if (buttonState == 0) {
    // Zero counter
    counter = 0;
  } else {
    // Continue counter
    counter++;
    // Catch only 1 press, no duplicate calls
    if (counter == 1) {
      SerialUSB.println("Happy Birthday sent!");
      wio.callUp("GRANDMA_PHONE_NUMBER");
    }
  }
  // Restart
  delay(100);
}

主要的if 語句管理傳入的狀態(tài)更改。計(jì)數(shù)器用作消除Grove Button抖動(dòng)的一種方式,因此只進(jìn)行一次調(diào)用。如果沒有去抖動(dòng)邏輯,程序?qū)⒃诎醋?Grove 按鈕時(shí)繼續(xù)每 100 毫秒調(diào)用一次。

當(dāng) Grove 按鈕未被按下時(shí),狀態(tài)“0”,計(jì)數(shù)器將重置為 0。

 if (buttonState == 0) {
    // Zero counter
    counter = 0;
  }

當(dāng)按下 Grove 按鈕時(shí),狀態(tài)“1”,計(jì)數(shù)器開始迭代。嵌套的 if 語句用于捕獲計(jì)數(shù)器創(chuàng)建的特定數(shù)字。當(dāng)抓到數(shù)字 1 時(shí),使用wio.callUp( "GRANDMA_PHONE_NUMBER") 向我的祖母撥打電話。 ?

 else {
    // Continue counter
    counter++;
    // Catch only 1 press, no duplicate calls
    if (counter == 1) {
      SerialUSB.println("Happy Birthday sent!");
      wio.callUp("GRANDMA_PHONE_NUMBER");
    }
  }

這就是我們需要的所有代碼,將其傳輸?shù)?Wio LTE 板按上傳。

上傳完成后,斷開 Wio LTE 與 Micro-USB 數(shù)據(jù)線的連接。將鋰電池連接到板上。

代碼回顧

#include "wio_tracker.h"
#define BUTTON_PIN  (D38)
WioTracker wio = WioTracker();
int counter = 0;
void setup()
{
  // Grove Button Setup
  pinMode(BUTTON_PIN, INPUT);
  // Wio LTE Setup
  SerialUSB.println("Wait for power on...");
  wio.Power_On();
  SerialUSB.println("Power On O.K!");
  // Wio LTE Initialization
  while (!wio.init()) {
    delay(1000);
    SerialUSB.println("Accessing network...");
  }
  SerialUSB.println("Initialize done...");
  // Connect to the network
  bool ret = wio.waitForNetworkRegister();
  if (true == ret) {
    SerialUSB.println("Network accessed!");
  } else {
    SerialUSB.println("Network failed!");
    return;
  }
  SerialUSB.println("Ready!");
}
void loop()
{
  // Define Grove Button state
  int buttonState = digitalRead(BUTTON_PIN);
  // Define the counter functionality
  if (buttonState == 0) {
    // Zero counter
    counter = 0;
  } else {
    // Continue counter
    counter++;
    // Catch only 1 press, no duplicate calls
    if (counter == 1) {
      SerialUSB.println("Happy Birthday sent!");
      wio.callUp("GRANDMA_PHONE_NUMBER");
    }
  }
  delay(100);
}

把它裝箱

在派對(duì)上,我把電路板、電池和 LTE 天線放在一個(gè)小盒子里,讓它更像樣。

思緒

創(chuàng)建這個(gè)項(xiàng)目后,我意識(shí)到這對(duì)可能相距很遠(yuǎn)的個(gè)人很有用。并且可以使用音頻文件代替文本轉(zhuǎn)語音來發(fā)送個(gè)人消息,例如反向發(fā)送語音郵件。發(fā)送一封情書并提醒您關(guān)心的其他人很重要。您正在使用可編程無線構(gòu)建什么類型的#TwilioIoT 項(xiàng)目?隨時(shí)在Twitter上發(fā)表您的評(píng)論、問題和項(xiàng)目。不要忘記查看我的GitHub 上的完整項(xiàng)目網(wǎng)上見,乘風(fēng)破浪。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)