公交车上的GPRS模块要插上sim卡,这个我知道,但是笔记本要装什么东西(或是什么特殊的GPRS无线网卡?)才能和公交车和站牌上的GPRS模块通信?
我在网上搜了一下,都是说如何用PC连接手机实现GPRS上网,那是不是说PC还得通过串口接上一个GPRS模块才能实现和其他GPRS模块通信?
另外PC能不能同时建立两条连接,分别和公交车和公交站牌通信?
18 个解决方案
#1
没人吗?
刚开始做,这里不是很懂,望指点。
刚开始做,这里不是很懂,望指点。
#2
服务端有固定IP或域名不就可以通信了。
#3
固定IP 且是外网的IP
#4
PC必须有公网IP可以实现你的要求 最好放IDC机房
#5
校园网IP,不是公网的,不行吗? 有人试过吗? 比如做个端口映射神马的?
无线呢? 比如电信的wlan? 无线的IP好像不存在校园局域网只说吧,是不是可以。
无线呢? 比如电信的wlan? 无线的IP好像不存在校园局域网只说吧,是不是可以。
#6
你的PC要连上公网,且使用静态的公网IP或端口映射。公交站牌的GPRS模块要拨号连上公网,跟你的PC建立一个TCP连接。
#7
WLAN分配的动态IP不行吗? 我是校园网啊, 连不到公网,那要测试通信怎么办?
#8
连不到公网还测什么啊,路都不通你就在想该骑车还是开车了
有公网ip的话,你的pc机根本不需要任何与gprs相关的设备,只要有独立且固定的公网ip和端口即可
有公网ip的话,你的pc机根本不需要任何与gprs相关的设备,只要有独立且固定的公网ip和端口即可
#9
我说的连不上公网是指 不能直接连公网,校园网是通过学校网关上网的,属于内网IP。
#10
楼主你先了解一下tcp/ip通讯的基本原理吧
要通信,作为服务器端必须有公网ip。 打个比方,寄信的话,公司地址就是公网ip和端口,XX科室XX人收就是内网ip和端口。你寄信光有个XX科室XX人就能寄了?
你pc作为服务器的话,总要让gprs设备知道你的地址吧,光有内网ip是没任何用处的。
办法不是没有,但对不了解原理的人很复杂,所以我建议楼主你先了解一下基本的通信原理。
办法大致说有三种:
1. pc也接一个gprs模块,不依赖校园网而是走gprs网络。gprs拨号可以获得公网独立ip,但不是固定的,每次拨号ip都会变,而且很短时间没有数据,移动运营商就会回收你的ip端口资源,要重新连接。所以这种方法需要解决动态ip的问题。
2. 任然用内网pc做服务器,但要求网络可以保证不通过代理就能访问外网。然后你任然需要一个“公网ip”资源,来进行p2p穿透。
3. 虽然这种方法实际应用中是不合理的,但考虑到楼主可能只是个学生,所作的东西也不是要实际应用只是个课题,所以这种方法反而比较靠谱。 反过来,让gprs设备端当服务器,pc以客户端的姿态去连接,这样就只需要pc可以访问外网即可。 这种方法和第一种类似,需要解决设备端gprs动态ip的问题,但解决方法成本较前两种低, 你可以申请一个免费的主页空间,然后用asp或者随便什么写一个网页发布上去,这个网页的作用是接收post请求,并记录请求内容和请求者ip。 而gprs设备端则持续(每隔半分钟)向这个网页post一个自己的id串,这样web端就记录下了id和ip。然后pc端要连接时,先去web端查询设备当前的ip,再主动去连接设备就可以了
#11
感谢楼上耐心赐教。。
结贴咯
结贴咯
#12
帖子结了就不能回复了吗?
#13
幸好还能回复。
请原谅我一个菜过一个的问题.
还想继续请教, 如果我只是做一个测试,用你的第一种方法,只要PC能收发数据就行了,哪怕一两分钟。 不知道行不行?
现在就是 我测试时有三个GPRS模块,一个连在PC上通过串口与PC通信,另外两个一个在小车上,一个在站牌上,那小车上的GPRS和站牌上的GPRS同时向PC请求连接行不行? 然后PC通过串口读取那两个GPRS发过来的数据进行处理,然后又分别发送回去, 这里面有没有什么冲突什么的? 要是行的话,我就打算这么弄了。
请原谅我一个菜过一个的问题.
还想继续请教, 如果我只是做一个测试,用你的第一种方法,只要PC能收发数据就行了,哪怕一两分钟。 不知道行不行?
现在就是 我测试时有三个GPRS模块,一个连在PC上通过串口与PC通信,另外两个一个在小车上,一个在站牌上,那小车上的GPRS和站牌上的GPRS同时向PC请求连接行不行? 然后PC通过串口读取那两个GPRS发过来的数据进行处理,然后又分别发送回去, 这里面有没有什么冲突什么的? 要是行的话,我就打算这么弄了。
#14
没冲突,发送的数据里面加标识,保证接收端知道数据是哪个设备发的;然后无论是tcp还是udp,都会带上源地址的ip和端口,这会在你接收到的数据里体现出来,根据收到的ip和端口回复就可以保证数据被正确送回
话说回来,你的gprs模块有内置tcp/ip协议栈吧? 有才可以哦,没有的话你还要想办法外挂协议栈
pc端通过gprs拨号后,可以通过发心跳包来维持ip资源不被回收。每半分钟往随便什么地方丢点数据,最好对方还有返回,否则2,3分钟没数据,运营商就会掐断网络回收资源了
话说回来,你的gprs模块有内置tcp/ip协议栈吧? 有才可以哦,没有的话你还要想办法外挂协议栈
pc端通过gprs拨号后,可以通过发心跳包来维持ip资源不被回收。每半分钟往随便什么地方丢点数据,最好对方还有返回,否则2,3分钟没数据,运营商就会掐断网络回收资源了
#15
有协议栈
能通信我就放心了,因为我们这个项目现在要筹备硬件了,所以我得确定要用几个GPRS模块,方案有没有可行性等。。
那我还有个问题 嘿嘿嘿,麻烦你了。
PC接的GPRS模块通过拨号得到的ip , 怎么让两个设备终端知道,程序一旦烧进去启动板子后它连接哪个ip就确定死了,而我们的项目拿过去给人演示的时候,PC机的那个GPRS模块的ip变了那还怎么通信? 总不能每启动一次机器都烧一次程序吧?
我想着能不能给每个GPRS模块的旁边在另外接一个GSM模块,PC这边得到动态ip后,通过串口传到PC,由PC控制将得到的ip通过GSM短息分别发给小车和站牌。 两个终端上的系统又将短息处理,提取出来ip传给GPRS,再控制GPRS连接主机这边的ip 。 可行性怎么样?
不知道有没有同时集成了GSM和GPRS的芯片,既可以上网又可以发送短信。 有的话就方便多了。
能通信我就放心了,因为我们这个项目现在要筹备硬件了,所以我得确定要用几个GPRS模块,方案有没有可行性等。。
那我还有个问题 嘿嘿嘿,麻烦你了。
PC接的GPRS模块通过拨号得到的ip , 怎么让两个设备终端知道,程序一旦烧进去启动板子后它连接哪个ip就确定死了,而我们的项目拿过去给人演示的时候,PC机的那个GPRS模块的ip变了那还怎么通信? 总不能每启动一次机器都烧一次程序吧?
我想着能不能给每个GPRS模块的旁边在另外接一个GSM模块,PC这边得到动态ip后,通过串口传到PC,由PC控制将得到的ip通过GSM短息分别发给小车和站牌。 两个终端上的系统又将短息处理,提取出来ip传给GPRS,再控制GPRS连接主机这边的ip 。 可行性怎么样?
不知道有没有同时集成了GSM和GPRS的芯片,既可以上网又可以发送短信。 有的话就方便多了。
#16
gprs是一个附着协议,本身是基于gsm的
gsm模块未必有gprs,但gprs模块必定有gsm
如果有公网服务器就好一些,可以采用我第三种方法里面提的办法,服务器端发消息给公网服务器,服务器记录,然后客户端要连接时通过去这个公网服务端查询服务器最新ip
动态域名也可以,但动态域名更新一次时间比较长,现场演示很难保证不出错
gsm模块未必有gprs,但gprs模块必定有gsm
如果有公网服务器就好一些,可以采用我第三种方法里面提的办法,服务器端发消息给公网服务器,服务器记录,然后客户端要连接时通过去这个公网服务端查询服务器最新ip
动态域名也可以,但动态域名更新一次时间比较长,现场演示很难保证不出错
#17
标记下,正好用到!
#18
服务器端大量tcp socket连接一直是一个难题。
我们最近也在研究这块。我们开了一个河图中间件,以saas方式运行,gprs客户端都可以连接这个中间件。能够支持千个以上的gprs客户端同时保持长连接。
河图中间件收到gprs设备信息之后,可以转发给服务器端。能够节约大家开发服务器端的时间或者降低工作量。 也可以把数据按照指定的方式写入数据库。并提供数据库接口。
欢迎大家交流 QQ 1965-283-135
下面这个测试地址实现了gprs打印设备连接河图的案例。
184.169.160.55/GPRS_Free_Test/
其他设备连接可以按照需要定制。
。
我们最近也在研究这块。我们开了一个河图中间件,以saas方式运行,gprs客户端都可以连接这个中间件。能够支持千个以上的gprs客户端同时保持长连接。
河图中间件收到gprs设备信息之后,可以转发给服务器端。能够节约大家开发服务器端的时间或者降低工作量。 也可以把数据按照指定的方式写入数据库。并提供数据库接口。
欢迎大家交流 QQ 1965-283-135
下面这个测试地址实现了gprs打印设备连接河图的案例。
184.169.160.55/GPRS_Free_Test/
其他设备连接可以按照需要定制。
。
#1
没人吗?
刚开始做,这里不是很懂,望指点。
刚开始做,这里不是很懂,望指点。
#2
服务端有固定IP或域名不就可以通信了。
#3
固定IP 且是外网的IP
#4
PC必须有公网IP可以实现你的要求 最好放IDC机房
#5
校园网IP,不是公网的,不行吗? 有人试过吗? 比如做个端口映射神马的?
无线呢? 比如电信的wlan? 无线的IP好像不存在校园局域网只说吧,是不是可以。
无线呢? 比如电信的wlan? 无线的IP好像不存在校园局域网只说吧,是不是可以。
#6
你的PC要连上公网,且使用静态的公网IP或端口映射。公交站牌的GPRS模块要拨号连上公网,跟你的PC建立一个TCP连接。
#7
WLAN分配的动态IP不行吗? 我是校园网啊, 连不到公网,那要测试通信怎么办?
#8
连不到公网还测什么啊,路都不通你就在想该骑车还是开车了
有公网ip的话,你的pc机根本不需要任何与gprs相关的设备,只要有独立且固定的公网ip和端口即可
有公网ip的话,你的pc机根本不需要任何与gprs相关的设备,只要有独立且固定的公网ip和端口即可
#9
我说的连不上公网是指 不能直接连公网,校园网是通过学校网关上网的,属于内网IP。
#10
楼主你先了解一下tcp/ip通讯的基本原理吧
要通信,作为服务器端必须有公网ip。 打个比方,寄信的话,公司地址就是公网ip和端口,XX科室XX人收就是内网ip和端口。你寄信光有个XX科室XX人就能寄了?
你pc作为服务器的话,总要让gprs设备知道你的地址吧,光有内网ip是没任何用处的。
办法不是没有,但对不了解原理的人很复杂,所以我建议楼主你先了解一下基本的通信原理。
办法大致说有三种:
1. pc也接一个gprs模块,不依赖校园网而是走gprs网络。gprs拨号可以获得公网独立ip,但不是固定的,每次拨号ip都会变,而且很短时间没有数据,移动运营商就会回收你的ip端口资源,要重新连接。所以这种方法需要解决动态ip的问题。
2. 任然用内网pc做服务器,但要求网络可以保证不通过代理就能访问外网。然后你任然需要一个“公网ip”资源,来进行p2p穿透。
3. 虽然这种方法实际应用中是不合理的,但考虑到楼主可能只是个学生,所作的东西也不是要实际应用只是个课题,所以这种方法反而比较靠谱。 反过来,让gprs设备端当服务器,pc以客户端的姿态去连接,这样就只需要pc可以访问外网即可。 这种方法和第一种类似,需要解决设备端gprs动态ip的问题,但解决方法成本较前两种低, 你可以申请一个免费的主页空间,然后用asp或者随便什么写一个网页发布上去,这个网页的作用是接收post请求,并记录请求内容和请求者ip。 而gprs设备端则持续(每隔半分钟)向这个网页post一个自己的id串,这样web端就记录下了id和ip。然后pc端要连接时,先去web端查询设备当前的ip,再主动去连接设备就可以了
#11
感谢楼上耐心赐教。。
结贴咯
结贴咯
#12
帖子结了就不能回复了吗?
#13
幸好还能回复。
请原谅我一个菜过一个的问题.
还想继续请教, 如果我只是做一个测试,用你的第一种方法,只要PC能收发数据就行了,哪怕一两分钟。 不知道行不行?
现在就是 我测试时有三个GPRS模块,一个连在PC上通过串口与PC通信,另外两个一个在小车上,一个在站牌上,那小车上的GPRS和站牌上的GPRS同时向PC请求连接行不行? 然后PC通过串口读取那两个GPRS发过来的数据进行处理,然后又分别发送回去, 这里面有没有什么冲突什么的? 要是行的话,我就打算这么弄了。
请原谅我一个菜过一个的问题.
还想继续请教, 如果我只是做一个测试,用你的第一种方法,只要PC能收发数据就行了,哪怕一两分钟。 不知道行不行?
现在就是 我测试时有三个GPRS模块,一个连在PC上通过串口与PC通信,另外两个一个在小车上,一个在站牌上,那小车上的GPRS和站牌上的GPRS同时向PC请求连接行不行? 然后PC通过串口读取那两个GPRS发过来的数据进行处理,然后又分别发送回去, 这里面有没有什么冲突什么的? 要是行的话,我就打算这么弄了。
#14
没冲突,发送的数据里面加标识,保证接收端知道数据是哪个设备发的;然后无论是tcp还是udp,都会带上源地址的ip和端口,这会在你接收到的数据里体现出来,根据收到的ip和端口回复就可以保证数据被正确送回
话说回来,你的gprs模块有内置tcp/ip协议栈吧? 有才可以哦,没有的话你还要想办法外挂协议栈
pc端通过gprs拨号后,可以通过发心跳包来维持ip资源不被回收。每半分钟往随便什么地方丢点数据,最好对方还有返回,否则2,3分钟没数据,运营商就会掐断网络回收资源了
话说回来,你的gprs模块有内置tcp/ip协议栈吧? 有才可以哦,没有的话你还要想办法外挂协议栈
pc端通过gprs拨号后,可以通过发心跳包来维持ip资源不被回收。每半分钟往随便什么地方丢点数据,最好对方还有返回,否则2,3分钟没数据,运营商就会掐断网络回收资源了
#15
有协议栈
能通信我就放心了,因为我们这个项目现在要筹备硬件了,所以我得确定要用几个GPRS模块,方案有没有可行性等。。
那我还有个问题 嘿嘿嘿,麻烦你了。
PC接的GPRS模块通过拨号得到的ip , 怎么让两个设备终端知道,程序一旦烧进去启动板子后它连接哪个ip就确定死了,而我们的项目拿过去给人演示的时候,PC机的那个GPRS模块的ip变了那还怎么通信? 总不能每启动一次机器都烧一次程序吧?
我想着能不能给每个GPRS模块的旁边在另外接一个GSM模块,PC这边得到动态ip后,通过串口传到PC,由PC控制将得到的ip通过GSM短息分别发给小车和站牌。 两个终端上的系统又将短息处理,提取出来ip传给GPRS,再控制GPRS连接主机这边的ip 。 可行性怎么样?
不知道有没有同时集成了GSM和GPRS的芯片,既可以上网又可以发送短信。 有的话就方便多了。
能通信我就放心了,因为我们这个项目现在要筹备硬件了,所以我得确定要用几个GPRS模块,方案有没有可行性等。。
那我还有个问题 嘿嘿嘿,麻烦你了。
PC接的GPRS模块通过拨号得到的ip , 怎么让两个设备终端知道,程序一旦烧进去启动板子后它连接哪个ip就确定死了,而我们的项目拿过去给人演示的时候,PC机的那个GPRS模块的ip变了那还怎么通信? 总不能每启动一次机器都烧一次程序吧?
我想着能不能给每个GPRS模块的旁边在另外接一个GSM模块,PC这边得到动态ip后,通过串口传到PC,由PC控制将得到的ip通过GSM短息分别发给小车和站牌。 两个终端上的系统又将短息处理,提取出来ip传给GPRS,再控制GPRS连接主机这边的ip 。 可行性怎么样?
不知道有没有同时集成了GSM和GPRS的芯片,既可以上网又可以发送短信。 有的话就方便多了。
#16
gprs是一个附着协议,本身是基于gsm的
gsm模块未必有gprs,但gprs模块必定有gsm
如果有公网服务器就好一些,可以采用我第三种方法里面提的办法,服务器端发消息给公网服务器,服务器记录,然后客户端要连接时通过去这个公网服务端查询服务器最新ip
动态域名也可以,但动态域名更新一次时间比较长,现场演示很难保证不出错
gsm模块未必有gprs,但gprs模块必定有gsm
如果有公网服务器就好一些,可以采用我第三种方法里面提的办法,服务器端发消息给公网服务器,服务器记录,然后客户端要连接时通过去这个公网服务端查询服务器最新ip
动态域名也可以,但动态域名更新一次时间比较长,现场演示很难保证不出错
#17
标记下,正好用到!
#18
服务器端大量tcp socket连接一直是一个难题。
我们最近也在研究这块。我们开了一个河图中间件,以saas方式运行,gprs客户端都可以连接这个中间件。能够支持千个以上的gprs客户端同时保持长连接。
河图中间件收到gprs设备信息之后,可以转发给服务器端。能够节约大家开发服务器端的时间或者降低工作量。 也可以把数据按照指定的方式写入数据库。并提供数据库接口。
欢迎大家交流 QQ 1965-283-135
下面这个测试地址实现了gprs打印设备连接河图的案例。
184.169.160.55/GPRS_Free_Test/
其他设备连接可以按照需要定制。
。
我们最近也在研究这块。我们开了一个河图中间件,以saas方式运行,gprs客户端都可以连接这个中间件。能够支持千个以上的gprs客户端同时保持长连接。
河图中间件收到gprs设备信息之后,可以转发给服务器端。能够节约大家开发服务器端的时间或者降低工作量。 也可以把数据按照指定的方式写入数据库。并提供数据库接口。
欢迎大家交流 QQ 1965-283-135
下面这个测试地址实现了gprs打印设备连接河图的案例。
184.169.160.55/GPRS_Free_Test/
其他设备连接可以按照需要定制。
。