跳到主要内容

使用GSM的无线电子公告板

我们知道公告板在火车站、汽车站和机场等公共场所的重要性。但是,每天更换公告是一项困难的任务。本文将向您解释如何使用GSM技术设计无线电子公告板。该项目能够在LCD上显示我们从手机发送的数据。

无线通信技术有很多,比如蓝牙、RF通信、ZigBee等,但基于GSM技术的通信可以实现远距离、可靠且安全的通信。

1. 使用GSM的无线电子公告板

该无线电子公告板项目,顾名思义,是基于GSM技术构建的,因为使用GSM技术进行通信的手机已经非常普及、便宜且易于使用。

注意:我们需要一部手机来发送消息(公告),还需要一个GSM调制解调器(GSM MODEM)来接收该公告。

2. 电路原理

当我们从手机发送消息时,连接到单片机和显示单元的GSM调制解调器会接收消息。此时,单片机会从GSM调制解调器读取消息,并将其显示在LCD上。

当用户从手机发送消息时,GSM调制解调器会串行发送以下命令,表示收到了新消息:

+CMTI: "SM",3

在上述命令中,数字“3”表示新消息的位置,即该消息是收件箱中的第3条消息。此时,我们需要读取这条未读消息并在LCD上显示。读取GSM调制解调器中消息的命令如下:

AT+CMGR=3

其中,数字“3”表示要读取的消息的位置。在向GSM模块发送此命令后,GSM模块将串行发送以下命令:

+CMGR: "REC UNREAD","MD-WAYSMS",,"13/05/20,15:31:48+34"

在上述命令中:

  • “REC UNREAD” 表示消息为未读消息
  • “MD-WAYSMS” 表示发送者的手机号码或姓名
  • “13/05/20” 表示日期
  • “15:31” 表示时间
  • “Electronics Hub”是消息内容

我们需要从上述命令中提取用户发送的消息(例如Electronics Hub),并在公告板(LCD)上显示。

3. 使用GSM的无线电子公告板电路图

无线电子公告板GSM电路图如下所示。

alt text

4. 无线电子公告板的硬件需求

(1) 硬件需求

  • 8051单片机(AT89C51)
  • 8051编程板(带下载线的编程器)
  • 8051开发板
  • SIM900A GSM调制解调器(GSM模块)
  • SIM卡(插入GSM调制解调器)
  • 一部插入SIM卡的手机
  • 16x2 LCD显示屏
  • 10 KΩ电位器
  • 连接线
  • 电源

如果没有8051开发板,则需要以下元件

  • 2 x 10 KΩ 电阻(1/4W)
  • 2 x 33pF 陶瓷电容
  • 按键开关
  • 10µF / 16V 电解电容(极性)
  • 0592 MHz 石英晶振

(2) 软件需求

  • Keil µVision IDE(用于编写程序并生成.hex文件)

  • Willar软件(用于将.hex文件烧录到单片机)

  • Proteus(用于绘制电路图和仿真)

5. 电路设计

上述无线电子公告板GSM电路包括8051单片机GSM模块(调制解调器)16x2 LCD。 在此,16x2 LCD用于显示消息,并以8位模式工作,这意味着我们需要8条数据线来显示数据。LCD的数据线连接到PORT1引脚,LCD的控制引脚RS、RW和E分别连接到P3.6GNDP3.7

GSM模块直接连接到单片机,因为GSM调制解调器与单片机的逻辑电平在GSM模块板上已经匹配。如果开发板上没有电平转换器,则需要使用MAX232电平转换器作为单片机与GSM之间的数据传输媒介。

了解更多关于MAX232的细节,请参考 MAX232数据手册

为了与GSM调制解调器通信,我们需要使用串口通信(UART协议)发送一些AT命令。这里使用的是GSM SIM900A模块,该模块的通信速率为9600波特率

了解更多GSM详情,请参考 GSM与8051单片机接口

alt text
alt text
alt text
alt text
alt text

6. 电路算法

  1. 初始化LCD和UART协议

  2. 检查是否接收到 +CMTI: "SM",3 命令(其中数字表示新消息位置)

  3. 如果接收到该命令,则存储消息位置号

  4. 读取该位置的消息并提取消息正文

  5. 在LCD上显示消息

7. 无线显示LCD消息的示例代码

while (rx_data() != 0x0d);
while (rx_data() != 0x0a);
if (rx_data() == '+')
{
if (rx_data() == 'C')
{
if (rx_data() == 'M')
{
if (rx_data() == 'T')
{
if(rx_data() == 'I')
{
while (rx_data() != ',');
a = rx_data();
delay_ms(10);
tx_string("at");
tx_data(0x0d);
tx_data(0x0a);
tx_string("at + cmgf =1");
tx_data(0x0d);
tx_data(0x0a);
tx_string("at + cmgr =");
tx_data(a);
tx_data(0x0d);
tx_data(0x0a);
while (rx_data() != 0x0a);
while (rx_data() != 0x0a);
while (rx_data() != 0x0a);
for (i=0; i<15; i++)
{
read[i] = rx_data();
}
lcd_stringxy(1,0,read);
delay_ms(5000);
}
}
}
}
}

8. 无线电子公告板的操作步骤

  1. 使用Keil软件编写无线电子公告板程序

  2. 通过硬件编程器和Willar软件将程序烧录到单片机

  3. 按照电路图进行接线

  4. 使用电源电路为单片机提供5V直流电压

  5. 将SIM卡插入GSM模块

  6. 打开电源

  7. 使用另一部手机向GSM模块发送短信

  8. LCD上将显示相同的消息

9. 电路优点

  • 无需复杂的布线即可在LCD上显示消息,因为是无线通信

  • 功耗低,操作简单

  • 电路便携性高

10. 电路应用

  • 可用于公交车站、火车站、公园等场所进行无线信息显示

  • 本项目也可用于高校、公司和组织

11. 电路局限性

  • 显示单元必须有网络信号才能接收无线消息
  • 由于没有设置密码,任何人都可以发送消息进行显示