OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6509|回复: 18

有没有SIM900A与动态IP建立连接的方案?

[复制链接]

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2014-8-20
在线时间
0 小时
发表于 2015-1-4 11:52:51 | 显示全部楼层 |阅读模式
5金钱
目前要做一个安卓的程序来与SIM900A建立GPRS通信,但是手机端的IP是不固定的,每次建立连接的IP都不一样,因此需要实现获得手机端IP的功能,诸位大大有没有可实现的方案?
我自己其实想了一个,就是不知道如何实现。是通过手机端发送短信给SIM900A,短信内容为手机端当前的IP地址,通过单片机读取短信里的IP地址并存储起来,然后将IP地址赋值给GPRS连接函数里的变量。问题在于没有找到如何存储IP地址的方法,请问各位有没有具体的方案? 

最佳答案

查看完整内容[请看2#楼]

这个没有啥难度吧,你发短信按照一定格式来,而且at命令不加\r\n结尾的话,即使你分两次发送,他那里也算一次,你完全可以这样: 1、建立一个数组,发送AT+CIPSTART="TCP", 2、第二个数组,发送"IP_address" 3、第三个数组,发送"port"和\r\n结尾 这样你短信格式为IP:xxx.xxx.xxx.xxx,解析出来以后,直接把冒号后面的复制过去就可以了。我用的mg323,发送ip地址是以ascii的方式,只要解析出来是ascii的可以直接用。我们做的一个项 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2014-3-8
在线时间
11 小时
发表于 2015-1-4 11:52:52 | 显示全部楼层
这个没有啥难度吧,你发短信按照一定格式来,而且at命令不加\r\n结尾的话,即使你分两次发送,他那里也算一次,你完全可以这样:
1、建立一个数组,发送AT+CIPSTART="TCP",
2、第二个数组,发送"IP_address"
3、第三个数组,发送"port"和\r\n结尾
这样你短信格式为IP:xxx.xxx.xxx.xxx,解析出来以后,直接把冒号后面的复制过去就可以了。我用的mg323,发送ip地址是以ascii的方式,只要解析出来是ascii的可以直接用。我们做的一个项目和你类似,不过是用串口更改ip地址,就是这样改的
回复

使用道具 举报

62

主题

275

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1155
金钱
1155
注册时间
2012-3-4
在线时间
80 小时
发表于 2015-1-4 11:52:52 | 显示全部楼层
fuhome服务器可以帮你实现,有很多API供你选择,我们是开放项目,欢迎使用。
回复

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2015-1-4 12:02:22 | 显示全部楼层
SIM卡的电话薄是个存储参数的好东西
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2014-8-20
在线时间
0 小时
 楼主| 发表于 2015-1-4 13:08:06 | 显示全部楼层
回复【2楼】as564335sa:
---------------------------------
但是怎样将IP地址存下来呢?
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13108
金钱
13108
注册时间
2012-11-26
在线时间
3812 小时
发表于 2015-1-4 13:34:06 | 显示全部楼层
回复【3楼】邪恶的花生米:
---------------------------------
你的IP都不固定 存储下来有什么意义? 

每次建立之前发送一次IP   再赋值吧
学无止境
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2014-8-20
在线时间
0 小时
 楼主| 发表于 2015-1-4 13:46:21 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
可能是我没说清楚,SIM卡每次连接到移动网络时服务提供商会给SIM卡分配一个IP地址,断开连接一段时间后再次连入移动网络会重新分配一个新的IP地址,但如果不断线,那么IP地址就不会变化。
因为我是在用SIM900A与手机端进行通信,所以我每次建立起这个连接之前都需要知道手机端的IP地址才能成功连接上,我需要知道这个时候手机端的IP地址是多少,所以才提出的这个问题。
“每次建立之前发送一次IP   再赋值吧”,问题就在这里,每次建立连接的时候,怎样发送IP,IP通过什么形式存储下来并赋值?我单片机底子薄弱,希望您不吝赐教。
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13108
金钱
13108
注册时间
2012-11-26
在线时间
3812 小时
发表于 2015-1-4 13:51:15 | 显示全部楼层
回复【5楼】邪恶的花生米:
---------------------------------
1、手机端本身就可以实时查看自身IP地址
2、手机发送IP短信给SIM900
3、不知道你所说的到底是什么意思
学无止境
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2014-8-20
在线时间
0 小时
 楼主| 发表于 2015-1-4 13:55:10 | 显示全部楼层
回复【6楼】jermy_z:
---------------------------------
阿西吧。。可能是因为语文老师被我气吐血过。。
我有两张电话卡,一张装在SIM900A模块上,一张装在手机上。
我要完成这两样设备的通信工作,第一步就是让SIM900A模块能够通过某种方式(例如短信)知道手机的IP地址,然后和手机建立连接。
如果还有不明白的,请您告诉我是哪里不明白,谢谢~
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13108
金钱
13108
注册时间
2012-11-26
在线时间
3812 小时
发表于 2015-1-4 13:58:56 | 显示全部楼层
回复【7楼】邪恶的花生米:
---------------------------------
看上面回复  那个就可以实现了

也许我语文老师没教好我,让您看不懂了。。。
学无止境
回复

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2015-1-4 14:23:23 | 显示全部楼层
回复【3楼】邪恶的花生米:
---------------------------------
手机通过短信吧IP发给900,如果你能通过单片机把短信读出来并解析得到IP和端口,那么用这个直接连就行了,如果要存起来,可以存到flash里,或者用SIM900的读写电话薄指令把参数存到SIM卡的电话本里,怎么存怎么协议自己定
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2014-8-20
在线时间
0 小时
 楼主| 发表于 2015-1-4 16:08:23 | 显示全部楼层
回复【8楼】jermy_z:
---------------------------------
“2、手机发送IP短信给SIM900 ” 是这句话吧?我的问题就出在这里 T^T

给您举个栗子吧:
我使用AT命令建立TCP连接:AT+CIPSTART="TCP","IP_address","port",IP_address是我定义的存放IP地址的变量,我不希望每次都要手动更改这个IP_address的值然后重新烧程序,所以要使用单片机读取短信内容里的IP地址并且存放在IP_address里面,这样就能用程序自动更改要连接的IP地址。

那么问题来了:将短信内容里的IP地址转移到变量IP_address这一步骤能否实现?如果能,如何实现?
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2014-8-20
在线时间
0 小时
 楼主| 发表于 2015-1-4 16:14:11 | 显示全部楼层
回复【9楼】as564335sa:
---------------------------------
存参数到电话簿这个想法挺好的,谢谢您~

不过我的问题出在:通过单片机把短信读出来并解析出IP和端口(其实端口都无所谓,关键是要知道IP)
我不知道将IP地址从短信中读出来解析并存放的方法,是这么个问题。OTZ
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13108
金钱
13108
注册时间
2012-11-26
在线时间
3812 小时
发表于 2015-1-4 16:17:50 | 显示全部楼层
回复【10楼】邪恶的花生米:
---------------------------------
能   就像我上面说的那个步骤
学无止境
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2015-1-4 17:22:03 | 显示全部楼层
通过你的方法获取到IP地址,然后用sprintf()函数将命令字符串组合到一个数组下,就可以了,spintf()函数实现IP地址填入命令组合中
如:sprintf((char *)p,"AT+CIPSTART=\"TCP\",\"%s\",\"port\"",IP);  这个IP数组里面就是你提取出来的IP地址字符串,p就是最终的命令组合
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2015-4-29
在线时间
4 小时
发表于 2016-3-1 21:57:12 | 显示全部楼层
楼主现在还在做吗?我现在也要用手机和SIM900A通讯,手机作为服务器获取的IP,是要用哪个IP呢?这个IP怎么获取呢?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2016-5-25
在线时间
2 小时
发表于 2016-5-25 11:32:57 | 显示全部楼层
楼主还在做么,我现在也想用手机与SIM900A建立连接,SIM900A作为服务端,手机作为客户端,能指点一下,分享一下代码吗?
邮箱810425257@qq.com
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2016-5-25
在线时间
2 小时
发表于 2016-5-25 11:34:36 | 显示全部楼层
lgy026 发表于 2016-3-1 21:57
楼主现在还在做吗?我现在也要用手机和SIM900A通讯,手机作为服务器获取的IP,是要用哪个IP呢?这个IP怎么 ...

现在有做出来么,可以分享一下吗?我也在做
回复

使用道具 举报

13

主题

105

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
16874
金钱
16874
注册时间
2012-10-20
在线时间
48 小时
发表于 2017-1-10 10:34:34 | 显示全部楼层
要实现这个没什么难度,问题是实现了,有实用价值吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-30 11:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表