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