在本文中,我將向您展示一種使用 PIC 16F628A 和 SIMCOM SIM900A 模塊發(fā)送 SMS 的方法。
在上一篇文章中,我對(duì)我的 GSM 模塊進(jìn)行了固件升級(jí),因此它會(huì)注冊(cè)到歐洲服務(wù)提供商。在那篇文章中,我簡(jiǎn)要介紹了 AT 命令和指令。
在本文中,我將更進(jìn)一步。我會(huì)用我的 PIC 16F628A 發(fā)送短信。
完整的面包板。
要求
要充分利用本文,您需要具備以下條件:
SIMCOM SIM900A 模塊,升級(jí)后可以注冊(cè)到歐洲服務(wù)提供商。
一臺(tái)運(yùn)行MPLAB X和XC8編譯器的計(jì)算機(jī)。
一個(gè) PIC 16F628A和一個(gè) MAX232。
一種對(duì)您的 PIC 進(jìn)行編程的方法,我使用的是PICkit 3。
面包板、跳線和液晶顯示器。
零件清單中的零件。
介紹
SIM900A模塊上電后,會(huì)發(fā)生很多事情。其中之一是模塊正在嘗試注冊(cè)到網(wǎng)絡(luò)。成功注冊(cè)到網(wǎng)絡(luò)后,我們可以發(fā)送短信、接收短信并獲取服務(wù)提供商名稱。本文的主要目標(biāo)是將 SMS 發(fā)送到預(yù)定義的號(hào)碼。獲得服務(wù)提供商的名稱是一種獎(jiǎng)勵(lì)。
該模塊通過 TTL 或板載 MAX232 IC 與周圍電路通信。我將使用 MAX232 接口。這意味著所有的通信都是通過 PIC 的 UART 完成的,我們來自 PIC 的所有命令都將通過 printf 發(fā)送到 UART 端口。
硬件
我已經(jīng)像這樣連接了我的面包板:
單擊圖像以獲得全尺寸分辨率。
由于我使用的是 MAX232,因此我可以使用它來查看微控制器正在發(fā)送到 GSM 模塊的內(nèi)容并對(duì)其進(jìn)行故障排除。為此,我斷開 GSM 模塊,連接串行電纜,然后打開 GtkTerm。波特率設(shè)置:9600-8-N-1。
連接到計(jì)算機(jī)以進(jìn)行故障排除。
這是微控制器發(fā)送到 GSM 模塊的內(nèi)容。前三行僅用于驗(yàn)證串行通信是否正常并查看我正在發(fā)送的內(nèi)容。最后兩行是對(duì) GSM 模塊的指令。
我沒有收到 GSM 模塊的回復(fù),因?yàn)樗鼪]有連接。
零件清單
這是來自 EagleCAD 的 bom.ulp 的屏幕截圖。
軟件
盡管該軟件已被注釋,但我將在這里介紹它的某些部分。當(dāng) PIC 通電時(shí),會(huì)顯示一條簡(jiǎn)短的歡迎消息。然后開始 15 秒倒計(jì)時(shí)。我把這個(gè)倒計(jì)時(shí),有兩個(gè)原因:
允許 GSM 模塊注冊(cè)。
一個(gè)視覺顯示,向用戶顯示正在發(fā)生的事情并且 PIC 正在工作。
倒計(jì)時(shí)結(jié)束后,PIC 發(fā)送命令:
AT+CPOL?\r\n
重要的是添加回車 - 新行,\r\n。這告訴模塊執(zhí)行已到達(dá)模塊緩沖區(qū)的文本字符串。
然后模塊返回字符串:
+CPOL: 1,0,”N NetCom”,1,0,1
這意味著該模塊已注冊(cè)到 NetCom。NetCom 是服務(wù)提供商的名稱。這是我們要在 LCD 上顯示的名稱?,F(xiàn)在我們需要從字符串中提取名稱。我這樣做的方法是將整個(gè)字符串讀入一個(gè)數(shù)組。然后我將搜索“-signs”。找到“-signs”后,我將它們的位置存儲(chǔ)在另一個(gè)數(shù)組中。這就是我所說的“開始和停止”。然后我使用“開始和停止”中的值在 LCD 上顯示中間的字符。也許不是最花哨的方法,但它很簡(jiǎn)單。
要發(fā)送短信,我必須發(fā)送更多 AT 命令。
首先,我發(fā)送命令:
AT+CMGF=1\r\n
這是選擇 SMS 消息格式。1 告訴模塊進(jìn)入文本模式。
其次,我發(fā)送命令:
AT+CMGS=”接收方”\r\n
“接收者”是我要發(fā)送消息的號(hào)碼。
第三,我發(fā)送命令:
來自 PIC16F628A 的消息\r\n
這是實(shí)際的消息。由于消息有多個(gè)字符,包括空格,所以有一種很好的方法可以告訴模塊消息的結(jié)尾在哪里。我必須發(fā)送 EOF 標(biāo)志,恰好是 CTRL-Z。
printf(“%c”,26);
這是常規(guī) ASCII 表中的 EOF 字符。該模塊現(xiàn)在將發(fā)送消息。
使用此鏈接查找有關(guān) SIM900A 模塊的文檔。
下載
您可以從鏈接下載 c 源代碼。
jc_pic16f628a-gsm-sms.c.zip
結(jié)論
您現(xiàn)在應(yīng)該能夠獲取您的服務(wù)提供商名稱,并使用 SIM900A 模塊在歐洲網(wǎng)絡(luò)上發(fā)送 SMS。
圖片和視頻
-
SMS
+關(guān)注
關(guān)注
0文章
78瀏覽量
29044 -
PIC16F628A
+關(guān)注
關(guān)注
1文章
9瀏覽量
10199 -
SIM900A
+關(guān)注
關(guān)注
3文章
54瀏覽量
35686
發(fā)布評(píng)論請(qǐng)先 登錄
SIM900A發(fā)送短信。
需要編程PIC16F628A
使用pic16f628a從sim800a讀取響應(yīng)不成功
PIC16F628與PIC16F628A不同
基于SIM900A的應(yīng)用與實(shí)現(xiàn)
sim900a http,SIM900A訪問HTTP的方法

sim900a模塊簡(jiǎn)介_sim900a原理圖

SIM900A調(diào)試之波特率設(shè)置_SIM900A基站定位調(diào)試詳細(xì)步驟

PIC16F628A的面包板模塊說明

單片機(jī)控制SIM900A型GSM模塊發(fā)送數(shù)字短信(附源碼)

帶有PIC16F628A的頻率計(jì)數(shù)器

評(píng)論