chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

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

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

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

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

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

資料介紹

描述

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

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

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

這是如何運作的?

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

購買 Twilio 號碼并注冊 Twilio SIM

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

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

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

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

為此,我使用了 TwiML 動詞來創(chuàng)建一條消息,當我的祖母接聽電話時,該消息將被口頭表達。為了讓它更逼真,我使用語音屬性選擇了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 創(chuàng)建可編程語音 URL TwiML

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

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

  • 在 Twilio 控制臺中導航到可編程無線
  • Overview中,選擇新注冊的 SIM
  • 單擊可編程語音和短信選項卡
  • 將下面的 TwiML 粘貼到框中
  • 將您的 Twilio 電話號碼添加到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 電話號碼路由傳出語音呼叫,并使用文本到語音轉(zhuǎn)換為我的祖母朗讀自定義消息。毫無疑問,那是一口蛋糕。接下來讓我們把它做成一個物理設備。

硬件設置

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

將您注冊的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)境設置

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

?
?

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

按住電路板下方的BOOT0按鈕

按下電路板頂部的RST

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

創(chuàng)建代碼

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

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

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

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

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)更改。計數(shù)器用作消除Grove Button抖動的一種方式,因此只進行一次調(diào)用。如果沒有去抖動邏輯,程序?qū)⒃诎醋?Grove 按鈕時繼續(xù)每 100 毫秒調(diào)用一次。

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

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

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

這就是我們需要的所有代碼,將其傳輸?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);
}

把它裝箱

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

思緒

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

?


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

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費
  7. 4網(wǎng)絡安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護等級說明
  16. 0.08 MB   |  次下載  |  免費

本月

  1. 1貼片三極管上的印字與真實名稱的對照表詳細說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設計指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分