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





