如何:用PIC16F628A和SIM900A发送短信
2016年3月3日,通过Jens Christoffersen在本文中,我将向您展示一种使用PIC 16F628A和SIMCOM SIM900A模块发送SMS的方法。
在本文中,我将向您展示一种使用PIC 16F628A和SIMCOM SIM900A模块发送SMS的方法。
在一个以前的文章中提到,我对我的GSM模块进行了固件升级,这样它就可以注册到欧洲的服务提供商。在那篇文章中,我简要地介绍了AT命令和说明。
在本文中,我将更进一步。我会用我的PIC 16F628A发送短信。
完整的案板。
需求
为了充分利用这篇文章,你需要以下几点:
- SIMCOM SIM900A模块,升级后可以注册到欧洲的服务提供商。
- 电脑运行MPLAB X,XC8编译器。
- 一个图片16 f628a和一个MAX232。
- 一种给你的照片编程的方法,我用的是PICkit 3。
- 电路试验板,jumperwires和一个液晶显示器。
- 零件清单中的零件。
介绍
当SIM900A模块上电后,会发生很多事情。其中之一是模块试图注册到网络。当它成功注册到一个网络时,我们可以发送短信,接收短信,并获得服务提供商的名称。本文的主要目标是向预定义的号码发送SMS。获得服务提供者名称是一个额外的收获。
模块使用TTL或板载MAX232 IC与周围电路通信。我将使用MAX232接口。这意味着所有通信都是通过PICs UART完成的,来自PIC的所有命令都将通过printf发送到UART端口。
硬件
我像这样连接我的面包板:
点击图像全尺寸决议。
因为我使用MAX232,我可以使用它来查看和排除微控制器发送到GSM模块的故障。为此,我断开GSM模块,连接串口电缆,并打开GtkTerm。波特设置:9600 - 8 - n - 1。
连接到计算机进行故障排除。
这是微控制器发送给GSM模块的信息。前三行仅用于验证串行通信是否正常工作,并查看我正在发送的内容。最后两行是GSM模块的指令。
我没有收到GSM模块的回复,因为它没有连接。
Partlist
这是bom的截图。ulp EagleCAD。
软件
虽然这个软件已经被评论过了,但是我将在这里介绍它的一些部分。PIC上电后,会显示一条简短的欢迎信息。然后开始15秒倒计时。我用这个倒计时,有两个原因:
- 允许GSM模块注册。
- 一种视觉显示,向用户显示正在发生的事情,PIC正在工作。
当倒计时结束时,PIC发送命令:
在+ CPOL吗?\ r \ n
重要的是要添加回车—新行,即\r\n。这告诉模块执行已经到达模块缓冲区的文本字符串。
然后该模块返回字符串:
+CPOL: 1,0,“N网通”,1,0,1
这意味着该模块已注册到网通。网通是服务提供商的名称。我们想在LCD上显示的就是这个名字。现在我们需要从字符串中提取名称。我的方法是,将整个字符串读入一个数组。然后我会搜索“-符号”。找到“-符号”后,我将它们的位置存储在另一个数组中。这就是我所说的“开始和停止”。然后我使用“start and stop”中的值在LCD上显示它们之间的字符。也许这不是最好的方法,但很简单。
为了发送短信,我必须发送更多的AT命令。
首先,我发出命令:
在+ CMGF = 1 \ r \ n
这是选择短信格式。1告诉模块进入文本模式。
第二,我发出命令:
在+发生= \ r \ n“接收器”
“收件人”是我要发送信息的号码。
第三,我发出命令:
消息从PIC16F628A \ r \ n
这就是实际的信息。由于消息有多个字符(包括空格),因此有一种巧妙的方法告诉模块消息的结尾在哪里。我需要发送EOF符号,也就是CTRL-Z。
printf (" % c”,26岁);
这是普通ASCII表中的EOF字符。模块现在将发送消息。
使用这个链接查找有关SIM900A模块的文档。
下载
您可以从该链接下载c源代码。
结论
现在,您应该能够在欧洲网络上获取服务提供商名称,并使用SIM900A模块发送SMS。
图片和视频
自己尝试一下这个项目吧!BOM。
我们需要SIM卡吗?
我们需要SIM卡吗?