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

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Twilio、Go和Arduino MKR GSM 1400遠(yuǎn)程播放MP3

使用Twilio、Go和Arduino MKR GSM 1400遠(yuǎn)程播放MP3

2023-01-03 | zip | 0.57 MB | 次下載 | 免費(fèi)

資料介紹

描述

新的MKR 系列Arduino 板將改變快速原型設(shè)計(jì)物聯(lián)網(wǎng)解決方案的格局。Arduino MKR GSM 1400對(duì)于希望使用蜂窩連接擴(kuò)展其物聯(lián)網(wǎng)項(xiàng)目范圍的任何人來(lái)說(shuō)都是一個(gè)很好的解決方案。通過(guò)將調(diào)制解調(diào)器與微控制器集成,一種新的一體式通信解決方案已經(jīng)開(kāi)始出現(xiàn)。這與Twilio 可編程無(wú)線 SIM相結(jié)合,可以使用機(jī)器對(duì)機(jī)器命令在全球范圍內(nèi)進(jìn)行通信。“事物”現(xiàn)在可以通過(guò) WiFi 或藍(lán)牙以前無(wú)法實(shí)現(xiàn)的方式連接。

教程演示了如何將機(jī)器到機(jī)器的命令從Arduino MKR GSM 1400發(fā)送到用 Go 編寫(xiě)的服務(wù)器。當(dāng)服務(wù)器端接收到機(jī)器對(duì)機(jī)器命令時(shí),音頻文件將播放 .mp3 說(shuō)“你好”。如果你想跳到前面,可以在?TwilioIoT GitHub 上找到已完成的項(xiàng)目。

什么是 Arduino MKR GSM 1400?

Arduino MKR GSM 1400 是一款開(kāi)發(fā)板,它使用u-blox SARAU201 調(diào)制解調(diào)器將Arduino Zero的功能與全球GSM連接相結(jié)合。傳統(tǒng)上,與調(diào)制解調(diào)器的通信是使用單獨(dú)模塊使用AT 命令完成的。該模型板附帶一個(gè)庫(kù),可以通過(guò)函數(shù)調(diào)用更輕松地訪問(wèn) AT 命令。

硬件要求

軟件要求

設(shè)置 Twilio SIM

從包裝中取出 Twilio SIM。接下來(lái)在 Twilio 控制臺(tái)中注冊(cè)并激活您的 SIM 。

軟件方面的事情

在對(duì)硬件進(jìn)行編程之前,我們需要安裝一些軟件才能使其正常工作。為了能夠使用板載調(diào)制解調(diào)器發(fā)送 M2M 命令,我們需要MKRGSM庫(kù)。

打開(kāi) Arduino IDE 并轉(zhuǎn)到 Sketch > Manage Libraries。這是可以將 Arduino 和第 3 方庫(kù)安裝到 Arduino IDE 中的地方。

當(dāng)庫(kù)管理器窗口彈出時(shí),搜索MKRGSM庫(kù)并按安裝。MKRGSM庫(kù)將AT 命令包裝到函數(shù)中,使其更容易與調(diào)制解調(diào)器通信。這是phonetabulous相信我。

安裝庫(kù)后,我們需要安裝 Arduino MKR GSM 1400 板核。Arduino MKR GSM 1400 使用與使用AVR ATmega芯片組的傳統(tǒng) Arduino 不同的芯片組。該板使用SAMD21 Cortex-M0+ ,它需要一組不同的內(nèi)核。Arduino IDE 不附帶內(nèi)核,計(jì)算機(jī)需要它們才能在連接時(shí)識(shí)別電路板。

在工具 > 開(kāi)發(fā)板 > 開(kāi)發(fā)板管理器下找到開(kāi)發(fā)板管理器。

當(dāng) Board Manager 窗口出現(xiàn)時(shí),搜索 Arduino SAMD Boards 并安裝內(nèi)核。 ?

重新啟動(dòng) Arduino IDE 以完成安裝。

偉大的!是時(shí)候繼續(xù)進(jìn)行硬件設(shè)置了。

硬件方面

要通過(guò)網(wǎng)絡(luò)發(fā)送 M2M 命令,我們需要安裝 Twilio SIM。從 Twilio SIM 卡中取出 Micro SIM

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

接下來(lái),將 GSM 天線連接到板上。

使用 Micro-USB 電纜將電路板連接到計(jì)算機(jī),您就可以連接到網(wǎng)絡(luò)了。

創(chuàng)建 Arduino 草圖

在 Arduino IDE 中創(chuàng)建一個(gè)新的 Arduino 草圖(文件 > 新建)。提供了一個(gè)看起來(lái)像這樣的模板。

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

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

#include 
GSM gsmAccess;
GSM_SMS sms;

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

Serial.begin(115200);

使用gsmAccess.begin()函數(shù)連接到 Twilio SIM 上識(shí)別的蜂窩網(wǎng)絡(luò)。

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

在 loop() 函數(shù)中定義將使用beginSMS函數(shù)發(fā)送 M2M 命令的電話號(hào)碼。我們將使用的數(shù)字是“ 2936 ”。這是一個(gè)特殊的 Twilio 短代碼,保留用于在 Twilio SIM 之間交換 M2M 命令。它使用 SMS 傳輸通過(guò)蜂窩網(wǎng)絡(luò)發(fā)送 M2M 命令。當(dāng) Twilio SIM 創(chuàng)建 M2M 命令時(shí),會(huì)生成一個(gè) Webhook,我們將很快討論這個(gè)問(wèn)題。

sms.beginSMS("2936");

將char 數(shù)組傳遞給函數(shù)sms.print()以創(chuàng)建要排隊(duì)的新消息。

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

創(chuàng)建消息并排隊(duì)后,使用endSMS()函數(shù)告訴調(diào)制解調(diào)器該過(guò)程已完成。一旦發(fā)生這種情況,將發(fā)送“hello world”消息。

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

最后一段代碼是一個(gè) while 循環(huán),它將捕獲程序并將其置于無(wú)限循環(huán)中。這樣做的目的是確保 M2M 命令只發(fā)送一次。

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

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

將新草圖另存為“SayHelloArduinoGSM.ino”。在將新草圖上傳到電路板之前,讓我們創(chuàng)建一個(gè)服務(wù)器來(lái)使用 Go 接收 M2M 命令。

使用 Go 和 Beep 啟動(dòng)音頻響應(yīng)服務(wù)器

使用下面的模板創(chuàng)建一個(gè)名為“SayHelloArduinoGSM.go”的新 Go 程序。

package main
import ( 
)
func main(){
}

接下來(lái)將以下庫(kù)添加到導(dǎo)入部分。這是您將Beep等外部庫(kù)鏈接到 Go 程序的地方。如果你還沒(méi)有安裝 Go,現(xiàn)在就使用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函數(shù)中使用net/http庫(kù)中HandleFunc()創(chuàng)建一個(gè)新的服務(wù)器路由。這將生成一個(gè)新的服務(wù)器端路由(“ /helloworld” ),用于從“2936”簡(jiǎn)碼接收 M2M 命令。當(dāng)收到 M2M 命令時(shí),它將被傳送到helloworld函數(shù)。端口 9999 上使用ListenAndServe()函數(shù)打開(kāi)一個(gè)端口并監(jiān)聽(tīng)傳入的連接。

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

極好的。現(xiàn)在我們必須創(chuàng)建helloworld函數(shù)。此函數(shù)接收到的 HTTP 請(qǐng)求將由http.Request類型表示。

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

當(dāng)收到請(qǐng)求時(shí),需要解析 M2M 命令。使用ParseForm()函數(shù)將請(qǐng)求正文解析為表單。

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

可以使用PostFormValue()函數(shù)通過(guò)向其傳遞一個(gè)鍵來(lái)提取正文中的數(shù)據(jù)。該鍵將為您提供與 JSON 響應(yīng)中命名組件關(guān)聯(lián)的值。在這種情況下,我們正在尋找“Command”鍵的值。

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

為了添加一點(diǎn)趣味,讓我們?cè)诿畛晒Φ竭_(dá)服務(wù)器時(shí)通過(guò)系統(tǒng)的音頻播放一些嗶聲代碼來(lái)播放音頻文件。

 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
}

啟動(dòng)服務(wù)器。

go run SayHelloArduinoGSM.go

使用 ngrok 構(gòu)建橋梁

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

當(dāng) SIM 向 Twilio 發(fā)送 M2M 命令時(shí),Webhook 會(huì)發(fā)送到一個(gè)名為Commands Callback Url的用戶定義的 url 。我們將使用 ngrok 接收此 Webhook,然后將其路由到運(yùn)行在我們自己機(jī)器上的服務(wù)器。要建立連接,請(qǐng)?jiān)诜?wù)器運(yùn)行的同一端口上啟動(dòng)一個(gè)新的 ngrok 實(shí)例。

ngrok http 9999

復(fù)制使用 ngrok ( http://xxxxxxxx.ngrok.io )創(chuàng)建的轉(zhuǎn)發(fā)url

在 Twilio 控制臺(tái)中導(dǎo)航到Programmable Wireless 。找到您之前在 SIM 下注冊(cè)的SIM 。Configure選項(xiàng)卡下,您將找到Commands Callback Url 。將 ngrok轉(zhuǎn)發(fā)地址粘貼到文本框中,并將之前創(chuàng)建的服務(wù)器路由添加到 url 的末尾。

按保存。

通過(guò)天空發(fā)送消息

返回 Arduino IDE 并按上傳。

上傳后,仔細(xì)檢查命令是否使用串行監(jiān)視器正確發(fā)送。

  • 導(dǎo)航到工具 > 串行監(jiān)視器

一旦從“2936”短代碼發(fā)送了 M2M 命令,它就會(huì)被路由到 ngrok 并使用命令回調(diào) Url進(jìn)入 go 應(yīng)用程序。

最后 M2M 命令到達(dá)服務(wù)器和“helloworld.mp3”

細(xì)胞觸覺(jué)!

繼續(xù)連接?xùn)|西

您剛剛使用魔法發(fā)送了您的第一個(gè) M2M 命令。

此 M2M 命令模型是如何使用 Twilio 從遠(yuǎn)程硬件設(shè)備發(fā)送 M2M 命令的基礎(chǔ)部分。Arduino MKR GSM 1400 具有集成的調(diào)制解調(diào)器和用于發(fā)送 AT 命令功能的軟件,因此成為任何物聯(lián)網(wǎng)原型設(shè)計(jì)套件的理想之選。

如果您有興趣了解可以發(fā)送 M2M 命令的其他硬件,請(qǐng)查看無(wú)線機(jī)器到機(jī)器快速入門(mén)。該項(xiàng)目以及其他項(xiàng)目可以在TwilioIoT GitHub 上找到。

如有任何問(wèn)題或好奇,請(qǐng)隨時(shí)與我們聯(lián)系。如果您有任何已經(jīng)構(gòu)建或正在計(jì)劃構(gòu)建的很酷的物聯(lián)網(wǎng)項(xiàng)目,請(qǐng)給我留言。

作者

請(qǐng)啟用 JavaScript 以查看

由 Disqus 提供支持的評(pí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元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(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開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  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ì)》 溫德?tīng)栔?/a>
  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語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
主站蜘蛛池模板: 国产精品婷婷久青青原| 中文字幕人成人乱码亚洲影视S | 日本中文字幕巨大的乳专区| 亚洲天堂久久久| 国产精品久久久久久人妻精品蜜桃 | 亚洲成人免费观看| 波多结衣一区二区三区| 美女用手扒开粉嫩的屁股| 亚洲中文字幕AV在天堂| 国产午夜精品一区二区理论影院| 日韩人妻无码精品久久中文字幕| 99热久这里都是精品小草| 口内射精颜射极品合集| 一区二区三区无码被窝影院| 国内精品伊人久久久久| 我解开了岳的乳第一个女人 | 欧美亚洲色帝国| 2020精品国产视| 久久大香线蕉综合爱| 亚洲欧美日本国产在线观18| 国产精品人妻无码99999| 日本又黄又爽又色又刺激的视频| 99热这里只有精品9| 男女一边摸一边做羞羞的事情免费 | 98国产精品人妻无码免费| 黑人开嫩苞| 亚洲 日韩 在线 国产 精品| 国产精品免费观看视频播放| 色欲精品国产AV久久久| 俄罗斯女肥臀大屁BBW| 日韩男明星| 工口肉肉彩色不遮挡| 色欲AV精品人妻一二三区| 边做边爱BD免费看片| 人妻夜夜爽天天爽三区麻豆AV网站| youjizz怎么看| 日本特黄的免费大片视频| 成人天堂婷婷青青视频在线观看| 日本久久黄色| 纲手胸被爆羞羞免费| 熟女人妻久久精品AV天堂|