基于单片机的GSM控制机器人

GSM控制机器人或SMS控制机器人是一种无线机器人,它通过接收一组短信服务(SMS)形式的指令来执行必要的操作。在这个项目中,我们可以通过手机发送短信来控制机器人的前进、后退、左右方向。早些时候,我们已经看到了DTMF控制机器人的工作不使用单片机。

本项目主要由两部分组成,一是移动单元,一是机器人单元。固定在机器人上的GSM modem接收手机发送的信息,并向单片机发出指令,控制机器人的方向。在本课题中,我们将8051单片机与GSM SIM 300接口。控制器与GSM modem之间的通信协议为UART (Universal Asynchronous Receiver-Transmitter, Universal Asynchronous Receiver-Transmitter)。该系统连续检测信息,为控制机器人作出决策。

电路原理:

当我们从手机发送消息到调制解调器时,GSM调制解调器会连续发送以下命令,表示收到新消息。

+ CMTI:“SM”,3

在上面的命令中,编号3表示新消息的位置。现在我们需要读取这个未读消息来显示在LCD上。从GSM modem读取消息的命令为

+ cmgr = 3

这里的数字3表示要读取的消息的位置。将此命令发送给GSM模块后,调制解调器依次发送以下命令。

+ CMGR:“REC未读”,“MD-WAYSMS”、“13/05/20 15:31:48 + 34”
向前

在上面的命令中“矩形未读”表示消息是未读消息,“MD-WAYSMS”发送者手机号码或姓名。13/05/20显示的日期,15:31表示时间和时间向前是消息的内容。

从上面的命令中,我们需要提取消息(向前)由用户发送。现在将此消息与预定义字符串(前进,向后,左,右)进行比较,基于结果控制机器人。

框图:

GSM控制机器人框图
GSM控制机器人 - 框图

电路图:

采用8051单片机控制的GSM机器人电路图
GSM控制机器人电路图

硬件需求:

  • 8051单片机
  • AT89C51单片机编程板
  • 编程电缆
  • 16 * 2液晶
  • 最大232电平变换器
  • GSM sim 300模块
  • L293D电机驱动器
  • 机器人
  • 9V直流电池- 2节
  • 5V电源电路
  • 0.1uF陶瓷电容器- 4
  • 33pF电容- 2个
  • 10UF电解电容器
  • 12 mhz水晶
  • 10k(1/4瓦)电阻
  • 单引脚连接电线

软件要求:

  • Kiel U Vieion.
  • 闪电魔法
  • 普罗透斯

电路仿真视频:

电路设计:

上述电路中使用的主要部件是微控制器,电机驱动器,电平转换器,GSM模块和机器人。这里使用AT89C51微控制器,需要正电源的正5V DC。为了向控制器提供调节的5V DC电压,请使用7805电源电路。这里使用了两个9V电池,一个是用于给电路供电,其他是运行直流电动机。

在上述电路中,16×2 LCD以4位模式连接到微控制器的PORT1。LCD数据线D4,D5,D6和D7连接到P1.4,P1.5,P1.6和P1.7分别连接到P1.0,P1.1和P1.2。这里它用于指示收到的消息。

GSM modem的Tx和Rx引脚分别连接到max232的13和14引脚。单片机TXD和RXD引脚分别连接电平转换器的11和12引脚。这里max232是控制器和GSM模块之间的中介,它被用来转换电压水平。要了解更多关于max232的细节请参考亚博彩票下载Max232数据表

GSM模块需要5V电源。为了与这个GSM通信,我们需要发送在命令使用串行通信(UART协议)。与GSM通信,波特率为9600。

控制器的P2.0、P2.1、P2.2、P2.3引脚连接到l293d输入引脚,这些引脚用于控制两台直流电机。这个IC的工作电压是5V。使用这个IC,我们可以操作2个直流电机电压范围从4.5到36V。我们需要在8点钟给电动机供电thl293d销。要了解更多关于电机驱动IC亚博彩票下载的知识,请参阅L293D数据表

电路工作的算法:

  1. 初始化LCD和UART协议
  2. 连续检查命令+ CMTI:“SM”,3(位置编号)了解是否收到新消息的天气情况
  3. 如果收到该命令,则存储消息位置号。
  4. 现在读取特定的消息并提取消息体
  5. 在LCD上显示提取的内容,并将此内容与预定义的字符串进行比较。
  6. 如果匹配,就对机器人执行必要的动作。

使用以下代码从GSM modem读取新消息。

而(rx_data () != 0 x0d);
而(rx_data()!= 0x0a);
If (rx_data() == ' + ')
{
if (rx_data() == ' C ')
{
if (rx_data() == ' M ')
{
if (rx_data() == ' T ')
{
如果(rx_data() = =“我”)
{
当rx_data() != ', ');
A = rx_data ();
delay_ms (10);
tx_string(“的”);
tx_data (0 x0d);
tx_data(0x0a);
Tx_string (" at + CMGF =1 ");
tx_data (0 x0d);
tx_data(0x0a);
Tx_string (" at + CMGR = ");
tx_data(a);
tx_data (0 x0d);
tx_data(0x0a);
而(rx_data()!= 0x0a);
当rx_data() != 0x0a时;
而(rx_data()!= 0x0a);
(我= 0;我< 15;我+ +)
{
读[我]= rx_data ();
}
lcd_stringxy(1,0,阅读);
delay_ms(5000);
}
}
}
}
}

如何操作?

  1. 使用Keil软件将该程序写入GSM控制的机器人项目
  2. 现在用flash魔法把程序刻录到微控制器上。
  3. 请根据电路图给出连接方式。
  4. 使用电源电路为微控制器提供5V DC
  5. 将SIM(用户识别模块)插入GSM模块。
  6. 现在接通电源
  7. 使用其他手机发送短信到GSM模块
  8. 现在,您可以在LCD上看到相同的消息。
  9. 如果接收到的消息与任何预定义的字符串匹配,机器人就会相应地移动。

试试这个: [远程操作间谍机器人]

电路的应用:

  • 该项目用于机器人应用
  • 用于军事应用。

电路的局限性:

  • 机器人部分必须具有网络无线接收命令。
  • 由于没有密码,任何人都可以通过发送消息操作机器人。

下载项目代码

注意:

如果您有兴趣获得代码,请花点时间在评论区回答以下问题,这样我们就会发送给您代码。

  • 为什么需要这个项目代码?
  • 您是否试图制作相同的项目或不同的项目?
  • 请给我们更多关于你的项目的细节。亚博彩票下载

40个回应

  1. 先生,我想修改这个机器人代替汽车同样通过继电器电路,我们可以远程控制水泵这对农民很有用,甚至任何电器可以很容易控制,所以我请请求你把你的代码,我上面的电子邮件id将心存感激如果你这样做,谢谢你

  2. 能把程序的密码给我吗。我试图建立一个类似的机器人与一些更多的改变。我正在建造的是一个机器人,它会收到客户的短信,他想要从房子里拾取垃圾,机器人是LFR,它会到房子里拾取垃圾,这个过程会继续下去。

    请为我提供上述项目的代码,以便我可以完成我的工作。它有点紧急,如果你想要发布项目的完整细节,一旦完成就完成。

  3. 你好,我正在执行这个项目与提供的代码,但没有响应从微控制器(AT89S52)发送消息后gsm modem (sim 900a)

  4. 嗨..我正在研究使用GSM模块来通过向微控制器发送SMS来抵消DC电机的项目。当微控制器接收到SMS时,它将直流电机移动以打开门。因此,我对你的项目感兴趣。这是我的源代码的电子邮件地址..lelokojmothebe@gmail.com.. .谢谢你!

  5. 我们正在努力实现这个项目,因为它似乎非常有趣。它还可以帮助我们以更好的方式理解8051个接口。感谢你!

  6. 亲爱的El亚博最新官网网址ectronicshub团队,

    我想用ULN2003替换L293D,并用相同的电路继电器,使我可以通过短信远程控制AC电器。请给我发给我这个源代码。

  7. 你好管理员,我可以有代码,因为我正在做相同的项目为我的学期嵌入式主题,我已经做了所有的硬件连接,但代码不能正常工作....你也可以发送它

  8. 很好的解释。希望看到GSM接收的代码,因为我在我的项目中检测live sms的问题。谢谢你!

  9. 先生,
    我想做这个作为我最后一年的项目请帮助我的软件和编码用于这个项目。

  10. 嗨……我需要这个作为我最后一年的项目。我想要同样的项目。我的项目是基于gsm的项目使用单片机。

  11. 我想把这个项目作为我的迷你项目,并希望了解有关项目制作的许多事情。请帮助我.........亚博彩票下载

  12. 嘿。我正在从事一个类似的项目,其中我将使用DTMF解码器发送信息到微控制器。你能帮我提供一下电路的代码吗?很高兴能得到你的支持。
    谢谢。

  13. 你好,我想把这个项目作为我学习的一部分,请尽快给我发代码,因为我们必须在规定的时间前提交项目

  14. 你好,

    我正在做一个GSM控制的机器人为我的毕业设计。

    它有一个gsm模块。如果可以,请将项目代码发给我。

    谢谢你。

留下一个回复

您的电子邮件地址不会被公开。必填字段被标记*