|
在本篇文章中,您将学习到如何通过GSM模块和Arduino而不是使用GPS创建导航系统。在本篇文章结束时,您将可以: ● 解有关GSM模块以及如何将其与Arduino一起使用的更多信息。 ● 通过GSM模块制作导航系统。
关于导航 在导航系统中,无线站定期发送信号。这些信号包括该站的精确坐标。无论无线站是固定的,例如机场控制塔,还是可移动的,例如卫星。重要的是,该站本身的坐标应该随时都知道。
在本篇文章中,我们想要制作一个没有GPS模块的导航系统。使用手机或其他移动设备的GSM信号是查找位置或跟踪设备的一种方法。当GSM系统连接到网络时,您将收到有关设备位置的一些信息。我们选择其中一个GSM / GPRS SIMCOM模块将它们连接到网络,选择Arduino开发板来接收数据并监控设备的位置。我们开始做吧。
所需的组件 ● Arduino UNO R3开发板 ● SIM900 GSM GPRS四频段开发模块 ● Arduino IDE
电路连接
代码 首先,您必须添加库。下载Zip文件,并将该文件添加到Arduino IDE。转到“ Sketch”选项卡,“包括库”和“Add ZIP Library”。您如果这是您是第一次运行Arduino开发板,请不要担心。只需按以下步骤操作: ● 访问www.arduino.cc/en/Main/Software并下载操作系统的软件。按照说明安装IDE软件。 ● 运行Arduino IDE并清除文本编辑器,然后在文本编辑器中复制以下代码。 ● 导航到草图并包含库。现在单击添加ZIP库并添加库 ● 在tools and boards菜单中选择您使用的Arduino电路板。 ● 将Arduino连接到PC,然后在tools and port中设置COM端口。 ● 按上传(箭头符号)按钮。 ● 现在都准备好了! - #include "SIM900.h"
- #include "SoftwareSerial.h"
- //#include "inetGSM.h"
- //#include "sms.h"
- //#include "call.h"
-
- //To change pins for Software Serial, use the two lines in GSM.cpp.
-
- //GSM Shield for Arduino
- //this code is based on the example of Arduino Labs.
-
- //Simple sketch to communicate with SIM900 through AT commands.
-
- //InetGSM inet;
- //CallGSM call;
- //SMSGSM sms;
-
- int numdata;
- char inSerial[40];
- int i=0;
-
-
- void setup()
- {
- //Serial connection.
- Serial.begin(9600);
- Serial.println("GSM Shield testing.");
- //Start configuration of shield with baudrate.
- //For http uses is raccomanded to use 4800 or slower.
- if (gsm.begin(9600))
- Serial.println("\nstatus=READY");
- else Serial.println("\nstatus=IDLE");
- };
-
- void loop()
- {
- //Read for new byte on serial hardware,
- //and write them on NewSoftSerial.
- serialhwread();
- //Read for new byte on NewSoftSerial.
- serialswread();
- };
-
- void serialhwread()
- {
- i=0;
- if (Serial.available() > 0) {
- while (Serial.available() > 0) {
- inSerial[i]=(Serial.read());
- delay(10);
- i++;
- }
-
- inSerial[i]='\0';
- if(!strcmp(inSerial,"/END")) {
- Serial.println("_");
- inSerial[0]=0x1a;
- inSerial[1]='\0';
- gsm.SimpleWriteln(inSerial);
- }
- //Send a saved AT command using serial port.
- if(!strcmp(inSerial,"TEST")) {
- Serial.println("SIGNAL QUALITY");
- gsm.SimpleWriteln("AT+CSQ");
- } else {
- Serial.println(inSerial);
- gsm.SimpleWriteln(inSerial);
- }
- inSerial[0]='\0';
- }
- }
-
- void serialswread()
- {
- gsm.SimpleRead();
- }
复制代码
通过AT命令与SIM900通信非常简单。 AT命令是用于控制调制解调器的命令。 AT命令实际上来自Hayes Command。所有命令AT命令都以AT开头。 请注意,AT是接收语法且不是命令名的前缀。例如,其中一个CMC + CMCAM命令称为AT + CMGS。另一个名为D的命令作为ATD发送到调制解调器。 许多GSM、GPRS、蓝牙和一些其他模块使用AT命令与计算机和微控制器进行通信。
现在,要接收有关位置的信息,我们需要按顺序使用一些特殊的AT命令。连接到网络后,使用这些命令准备调制解调器以获取位置数据。
它用于连接GPRS。可能是默认情况下为1。 - AT+SAPBR =3,1,"CONTYPE","GPRS"
- AT+SAPBR =3,1,"APN","RCMNET"
- AT+SAPBR=1,1
- AT+SAPBR=2,1
复制代码它是基于IP的应用程序的承载设置
最后,此命令获取位置、时间和日期。请注意,要在Google地图中搜索位置,您必须将(x,y)坐标顺序更改为(y,x)。
查看GIF了解更多详情。
接下来该如何做? ● 尝试和Arduino一起使用除GPS之外的其他模块 |