搜索
bottom↓
回复: 23

基于GPRS的物联网系统与服务器双向通信的问题,求大神指路

[复制链接]

出0入24汤圆

发表于 2016-9-5 16:03:42 | 显示全部楼层 |阅读模式
前一段时间设计了一套物联网系统,实现了:传感器->MCU->GPRS模块->互联网->TCP_Server程序->MySQL->PHP页面显示的功能。
具体如下:
传感器部分:很简单,STM32处理器检测传感器和GPS模块,然后通过串口连接SIM800 GPRS模块,AT指令,与服务器建立TCP连接,然后按照自己定义的格式,通过TCP连接把数据发送出去。
服务器部分:服务器是单位买的五万块钱一个月的专线,有几个固定IP地址。我拿出来一个固定IP地址,接在了一台主机上。
                机器安装的Windows Server 2008R2操作系统;
                数据库安装的MySQL数据库;
                Web服务器安装的是阿帕奇;

TCP部分我是自己用VC++写了一个TCP Server程序,程序监听TCP的我指定的端口,有传感器电路板建立连接的话开始接收数据,简单校验一下,如果格式正确,就把传感器信息分门别类地存到MySQL数据库里面的表里,这里VC++程序是调用的Windows的MySQL ODBC驱动。
然后PHP的页面上,用户登录之后,从数据库里面把自己的ID号对应的数据提出来,就可以看到结果了,这里用JavaScript做了几个图标显示的,然后GPS信息是调用的百度地图API显示出来的,用户可以看到轨迹。

目前的情况是,从传感器电路板上传的各种信息已经可以顺利传出来,TCP接收,MySQL存储,PHP页面显示。

但是遇到了一个问题:反向的传输怎么弄?比如PHP页面上想控制传感器电路板打开一个LED?
传感器电路两三分钟上传一次数据,如果让网页上按下一个按钮电路板上LED马上动作呢?另外总感觉自己这套土方法很Low,总感觉是毕业设计的水平,有没有大神能指明一个高大上一点的方案?


简单调研了一下,物联网传输这块好多协议之类,眼花缭乱的。有没有大神知道小米的智能家居套装,里面那个智能网关是怎么跟小米APP通信的?是什么架构?用的什么方法?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-9-5 16:18:09 | 显示全部楼层
一般反向控制的话用TCP/IP长连接比较常见。
终端通过TCP/IP连接到服务器后,保持连接不关闭,需要控制时控制帧按原路返回。

需要终端有唯一ID,使服务器可以区分辨别不同的终端。
服务器要有连接池和ID链表,每个终端连接过来后,从上传的数据帧中提取出ID作为该连接的目标ID,使连接和终端ID可以关联。
服务器要有连接更新机制,当连接意外断开并重新连接后,需更新连接池与ID链表的关联。

总之ID链表与连接的关联是关键。

出0入0汤圆

发表于 2016-9-5 16:25:09 | 显示全部楼层
控制传输用MQTT呀

出5入42汤圆

发表于 2016-11-3 22:00:46 | 显示全部楼层
楼主你现在做的怎么样了?我搞的一个项目跟你差不多,也是现场设备通过GPRS将数据上传至服务器,我更low,用的花生壳搭的,公司没有买固定的公网IP。其实也是对反向传输有需求,但是受限于水平,目前只能单向传输。想到过2楼说的,但是没有精力搞。

出0入0汤圆

发表于 2016-11-3 22:23:55 来自手机 | 显示全部楼层
这里面的东西太多太杂了,特别是服务端的需要专业。要不然累

出0入46汤圆

发表于 2016-11-3 22:54:32 | 显示全部楼层
建议服务器下达指令,设备应答。不仅可以达到你要的效果,而且还可以由服务器控制流量

出0入0汤圆

发表于 2016-11-3 23:29:48 来自手机 | 显示全部楼层
lz的方法成本太高了,每个设备单独公网ip,接入的数量你是绝对上不来的,就算上得来,你的成本绝对吃不消,现在都是几个设备通过ap来使用同一个网关,tcp此时就无法胜任这样的任务了,就需要是nat穿透了,但是这样的方案成本低

出0入0汤圆

发表于 2016-11-3 23:30:45 来自手机 | 显示全部楼层
所以我任务mqtt是一个玩具,哪那么多公网ip来给你们用

出0入0汤圆

发表于 2016-11-4 05:06:49 | 显示全部楼层
a7458969 发表于 2016-11-3 23:30
所以我任务mqtt是一个玩具,哪那么多公网ip来给你们用

由设备发起的tcp/mqtt到后台的长连接,不需要每个设备有单独公网IP

出0入0汤圆

发表于 2016-11-4 08:32:43 | 显示全部楼层
心跳加长连接

出10入61汤圆

发表于 2016-11-4 08:53:14 | 显示全部楼层
本帖最后由 tcm123 于 2016-11-4 08:56 编辑

1 用MQTT协议很容易实现反向控制 ,但需要底下设备有较强的资源才能跑起MQTT,有LINXU系统的话是很简单的。
2 通过HTTP轮询 HTTP长连接的方式,不过流量和实时性是个问题
3TCP持久连接,每个设备要有唯一ID, 服务器通过ID找出SOCKETID就可以转发了。如果是用APP做可以用TCP客户端。网页的话如PHP也支持TCP/UDP客户端发送数据到TCP服务器,由服务器转发给设备。但有个问题如果控制要有反馈的话此时网页访问连接可能已经断开了,当然如果你可以用AJAX后台发送数据,阻塞收到反馈或超时再返回,实时性更强、可以用WEBSOCKET。

可以参考我做的 TCP公共调试服务器 http://tongxinmao.com/App/Detail/id/1

出0入0汤圆

发表于 2016-11-4 08:53:33 | 显示全部楼层
常连接啊,。,        这些智能家居都是这么做的,,    再加个协议就好了

出300入477汤圆

发表于 2016-11-5 09:10:23 来自手机 | 显示全部楼层
tcm123 发表于 2016-11-4 08:53
1 用MQTT协议很容易实现反向控制 ,但需要底下设备有较强的资源才能跑起MQTT,有LINXU系统的话是很简单的。
...

嫌tcp占资源太大也可以用udp的长连接啊,效果一样的!udp开销极小

出75入8汤圆

发表于 2018-8-10 17:23:06 | 显示全部楼层
呼叫楼主,搞完这个项目了吗?能开源一下学习一下吗?

出0入24汤圆

 楼主| 发表于 2018-8-10 17:26:04 | 显示全部楼层
ZHAOBAO511 发表于 2018-8-10 17:23
呼叫楼主,搞完这个项目了吗?能开源一下学习一下吗?

项目完成了,开源不方便。
现在建议你直接使用机智云吧,交点钱不贵,比自己弄服务器省事一万倍。
我当时不知道机智云,知道的话就不自己弄了。

出75入8汤圆

发表于 2018-8-10 17:26:37 | 显示全部楼层
ycwjl728 发表于 2018-8-10 17:26
项目完成了,开源不方便。
现在建议你直接使用机智云吧,交点钱不贵,比自己弄服务器省事一万倍。
我当时 ...

好的谢谢

出0入24汤圆

 楼主| 发表于 2018-8-10 17:30:27 | 显示全部楼层

正点原子有机智云的教程,你一个小时就能搞定。

出0入0汤圆

发表于 2018-8-10 17:50:09 | 显示全部楼层
不是有现成物联网模块吗?MQTT

出75入8汤圆

发表于 2018-8-10 17:57:21 | 显示全部楼层
TrueOrFalse 发表于 2018-8-10 17:50
不是有现成物联网模块吗?MQTT

能介绍一下这个应用吗?不清楚这个模块的实际应用。

出0入0汤圆

发表于 2018-8-10 18:00:46 | 显示全部楼层
ZHAOBAO511 发表于 2018-8-10 17:57
能介绍一下这个应用吗?不清楚这个模块的实际应用。

淘宝上搜有模块的,没有用过
嘉立创不是出了个技小新,也有模块,还有教程

出75入8汤圆

发表于 2018-8-10 18:16:48 | 显示全部楼层
TrueOrFalse 发表于 2018-8-10 18:00
淘宝上搜有模块的,没有用过
嘉立创不是出了个技小新,也有模块,还有教程 ...

好的谢谢。

出0入0汤圆

发表于 2018-9-22 16:33:47 | 显示全部楼层
用MQTT比较方便

出0入0汤圆

发表于 2018-10-18 11:22:25 | 显示全部楼层
反向的传输怎么弄?比如PHP页面上想控制传感器电路板打开一个LED? ---  EMQ连接一下?

出0入0汤圆

发表于 2018-10-18 12:20:29 | 显示全部楼层
董董董 发表于 2018-10-18 11:22
反向的传输怎么弄?比如PHP页面上想控制传感器电路板打开一个LED? ---  EMQ连接一下? ...

WEB页面上,用websocket,创建另一个端口与TCP Server连接。

WEB --> WebSocket --> TCP Server -->  Device
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 08:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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