Arduino + GSM模塊:打電話和發(fā)短信
想象一下,把Arduino和GSM模塊(如SIM900或SIM800)變成一個微型電話:你可以按下一個按鈕撥出或發(fā)送消息!下面是如何構建您自己的簡單項目。
您需要的組件
?Arduino Uno(或類似)
?GSM模塊(SIM900、SIM800、SIM900A等)
?兩個按鈕
?兩個LED(220個?Ω電阻)
?跳線和面包板
?上傳代碼的USB線
?支持語音和短信功能的SIM卡(支持2G網絡)
電路設置
遵循以下聯(lián)系:
?Arduino數字?10→GSM TX
?Arduino數字?11→GSM RX
?Arduino GND→GSM GND
?使用Arduino D7上的按鈕1進行呼叫
?使用Arduino D8上的按鈕2發(fā)送短信
?通話時LED?1 (D5上)燈亮
短信發(fā)送期間的LED?2 (D4上)燈用適當的電源為GSM模塊供電(通常為12?V/1?A或調節(jié)5?V/ 3-4?V,具體取決于您的模塊)
它是如何工作的
打電話
?按下按鈕1 (D7)
?Arduino發(fā)送:ATD;撥打
?LED?1在撥號時點亮
?延遲后,Arduino發(fā)送ATH掛起
?活動在串行監(jiān)視器上顯示
發(fā)送短信
?按二鍵(D8)
?Arduino發(fā)送:
?AT+CMGF=1啟用文本模式
?在+發(fā)生=“電話號碼”
?消息文本
?Ctrl+Z (ASCII 26)發(fā)送短信
?Arduino發(fā)送:AT+CMGF=1啟用文本模式AT+CMGS=“電話號碼”
?短信textCtrl+Z (ASCII 26)發(fā)送短信
?LED?2表示行動正在進行中
?確認信息出現在串行監(jiān)視器上
接收短信(可選)
?Arduino也可以使用AT命令接收短信:
?使用AT+CNMI=2,2,0,0,0配置轉發(fā)
?然后監(jiān)視gsm.available()來讀取傳入的短信文本和遠程號碼
?Arduino也可以使用AT命令接收短信:使用AT+CNMI=2,2,0,0,0配置轉發(fā),然后監(jiān)控gsm.available()讀取傳入的短信文本和遠程號碼
示例代碼片段
重要提示和故障排除
?確保您的SIM卡支持您所在國家所需的2G頻段(例如,許多GSM模塊僅支持900?/?1800?MHz)
?檢查電源要求:GSM模塊經常需要1-2?A的穩(wěn)定突發(fā)電流;建議使用單獨的調節(jié)器或電池
?適當的邏輯電平移位可能是必要的(Arduino 5?V→模塊3.3?V引腳),以避免損壞模塊
?匹配Arduino (Serial Monitor)和GSM模塊的波特率,避免輸出亂碼
本文編譯自hackster.io





