51单片机 GSM模块 无线通信
地铁站,公交车站以及机场这种地方都有电子告示牌的存在,其中最大的问题在于更新每天的内容。本文教你如何设计一个运用GSM技术的无线电子告示牌,该项目将可以将我们从手机上发送的内容显示在LCD上。
如今还有很多无线通信科技,比如蓝牙,RF通信,Zigbee等,但只有GSM技术基于长距离,可靠以及安全的通信。
注意:我们需要发送信息的手机以及一个GSM模块才能接受该告示的内容。
原理
当用户从手机发送信息时,GSM模块会发送一下指令来代表收到新信息。
以上的指令中,“3”代表新信息的位置,比如这是收件箱中的第三条信息。如今你需要读取这条未读信息的话,需要运用以下指令来读取GSM模块里的信息。
将该指令给到GSM模块后,它会发出以下指令。
- +CMGR: “REC UNREAD”,”MD-WAYSMS”,,”13/05/20,15:31:48+34″
- 电子发烧友
以上的指令中,“REC UNREAD”指未读信息。”MD-WAYSMS”指发送者手机号或名字,13/05/20指时间,15:31指时间,电子发烧友为该信息的内容。
电路
所需主要元器件
AT89C51
SIM 900A
16 x 2 LCD
10kΩ电位器
显示模块代码
- 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);
- }
- }
- }
- }
- }
更多回帖