在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用Twilio、Go和Arduino MKR GSM 1400遠程播放MP3

使用Twilio、Go和Arduino MKR GSM 1400遠程播放MP3

2023-01-03 | zip | 0.57 MB | 次下載 | 免費

資料介紹

描述

新的MKR 系列Arduino 板將改變快速原型設計物聯網解決方案的格局。Arduino MKR GSM 1400對于希望使用蜂窩連接擴展其物聯網項目范圍的任何人來說都是一個很好的解決方案。通過將調制解調器與微控制器集成,一種新的一體式通信解決方案已經開始出現。這與Twilio 可編程無線 SIM相結合,可以使用機器對機器命令在全球范圍內進行通信。“事物”現在可以通過 WiFi 或藍牙以前無法實現的方式連接。

教程演示了如何將機器到機器的命令從Arduino MKR GSM 1400發送到用 Go 編寫的服務器。當服務器端接收到機器對機器命令時,音頻文件將播放 .mp3 說“你好”。如果你想跳到前面,可以在?TwilioIoT GitHub 上找到已完成的項目

什么是 Arduino MKR GSM 1400?

Arduino MKR GSM 1400 是一款開發板,它使用u-blox SARAU201 調制解調器將Arduino Zero的功能與全球GSM連接相結合傳統上,與調制解調器的通信是使用單獨模塊使用AT 命令完成的。該模型板附帶一個庫,可以通過函數調用更輕松地訪問 AT 命令。

硬件要求

軟件要求

設置 Twilio SIM

從包裝中取出 Twilio SIM。接下來在 Twilio 控制臺中注冊并激活您的 SIM 。

軟件方面的事情

在對硬件進行編程之前,我們需要安裝一些軟件才能使其正常工作。為了能夠使用板載調制解調器發送 M2M 命令,我們需要MKRGSM庫。

打開 Arduino IDE 并轉到 Sketch > Manage Libraries。這是可以將 Arduino 和第 3 方庫安裝到 Arduino IDE 中的地方。

當庫管理器窗口彈出時,搜索MKRGSM庫并按安裝。MKRGSM庫將AT 命令包裝到函數中,使其更容易與調制解調器通信。這是phonetabulous相信我。

安裝庫后,我們需要安裝 Arduino MKR GSM 1400 板核。Arduino MKR GSM 1400 使用與使用AVR ATmega芯片組的傳統 Arduino 不同的芯片組。該板使用SAMD21 Cortex-M0+ ,它需要一組不同的內核。Arduino IDE 不附帶內核,計算機需要它們才能在連接時識別電路板。

在工具 > 開發板 > 開發板管理器下找到開發板管理器。

當 Board Manager 窗口出現時,搜索 Arduino SAMD Boards 并安裝內核。 ?

重新啟動 Arduino IDE 以完成安裝。

偉大的!是時候繼續進行硬件設置了。

硬件方面

要通過網絡發送 M2M 命令,我們需要安裝 Twilio SIM。從 Twilio SIM 卡中取出 Micro SIM

將 Twilio SIM 插入電路板下方的 SIM 插槽。

接下來,將 GSM 天線連接到板上。

使用 Micro-USB 電纜將電路板連接到計算機,您就可以連接到網絡了。

創建 Arduino 草圖

在 Arduino IDE 中創建一個新的 Arduino 草圖(文件 > 新建)。提供了一個看起來像這樣的模板。

void setup(){
}
void loop(){
}

為所有 GSM 函數實例化基類GSM 。要發送和接收 SMS 消息,還需要實例化GSM SMS類。這發生在 setup() 函數之前。

#include 
GSM gsmAccess;
GSM_SMS sms;

在 setup() 函數中創建波特率為115200 的串行連接。波特率決定了特定通信通道上的數據速度。

Serial.begin(115200);

使用gsmAccess.begin()函數連接到 Twilio SIM 上識別的蜂窩網絡。

gsmAccess.begin();
Serial.println("GSM initialized");

在 loop() 函數中定義將使用beginSMS函數發送 M2M 命令的電話號碼。我們將使用的數字是“ 2936 ”。這是一個特殊的 Twilio 短代碼,保留用于在 Twilio SIM 之間交換 M2M 命令。它使用 SMS 傳輸通過蜂窩網絡發送 M2M 命令。當 Twilio SIM 創建 M2M 命令時,會生成一個 Webhook,我們將很快討論這個問題。

sms.beginSMS("2936");

將char 數組傳遞給函數sms.print()以創建要排隊的新消息。

sms.print("hello world");
Serial.println(“Sending M2M Command”);

創建消息并排隊后,使用endSMS()函數告訴調制解調器該過程已完成。一旦發生這種情況,將發送“hello world”消息。

sms.endSMS();
Serial.println("M2M Command Sent!");

最后一段代碼是一個 while 循環,它將捕獲程序并將其置于無限循環中。這樣做的目的是確保 M2M 命令只發送一次。

while(1) {
    delay(4000);
}

完整的 Arduino 草圖:

#include 
GSM gsmAccess;
GSM_SMS sms;
void setup(){
    Serial.begin(115200);
    gsmAccess.begin();
    Serial.println("GSM initialized");
}
void loop(){
    sms.beginSMS("2936");
        sms.print("hello world");
        Serial.println(“Sending M2M Command”);
       sms.endSMS();
       Serial.println("M2M Command Sent!");
       while(1) {
               delay(4000);
       }  
}

仔細檢查是否已在“工具”>“電路板”下選擇了電路板。如果未選中,編譯器將在您嘗試上傳代碼時拋出錯誤。

將新草圖另存為“SayHelloArduinoGSM.ino”。在將新草圖上傳到電路板之前,讓我們創建一個服務器來使用 Go 接收 M2M 命令。

使用 Go 和 Beep 啟動音頻響應服務器

使用下面的模板創建一個名為“SayHelloArduinoGSM.go”的新 Go 程序。

package main
import ( 
)
func main(){
}

接下來將以下庫添加到導入部分。這是您將Beep等外部庫鏈接到 Go 程序的地方。如果你還沒有安裝 Go,現在就使用Homebrew安裝吧

package main
import (
        "fmt"
    "github.com/faiface/beep"
    "github.com/faiface/beep/mp3"
    "github.com/faiface/beep/speaker"
    "log"
    "net/http"
    "os"
    "time"
)

main函數中使用net/http庫中HandleFunc()創建一個新的服務器路由。這將生成一個新的服務器端路由(“ /helloworld” ),用于從“2936”簡碼接收 M2M 命令。當收到 M2M 命令時,它將被傳送到helloworld函數。端口 9999 上使用ListenAndServe()函數打開一個端口并監聽傳入的連接。

func main(){
    http.HandleFunc("/helloworld", helloworld)
    http.ListenAndServe(":9999", nil)
}

極好的。現在我們必須創建helloworld函數。此函數接收到的 HTTP 請求將由http.Request類型表示。

func helloworld(w http.ResponseWriter, r *http.Request) {
}

當收到請求時,需要解析 M2M 命令。使用ParseForm()函數將請求正文解析為表單。

 if err := r.ParseForm(); err != nil {
        log.Printf("Error parsing form: %s", err)
        return
    }

可以使用PostFormValue()函數通過向其傳遞一個鍵來提取正文中的數據。該鍵將為您提供與 JSON 響應中命名組件關聯的值。在這種情況下,我們正在尋找“Command”鍵的值。

 pwCommand := r.PostFormValue("Command")
    fmt.Println("pwCommand : ", pwCommand)

為了添加一點趣味,讓我們在命令成功到達服務器時通過系統的音頻播放一些嗶聲代碼來播放音頻文件。

 f, err := os.Open("helloworld.mp3")
    if err != nil {
        log.Fatal(err)
    }
    s, format, _ := mp3.Decode(f)
    speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10))
    playing := make(chan struct{})
    speaker.Play(beep.Seq(s, beep.Callback(func() {
        close(playing)
    })))
    <-playing

完整的 Go 程序:

package main
import (
    "fmt"
    "log"
    "net/http"
    "os"
    "time"
    "github.com/faiface/beep"
    "github.com/faiface/beep/mp3"
    "github.com/faiface/beep/speaker"
)
func main() {
    http.HandleFunc("/helloworld", helloworld)
    http.ListenAndServe(":9999", nil)
}
func helloworld(w http.ResponseWriter, r *http.Request) {
    if err := r.ParseForm(); err != nil {
        log.Printf("Error parsing form: %s", err)
        return
    }
    pwCommand := r.PostFormValue("Command")
    fmt.Println("incoming Command from Arduino MKR GSM 1400 : ", pwCommand)
    fmt.Println("Playing audio file!")
    f, err := os.Open("helloworld.mp3")
    if err != nil {
        log.Fatal(err)
    }
    s, format, _ := mp3.Decode(f)
    speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10))
    playing := make(chan struct{})
    speaker.Play(beep.Seq(s, beep.Callback(func() {
        close(playing)
    })))
    <-playing
}

啟動服務器。

go run SayHelloArduinoGSM.go

使用 ngrok 構建橋梁

目前,硬件和軟件部分單獨存在。ngrok 將用于彌合差距。

當 SIM 向 Twilio 發送 M2M 命令時,Webhook 會發送到一個名為Commands Callback Url的用戶定義的 url 我們將使用 ngrok 接收此 Webhook,然后將其路由到運行在我們自己機器上的服務器。要建立連接,請在服務器運行的同一端口上啟動一個新的 ngrok 實例。

ngrok http 9999

復制使用 ngrok ( http://xxxxxxxx.ngrok.io )創建的轉發url

在 Twilio 控制臺中導航到Programmable Wireless 找到您之前在 SIM 下注冊的SIM Configure選項卡下,您將找到Commands Callback Url 將 ngrok轉發地址粘貼到文本框中,并將之前創建的服務器路由添加到 url 的末尾。

按保存。

通過天空發送消息

返回 Arduino IDE 并按上傳。

上傳后,仔細檢查命令是否使用串行監視器正確發送。

  • 導航到工具 > 串行監視器

一旦從“2936”短代碼發送了 M2M 命令,它就會被路由到 ngrok 并使用命令回調 Url進入 go 應用程序

最后 M2M 命令到達服務器和“helloworld.mp3”

細胞觸覺!

繼續連接東西

您剛剛使用魔法發送了您的第一個 M2M 命令。

此 M2M 命令模型是如何使用 Twilio 從遠程硬件設備發送 M2M 命令的基礎部分。Arduino MKR GSM 1400 具有集成的調制解調器和用于發送 AT 命令功能的軟件,因此成為任何物聯網原型設計套件的理想之選。

如果您有興趣了解可以發送 M2M 命令的其他硬件,請查看無線機器到機器快速入門該項目以及其他項目可以在TwilioIoT GitHub 上找到

如有任何問題或好奇,請隨時與我們聯系。如果您有任何已經構建或正在計劃構建的很酷的物聯網項目,請給我留言。

作者

請啟用 JavaScript 以查看

由 Disqus 提供支持的評論。


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

評論

查看更多

下載排行

本周

  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次下載  |  免費
主站蜘蛛池模板: 夜夜夜夜曰天天天天拍国产 | 日韩一卡2卡三卡4卡无卡网站 | 成人看片免费无限观看视频 | www.色五月.com| 婷婷色九月综合激情丁香 | 特黄aa级毛片免费视频播放 | 成人伊人亚洲人综合网站222 | 日日噜噜噜夜夜爽爽狠狠视频 | 久久97精品久久久久久久看片 | 欧美成人性色xxxxx视频大 | 亚欧免费视频一区二区三区 | 午夜在线免费观看 | 女性私密部位扒开的视频 | 免费拍拍视频 | 天天操夜夜爱 | semimi亚洲综合在线观看 | 天天操夜夜夜 | 久久的色偷偷 | 久久婷婷色综合老司机 | 伊人网在线视频观看 | 国产亚洲精品仙踪林在线播放 | 午夜私人影院 | 亚洲最大成人在线 | 天天综合视频网 | 国产片18在线观看 | 久草婷婷 | 四虎永久地址4hu紧急入口 | 2017天天操| 日本特黄色大片 | 99精品国产高清自在线看超 | 国产精品久久久久国产精品三级 | 欧美成人性色xxxxx视频大 | 国产片91人成在线观看 | 免费一级黄色录像 | 日本国产在线观看 | 国内黄色一级片 | 免费在线观看的网站 | 日韩精品视频免费观看 | 视频一区二区在线观看 | 午夜三级国产精品理论三级 | 老色歌uuu26 老湿成人影院 |