首先,由于树莓派3 Model B的TTL引脚GPIO14、GPIO15默认被分配给了蓝牙,所以为了能用这两个引脚接GSM模块,必须把蓝牙禁用掉,然后把GPIO14、GPIO15分配给串口。具体实现参考:http://blog.csdn.net/aguangg_6655_la/article/details/54985423
串口重新分配后,开始把树莓派3和GSM/GPRS A6模块用TTL线连接起来。当然了,A6模块要插一张SIM电话卡进去,我的是从手机取出来的中国移动卡。4根线对接如下:
GSM: VCC_IN <----> 树莓派: DC 5V
GSM: U_TXD <----> 树莓派: RXD0(GPIO15)
GSM: U_RXD <----> 树莓派: TXD0 (GPIO14)
GSM: GND <----> 树莓派: GND
接线完成,给树莓派和A6模块供电。树莓派是买的配套的5V电源;但是我一直在犹豫A6模块如何供电的问题,因为网上找不到相关文档,麻痹的卖模块的商家居然也没有文档,艹。我先尝试用我的安卓手机充电器(也是5V)给A6模块供电。
都通电后,我用putty连上树莓派linux系统,执行命令:minicom -D /dev/ttyAMA0 开始监控串口接收数据。我打开另一个putty,执行AT命令尝试让A6模块开始拨打电话:
但是minicom里面监控的A6反馈信息一直不正常,我的电话也一直没有响。A6将我的命令原样返回给了minicom,也就是说A6收到了命令但是没有执行。为什么?我感觉难道是因为手机充电器供电不对导致的吗?
然后我尝试用树莓派的5V和Ground接到A6模块的VCC和GND(前面步骤我只把树莓派的两根数据线与A6连接了,5V电源和GND并没有接,我担心拨电话时树莓派的供电不足),再执行AT命令,minicom里监控的A6反馈信息居然变化了,然后我的手机响了。如下:
到此,我折腾了很久,终于实现了树莓派和GSM A6模块的通信,并能打电话。