在现代电子项目中,无线通信已成为不可或缺的一部分。GSM模块因其能够通过蜂窝网络发送和接收文本消息以及进行电话呼叫而受到广泛应用。本文将介绍如何使用GSM模块与Arduino进行交互,并分享一些有趣的发现。
GSM模块具有四个2.54mm的连接器,分别用于麦克风/耳机(语音接口)、电池供电、仅VCC/GND引脚以及一些重复的引脚。板上的MAX232直接连接到5V电源,而其余部分则由AMS1117提供3.3V电源。在实验中,遇到了一个常见的问题:耳机/麦克风插座错误地插入了电池插槽,导致模块在启动时出现错误并自动关闭,因为它认为电池温度过高。此外,板上的电池插座还预留了一些引脚,用于连接外部RTD传感器以测量电池温度。
本节将介绍如何将TC35模块与ArduinoUno板,ATmega328p处理器进行连接。按照以下步骤将UNO板连接到GSM SIEMENS TC35板上:
首先,将UNO板的TX连接到GSM SIEMENS TC35板的RX:
接下来,将UNO板的RX连接到GSM SIEMENS TC35板的TX。
现在,将UNO板的GND连接到GSM SIEMENS TC35板的GND。这样可以确保所有信号具有相同的地参考。
为UNO板和GSM SIEMENS TC35板提供5V电源(或支持UNO板的5V,然后将UNO板的电源连接到GSM SIEMENS TC35板上)。在通电后,必须按下板上的重置开关以启动模块。这等同于将IGT(点火)线短路到GND。该过程在数据手册的Power-On部分有描述。
最后,使用USB线将UNO板连接到PC。可以在此处找到UNO板的数据手册。下载必要的代码到UNO板上,以便与TC35模块通信。
如果微控制器在连接看似正确的情况下无法与TC35板通信,请尝试反转TX和RX引脚——一些廉价的TC35板可能对某些引脚的标签有误。
这是UNO板与TC35板之间的最终电路连接图:
这张图片显示了串行电缆连接到TC35模块的情况。
这是串行电缆连接到计算机串行端口的情况。
在继续之前,请确保已将活动SIM卡插入SIM卡座,并按下GSM启动按钮:
网络LED将以500ms开和500ms关的模式闪烁,表示TC35正在初始化,尚未准备好。当LED以75ms开和3秒关的模式闪烁时,这意味着TC35调制解调器已准备好使用。
接下来,打开Hyper Terminal并创建一个新的连接到正确的串行端口:
在端口设置中,将波特率设置为9600bps,流控制设置为无(8N1):
在继续之前,可能还想检查模块是否支持使用AT+FCLASS命令进行语音通话。在模块上,不支持语音通话,只支持传真/数据通话,因为AT+FCLASS只返回0/1而不是8——因此,除非SIM卡支持传真/数据通话,否则调制解调器将响应NO CARRIER。
以下是使用ATD命令拨打TC35模块上的电话的串行会话记录:
ATD
OK
ATH
OK
在发送ATD命令后,输入要拨打的号码,然后使用ATH命令挂断电话。
以下AT命令演示了如何发送短信:
AT+CMGF=1
OK
AT+CMGS=84903167823
OK
>hello world!!!
+CMGS: 8
OK
在发送AT+CMGS命令后,输入目标电话号码,然后输入消息,接着输入Ctrl+Z,调制解调器将返回+CMGS: XXX,表示消息已发送。
以下代码用于演示如何使用GSM SEIMENS TC35短信无线模块读取短信:
AT+CMGF=1
OK
AT+CMGR=1
+CMGR: "REC READ", "+84903167823",,"15/09/23,10:37:05+23"
Hello
OK
AT+CMGR=2
+CMGR: "REC READ", "+84903167823",,"15/09/23,10:40:12+52"
Oh, hello
OK