本发明涉及电机控制领域,特别涉及一种使用微信控制步进电机的方法及装置。
背景技术:
传统的遥控电机技术基本是采用无线电高频连接、蓝牙连接、超声波连接或者红外连接方式。这些方式要么需要使用配对的硬件,要么需要进行连接配对,对于普通用户来说比较麻烦,有时候甚至需要专业知识来配对;更重要的是无法突破有限的遥控距离,不是真正意义的随时随地遥控。其操作麻烦,遥控距离有限,不能真正实现无国界、无限的距离遥控。
技术实现要素:
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种操作方便简单、真正能实现无国界和无限距离遥控的使用微信控制步进电机的方法及装置。
本发明解决其技术问题所采用的技术方案是:构造一种使用微信控制步进电机的方法,包括如下步骤:
a)用户登录移动终端的微信,在微信中发送符合tcp协议格式的操作指令到微信服务器;
b)所述微信服务器通过互联网由http协议转发所述操作指令到云服务器平台;
c)所述云服务器平台通过3g网络、4g网络、wifi或以太网发送socket指令数据包到硬件终端;所述硬件终端中设有cpu;所述socket指令数据包的数据格式包括指令、参数长度和参数;
d)所述cpu收到所述socket指令数据包后,将其解析为gpio电平脉冲控制信号,并使用gpio电平脉冲控制信号驱动所述步进电机进行相应动作;每个所述步进电机匹配一个平台账号密码作为控制钥匙,平台账号与微信帐号绑定。
在本发明所述的使用微信控制步进电机的方法中,所述硬件终端中还设有sim芯片,所述移动终端为智能手机,所述步骤c)进一步包括:
c1)所述cpu启动后控制所述sim芯片连接到手机网络,并通过tcp协议连接到所述云服务器平台;
c2)当连接上所述云服务器平台后,所述cpu进入工作循环,并等待所述socket指令数据包。
在本发明所述的使用微信控制步进电机的方法中,所述步骤d)进一步包括:
d1)当所述cpu收到所述socket指令数据包后,对其进行解析得到动作指令;
d2)通过控制gpio的电平,向所述步进电机发送转向控制指令及步进脉冲,驱动所述步进电机动作。
在本发明所述的使用微信控制步进电机的方法中,当所述cpu进入正常的工作循环后,周期性地向所述云服务器平台发送呼吸包程序,并通知所述云服务器平台所述硬件终端正在活动;当检测到网络连接断开后,所述cpu重新进入tcp连接状态,重新连接到所述云服务器平台。
在本发明所述的使用微信控制步进电机的方法中,当所述cpu确定连接到所述云服务器平台后,所述cpu启动一个计时器,每经过一个预设的周期时间引发计时器中断,所述cpu进入计时器中断后,通过at指令向所述云服务器平台发送一个包含时间戳的socket数据包,告知所述云服务器平台最后一次与所述云服务器平台通讯的时间。
本发明还涉及一种实现上述使用微信控制步进电机的方法的装置,包括:
登录发送单元:用于使用户登录移动终端的微信,在微信中发送符合tcp协议格式的操作指令到微信服务器;
操作指令转发单元:用于使所述微信服务器通过互联网由http协议转发所述操作指令到云服务器平台;
指令数据包发送单元:用于使所述云服务器平台通过3g网络、4g网络、wifi或以太网发送socket指令数据包到硬件终端;所述硬件终端中设有cpu;所述socket指令数据包的数据格式包括指令、参数长度和参数;
解析驱动单元:用于使所述cpu收到所述socket指令数据包后,将其解析为gpio电平脉冲控制信号,并使用gpio电平脉冲控制信号驱动所述步进电机进行相应动作;每个所述步进电机匹配一个平台账号密码作为控制钥匙,平台账号与微信帐号绑定。
在本发明所述的实现上述使用微信控制步进电机的方法的装置中,所述硬件终端中还设有sim芯片,所述移动终端为智能手机,所述指令数据包发送单元进一步包括:
控制连接模块:用于使所述cpu启动后控制所述sim芯片连接到手机网络,并通过tcp协议连接到所述云服务器平台;
连接等待模块:用于当连接上所述云服务器平台后,所述cpu进入工作循环,并等待所述socket指令数据包。
在本发明所述的实现上述使用微信控制步进电机的方法的装置中,所述解析驱动单元进一步包括:
指令解析模块:用于当所述cpu收到所述socket指令数据包后,对其进行解析得到动作指令;
发送驱动模块:用于通过控制gpio的电平,向所述步进电机发送转向控制指令及步进脉冲,驱动所述步进电机动作。
在本发明所述的实现上述使用微信控制步进电机的方法的装置中,当所述cpu进入正常的工作循环后,周期性地向所述云服务器平台发送呼吸包程序,并通知所述云服务器平台所述硬件终端正在活动;当检测到网络连接断开后,所述cpu重新进入tcp连接状态,重新连接到所述云服务器平台。
在本发明所述的实现上述使用微信控制步进电机的方法的装置中,当所述cpu确定连接到所述云服务器平台后,所述cpu启动一个计时器,每经过一个预设的周期时间引发计时器中断,所述cpu进入计时器中断后,通过at指令向所述云服务器平台发送一个包含时间戳的socket数据包,告知所述云服务器平台最后一次与所述云服务器平台通讯的时间。
实施本发明的使用微信控制步进电机的方法及装置,具有以下有益效果:由于用户在微信中发送符合tcp协议格式的操作指令到微信服务器,微信服务器通过互联网由http协议转发所述操作指令到云服务器平台,云服务器平台通过3g网络、4g网络、wifi或以太网发送socket指令数据包到硬件终端,cpu收到socket指令数据包后,将其解析为gpio电平脉冲控制信号,并使用gpio电平脉冲控制信号驱动步进电机进行相应动作,微信用户普及量庞大,采用微信控制,其操作方便简单,能真正无国界、无限距离遥控;所以其操作方便简单、真正能实现无国界和无限距离遥控。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明使用微信控制步进电机的方法及装置一个实施例中方法的流程图;
图2为所述实施例中云服务器平台通过3g网络、4g网络、wifi或以太网发送socket指令数据包到硬件终端的具体流程图;
图3为所述实施例中cpu收到socket指令数据包后,将其解析为gpio电平脉冲控制信号,并使用gpio电平脉冲控制信号驱动步进电机进行相应动作的具体流程图;
图4为所述实施例中装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明使用微信控制步进电机的方法及装置实施例中,其使用微信控制步进电机的方法的流程图如图1所示。图1中,该使用微信控制步进电机的方法包括如下步骤:
步骤s01用户登录移动终端的微信,在微信中发送符合tcp协议格式的操作指令到微信服务器:本步骤中,用户登录移动终端的微信,在微信中发送符合tcp协议格式的操作指令到微信服务器。该移动终端可以是智能手机,随着智能手机的普及,其中的微信软件的用户已达到7亿以上,因此,使用微信来控制步进电机动作成为非常容易接受的选择,操作也更为方便,并且完全发挥了现代通讯技术和资源优势,真正实现无国界、无限的距离遥控。
步骤s02微信服务器通过互联网由http协议转发操作指令到云服务器平台:本步骤中,微信服务器通过互联网,由http协议转发操作指令到云服务器平台。该云服务器平台是开发商云服务器平台,其名称可以随意定义,例如:其名称可以是拓拓云服务器平台。
步骤s03云服务器平台通过3g网络、4g网络、wifi或以太网发送socket指令数据包到硬件终端:本步骤中,本步骤中,云服务器平台通过3g网络、4g网络、wifi或以太网发送socket指令数据包到硬件终端。该硬件终端中设有cpu,socket指令数据包的数据格式包括指令、参数长度和参数,例如:该socket指令数据包的数据格式为[指令][第一参数的长度][第一参数]...[第n参数的长度][第n参数]。
步骤s04cpu收到socket指令数据包后,将其解析为gpio电平脉冲控制信号,并使用gpio电平脉冲控制信号驱动步进电机进行相应动作:本步骤中,cpu收到socket指令数据包后,将其解析为gpio电平脉冲控制信号,并使用该gpio电平脉冲控制信号驱动步进电机进行相应动作。值得一提的是,本实施例中,每个步进电机匹配一个平台账号密码作为控制钥匙,平台账号(就该平台账号可以是拓拓云服务平台账号)与微信帐号绑定。
本实施例中,选择步进电机是因为步进电机相对于其它控制用途电机的最大区别是,步进电机能接收数字控制电脉冲信号并转化成与之相对应的角位移或直线位移,其本身就是一个完成数字模拟转化的执行元件。而且可开环位置控制,输入一个脉冲信号就得到一个规定的位置增量,这样的所谓增量位置控制系统与传统的直流控制系统相比,其成本明显降低,几乎不必进行系统调整。步进电机的角位移量与输入的脉冲个数严格成正比,而且在时间上与脉冲同步。因而只要控制脉冲的数量、频率和电机绕组的相序,即可获得所需的转角、速度和方向。
本发明的使用微信控制步进电机的方法采用微信控制,其操作方便简单,能真正无国界、无限距离遥控;所以其操作方便简单、真正能实现无国界和无限距离遥控。
本发明由tcp协议通过现代通讯技术发送操作信息,连接相应的微信服务器,再通过http协议解释和转发信息,然后通过3g/4g/wifi/以太网发送socket指令数据包到硬件终端,最后通过硬件终端的cpu收到socket指令数据包后解释为gpio电平脉冲控制信号到步进电机,来驱动步进电机动作。具体就是通过微信程序(也可以是具有相同功能的app或者网页)来控制步进电机动作。由于微信的用户群体庞大,无需要教导用户使用,相对传统遥控方法,是最为方便的使用方式,暂时没有其他应用场景能够比使用微信有更多的用户。在控制程序中添加呼吸包程序并保持硬件随时相应,是简单有效而且性价比高的保持通讯的巧妙方式。采用微信控制步进电机精确驱动;呼吸包程序可以保持步进电机反应迅速。
本实施例中,上述硬件终端中还设有sim芯片,sim芯片与cpu连接。对于本实施例而言,上述步骤s03还可进一步细化,其细化后的流程图如图2所示。图2中,上述步骤s03进一步包括:
步骤s31cpu启动后控制sim芯片连接到手机网络,并通过tcp协议连接到云服务器平台:本步骤中,cpu启动后首先控制sim芯片连接到手机网络,然后通过tcp协议连接到云服务器平台。
步骤s31当连接上云服务器平台后,cpu进入工作循环,并等待socket指令数据包:本步骤中,当连接上云服务器平台后,cpu进入工作循环,并不断等待网络指令,即等待socket指令数据包。
对于本实施例而言,上述步骤s04还可进一步细化,其细化后的流程图如图3所示。图3中,上述步骤s04进一步包括:
步骤s41当cpu收到socket指令数据包后,对其进行解析得到动作指令:本步骤中,当cpu收到socket指令数据包后,对该socket指令数据包进行解析(或分析),得到动作指令。
步骤s42通过控制gpio的电平,向步进电机发送转向控制指令及步进脉冲,驱动步进电机动作:本步骤中,通过控制硬件终端的gpio的电平,向步进电机发送转向控制指令及步进脉冲,驱动步进电机动作。
在本发明的微信控制步进电机的方法中,当cpu进入正常的工作循环后,周期性地向云服务器平台发送呼吸包程序,保证网络连接不断开,并通知云服务器平台硬件终端正在活动;而当检测到网络连接断开后,cpu重新进入tcp连接状态,重新连接到云服务器平台,保证工作持续稳定。
在本发明的微信控制步进电机的方法中,当cpu确定连接到云服务器平台后,cpu启动一个计时器,每经过一个预设的周期时间引发计时器中断,cpu进入计时器中断后,通过at指令向云服务器平台发送一个包含时间戳的socket数据包,告知云服务器平台最后一次与云服务器平台通讯的时间。此为呼吸包程序的原理。通过增加呼吸包程序的控制,可以保证响应速度,保证能够随时收发信息,步进电机及时精确地动作。本发明的微信控制步进电机的方法操作简易、无国界限制,能充分发挥现代通讯科技优势。
本实施例中,移动终端的微信可以使用c++(.net)编写,微信使用手机版6.0以上版本,调用了微信的后台功能接口,通过微信操作连接到服务器操作页面,主要提供用户操作界面、信息接收发送和信息反馈功能,同时提供用户数据保存。服务器端程序可以采用c#语言编写,主要负责解析微信服务器和云服务器平台接收和发送的数据信息并进行相应处理,云服务器平台可以采用阿里云服务器,4核cpu,8g内存,5mbps固定带宽,操作系统采用asp/.net运行环境(windows200864位|iis7.0)v1.2。
本实施例中,云服务器平台不断的采集各个硬件终端的活动时间,判断硬件终端是否正常运行,当发现有硬件连接断开时,会主动通过移动终端的微信通知用户该步进电机工作不正常。
本实施例还涉及一种实现上述使用微信控制步进电机的方法的装置,其结构示意图如图4所示。图4中,该装置包括登录发送单元1、操作指令转发单元2、指令数据包发送单元3和解析驱动单元4;其中,登录发送单元1用于使用户登录移动终端的微信,在微信中发送符合tcp协议格式的操作指令到微信服务器;操作指令转发单元2用于使微信服务器通过互联网由http协议转发操作指令到云服务器平台;指令数据包发送单元3用于使云服务器平台通过3g网络、4g网络、wifi或以太网发送socket指令数据包到硬件终端;硬件终端中设有cpu;socket指令数据包的格式包括指令、参数长度和参数;解析驱动单元4用于使cpu收到socket指令数据包后,将其解析为gpio电平脉冲控制信号,并使用gpio电平脉冲控制信号驱动步进电机进行相应动作;每个步进电机匹配一个平台账号密码作为控制钥匙,平台账号与微信帐号绑定。
本发明的装置操作方便简单,能真正无国界、无限距离遥控;所以其操作方便简单、真正能实现无国界和无限距离遥控。
本实施例中,硬件终端中还设有sim芯片,移动终端可以是智能手机,指令数据包发送单元3进一步包括控制连接模块31和连接等待模块32;其中,控制连接模块31用于使cpu启动后控制sim芯片连接到手机网络,并通过tcp协议连接到云服务器平台;连接等待模块32用于当连接上云服务器平台后,cpu进入工作循环,并等待socket指令数据包。
本实施例中,解析驱动单元4进一步包括指令解析模块41和发送驱动模块42;其中,指令解析模块41用于当cpu收到socket指令数据包后,对其进行解析得到动作指令;发送驱动模块42用于通过控制gpio的电平,向步进电机发送转向控制指令及步进脉冲,驱动步进电机动作。
在本发明的装置中,当cpu进入正常的工作循环后,周期性地向云服务器平台发送呼吸包程序,保证网络连接不断开,并通知云服务器平台硬件终端正在活动;而当检测到网络连接断开后,cpu重新进入tcp连接状态,重新连接到云服务器平台,保证工作持续稳定。
在本发明的装置中,当cpu确定连接到云服务器平台后,cpu启动一个计时器,每经过一个预设的周期时间引发计时器中断,cpu进入计时器中断后,通过at指令向云服务器平台发送一个包含时间戳的socket数据包,告知云服务器平台最后一次与云服务器平台通讯的时间。此为呼吸包程序的原理。通过增加呼吸包程序的控制,可以保证响应速度,保证能够随时收发信息,步进电机及时精确地动作。本发明的微信控制步进电机的方法操作简易、无国界限制,能充分发挥现代通讯科技优势。
本实施例中,具体实现功能过程的控制程序指令模式集合如下:指令类型:user-登录指令、alive-存活指令、event-事件指令和debug-测试指令。步进电机与云服务器平台通过socket进行通迅,由步进电机向云服务器平台主动发起tcp连接,连接到[域名:端口]。
<1>tcp连接完成后,应即时发送登录验证数据包:
<user>步进电机系统编号</user>
<pwd>登录密码</pwd>
用于安全验证,每个步进电机的系统编码不一样,应可在步进电机系统的局域网主机(即发起tcp连接的软件端)配置;登录失败,云服务器平台返回0,成功返回1(unsignedint型);软件登录成功后,应一直保持连接,断线后自动重连。
<2>步进电机系统登录后,应定时(暂定30秒)向云服务器平台发送“存活”数据包。防止tcp超时自动断开,并通知云服务器平台运行正常。
<alive></alive>
可以直接发送此格式字符串(utf-8编码),云服务器平台返回1(unsignedint型),无返回表示连接不正常。
<3>上行协议格式说明(从步进电机系统发送到远程服务器):
<event>事件</event>
<id>用户步进电机编码</id>
<time>事件发生时间</time>
<free>当前允许操作的有效时间</free>
上行协议使用utf-8编码字符串;事件分为两种,分别为:into(表示需要步进电机转动),leave(表示准备动作),out(表示已结束动作);id段表示使用者编号(用户步进电机编码),free段备用,time段表示时间(yyyy-mm-ddhh:mm格式)。当步进电机系统向云服务器平台发送上行事件后,等待云服务器平台下行回复(见<4>),无回复视作超时。
<4>下行协议格式说明(从云服务器平台回复步进电机系统):[usignedint];云服务器平台返回1字节32位无符号整数。
对应into事件,云服务器平台返回[1],表示已接收,没有返回说明超时;对应leave事件,云服务器平台返回[实时有效时间分钟数],可多次查询;对应out事件,云服务器平台返回[1],表示已接收。
<5>debug测试指令:测试指令用于开发阶段测试使用(在软件测试客户端使用),正式系统不应包含使用测试指令的程序。运行成功返回1,否则返回0。
关于设置可等候操作时间指令,<debug>freetime</debug>;<id>使用者编号</id>;<value>测试的有效时间分钟数</value>。例:(设置使用者you696准备动作时间为180分钟内):<debug>freetime</debug>;<id>you696</id>;<value>180</value>。
对于into事件,用户准备操作时,应向云服务器平台发送into事件通知,并发送用户编号、开始时间和有效动作时间等。然后等待云服务器平台返回[0](32位无符号整数),无返回则视作超时。例:上行数据:<event>into</event>;<id>y88888</id>;<time>2016-01-1619:00</time>;<free>85</free>;云服务器平台返回:[1]。
对于leave事件,用户准备操作步进电机动作时,应向云服务器平台发送leave事件通知,并发送用户编号、开始时间和有效动作时间等。并等待云服务器平台返回[准备动作等候的有效时间分钟数](32位无符号整数)。例:上行数据:<event>leave</event>;<id>y88888</id>;<time>2016-01-1621:00</time>;<free>85</free>。云服务器平台返回:[120],120是可以准备有效动作时间的分钟数,并非固定120。
关于可以准备动作等候的有效时间的分钟数,当返回的数字表示可以准备动作的有效分钟数,如返回120表示动作有效时间为120分钟内,即2小时。如果实际动作时间小于等于这个时间,则步进电机动作。否则应以实际动作时间减去设定的时间,作为超时时间来判断是否继续相应动作。如无返回视作超时。例如:开始时间为19:00,结束时间为21:00,云服务器平台返回可以动作时间分钟数为120(分钟),则实际动作时间等于设定动作时间之内,则步进电机动作。
对于out事件,当动作结束后通知。例:上行数据:<event>out</event>;<id>y88888</id>;<time>2016-01-1621:00</time>;<free>85</free>。云服务器平台返回:[1],如无返回视作超时。
总之,本发明是通过手机微信来控制步进电机,比传统的无线电通讯方式、蓝牙通讯方式和超声波通讯方式来控制要方便得多,因为微信的用户已经达到7亿,并且使用非常便利快捷。另外,通过互联网通讯,超越了国界和距离的控制,可以达到真正无限距离控制;通过移动互联网传输,充分发挥了现代通讯技术的潜力。同时在通讯过程中设计了呼吸包程序,保证硬件可以随时响应,有效避免陷入网络休眠状态而再度被唤醒时出现延迟或者不可预料的错误。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。