如何使用GPRS/GPS/GSM模块---GPRS使用
本帖最后由 bubing120 于 2016-1-7 17:49 编辑鉴于投票结果,大家都比较喜欢模块的教程。技术宅Roy将会寻找受众比较广,又问题较多的模块给大家带来使用教程。希望大家在本微信找到自己有用的信息,多谢支持。
先上个图:https://mmbiz.qlogo.cn/mmbiz/DAfPnd05rAja3Sfxbiav9XncBvG0NbuKEEXXPX3oyFunCw0htekbvzOny7Az8NWfpnJngvLtEntur4vG9QM541g/0?wx_fmt=jpeg
这个模块为DFRobot出的一款3合1模块,融合了GPS/GPRS/GSM。
该模块几乎包含了一个手机所拥有的所有基本功能:无线上网,发短信,打电话,GPS定位。
正因为功能繁多所以让各位拥有着又爱又狠,原因是要使用他需要了解比较多的东西。关于GPS部分其实前面已经发了好几篇文章来阐述如何使用了,这次主要讲讲GPRS的使用。活用GPRS,可以让此模块上的GPS模块真正变的有意义,脱离了电脑,使用无线网络的GPS模块才具有实用价值。
GPRS也就是一般理解上的手机无线网,是介于2G和3G之间的技术,传输速度较慢,最快为100多Kbps适合于少量的数据传输。优点在于有电话信号就能连上网络,适应面非常广。
和GPS一样,在该模块上使用GPRS功能同样是使用AT指令。(注意模块耗电较大需要外部供电),该例程通过GPRS连接了我私人的阿里云服务器,随意发送了点数据,便于观察数据发送的特点哈。
一、使用串口助手测试,步骤如下:1、硬件连接扩展板接到主控板UNO,SIM卡插好。USB线、外接电源接好。2、下载程序扩展板S1开关拨到Prog端,下载下面程序。 void setup() {
//设置引脚为输出模式
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
//GSM开机时序
digitalWrite(5,HIGH);
delay(1500);
digitalWrite(5,LOW);
}
void loop() {
digitalWrite(3,LOW);
//使能GSM的TX、RX
digitalWrite(4,HIGH);
//关闭GPS的TX、RX
}
3、打开串口助手软件S1按键拨到Comm端,S2按键拨到USB端。Uart Select串口选择开关拨到中间。打开串口助手软件,默认波特率为9600bps,勾选发送新行。此时STAT灯亮,模块启动,如果没有启动可以按下RST复位键,重新开启。
4、上传数据步骤:AT 同步AT+CSTT 设置APNAT+CIICR 激活移动场景AT+CIFSR 获得本地IP地址AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",8081 建立TCP连接AT+CIPSEND 发送数据出现“>” ,发送下面数据{"method": "update","gatewayNo": "02","userkey": "5d3eeec03bc747d7a23ab7d99cxxxxxx"}&^!()输入完后按‘ctrl+z’即可AT+CIPSEND 发送数据出现“>” ,发送下面数据{"method": "upload","data":[{"Name":"T1","Value":"25"}]}&^!输入完后按‘ctrl+z’即可https://mmbiz.qlogo.cn/mmbiz/DAfPnd05rAgZVBjInRLRtgEEg22ibxMqOYSrFr4gWpdD6Dr5Bklh7NTFdjsI6SoT3Il7R7RQkPibkmicafhqM2fYw/0?wx_fmt=png
于是在我的服务器上就收到了以下的数据。https://mmbiz.qlogo.cn/mmbiz/DAfPnd05rAgZVBjInRLRtgEEg22ibxMqOWpJ2k7D11gHv0orJYZtYUF7cvUz7ribMdcyFy5ot9wxT1ajNsESN50w/0?wx_fmt=png
用串口助手毕竟只能测试,我们可不能忘记了我们的目的所以我们必须编写Arduino上的指令来发送数据。同样我们需要一个接收数据的服务器,这次除了自己的服务器测试,我还把数据同样传到了我们的老朋友yeelink上。
二、Arduino程序。
1、硬件连接扩展板接到主控板UNO,SIM卡插好。USB线、外接电源接好。
2、下载程序扩展板S1开关拨到Prog端,下载下面程序。
// for yeelink api
#define APIKEY "59a4ea38a9909344b0ebfaff59e58933" // replace your yeelink api key here
//replace the device ID and sensor ID for temperature sensor.
#define device_id 341588 // replace your device ID
#define sensor_id 381410 // replace your sensor ID
void setup()
{
//设置引脚为输出模式
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
digitalWrite(5,HIGH);
delay(1500);
digitalWrite(5,LOW);
digitalWrite(3,LOW);//使能GSM的TX、RX
digitalWrite(4,HIGH);//关闭GPS的TX、RX
//设置波特率
Serial.begin(9600);
//等待call ready
delay(5000);
delay(5000);
delay(5000);
}
unsigned long time = 0;
void loop()
{
//发送AT命令同步
Serial.println("AT");
delay(2000);
Serial.println("AT");
delay(5000);
while(1)
{
Serial.println("AT+CIPSTART=\"TCP\",\"api.yeelink.net\",80");
delay(5000);
Serial.println("AT+CIPSEND");
delay(2000);
String cmd;
String thisData = String(analogRead(A0));
time = millis();
cmd = "POST /v1.1/device/";
cmd += String(device_id);
cmd += "/sensor/";
cmd += String(sensor_id);
cmd += "/datapoints";
cmd += " HTTP/1.1\r\n";
cmd += "Host: api.yeelink.net\r\n";
cmd += "Accept: *";
cmd += "/";
cmd += "*\r\n";
cmd += "U-ApiKey: ";
cmd += APIKEY;
cmd += "\r\n";
cmd += "Content-Length: ";
int thisLength = 10 + thisData.length();
cmd += String(thisLength);
cmd += "\r\n";
cmd += "Content-Type: application/x-www-form-urlencoded\r\n";
cmd += "Connection: close\r\n";
cmd += "\r\n";
cmd += "{\"value\":";
cmd += thisData;
cmd += "}\r\n";
Serial.print(cmd);
delay(2000);
Serial.write(26);
delay(5000);
Serial.println("AT+CIPCLOSE");
delay(2000);
}
}再把S1拨回来。下图为传到我自己服务器收到的数据https://mmbiz.qlogo.cn/mmbiz/DAfPnd05rAgZVBjInRLRtgEEg22ibxMqO6FphKGCt84ggyj1D9Bk8xtMzprlSsqOC38dL3XDSz8sM66CYgBzeIg/0?wx_fmt=png
下图为yeelink收到数据后的显示https://mmbiz.qlogo.cn/mmbiz/DAfPnd05rAgZVBjInRLRtgEEg22ibxMqOwdMUt4NB064RTMxpQtMq8PW6cFJljlXYRNp40g2lVQoBqyiclv97CaQ/0?wx_fmt=png可以看到每条指令之间都有很长的延时,这也是GPRS的一个缺点,反应比较慢(没有测试这个延时的最小值,需要很快速度的童鞋可以自己改下延时速度测试下极限速度)
如果喜欢观看类似科技新奇事物,以及了解创客圈最新资讯,或者您对Arduino有所耳闻,可以关注我们微信公众号,一定会带给您最新的资讯,最实用的教程,以及创客最新的玩意。
微信公众号:liudaosixway也可以加入我们Arduino技术支持qq群:329657595https://mmbiz.qlogo.cn/mmbiz/DAfPnd05rAjB48NqRlBgGDnPWLRdtl0Q9aEG6lo94JInmQPLzzIrNMZ6bwWeftbBcAFtnr3sd62D2h2KbBQ1nA/640?wx_fmt=png
什么时候能玩上4G模块呢? wing 发表于 2016-1-7 19:13 static/image/common/back.gif
什么时候能玩上4G模块呢?
要那么快网速干嘛。。 话说 想看图该怎么看
页:
[1]