单片机通过8266可以接收服务器发过来的数据但是服务器收不到8266发来的数据这是怎么回事
1esp8266在供电不足的情况,会出现反复重启的现象。
2如果双向同时通讯(服务器端发送客户端的同时,客户端也发送给服务器),将会出现客户端强制重启的现象,但服务器那端却正常,这点很郁闷。
3发热有点严重,估摸着温度能有50-60了,但基本使用正常。
4客户端断开连接,然后再次连接的时候,会出现id编号增加的现象。
宽泛的讲,有两种方式,实现Client和Server的实时通讯(数据接收)。
1、 Pull 也就是拉。 即Client把数据从Server中拉出来。
因为winform本质是事件驱动,如果不想用button,那么最简单的方式就是用定时器(timer), 比如每10秒请求一次数据,
这种方式本质上和button没有区别,还是通过事件来驱动应用,只不过是“自动”的去读取数据。
优点是简单, 缺点是不及时(如果数据是1秒一变,这个10秒的间隔就太长了),而且资源利用率较低(如果1小时都没有变化, 这10秒一次的刷新就很占用资源)
2、Push 推,即Server将信息推送到Client中去。
Winform中实现推送信息,一般需要和Server建立连接,连接后,当Server需要推送(比如数据有更新)时,才向Client中发送信息。
优点是数据的时效性较好,而且资源利用合理。
缺点是需要大量的代码(相比定时器那种方法)
Push模式可以参考“观察者模式”的开发方式。
通常情况下用户使用浏览器网页表单向服务器post提交数据,我们使用PHP的$_POST接收用户POST到服务器的数据,并进行适当的处理。但有些情况下,如用户使用客户端软件向服务端php程序发送post数据,而不能用$_POST来识别,那又该如何处理呢?
我们介绍php接受post数据的三种方式:
1$_POST方式接收数据
$_POST方式是通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。如使用$_POST[‘name’]就可以接收到网页表单以及网页异步方式post过来的数据,
即$_POST只能接收文档类型为Content-Type: application/x-www-form-urlencoded提交的数据,也就是表单POST过来的数据。
2$GLOBALS[‘HTTP_RAW_POST_DATA’]方式接收数据
但$GLOBALS[‘HTTP_RAW_POST_DATA’]中是否保存POST过来的数据取决于centent-Type的设置,只有在PHP在无法识别的Content-Type的情况下,才会将POST过来的数据原样地填入变量$GLOBALS[‘HTTP_RAW_POST_DATA’]中,像Content-Type=application/x-www-form-urlencoded时,该变量是空的。
另外,它同样无法读取Content-Type为multipart/form-data的POST数据,也需要设置phpini中的always_populate_raw_post_data值为On,PHP才会总把POST数据填入变量$http_raw_post_data。
3php://input方式接收数据
如果访问原始 POST 数据的更好方法是 php://input。php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的phpini设置,php://input不能用于 enctype=”multipart/form-data”。对于未指定 Content-Type 的POST数据,则可以使用file_get_contents(“php://input”)来获取原始数据。事实上,用PHP接收POST的任何数据都可以使用本方法。而不用考虑Content-Type,包括二进制文件流也可以。php://input读取不到$_GET数据。是因为$
方法/步骤
一、系统架构
选择合适的硬件平台搭建售货机的监控系统,达到在广域网上的稳定连接,能够远程监控到各售货机的运行和售货情况,方便远程终端获取缺货信息进行补货,保证维护人员实时了解当前售货运行的各项指标。
设计监控系统总体架构,分析应用需求,设计并实现了服务端的监控程序:使用图形界面动态模拟了售货机的售货状态,以及便捷的生产缺货清单方案,为实际加货操作提供了方便。
售货机与刷卡板的串口通信,设计通信流程,使得在具备刷卡功能的同时能够在消费成功后将相关售货数据传送到服务器,以及需要定时的对售货机的状态进行反馈到监控平台。
采用合适的消息封装格式以及合理的应答措施,使得无线网络连接稳定,实时更新售货机的状态信息和售货信息,网络故障时,采用短信方式通知服务器。
在发送端将传输数据采用合适的加密算法以及相关密钥进行加密处理,已达到信息的安全传输。
二、软件系统结构介绍
基于无线2G/3G/4G通信模块的自动售货机监控系统由自动售货机终端、无线2G/3G/4G网络以及后台服务系统组成。
总体网络拓扑图如下所示:
整个系统分为两大部分:虚线以上为售货机的监控系统,主要用于获取售货机终端的实时数据并存储和管理这些数据。虚线一下为查询系统,负责在网络上向消费者公布售货机售货和消费者信息等。
监控系统:将售货机终端作为客户端,客户端的职责是采集每个售货机的运行状态数据与售货数据,向服务器保持通信,并根据服务器下发的命令做出相关操作。服务器接收客户端发送的各类数据信息,分类进行处理,将状态与报警信号显示到监控界面,销售数据存入数据库,并应要求从数据库读取历史数据。
无线数据传输模块:为使得自动售货机更加信息化智能化,管理更加便捷化,新型的自动售货机信息管理系统正在解决这一问题,系统利用2G/3G/4G无线通信技术,将自动售货机当前运营的数据,包括系统状态、系统故障、料道故障、缺货情况、销售数据通过安装在自动售货机上的无线网络模块远程传输到售货机网络服务器,运营人员可以在任何一台联网的电脑上掌握售货机的这些信息,实现自动售货机的大规模运营和网络化管理。
监控系统采用C/S(客户端/服务器)分布体系结构。利用两端硬件环境,将任务分别分配到服务器和客户端上,并且通过监控服务器来进行数据的处理,以及完成客户端与数据库之间的通信,这样既减轻了客户端的负担,也增强了系统的安全性。
查询系统:查询系统采用B/S(浏览器/服务器)分布体系结构。B/S是一种“客户机/胖服务器”模式,主要事务逻辑都由WWW浏览器通过服务器完成,减轻客户端的负担。其次,WEB服务器将可扩展标记语言(XML)作为基本的表示数据,客户端只配置浏览器,具有良好的扩展能力和跨平台性。
用户使用手机或者PC机通过浏览器访问WEB服务器,查询售货机位置、余货以及消费记录。
三、系统各模块结构和功能介绍
自助售货机终端
售货机的交易操作流程是:先通过键盘或者其他人机界面进行选货和确认,然后开启硬币机、纸币机以及刷卡设备,进行资金支付,支付完成后完成出货,出货成功,检查网络连接,统计交易数据进行处理并发送至服务器。在无交易情况下,根据服务器的要求定时报告运行状况信息,在状态超出警告范围时需要主动向上发起报告。
按照功能划分,总体可分为以下功能模块:
人机交互:包括键盘,LCD屏幕等,支持用户选货确认,以及提醒用户操作指示和显示运行状态。目前很多售货机制造商都采用大屏幕的触屏显示代替传统功能单一的显示屏和键盘,将两者功能进行合并,而且在功能性和娱乐性上有了很大提高。
外围设备:实现硬币机、纸币机的交互,以及对控制出货的螺旋电机进行控制操作。此处的通信使用MDB/ICP协议。
存储模块:在售货机内部也有存放销售以及状态信息的存储模块,防止在网络故障时交易信息的丢失,以及对网络恢复时刻进行补发。
刷卡以及通信设备:刷卡以及通信设备就是本文详述的部分,作用是使用刷卡支付代替现金交易支付功能,同时通过网络通信实现数据统计与状态监控。
其中的售货机终端指的是刷卡和通信设备。售货机终端包括售货机主板、刷卡微控制单元(MCU)、无线2G/3G/4G模块以及RF_UIM板。刷卡板MCU作为连接售货机主板与无线2G/3G/4G模块以及RF_UIM板的桥梁,担负着刷卡与数据传输的重要作用。使用射频卡取代现金交易,使交易更便捷进行,增加了消费记录的可读性。
售货机上电是MCU初始化无线2G/3G/4G模块,向模块发送AT指令,通过内置的TCP/IP协议栈拨号并向服务器地址和端口发起网络连接。当消费且出货成功后,向MCU发送消费数据,经过MCU的处理,将销售数据通过2G/3G/4G网络上传到监控服务器。
MCU定时采集本售货机的运行状况,向上汇报。在接收到应答确认之前不清除发送数据,等待与下次的数据整合合成一条向上发送,防止因为服务器的工作中断而丢失消息数据。
四、工业级DTU实现的功能介绍
DTU(Data Transfer Unit),全称数据传输单元,为用户提供高速、永远在线、TCP/UDP 透明数据传输的工业级无线终端设备。产品采用高速高性能工业级ARM9 嵌入式处理器或者X86 架构高性能嵌入式处理器,以实时操作系统为软件支撑平台,超大内存,内嵌自主知识产权的TCP/IP 协议栈,为用户提供高速,稳定可靠,数据终端永远在线,多种协议转换、虚拟专用网络的系统应用。针对网络流量控制的用户,DTU 产品支持语音,短信,数据触发上线以及超时自动断线的功能。同时也支持双数据中心备份,以及多数据中心同步接收数据等功能。
6
五、结束语
对于售货机的应用,已经成为零售业的未来趋势,而售货机的网络化消费和网络化管理已成为售货机行业的必然趋势,人们通过自己投币自动取货,不受时间和地点限制,方便快捷地买到需要的饮料、食品等。自动售货机通过无线通信模块不仅可以补充人力资源不足的缺陷,而且可以实现24小时无人售货的系统,可以更省力,运营资本少,拥有多种优势。
0条评论