色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創作
電子發燒友網>電子資料下載>電子資料>帶有可編程WirelessSIM和Grove按鈕的硬件設備

帶有可編程WirelessSIM和Grove按鈕的硬件設備

2023-07-12 | zip | 1.61 MB | 次下載 | 免費

資料介紹

描述

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

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

對于此項目,您將需要以下組件:

這是如何運作的?

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

購買 Twilio 號碼并注冊 Twilio SIM

首先,購買Twilio 電話號碼此電話號碼將用于使用語音數據將呼叫從可編程無線SIM 路由到我祖母的電話。

從包裝中取出 Twilio SIM,注冊并激活您的 SIM

使用 Amazon Polly 創建文本轉語音 TwiML

我想使用TwiML創建文本轉語音消息TwiML,或 Twilio 標記語言,是一種基于 XML 的語言,它指示 Twilio 如何處理各種事件,例如來電和去電、SMS 消息和 MMS 消息。在構建 Twilio 應用程序時,您將在將所需操作傳達給 Twilio 時使用 TwiML。TwiML Bin是一種無需自己創建和托管 Web 服務器即可與 TwiML 交互原型的方法。

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

?

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

完成以下上述步驟后,您的 TwiML 應如下所示。保存 TwiML Bin 并確保復制 TwiML Bin 的 URL,它會立即使用。

為您的 SIM 創建可編程語音 URL TwiML

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

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

  • 在 Twilio 控制臺中導航到可編程無線
  • Overview中,選擇新注冊的 SIM
  • 單擊可編程語音和短信選項卡
  • 將下面的 TwiML 粘貼到框中
  • 將您的 Twilio 電話號碼添加到Dial Verb的callerId屬性

將 TwiML Bin URL 粘貼到數字名詞的URL屬性中


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

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

硬件設置

打開Wio LTE開發板的包裝箱,然后使用提供的 Micro-USB 數據線將開發板連接到計算機。根據操作系統的不同,可能需要USB 驅動程序才能連接到 Wio LTE。

將您注冊的Twilio SIM 卡插入開發板背面的 Wio LTE SIM 插槽中。

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

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

軟件環境設置

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

?
?

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

按住電路板下方的BOOT0按鈕

按下電路板頂部的RST

釋放 BOOT0 按鈕以啟用引導加載程序模式

創建代碼

創建一個新的 Arduino 草圖(文件 -> 新建)。

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

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

setup()函數用于在啟動時初始化程序的各個方面pinMode()用于設置 Grove Button 連接到的物理引腳以及板期望的功能類型然后該板會運行其初始化過程并將 Twilio SIM 連接到蜂窩網絡

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()函數中創建的。該函數持續監聽板的狀態變化。在這種情況下,它正在等待Grove Button 狀態改變變量buttonState使用digitalRead()從板上的物理引腳讀取傳入的 Grove 按鈕狀態更改

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 語句管理傳入的狀態更改。計數器用作消除Grove Button抖動的一種方式,因此只進行一次調用。如果沒有去抖動邏輯,程序將在按住 Grove 按鈕時繼續每 100 毫秒調用一次。

當 Grove 按鈕未被按下時,狀態“0”,計數器將重置為 0。

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

當按下 Grove 按鈕時,狀態“1”,計數器開始迭代。嵌套的 if 語句用于捕獲計數器創建的特定數字。當抓到數字 1 時,使用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");
    }
  }

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

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

代碼回顧

#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);
}

把它裝箱

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

思緒

創建這個項目后,我意識到這對可能相距很遠的個人很有用。并且可以使用音頻文件代替文本轉語音來發送個人消息,例如反向發送語音郵件。發送一封情書并提醒您關心的其他人很重要。您正在使用可編程無線構建什么類型的#TwilioIoT 項目隨時在Twitter上發表您的評論、問題和項目。不要忘記查看我的GitHub 上的完整項目網上見,乘風破浪。

?


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 亚洲高清中文字幕| 超碰人热人人热人人看| 偷上邻居熟睡少妇| 免费国产网站| 含羞草在线免费观看| xxxxhdvideos动漫| 2019久久这里只精品热在线观看| 99热成人精品国产免男男| 名女躁b久久天天躁| 九九99热久久999精品| 国产伦精品一区二区免费| 亚洲欧美日韩国产手机在线 | 精品午夜国产福利观看| 高h乱np甄宓| 总裁呻吟双腿大开男男H| 亚洲无碼网站观看| 天天射天天爱天天干| 免费人成网站永久| 蜜柚影院在线观看免费高清中文| 黄色三级视频在线| 国产午夜精品一区二区三区| 国产电影尺度| 国产人妻777人伦精品HD| 国产成人无码免费精品果冻传媒| X8X8拨牐拨牐X8免费视频8午夜| 92看看福利午夜影院| 亚洲精品久久久久AV无码林星阑 | 亚洲精品久久久久无码AV片软件 | 一个人的HD高清在线观看| 亚洲男同tv| 久久免费视频| 青青久| 日韩一区二区天海翼| 国产AV精品无码免费看| 777黄色片| yellow日本动漫高清| 巨乳中文无码亚洲| 久久兔费黄A级毛片高清| 欧美成 人 网 站 免费| 少妇大荫蒂毛多毛大| 亚洲视频精选|