本帖最后由 瘦网虫 于 2013-6-21 15:07 编辑
另,我直接接arduino的5v电压,模块没有启动起来,接了12v电压工作正常。
GPRS模块不能上传GPS类型数据有些浪费啊,只是软件上的更新既可实现更多功能,何乐不为呢。
可能这个模块出来的早,网站上GPS传感器类型是后来添加的吧。
希望改进以实现更多玩法~
测试了下arduino mega 2560跟这个gprs模块相连,没问题。
连线(接到了2560的tx1,rx1上了):
GPRS模块ACC(pin1)-外接12v电源(外接12v电源的GND接到了2560的GND)
GPRS模块GND(pin2)-arduino mega 2560 GND
GPRS模块TTL TX(pin3)-arduino mega 2560 A19(RX1)
GPRS模块TTL RX(pin4)-arduino mega 2560 A18(TX1)
写一个函数用来调用,往串口1上写值即可。
- //发送字符串为@uploading(a,b,c)即可完成数据上传
- void sendSensorValueToLeweiViaGPRS(String GWName,String sensorName,int sensorValue)
- {
- Serial1.print("@uploading(");
- Serial1.print(GWName);
- Serial1.print(",");
- Serial1.print(sensorName);
- Serial1.print(",");
- Serial1.print(sensorValue);
- Serial1.print(")");
- Serial1.println();
- }
复制代码
代码里面有个小技巧,从串口0往串口1发数据,串口1返回的数据再写回串口0。
代码如下(注意Serial和Serial1的区别):
String comdata="";在前面定义过了。
- while (Serial1.available() > 0)
- {
- comdata += char(Serial1.read());
- }
- if (comdata.length() > 0)
- {
- Serial.println(comdata);
- Serial.println("in from 1");
- comdata = "";
- }
-
- while (Serial.available() > 0)
- {
- comdata += char(Serial.read());
- }
- if (comdata.length() > 0)
- {
- Serial1.println(comdata);
- comdata = "";
- Serial.println("in from 0");
- }
复制代码
|