风筝
发表于: 2020-4-20 21:59:52 | 显示全部楼层

在本篇文章中,我们将学习如何使用GSM模块和Arduino开发板自制一个简易手机,实现拨打电话和短信。该电话能够拨打另一个号码,也可以接听来电。同样,它也可以用于发送短信以及读取收到的短信。


首先我们将GSM模块SIM800 / SIM900与Arduino UNO开发板连接。 1602 LCD用于显示正在发生的操作,例如显示信号强度、运营商名称、呼入或呼出电话、SMS发送的已接收状态以及经过的时间。 4×4键盘用于输入数字或使用字母数字键盘输入SMS文本。麦克风用于传输语音,扬声器用于响铃和收听来电/语音。


所需的组件

以下是该项目所需的组件列表:

●    Arduino UNO开发板

●    SIM800 / SIM900 GSM模块

●    4×4键盘

●    1602 LCD显示屏

●    8欧姆0.2瓦扬声器

●    麦克风

●    10K电位器

●    用于Arduino的5V DC适配器

●    GSM模块的12V DC适配器

●    连接线

●    面包板

Components-Needed-for-Simple-Phone.png


SIM800 GSM模块

SIM800是专为全球市场设计的四频GSM / GPRS模块。它适用于GSM 850MHz、EGSM 900MHz、DCS 1800MHz和PCS 1900MHz的频率。 SIM800具有GPRS多时隙12类/ 10类(可选),并支持GPRS编码方案CS-1、CS-2、CS-3和CS-4。 SIM800的尺寸仅为24 * 24 * 3mm,可满足用户应用程序(例如M2M、智能电话、PDA和其他移动设备)中几乎所有的空间需求。


SIM800具有68个SMT焊盘,并提供模块与客户电路板之间的所有硬件接口。 SIM800采用省电技术设计,因此在睡眠模式下的电流消耗低至1.2mA。 SIM800集成了TCP / IP协议和扩展的TCP / IP AT命令,这些命令对于数据传输应用程序非常有用。


主要特征

•    最多支持5 * 5 * 2键盘。

•    一个全功能的UART端口,可以配置为两个独立的串行端口。

•    一个USB端口可用作调试和固件升级。

•    音频通道,包括麦克风输入和接收器输出。

•    可编程的通用输入和输出。

•    一个SIM卡接口。

•    支持蓝牙功能。

•    支持一个PWM。

•    PCM / SPI / SD卡接口,只能同步访问一项功能。

•    电源3.4V〜4.4V

•    睡眠模式下的典型功耗为1.2mA

•    频段GPRS多时隙12类

•    支持SIM卡:1.8V、3V

•    串行端口:可用于数据流的AT命令

•    USB端口:可用作调试和固件升级


连接电路图

Circuit-Diagram.png


如上图所示组装电路。将SIM800 / SIM900模块连接至Arduino的数字引脚2和3。将1602 LCD连接至Arduino模拟引脚A0、A1、A2、A3、A4、A5。将4×4键盘连接到Arduino数字引脚11、10、9、8、7、6、5、4。扬声器和麦克风需要连接到GSM模块。


工作过程说明

我们将使用Arduino Uno开发板和GSM模块实现四个功能。这些是:拨打电话、接听电话、发送短信和接收短信。


我们使用AT命令将Arduino与GSM模块连接。以下是一些常用的AT命令:

1. AT:测试GSM模块响应

2. AT + CIMI:请求国际移动用户身份

3. ATD + 91XXXXXXXXXX:拨打指定的号码(用数字替换x)

4. AT + CMG = 1:打开gsm的消息传递模式

5. AT + CNMI = 2,2,0,0,0:打开消息指示灯

6. ATH:暂停通话

7. ATA:接听来电

8. AT + COPS:获取服务提供商名称

9. AT + CSQ:获取信号强度

3.jpg


6.jpg


如何发送/接听电话和短信?

●  拨打电话

按下“ A”按钮,您将进入拨打电话模式。 LCD会提示您输入要拨打的号码。


以下按钮用于拨打电话模式

“ D”:用于取消通话操作

“ *”:用于删除数字

‘#’:拨打已拨电话


●  发送短信

按“ B”键在发送消息模式下配置模块。 LCD会提示“输入号码”。您需要输入10位号码。


以下这些按钮也用于发送短信模式。

“ D”:用于取消发送操作

“ *”:用于删除数字

‘#’:通过拨打的号码发送短信


●  接听电话和短信

模块在启动时将自身配置为接收模式,并且一旦收到呼叫或SMS,LCD就会显示响应。 如果收到响应,该程序仅使用两个按钮进行用户交互。

“ *”:用于显示收到的短信/接听电话。

‘#:用于暂停或终止消息/终止来电


源代码/程序

下面给出了使用GSM模块和Arduino进行呼叫和短信的代码。 该代码由Agam Tyagi开发。 main.rar (5.11 KB, 下载次数: 103)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-26 10:45 , Processed in 0.064561 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表