發(fā)送短信提醒與ESP32使用Twilio
短信作為交流的一部分被廣泛使用,無(wú)論是官方的還是個(gè)人的。短信技術(shù)具有快捷、方便、經(jīng)濟(jì)、環(huán)保等特點(diǎn)。短信通信可以通過(guò)從電信服務(wù)提供商那里獲得付費(fèi)服務(wù)來(lái)使用。為了構(gòu)建sms發(fā)送項(xiàng)目,GPRS模塊、SIM卡和微控制器(如ESP32)是必要的組件。這些組件一起工作以建立與電信服務(wù)提供商的連接,從而支持SMS的傳輸
但如果我告訴你,我們只需要使用微控制器和Twilio云API服務(wù)就可以做到呢?
是的,使用支持物聯(lián)網(wǎng)的微控制器板和物聯(lián)網(wǎng)云服務(wù)使得部署這樣的機(jī)制非常容易。
在這個(gè)項(xiàng)目中,我們將使用ESP32板發(fā)送短信。ESP32的內(nèi)置Wi-Fi連接使其能夠與互聯(lián)網(wǎng)通信,以訪問(wèn)Twilio云API發(fā)送短信。這個(gè)項(xiàng)目對(duì)于不同的應(yīng)用程序有不同的好處,比如傳遞通知、警報(bào)和警報(bào)。
在之前的項(xiàng)目中,我們已經(jīng)學(xué)習(xí)了如何使用ESP32發(fā)送電子郵件警報(bào)。
Twilio簡(jiǎn)介
Twilio是一個(gè)云通信平臺(tái),它提供了一組api,用于集成短信、語(yǔ)音通話、視頻消息、WhatsApp、電子郵件和身份驗(yàn)證。雖然擁有這個(gè)API是有成本的,但也可以免費(fèi)試用。物聯(lián)網(wǎng)開(kāi)發(fā)微控制器板可以訪問(wèn)互聯(lián)網(wǎng)并利用Twilio網(wǎng)絡(luò)服務(wù)向注冊(cè)號(hào)碼發(fā)送短信。
Twilio是一個(gè)云平臺(tái)服務(wù),允許以編程方式為各種項(xiàng)目發(fā)送短信。它提供了一個(gè)與移動(dòng)應(yīng)用程序和軟件無(wú)縫集成的API。此外,庫(kù)和模塊可用于集成API與微控制器和嵌入式平臺(tái)。
組件的要求
對(duì)于這個(gè)項(xiàng)目,我們需要很少的要求,包括軟件和硬件
1.ESP32微控制器模塊
2.為什么Twilio帳戶
3.Arduino IDE
配置Twilio試用帳戶
由于Twilio不是免費(fèi)服務(wù),它是付費(fèi)服務(wù),但試用賬戶是免費(fèi)使用的。我們將創(chuàng)建一個(gè)試用帳戶,用于測(cè)試該平臺(tái)提供的SMS API功能。
讓我們看看創(chuàng)建帳戶所涉及的一些基本步驟:
?轉(zhuǎn)到Twilio開(kāi)始創(chuàng)建一個(gè)試用帳戶。輸入開(kāi)戶所需的基本信息。
?請(qǐng)通過(guò)點(diǎn)擊發(fā)送到所提供的電子郵件地址的驗(yàn)證鏈接來(lái)驗(yàn)證您的電子郵件帳戶。另外,通過(guò)確認(rèn)發(fā)送到您手機(jī)號(hào)碼的OTP(一次性密碼)來(lái)驗(yàn)證您的手機(jī)號(hào)碼。
?一旦你完成驗(yàn)證過(guò)程,Twilio會(huì)將你重定向到一個(gè)頁(yè)面,在那里你可以填寫個(gè)性化的設(shè)置細(xì)節(jié)。提交這些信息后,您將被引導(dǎo)到Twilio主控制臺(tái)頁(yè)面。
添加來(lái)電顯示
向Twilio添加來(lái)電顯示意味著我們?cè)试STwilio向給定的來(lái)電顯示發(fā)送消息。必須首先驗(yàn)證每個(gè)來(lái)電顯示,以便在免費(fèi)試用帳戶中使用Twilio Cloud API發(fā)送消息。
?轉(zhuǎn)到電話號(hào)碼部分,展開(kāi)它,然后單擊已驗(yàn)證的來(lái)電顯示。在這里,您將看到您的驗(yàn)證號(hào)碼已經(jīng)列出。
?如果您想添加另一個(gè)來(lái)電顯示,只需點(diǎn)擊位于右上角的“添加新來(lái)電顯示”按鈕。填寫所需的詳細(xì)信息并驗(yàn)證附加號(hào)碼,以成功將其添加為另一個(gè)來(lái)電顯示。
購(gòu)買Twilio號(hào)碼
發(fā)送短信到來(lái)電顯示需要一個(gè)國(guó)家的活躍號(hào)碼。Twilio提供來(lái)自不同國(guó)家的不同活躍電話號(hào)碼,但這些不是免費(fèi)的。使用活動(dòng)號(hào)碼需要付一些錢。但別擔(dān)心,我們可以免費(fèi)使用它進(jìn)行測(cè)試。
我們?cè)赥wilio上使用了一個(gè)免費(fèi)的試用賬戶,我們可以免費(fèi)將一些錢存入我們的賬戶。我們可以用同樣的錢買一個(gè)活躍號(hào)碼。
?現(xiàn)在轉(zhuǎn)到電話號(hào)碼部分,然后管理>購(gòu)買號(hào)碼。
?選擇任何想要的國(guó)家,特別是不要忘記選擇功能作為SMS,因?yàn)樗鼤?huì)過(guò)濾掉發(fā)送消息的活動(dòng)號(hào)碼。
?在點(diǎn)擊“購(gòu)買”按鈕后,將出現(xiàn)一個(gè)提示,顯示數(shù)字并要求接受條款和條件。如果您注意到任何紅色標(biāo)記,則表示在該特定號(hào)碼上使用SMS服務(wù)需要額外的文檔。在這種情況下,建議不要僅為測(cè)試目的而購(gòu)買該號(hào)碼。
?最后,在搜索了不同的國(guó)家后,成功地找到了一些提供短信功能的國(guó)家,沒(méi)有任何注冊(cè)要求或限制。
?現(xiàn)在轉(zhuǎn)到電話號(hào)碼>活動(dòng)號(hào)碼。你會(huì)看到你剛剛帶來(lái)的電話號(hào)碼。
創(chuàng)建消息傳遞服務(wù)
到目前為止,我們已經(jīng)增加了來(lái)電顯示,并帶來(lái)了一個(gè)Twilio號(hào)碼發(fā)送短信?,F(xiàn)在將看到如何設(shè)置可編程消息傳遞服務(wù)。
?轉(zhuǎn)到消息傳遞部分,然后轉(zhuǎn)到服務(wù)。單擊創(chuàng)建消息傳遞服務(wù)。
?為消息傳遞服務(wù)指定一個(gè)名稱,然后單擊“創(chuàng)建消息傳遞服務(wù)”。
?要添加發(fā)件人,請(qǐng)單擊“添加發(fā)件人”,并選擇發(fā)件人類型為“電話號(hào)碼”。之后,點(diǎn)擊“Continue”繼續(xù)。
?選擇您之前購(gòu)買的電話號(hào)碼。這個(gè)Twilio號(hào)碼將作為發(fā)件人號(hào)碼。點(diǎn)擊“添加電話號(hào)碼”。
?最后,在服務(wù)內(nèi)部,您可以看到最近創(chuàng)建的消息傳遞服務(wù)。
發(fā)送測(cè)試消息
現(xiàn)在,讓我們看看如何初始化Message send。
?轉(zhuǎn)到消息>試用>發(fā)送短信。然后,您注意到您的來(lái)電顯示號(hào)碼已經(jīng)寫好了,而在“發(fā)件人”部分選擇“消息傳遞服務(wù)”。
?然后選擇您之前創(chuàng)建的消息傳遞服務(wù)。
?根據(jù)您的選擇給出適當(dāng)?shù)南⒄?。然后單擊Send Message。
你可以看到我們收到的真實(shí)短信。
基于Arduino IDE的ESP32編程
為ESP32編程以訪問(wèn)Twilio帳戶是一項(xiàng)相對(duì)簡(jiǎn)單的任務(wù)。首先,我們必須在代碼中包含Twilio內(nèi)置庫(kù)。通過(guò)其WiFi功能將ESP32連接到互聯(lián)網(wǎng),我們可以訪問(wèn)Twilio云API。該程序允許自定義消息內(nèi)容,并使我們能夠指定我們想要發(fā)送消息的收件人的手機(jī)號(hào)碼。
我們正在使用Arduino IDE來(lái)編程我們的ESP32,它內(nèi)置了WIFI和其他必要的庫(kù)。
Twilio ESP32客戶端庫(kù)
安裝Twilio ESP32庫(kù)是通過(guò)訪問(wèn)Twilio云API來(lái)使用Twilio可編程消息服務(wù)的必要條件。讓我們看看如何在Arduino IDE中安裝它。
通過(guò)Sketch進(jìn)入Arduino的庫(kù)管理器> include libraries> manage libraries。
搜索“Twilio esp32 client”,你會(huì)發(fā)現(xiàn)Adam Demuri創(chuàng)建的第一個(gè)名為“Twilio -esp32-client”的庫(kù)。
安裝它,這就是如何容易庫(kù)安裝。
程序說(shuō)明發(fā)送短信ESP 32
我們已經(jīng)包含了連接到Twilio云API所需的所有基本庫(kù)。我們還包含了一些變量和對(duì)象來(lái)存儲(chǔ)數(shù)據(jù),以便進(jìn)一步編程。
在上面的代碼行中,我們使用SSID和Password指針來(lái)存儲(chǔ)WIFI網(wǎng)絡(luò)憑據(jù)的字符值,我們的物聯(lián)網(wǎng)板通過(guò)這些憑據(jù)連接到互聯(lián)網(wǎng)。
訪問(wèn)API密鑰
為了訪問(wèn)Twilio云API可編程消息服務(wù),我們需要獲得正確的API密鑰來(lái)安全地連接到我們的Twilio帳戶。API密鑰,包括帳戶SID和認(rèn)證令牌應(yīng)采取登錄到Twilio帳戶。為了成功發(fā)送消息,帳戶SID和認(rèn)證令牌需要替換為代碼中的憑據(jù)。
登錄到您的Twilio帳戶。轉(zhuǎn)到右上角,然后帳戶> API密鑰和令牌。
在這里,您可以看到API密鑰所需的詳細(xì)信息。
此外,我們還定義了指針來(lái)存儲(chǔ)發(fā)送方和接收方的編號(hào)。您需要將發(fā)件人號(hào)碼替換為您在Twilio帳戶上購(gòu)買的號(hào)碼。如果您使用的是免費(fèi)試用版Twilio帳戶,則收件人的手機(jī)號(hào)碼應(yīng)該是添加到驗(yàn)證來(lái)電顯示列表中的號(hào)碼。指針消息存儲(chǔ)消息的字符,您可以直接將消息放入雙引號(hào)內(nèi)。
最后,初始化庫(kù)Twilio類的一個(gè)對(duì)象。
在Setup()函數(shù)中,我們初始化波特率為115200的串行端口。然后我們開(kāi)始命令WIFI .begin()通過(guò)提供正確的SSID和密碼來(lái)初始化WIFI連接到網(wǎng)絡(luò)。
然后,我們通過(guò)命令WL_CONNECTED監(jiān)視連接,并以500毫秒的延遲將周期作為進(jìn)度指示器打印到串行監(jiān)視器。最后,連接成功后將在串行監(jiān)視器上打印。
下面的代碼行初始化一個(gè)新的Twilio實(shí)例,參數(shù)傳遞為Account SID和Auth Token。
要使用Twilio API發(fā)送SMS,可以調(diào)用send_message()函數(shù),提供接收方號(hào)碼、發(fā)送方號(hào)碼、消息內(nèi)容和存儲(chǔ)響應(yīng)的變量。這個(gè)函數(shù)在后臺(tái)處理HTTP請(qǐng)求,將所有必需的參數(shù)發(fā)送給Twilio API以成功發(fā)送SMS。
如果消息成功發(fā)送,該函數(shù)返回True,否則它將打印從HTTP獲得的響應(yīng)。
由于發(fā)送SMS不是免費(fèi)的,因此我們將代碼放在Setup()中,該代碼在主板啟動(dòng)時(shí)只發(fā)送一條SMS,并使循環(huán)為空。
使用ESP32發(fā)送短信的工作原理說(shuō)明
現(xiàn)在,您只需將草圖加載到Arduino IDE中。在代碼中填寫所需的必要細(xì)節(jié),例如正確提供API密鑰和WiFi網(wǎng)絡(luò)憑據(jù)以將其連接到互聯(lián)網(wǎng)。另外,不要忘記替換發(fā)送人和接收人的手機(jī)號(hào)碼。
下一步工作步驟:
?在Arduino IDE中打開(kāi)代碼草圖,通過(guò)micro-USB連接線連接ESP32模塊。
?選擇板為ESP32 Dev Module(僅當(dāng)您已經(jīng)安裝了ESP32板管理器時(shí)有效)
?選擇COM端口
按照上面已經(jīng)討論過(guò)的步驟上傳代碼并嘗試一下。打開(kāi)串行監(jiān)視器設(shè)置正確的波特率,等待,直到它顯示已連接。
在串行監(jiān)視器上,如果成功完成,您將獲得一條成功消息
最后,為了確保收件人成功收到短信,您可以檢查收件人的手機(jī)號(hào)碼是否存在短信。
本文編譯自iotdesignpro