实现对其他设备的网络控制与传感的模块化控制系统的制作方法

xiaoxiao2020-7-22  22

实现对其他设备的网络控制与传感的模块化控制系统的制作方法
【专利摘要】本发明提供一种使任意的非网络连接的设备与计算机网络(例如,互联网)连接的标准方法。本申请通过提供可与标准的固态存储卡接口和形状因素兼容的插入式通信模块来使所述通信接口模块化,从而去除无线批准测试的负担(测试所述模块对整个产品)。本申请还将可编程的任意设备控制器与相关的软件并入这个相同通信模块内,从而去除大多数任意的非网络连接的设备的大部分软件开发的负担。本申请进一步提供统一的基于互联网的服务,所述服务可有助于配置所述模块的网络配置并下载目前与所述模块连接的任何任意设备的适当的控制代码。
【专利说明】实现对其他设备的网络控制与传感的模块化控制系统
[0001]交叉引用相关申请
[0002]本申请为由发明人Hugo Fiennes于2012年5月25日提交的题为MODULARIZEDCONTROL SYSTEM TO ENABLE NETWORKED CONTROL AND SENSING OF OTHER DEVICES 的美国专利申请13/481,737的接续申请;本申请以及申请13/481,737要求以下申请的优先权利益:由发明人Hugo Fiennes于2011年5月26日提交的题为“MODULARIZED CONTROLSYSTEM TO ENABLE NETWORKED CONTROL AND SENSING OF OTHER DEVICES” 的美国临时申请61/490,498 ;由发明人Hugo Fiennes于2012年I月5日提交的题为“Method oftransferring network setup information using optical signaling,,的美国临时申请61/583,299的优先权利益;由发明人Hugo Fiennes于2012年5月15日提交的题为“MODULARIZED CONTROL SYSTEM TO ENABLE NETWORKED CONTROL AND SENSING OF OTHERDEVICES”的美国临时申请61/647,476的优先权利益;所有这些申请的内容以引用的方式并入本文。
【技术领域】
[0003]本申请涉及网络连接和计算机化设备的领域,特别是,在将计算机网络连接与可选地网络控制或监控加入非网络连接的设备中的方法。
【背景技术】
[0004]得益于网络化,可以很容易地对很多电气设备进行控制与监控。举例而言,考虑到从天气信息提供商得到的天气预报,可以通过远程计算机来对自动灌溉系统进行控制。
[0005]通常,对于某些设备而言,如果期望通过连接到计算机网络而获益,则必须对这些设备做出重大的改进,以实现此目的。通常,必须添加通信接口,必须开发大量软件与固件,并且在销售这些产品之前,这些产品作为总体需要通过无线审批测试。通常,需要向设备添加按钮与指示器,以便于通信接口的配置,这就增加了额外的成本以及用户体验的复杂性。
[0006]通常,为了向一个设备添加这种连接,设备供应商必须向该设备添加硬件-通信接口以及处理操作该接口的负担的额外处理能力。所涉及的开发工作非常重要,还对支持-软件更新造成很多额外的负担,以修复问题并且添加新的功能,协助用户安装和配置通信接口。通常,上述负担都未在供应商的专业领域中或涉及使这些负担创新的领域,因此,将这些负担从其核心的知识产权的研发中转移。
[0007]由于供应商没有经验,以及任何单个公司为这些设备开发基于互联网的服务以允许检查这些设备的状态并且控制其行为的高额费用,为这些设备提供的多数服务是严重缺乏并且有问题的,并且未利用新技术或签字有用的合伙服务。
[0008]由于网络部分的实现方式通常不完整或具有故障,所以购买这些支持网络的设备的客户通常缺乏安装与操作这些设备的网络部分的经验。此外,客户经常发现,单个供应商都不能提供他们希望进行控制或监控的所有设备的支持网络的版本。结果,客户通常被迫使用几种不同的并且不兼容的控制或监控服务,并且通常不能使监控一个设备的结果与另一个设备的行为连接。
[0009]现有技术中的模块化网络接口包括美国专利7,702,821,其作为Eye-Fi卡销售。该卡为支持无线功能的SD卡,实质上是具有SD形状因素的标准的WiFi卡。其他WiFi卡以及其他类型的网络卡,包括以太网卡、蓝牙卡等也是已知的。通常而言,这些现有技术中的设备安装在主机设备中,并为主机设备添加网络硬件接口,或者通常操作为或者充当“哑“从设备。

【发明内容】

[0010]本申请提供了一种将任意设备(例如,电气设备)连接到计算机网络的标准化方法,以允许通过用户或由在本地或远程定位的计算机上执行的算法来对这些设备进行监控和/或控制。这些算法可考虑其他传感器的状态,或者考虑可通过互联网访问的实际上几乎任何息源。
[0011]本申请提供了一种标准化的模块化无线通信接口(通信模块),对于普通的任意设备提供商(供应商)而言,该接口显著减轻了接口研制与批准的沉重负担。无需辛苦地逐个设备地研制和获得每个设备的监管审批,标准化的模块化无线通信接口可以一次性研制与获批,然后可用于各种不同的任意设备。
[0012]在一个实施例中,本申请进一步将可编程的任意设备控制器集成到其模块化无线网络接口中,从而去除针对任意设备的大部分软件开发的负担。本申请还提供统一的基于互联网的通信服务,以管理各种不同的通信模块与任意设备。由于本申请的通信模块的硬件及其很多软件在不同的主机设备(任意设备)之间是共同的,所以通信模块的大量生产可以保持较低的通信模块成本,并且允许建立与操作大幅改进的任意设备控制服务。
[0013]本申请的硬件部分由通信接口与处理器组成,通信接口与处理器通常封装在非常小并且容易手持的模块内,该模块通常为用户可移动的模块。例如,一个实施例可通过标准SD (安全数字)卡形状因素来实现通信模块。这些实施例具有优势,这是因为这些实施例为用户所熟悉,较小并且在任意设备上不占据太多空间,容易操作,并且在某些情况下也可制成与实际的SD存储卡兼容。
[0014]如上所述,现有技术的一个重要缺点在于,在新设备可与网络一起使用之前,大部分通信接口需要某种配置。因此,迫使任意设备供应商为其任意设备添加按钮、指示器、屏幕或者甚至连接器,以允许连接到计算机来进行配置,所有这些增加了成本、尺寸以及额外的支持负担。
[0015]通过采用小型、易于配置的、可移除的外设卡的形式,本申请的通信模块部分缓解该问题。在一些实施例中,当通信模块配置有存储卡(例如,SD卡)状尺寸与电气引出线连接时,通信模块可通过现有的存储器接口插入计算机内。通信卡然后可由计算机来进行配置,然后该通信卡与计算机分离,并且插入要进行控制或传感的任意设备内。
[0016]在其他实施例中,不需要插入计算机内来进行配置,相反,可对该设备进行光学配置以进行网络接入,然后,使用与远程服务器的WiFi连接来无线编程该设备。在这些实施例中,虽然通信模块依然可配置有存储卡(例如,SD卡)状尺寸与电气引出线连接,但是该通信模块不需要限制为这种存储卡配置,相反,可配置为具有对于即将到来的问题方便的其他尺寸与引出线配置。然而,由于较大的制造基础设施以及由标准的存储卡(例如,SD卡格式)造成的低成本,所以即使并非严格地需要,但是从成本上看,使用这种存储卡格式,通常依然有用。此外,该格式允许供应商(制造商)从各种现成的插座类型与供应商中选择,以为通信模块提供电气与物理接口。
[0017]在一些实施例中,尤其是在存储卡尺寸与引出线兼容的实施例中,为了便于直接配置与编程,通信模块可将其本身配置为好像是计算机的储存设备,例如,更标准或不太标准的固态存储卡储存设备。这种配置具有以下优点:允许在通信模块本身内储存需要在设置计算机或计算机化设备上执行的任何配置软件,并且也确保了广泛的兼容性。
[0018]将设备连接到计算机网络有关的更复杂问题的其中一个在于网络环境本身。网络配置地很糟糕,并且通常,网络经营者可能缺乏纠正这些问题的技术技巧,例如,如果网络使用NAT(网络地址转换),那么在互联网上的计算机不能接触位于NAT网关后面的设备。对很多应用而言,这是严重的阻碍。此外,试图无线连接至本地WiFi网络的那些设备通常需要信息,例如,服务集合识别(SSID)信息与密码,以便进行成功的连接。
[0019]不同于将校正或改变网络配置的负担施加给用户,本申请的通信模块可由软件配置为使用最新技术,包括来自远程网络服务的协助,以自动地检查网络环境并且相应地配置其本身。
[0020]网络模块的操作软件还可配置为保持双向持续的互联网连接,允许通信模块与网络服务保持持续接触。这就允许在发生异步事件时,将异步事件传递给通信模块。
[0021]根据本申请,为了向连接的设备提供最佳的电气与功能匹配,通信模块的电气接口进一步被设计成为允许该模块通过多种方式重新配置其各种输出引脚的功能。这样做具有以下优点:允许在截然不同的任意设备与应用中使用完全相同的通信模块。这也降低了为任何指定的任意设备增加通信模块接口的成本。相比之下,如之前所述,用于添加网络接口的现有技术(现有技术)通常涉及增加通信接口与额外的处理能力,因为该设备本身可能没有处理能力,或者其能力非常有限,并且这种早先的方法非常昂贵。
[0022]最后,在一些实施例中,本申请的通信模块可在其处理模块内操作虚拟机环境和/或沙箱环境。该虚拟机环境可执行与设备相关的代码,以控制该任意设备本身。由于一些原因,在内务处理/与网络相关的功能和通信模块软件的与设备相关的部分之间的这种分离非常有利。一个原因在于,如果发生故障,那么可监控并重启通信模块的与设备相关的代码。而且,然后,通信模块软件的复杂网络软件部分可进行操作,而不受到通信模块的与任意设备相关的代码的干扰。因此,本申请的通信模块网络管理软件可应付内务处理任务,例如,使用来自任意设备供应商的最新进展,来保持与设备相关的代码最新。
[0023]虚拟机概念的一个额外优点在于,可修改与更新该模块硬件,并且该硬件依然与供应商的与设备相关的代码保持兼容,使供应商不必担心通常在其特定的兴趣与能力之外的领域的复杂性。
[0024]或者或此外,通信模块可在沙箱模式中进行操作,以防止在任意设备接口代码内的程序故障干扰网络控制代码。
[0025]本申请的通信模块与系统的原型于2012年5月16日通过各种新闻发布与演示的方式向公众公开。在这些新闻发布中,通信模块被称为“Imp”。这部分用于表示在1969年形成ARPANET的基础的接口信息处理机“Imp”设备(后来变成互联网)。还使用术语“Imp”,部分原因在于,与神话中的小魔鬼、精灵或恶魔一样,该设备较小并且能够如魔法般地稍微激活与其连接的各种任意设备。在本公开中,本申请的通信模块部分通常替代地称为“Imp”、“Imp设备”、“Imp通信模块”等。有助于管理与网络启用各种通信模块的基于互联网的服务器系统有时替代地称为Imp云服务、Imp服务器等。
【专利附图】

【附图说明】
[0026]图1示出了典型的现有技术的非网络的简单电气或电子任意设备;
[0027]图2示出了通过在系统中添加通信接口、用于处理与网络相关的处理的处理器以及可选地处理实际控制功能的控制处理器来为简单的任意设备添加网络控制的典型现有技术的方法;
[0028]图3示出了本申请的通信模块可与简单的任意设备相结合的方式;
[0029]图4提供了本申请的系统与互联网服务器系统可与多个站点结合的方式的更详细的视图,每个站点可包含多个网络设备,每个网络设备转而都具有一个通信模块,该通信模块相连接,以提供网络连接;
[0030]图5示出了本申请的通信模块系统的概述;
[0031]图6提供了根据本申请可将非网络连接的任意设备网络化的方式的一个实例;
[0032]图7示出了可使用Imp云服务来Imp启用以及配置灯开关型任意设备(在此处为灯开关)的方式;
[0033]图8示出了可在标准的网页浏览器上使用图形编程方法来简单地配置Imp云服务的方式的更多细节;
[0034]图9示出了可光学地配置Imp设备用于进行网络访问的方式;
[0035]图10是示出了装有光探测器的Imp设备的细节的示意图;
[0036]图11提供了用户使用智能电话设备在光学上配置启用Imp的任意设备(在此处为交流电源开关)用于进行网络访问的一个实例;
[0037]图12示出了用户配置Imp云服务以使图7的启用Imp的电源开关控制图11的启用Imp的交流电源开关;
[0038]图13示出了启用Imp的湿度检测器;
[0039]图14准确地提供了已经根据本申请廉价地网络启用的“更好的捕鼠器”(在此处为启用Imp的电捕鼠器)的一个实例;
[0040]图15示出了一个典型SD卡的照片,在某些实施例中,该SD卡可用作Imp通信模块的外壳和接口以及各种交替的软件可配置的Imp引脚输出电气配置;
[0041]图16示出了用于接收SD卡型Imp通信模块的标准化插槽设备的电路图的一个实例。
具体实施例
[0042]制造网络设备的挑战是什么?供应商(例如,设计师、厂家)在试图制造网络设备时所经历的一些问题如下:
[0043]1、无线设计:为了使无线设备具有良好的性能,供应商需要挑选适当的无线芯片组,处理射频设计问题(天线匹配、电源质量等),设计天线,然后通过针对他们希望销售产品的每个地区的昂贵的无线批准测试。[0044]很多性能最好的无线芯片是设计用于手机的,因此,这些芯片可非常小,并且难以起作用,例如,0.4mm间距的BGA,并且在任何指定的任意设备的PCB上包含这些芯片,将大幅增加制造与组装成本。
[0045]一些供应商提供无线模块,无线模块集成了无线电路与天线。这些预先批准的模块某种程度上减少了无线设计负担,但是具有其他缺点,下文进行详细解释。
[0046]2、嵌入式网络固件:每个网络设备需要固件来处理网络通信。通常频繁地更新该代码,以修复问题并提高安全性:这些变化通常需要由供应商整合在一起,甚至在已经运送产品之后产生大量支撑工作。
[0047]此外,供应商通常需要为其客户提供软件更新工具,以便可对在该领域中的产品应用关键更新。由于嵌有缺陷固件的设备在可销售之前需要更新,所以该问题还可造成任意设备储存与配送的问题。
[0048]3、网络配置:为了使设备安全地连接至无线网络,几乎每个无线协议都需要设置程序,。通常,这要求在产品内包含至少一个专用按钮和指示器LED,这就为产品的物理设计增大了成本与复杂性。实际上,该方法通常需要为任意设备添加一个显示屏与多个按钮,如果仅仅出于为特定的网络配置设备的目的而增加这些特征,那么这就成为一种不可接受的负担。
[0049]4、设备软件:除了网络软件,很多任意设备还需要操作该设备的功能的应用软件。与任何软件一样,运送代码具有支持与更新的含义,如上面第2部分中所述。
[0050]5、互联网服务:网络连接的设备需要为用户提供访问其功能的方式。
[0051]第一代网络设备使用嵌入式网页服务器来实现控制,但是这通常不安全并且受到限制,例如,为了从本地网络的外面访问该设备,用户需要在其防火墙中开启一个孔。这较为复杂,并且通常需要专业知识与专门技能来成功地进行。
[0052]第二代设备连接至互联网服务,这可将流量传送给位于用户的防火墙后面的设备并且从该设备中传送流量。通过登录互联网服务,用户可监控和控制其设备。供应商必须设计、建立、操作并支持这个额外的服务。
[0053]6、智能电话应用:现代网络设备通常具有伴随式智能电话应用。然而,难以为多个平台建立良好的智能电话应用。此外,该方法也往往促使任意设备供应商通过努力以及不菲的花费来运行互联网服务,以用作该设备的网关。
[0054]7、与其他设备和服务相结合:通常,用户希望外部动作与其设备连接,例如,自动的“电池电量不足”的电子邮件、在检测移动时发送的文本等。这给互联网服务增加了更大的复杂性。
[0055]在一个实施例中,本申请可为一种方法、系统或设备,用于将网络接口加入任意的非网络连接的设备(任意设备、主机设备)中。该任意设备通常至少部分为电气设备,并且通常具有适当的电路以实现其功能。
[0056]如上所述,本申请部分包括通信模块或卡,通信模块或卡被设计为在主机设备(也可指定为“任意的非网络连接的设备”或简称为“任意设备”)上至少进行某种程度的控制。而且,如上所述,该通信模块或卡可替代地称为“ Imp”或“ Imp设备”或“ Imp通信模块”。
[0057]基于本申请的通信模块的“Imp”系统被设计成帮助解决上述具体问题1-7。具体而言,Imp设备充当“胶黏剂(glue)”,以通过用户可从连接中获取实际价值的方式来将任何设备连接到互联网。
[0058]虽然也可使用使用诸如无线个域网(Zigbee)和蓝牙(Bluetooth)等之类其他标准,但是Imp设备通常包括WiFi或其他短距离无线数字收发器,例如,支持IEEE802.llb/g/n标准的收发器。Imp设备进一步包括具有嵌入式网络固件的处理器与软件。该嵌入式网络固件通常包括符合互联网标准的IP堆栈与TLS安全,以确保容易并安全地连接至互联网服务器,例如,Imp云服务,后面更详细地进行简要描述。在一些实施例中,Imp设备可被配置为根据需要从授权的互联网服务器中自动更新其软件。
[0059]为了容纳Imp通信模块,任意设备通常设计或修改成在其表面上具有插槽,在该表面的下面具有空间,用于容纳Imp设备的插座以及支撑电路,例如,与任意设备的电路的连接、Imp设备电源以及ID芯片。后面更详细地进行简要描述。该插槽与支持插座和电路一起可替代地称为“ Imp插槽”、“ Imp适配器”或“标准化插槽设备”。
[0060]虽然,如上所述,通信模块可采用各种不同的物理形式,但是在一个优选的实施例中,通信模块具有标准的固态存储卡物理接口,进行在物理上兼容的电气连接。因此,例如,在一些实施例中,通信模块可建立在标准的安全数字(SD)存储卡格式上,在这种情况下,通信模块可具有与标准的SD卡在物理上相同的电引脚(见图15 (1500)和(1502))。然而,要注意的是,至少在一些Imp设备软件控制的配置中,这些电引脚的功能通常与标准的SD卡的功能不同。
[0061 ] 还可使用其他Imp设备卡格式。虽然可使用与存储卡不同的Imp设备配置,但是这种配置通常方便快捷。替代的Imp设备实施例的一些实例可包括小型SD与微型SD格式、PC卡、紧凑型闪存卡、智能媒体卡、记忆棒卡、微型卡、多媒体卡、SxS卡、通用闪存卡、xD图像卡、串行闪存模块、U卡、NT卡、XQD卡等。
[0062]在一些实施例中,Imp通信模块还可具有物理接口,并且可选地甚至具有电子和逻辑接口,在至少一个操作模式中,该电子和逻辑接口能够与标准的存储卡读卡器连接,然后与存储卡读卡器一起运作,以根据标准的存储卡协议(根据通信模块的特定形状因素),读取和写入数据。因此,如果通信模块建造成与安全数字(SD)卡兼容,那么该通信模块也可被配置为像标准的SD卡一样储存内存数据。
[0063]在任意设备内的Imp通信模块插槽通常具有通信模块接口,该通信模块接口可在Imp通信模块上与在物理上兼容的电气连接(引脚)相互作用,并且将在这些通信模块的电气连接(引脚)之间的控制信号传送给在任意设备内的至少一些电路。这些引脚的SD卡实例见图15 (1500)。
[0064]为了便于“混合与匹配”功能,其中一个Imp通信模块卡可潜在地插入各种不同的任意设备内,在一个优选的实施例中,任意设备可另外具有独特的识别(ID)储存设备或芯片(例如,与任意设备连接的计算机存储器芯片与接口),其能够将一组独特的识别数据(即,例如可描述任意设备的类型、型号、修订编号等的代号)从任意设备中发送给通信模块。或者,ID芯片还可仅仅包含任何独特的编号,并且Imp服务服务器可根据这个独特的编号查找设备类型。
[0065]如上所述,为了便于进行标准化,在一些实施例中,期望制造标准化的“插槽”模块,用于接纳“Imp”通信模块或卡。该标准化的插槽模块可被配置为适合各种不同的任意设备。由于正常的制造成本与可靠性对容量曲线,所以这反过来可帮助促使降低成本,也可促进可靠的性能。
[0066]该标准化的插槽模块可包括例如插座(例如,SD插座(如果使用SD卡形状因素来建造“Imp”通信模块或卡))、可选的电源(例如,能够提供400mA的3.3v的直流电源)、能够识别进入“Imp”通信模块或卡内的任意设备的识别芯片(例如,Atmel ATSHA204芯片等)以及用于连接在Imp设备上的各种引脚与任意设备的电路的接口电路。无论是否使用标准化的插槽模块,通常,在本讨论中使用术语“插槽”时,应假设插槽包括通信模块插座、可选的通信模块电源以及任意设备的识别芯片。在图15中示出了这种标准化插槽模块(在此处称为“四月开发板”)的一个实例,并且在图16中示出了这种标准化的插槽模块的一个实施例的电气示意图。要注意的是,如果任意设备能够为Imp提供充足的电源,那么Imp标准化的插槽模块本身不需要具有电源。
[0067]Imp通信模块通常也具有能够与计算机网络建立通信会话的通信接口(通常是诸如WiFi或蓝牙接口之类的无线接口,或者诸如以太网接口之类的有线接口,或红外线IrDA或光纤接口也满足要求)。虽然也可使用本地计算机网络,但是通常,该计算机网络为互联网。
[0068]Imp通信模块通常还具有能够储存代码与数据的内部固态存储器。在一些实施例中,在通信模块连接至标准的存储卡读卡器或者由标准的存储卡读卡器进行编程时,可将一些或所有这种代码与数据传输给通信模块,该存储卡读卡器反过来通常连接至计算机化的设备,例如,台式或膝上型电脑、平板电脑、智能电话等。或者,代码与数据可通过在本申请中的其他地方讨论的光学和/或无线方法载入通信模块存储器内。
[0069]Imp通信模块另外具有至少一个内部处理器(例如,微处理器,例如,ARM、MIPs、x86或其他类型的微处理器,该微处理器通常具有32位或更大的指令集与存储器模型)。在通信模块连接至在任意设备内的插槽时,至少一个这种内部处理器可被配置为至少执行通信代码以及一些任意设备接口代码。
[0070]为了节省存储器空间,在一些实施例中,将Imp通信模块配置为能够运行高级命令式面向对象的编程语言,例如,Lua、Squirrel等。这种轻型脚本语言能够配合可用于低成本的微处理器与微控制器的有限内存空间(例如,128千字节)。该技术有助于将“Imp”通信模块的成本降低到最低,同时允许非常能够并容易地配置通信模块。
[0071]为了进一步便于编程,通过使用额外的Imp特定的编程API,可进一步扩展该语言的标准库(例如,Squirrel标准库)。这种Imp特定的编程API可扩展该语言的标准库,以包括额外的类别(例如,Imp硬件类别)、Imp控制方法与功能、非易失性数据存储表、Imp引脚配置、读取与写入方法、服务器登录与控制方法、Imp SPI串行端口配置、读取与写入方法、Imp UART配置、读取与写入方法、有用的常数、控制标记等。
[0072]—旦启用任意设备的Imp (通常通过将Imp设备插入任意设备的Imp插槽内),那么就可使用本申请的各种方法来操作该任意设备。根据这些方法,网络配置数据可载入通信模块内,从而将通信模块配置为与服务器(例如,远程互联网服务器)建立网络连接,该服务器随后可将任意设备的接口代码载入通信模块内。
[0073]后面在本公开中要讨论的是,在本申请的一些实施例中,可用于进一步为“Imp”通信模块配置光探测器,例如,可见光的光探测器。如果这样做,那么使用例如来自运行“Imp”网络配置应用程序的智能电话的发光显示屏的调制光,可容易地将网络配置数据(例如,无线网络配置数据)上传到“Imp”通信模块中。
[0074]或者,通信模块可预先载有设备接口代码和/或网络配置数据。
[0075]在此处,假设在该处理期间,至少在某个点,提供去往互联网的网络连接(例如,无线WiFi)或其他连接。
[0076]由于本申请的设备、系统以及方法,可通过网络(通常由去往互联网的无线连接进行调解)将命令或数据发送给Imp通信模块,其中,这些命令或数据可由运行合适代码的至少一个处理器来解读。然后,通过任意设备的Imp插座,将这些命令或数据发送给任意设备接口。即,在通信模块中的至少一个处理器转而可使用通信模块的在物理上兼容的电气连接(引脚)来将控制信号发送给任意设备的电路。
[0077]另外或或者,可使用通信模块的在物理上兼容的电气连接(引脚)来将旨在从任意设备的电路中传送回网络的命令或数据从任意设备中传输给Imp通信模块。在Imp通信模块处,这些信号可由运行该代码的至少一个处理器来解读,然后,使用通信模块的通信接口来将这些信号传输给所需的网络目的地。
[0078]为了更好地理解本申请,考虑在图1中所示的简单的非网络任意设备,该图代表了现有技术。该设备几乎可为任何设备,无论是电气、电子还是机械设备均可。在这个背景下的任意设备的实例可为电源插座、电器开关、家用电器(烤箱、咖啡机、烤炉)、HVAC元件(恒温器、空调)、照明设备、安全或访问控制元件(运动检测器、窗口传感器、标记阅读器、门锁)、车库开门器、停车场设备、开窗器或阴影控制等。
[0079]这种任意设备(100)通常包含某种电路(101),以实现其功能。一个实例可为咖啡机设备,该设备可包括加热元件以及相关的闭环控制系统、泵以及压力传感器。该电路可为电气简单或复杂的电路。再如,替代的任意设备可以是开窗器,包含马达驱动器、位置传感器以及负荷监测电路,并且已经包括或不包括确保正确地操作系统的某种类型的微控制器。
[0080]目前,在供应商希望为任意设备添加网络连接时,供应商为任意设备的内容电路增加两个或三个新块体,如图2中所示,该图也代表了现有技术。图2示出了任意设备
(110),该设备已经增加了控制处理器(111)、通信处理器(112)以及通信接口(113)。用于控制任意设备的实际信号(114)连接在该设备的电路与控制处理器之间。
[0081]控制处理器(112)可以出现或者可以不出现在特定的任意设备的设计中(取决于任意设备的复杂性)。如果没有控制处理器,那么根据现有技术,信号(114)会直接连接至通信处理器。
[0082]值得注意的是,根据现有技术,特定于该设备的电路的控制通常不整合在通信处理器内。这是因为这种整合需要大量软件工作与测试来确保控制功能不干扰通信处理器的正确操作,反之亦然。
[0083]从讨论现有技术出发,现在考虑本申请的一个实施例,在图3中示出了该实施例。图3示出了本申请如何用于为简单的任意设备添加网络连接,从而产生网络化的任意设备
(150)。在该实例中,任意设备的电路(156 )直接由在虚拟机(157 )内执行的代码控制,该虚拟机在位于通信模块(152 )内部的之上一个处理器内运行。在通信模块内部放入这种虚拟机与至少一个处理器并且将通信模块配置为转而能够直接控制任意设备的一个特定的优点在于,表示可能在早期需要其自身的处理器的任意设备现在不一定需要其自身的单独的控制处理器。至少一个处理器控制任意设备,代替通信模块。这大幅降低了任意设备的成本。
[0084]因此,根据本申请,在Imp通信模块(153)内的物理处理器现在可为任意设备的特定电路(156)提供实际的电气连接。或者,当然,在没有通信模块时,任意设备依然可继续具有其自身的处理器,用于进行备用操作。在此处,例如,任意设备处理器可被配置为在没有通信模块时用作主设备,但是在具有Imp通信模块时用作从设备或者甚至完全脱机。
[0085]任意设备通常包含独特的ID块体或唯一识别符(151),其通常为某种存储设备(通常为存储器芯片),该存储设备将该设备识别为Imp通信模块(152)。要讨论的是,如果在存储器内还未储存合适的任意设备控制代码或虚拟机程序,那么该ID块体或唯一识别符允许Imp通信模块可选地从外部来源(例如,远程互联网服务器或服务)中请求正确的虚拟机程序,以便Imp通信模块操作任意设备。如上所述,该任意设备的ID编号可为任何独特的编号,并且服务器可根据该独特的ID编号来查找设备类型。
[0086]Imp通信模块的通信接口( 154)通常由至少一个处理器(153)控制,根据需要,允许与网络和所需的网络设备(例如,用于管理通信模块的服务或服务器)进行双向持续性连接。
[0087]要注意的是,Imp通信模块的处理器可在不同的模式下执行。在一个模式中,Imp通信模块的处理器可发挥更被动的角色,仅仅作为任意设备的通信外围设备。在一个替代的模式中,例如,在插入缺乏其自身的微处理器的任意设备内时,根据需要,Imp通信模块的处理器也可负责在插入Imp通信模块的任何任意设备内成为主处理器或主要处理器。
[0088]在一些实施例中,Imp通信模块包含合适的可逆固态开关与代码,这些开关与代码使Imp通信模块能够动态地重新配置其电触头(引脚)的其电气性能和/或逻辑性能,以适合插入Imp通信模块的特定的任意设备。通常,根据已经从远程源极(例如,提供这种服务的互联网服务器)中下载到Imp通信模块的虚拟机内的配置与程序,进行该动态的软件控制的重新配置。
[0089]图4示出了远程“服务”源(例如,提供Imp通信模块管理、配置以及操作服务的互联网服务器)根据本申请运作的方式。在此处,为了简明起见,假设该服务为适当地配置的互联网服务器,并且该服务器通常替代地称为“服务”、“Imp服务”或者称为“Imp云服务”。
[0090]如上所述,Imp服务(207)可为互联网连接的服务,并且可包括甚至可位于世界各地的一个或多个(通常为多个)物理服务器。在后一种情况下,在一个优选的实施例中,可优先地朝着使用在物理上靠近在指定的物理位置中的Imp通信模块的Imp服务服务器,来引导这些Imp通信模块,以便减少通信延迟。
[0091]在一些实施例中,有用的是,对该“Imp云服务”进行配置,使得可以容易地由终端用户进行配置。在此处,可使用各种图形编程方法与集成开发环境(IDE)(也可使用替换的基于非图形规则的方法),其中,终端用户可仅仅在屏幕周围移动象征各种设备、编程命令与功能的盒体或图标,通过简单地连接这些盒体与箭头并且将简单的命令键入盒体内,来连接各种盒体的逻辑流。在此处,除了标准化的传感器读取、输出功能以及设备控制功能,还可另外用于提供其他标准化的编程命令,例如,用于传输RSS馈送、发送与接收SMS消息、发送和/或接收微博消息等的命令。这种消息允许“Imp”系统进一步利用广泛的互联网与手机通信基础设施,并且进一步增加该系统的多功能性。[0092]每个设备(200)、(201)、(202)可包含Imp通信模块发明的硬件相同的实施例,每个设备通常载有不同的任意设备软件。各个Imp通信模块负责控制该设备并且为该设备提供与Imp云服务(203)的或者按照要求与其他指定的网络目的地/设备的连接。因此,单个物理位置(站点)或客户可具有由多个不同的Imp通信模块控制的多个任意设备。
[0093]在一个实施例中,与每个任意设备连接的每个Imp通信模块的通信可穿过局部网络(例如,无线网络)(该网络可为家庭或企业网络),进入本地路由器(205),例如,WiFi路由器。然后,该路由器可将流量传送给互联网服务提供商并且从该提供商中传送流量,然后,该提供商提供互联网连接。要注意的是,虽然互联网连接非常可取,但是在某些应用(例如,高度安全的应用)中,也可替代地使用非互联网网络(例如,本地无线LAN网络)。
[0094]如(208)所述,多个站点/客户的Imp通信模块可通过互联网与服务(Imp云服务)连接;映射关系为多个(客户)到多个(服务器);通常可共享该服务器资源。
[0095]图5提供了可操作本申请的Imp通信模块的方式的一个替代概述,这次更多地关注显示了 Imp通信模块(152)的物理形式以及在各种任意设备(200)、(201)、(202)中的物理插槽的组合视图。图5还示出了可选的计算机化设备(300)以及固态存储卡读卡器(302),在某些实施例中,该读卡器可用于配置Imp通信模块(152)以及与服务(207)进行的网络连接或将其编程。或者,通过要讨论的替换的方法(例如,光学方法),可进行这种配置。
[0096]图5还示出了与替换的设备(304)或服务进行的互联网连接的一个实例。在此处,为了简单起见,不再次显示在前面图4中所示的本地网络(203)、(204)与本地路由器(205)的细节,但是也可假设在图5中具有这些细节。
[0097]可以看出,Imp通信模块(152)通常插入在其各自的任意设备(200 )、( 201)、( 202 )或可选的固态存储卡读卡器(302)中的各种插槽(306)内。
[0098]在此处,相同的基本Imp通信模块(152)可首先被配置为用于本地网络配置(例如,未显示的204、205)。在一些实施例中,这可通过使用计算机化的设备(300)(例如,装有存储卡读卡器302的标准的计算机)建立与服务(207)的连接(310)或者再次通过要讨论的替换方法(例如,光学配置方法)来进行。服务(例如,Imp云服务)通常包括服务器(312)和数据库(314)。
[0099]服务器(312)和计算机化的设备(300)可通过网络(310)共同运作,以确定适当的网络配置数据,以使通信模块(152)首先连接至本地网络(204)和路由器(205),然后连接至互联网(206)。为了安全起见,不需要将本地网络配置数据传送给服务器(312)。更确切地说,服务器(312)可仅仅验证局域网络配置数据正确。或者,服务器(312)可将可用于确定本地配置数据的软件传输给本地计算机化的设备(300),并且可传输可用于将该本地网络配置数据从计算机化的设备(300)中传递给存储卡读卡器(302)或者传递给光学输出设备(例如,显示屏)并且最后传递给Imp通信模块(152)的软件,但是不需要再次将该网络配置数据传输回服务器(312)。
[0100]一旦Imp通信模块(152)已经配置有适当的网络配置数据,那么该模块就可安装在选择的任意设备(在此处为设备(200))内。一旦安装在任意设备(200)内,Imp通信模块(152)就可读出任意设备的唯一 ID (151),还可与服务(207)(具体为服务器(312)与数据库(314))建立网络通信会话(316)。在该通信会话期间,Imp通信模块(152)可将其特定的任意设备的唯一 ID (151)(在此处为ID001)传输给Imp云服务(207)、服务器(312)以及数据库(314)。然后,服务器与数据库可将该唯一的ID作为数据库(318)的索引,并且检索作为该特定的任意设备(200)的接口进行操作或运作所需要的适当的代码(320)。然后,可传输回(316) Imp通信模块(152)中,并且然后,该模块可用作任意设备(200)的网络接口并且根据需要控制任意设备(200 )。
[0101]要注意的是,该方案相当灵活,允许然后从任意设备(200)中去除相同的Imp通信模块(152),并且将该模块放入任意设备(201)或(202)内。在发生这种情况时,Imp通信模块可被配置为检测唯一识别码(151)的变化,并且再次请求Imp云服务207 (例如,服务器312与数据库314)的合适的软件或代码。
[0102]在已经配置Imp通信模块之后,然后,该模块可用作在服务(207)与任意设备之间的网络接口,或者然后,可按照需要促使任意设备现在与一个不同的设备或替换的服务(304)建立网络连接。
[0103]图6示出了任意设备(170)的相当稀奇但是有用的实施例,该任意设备的特征在于可插入本申请的Imp通信模块(在此处指定为173而非152)的Imp插槽。虽然增加了机动化模板组件,但是该实例任意设备为标准的烤箱。
[0104]与普通的烤箱一样,所包含的电子电路(171)最小;在将面包插入并且向下拉入烘烤室内时,启动定时器,定时器启用加热元件。在定时器(其调节为褐变控制)到期之后,加热器关闭并且弹出烤面包。在该设备内没有微控制器或其他高级智能。
[0105]烤箱电路还具有用于本申请的Imp插槽、用于为其供电的电源(174)以及可在加热元件与烤箱的表面之间旋转的机动化模板(172),以便选择性地防止一部分面包从该元件中接收热量。通过在一部分烘烤周期内,在该元件与面包之间引入太阳图标,该模板允许例如在比周围的烘烤更浅的一片棕色烤面包上可看见太阳图标。该设备还包含唯一 ID,在此处指定为(175),而非先前的(151 ),该ID将该设备识别为具有模板的烤箱。
[0106]为了传递天气预报的基础知识,模板可具有4个图标(太阳、云、雨、雪)以及一个部分,该部分没有在未安装Imp通信模块(173/152)时并且在已经压印图标之后会使用的图标,以确保所有面包都接收到一些烘烤。
[0107]在没有卡(173/152)时,烤箱正常运行;模板固定在默认位置(没有符号)内,并且烤箱简单地进行烘烤。然而,通过插入Imp通信模块(Imp卡),发生一系列操作:首先,Imp卡使用唯一的ID芯片(175/151)来识别器具,并且询问(S卩,通过WiFi网络将无线请求发送给)适当的烤箱操作软件的服务(207)、(312)、(314)。该服务发送回虚拟机程序,将该程序载入在Imp卡中的虚拟机内,并且该程序将Imp卡的电气引脚配置为适合器具的需要,在这种情况下,在默认(零)位置处用于“现有烤面包(toast present)”与模板的数字输入、用于定时器设置(褐变控制)的模拟输入、以及超越定时器并旋转模板的数字输出。
[0108]然后,Imp卡在几乎为零的电源模式中等待插入面包,在“现有烤面包”的数字线上发送信号。在看到这种情况时,卡为用户需要的天气预报的服务(207)发送信号。该服务为用户的注册地址(例如,用户的物理或IP地址)提取并解析本地天气预报,为这一天的天气选择最相关的符号,并且该符号送回在烤箱内的Imp卡,其虚拟机程序酌情转动模板,并且如果必要的话,根据用户已经配置的并且该卡已经检测的褐变设置,使用其延长烘烤时间,以确保可接受该印记。
[0109]虽然相当稀奇,但是该实例示出了本申请能够通过有趣的新型方式增加简单的任意设备(而不过度加重任意设备的成本)的方式。
[0110]进一步的讨论:
[0111]在替换的实施例中,还可将本申请视为一种将灵活的、动态上可重新配置的Imp控制器模块嵌入任意设备内的方法,该任意设备通常称为具有标准的固态存储卡的形状因素的插入式模块,从而为该任意设备增加网络连接。该方法通常使用通信模块来进行操作,该通信模块包括:
[0112]1:处理子系统,该子系统保持网络连接(以便能够与服务交换数据)并且还在虚拟机环境内执行任意代码,以控制其所插入的设备并且与该设备进行交互。
[0113]2:通信接口,用于连接处理子系统与本地网络,并且从本地网络中连接至合适的服务,例如,互联网服务器(312或314)。
[0114]3:任意设备的灵活的电气接口,通常可动态地重新配置该接口,以便适合该设备的要求。
[0115]4:用于可选地允许Imp模块看起来为标准的计算机外围设备的模块(通常为在通信模块内部运行的软件代码和合适的电子开关),以便允许任意设备以外的计算机化的设备(例如,标准的台式或膝上型计算机、笔记本、智能电话等)容易进行配置。
[0116]如上所述,在一些实施例中,该Imp通信模块可具有SD (安全数字)卡、USB棒的形式或可容易地连接至计算机的其他方便的形式,用于配置的目的。在此处,与先前一样,有用的是,对处理系统进行配置,以便该模块操作虚拟机,在该虚拟机中,执行与设备相关的代码。
[0117]使Imp通信模块具有一个常用的或流行的固态存储卡格式的形式的一个额外优点在于,该格式提高了用户的舒适性以及处理Imp模块的熟悉度,并且也为该系统提供了标准化的电气匹配连接器的源。
[0118]如上所述,从电气的角度来看,在一些实施例中,Imp模块可被配置为检测该模块何时与计算机连接以进行配置,并且将其本身配置为(例如,重新配置其引脚的电气性能与功能)看起来为兼容的设备(例如,标准的存储卡),以便在没有任何额外的相互作用时,计算机也可识别该设备。然而,然后,在Imp模块连接至任意设备时,Imp模块可识别该设备(通常如上所述,通过读取该设备的唯一 ID代码),从服务器中装载适当的虚拟机代码,然后配置或重新配置Imp模块的电气接口,以适合应用程序的要求。因此,例如,虽然用作存储卡,但是可仅仅为数字I/O模式配置一个特定的引脚。然而,虽然用作任意设备的接口,但是可为模拟输入或输出重新配置同一个引脚。
[0119]而且,如上所述,从网络间接的角度来看,然后,在已经检测本地网络环境并且已经适当地配置Imp通信模块(通常在远程互联网服务的协助下)之后,优选地通过使Imp网络代码与Imp任意设备特定的代码分离的方式,在通信模块内部的至少一个处理器上执行网络代码。这可通过在至少一个Imp处理器上的Imp虚拟机或沙箱内运行Imp的任意设备特定的代码来进行。在此处,如上所述,合适语言(例如,Lua和Squirrel)的使用是有用的。
[0120]因此,可在Imp通信模块内的至少一个处理器上运行的Imp虚拟机通常用于使Imp任意设备特定的代码(在该Imp虚拟机上运行)与Imp通信模块关键网络代码分离。该设置具有额外的优点:允许更新Imp通信模块的设计,无需更新任意设备特定的代码。S卩,无论Imp通信模块的剩余部分的修正级别如何,都可运行同一个标准化的虚拟机,从而防止Imp的任意设备特定的代码在Imp通信模块的剩余部分内发生任何变化。当然,由在Imp通信模块的处理器上执行的网络代码为该任意设备特定的代码提供连接服务。然而,该网络代码不需要由虚拟机运行,而是可在虚拟机外面运行,但是可选地取决于至少一些虚拟机功能,以便为任意设备特定的代码提供标准化的接口。
[0121]实例:
[0122]图7示出了 “Imp”通信模块(700)(在此处,具有SD卡格式)的一个实例,该模块连接至在任意设备(在此处为灯开关(704))内的“Imp插槽”(702)。在这种背景下,示出了(706)基于图形和网络的编程IDE的用户接口,该接口允许用户使用标准的网页浏览器来快速配置Imp云服务,以处理这个特定的Imp/设备组合,并且能够允许这个特定的启用Imp的开关在世界上的任何地方控制其他启用Imp的设备。
[0123]图8示出了如何配置Imp云服务的更多细节。(800)示出了基于网络的IDE的图形“盒体与连接的箭头”编程模型,该模型能够允许用户使用标准的网页浏览器来简单地为Imp云服务编程。在(802)和(804)中显示用户可使用的各种命令的一些细节。这些命令可包括用于通知系统电力比平时更便宜的时间(即,非峰值时间速率)的命令、用于在有限的或无限制的时间段内使设备循环打开与关闭的命令、用于使消息格式化的命令、用于计算在线的“Imp”设备的数量的命令、用于将数据传输给pachube.com (现在为Cosm)的命令、互联网网络连接服务、用于比较Imp输入数据与各种设置的逻辑命令、用于传输RSS馈送的命令、用于接收和发送SMS消息(例如,用于移动电话)的命令、用于控制外部网页的Imp设备的命令等。
[0124]图9示出了如何光学地配置Imp设备以进行无线网络访问的一个实例。在此处,“ Imp”通信模块(在此处,具有SD卡格式)进一步装有可见光的光探测器,该光探测器转而连接到Imp的微处理器(见图10)。在图9 (900)中,将该Imp设备放置在任意设备(904)的插槽(902 )内,在这种情况下,该插槽为可切换的交流电源插座。在(906 )中,用户配置其智能电话(在此处为苹果iPhone4),以转而在光学上配置Imp设备,用于通过本地WiFi连接,网络连接至互联网。
[0125]在该实例中,通信设置使用以下协议:
[0126]OxAA的同步8字节(黑白交替的屏幕):允许校准亮度与定时;
[0127]0x2A数据的前言字节;
[0128]用于表示数据总长度的字节(在后面);
[0129]数据包:该格式的一个或多个数据包:1字节型-1字节长度-数据的长度字节;
[0130]CRC:在总长度字节与用于进行错误检测的CRC之间发送的数据的16位CRC
[0131]为何使用这种光学配置方法?如前面在并入本文中以作参考的临时母专利申请61/583,299中所述,网络设备的一个问题在于,设立这些网络设备可较为复杂。为了确保安全的操作,网络设备通常需要了解一些私有凭据(在最低限度上用于WIFI网络,这可为网络名称(SSID)与网络密码)。
[0132]各种现有技术方法已经被设计为提高该网络配置经验,包括WPS (WIFI保护的设置),该经验使用特别的无线模式,并且WPS在WIFI接入点与该设备上启用按钮,以便于无线交换访问信息。虽然这种现有技术方法的硬件实现方式可较为简单(仅仅需要为该设备添加单个按钮),但是问题在于,对于确保与WIFI接入点的安装基础具有最大的兼容性的设备供应商,网络设备还必须支持人工输入网络配置数据(例如,SSID与密码)的老方法。
[0133]由于需要输入网络配置数据(例如,SSID与密码信息),所以实现这种网络方案可较为复杂并且成本昂贵。通常至少需要多个按钮与一个显示设备。对于某些设备,这可接受,因为这些设备已经具有可允许输入这种配置信息的用户界面,但是通常,用户体验令人沮丧-密码可较长并且复杂,难以输入,该屏幕可较小并且难以读取。
[0134]一些供应商(尤其是具有还未使用户界面接受SSID与密码登录的设备的那些供应商)通过在其设备上包含USB插头来解决该问题,以允许该插头连接至PC,用于进行配置。这就提高了用户体验,但是需要在PC上装载电缆与特别的软件,产生更大的成本与复杂性。
[0135]为了减轻这种配置方案的负担,在本申请的一些实施例中,各种Imp通信模块可另外装有处理器连接的光探测器。在这样做时,具有光学显示屏的常见计算机化设备或其他光学设备可用于为网络设备传递最初的设置信息。
[0136]各种方法可用于生成调制光信号,以在光学上配置Imp通信模块。在一些实施例中,计算机化设备(例如,智能电话或平板电脑)可用于生成(通常通过智能电话的显示屏)传输网络配置和/或设置信息的随着时间变化的光模式。由于这种智能电话与平板设备现在几乎普遍存在,所以该方法具有利用用户已经拥有并且熟悉的设备的优点。智能电话和平板电脑的一个额外的优点在于,由于智能电话和平板电脑为手持式,所以根据需要,可容易使智能电话和平板电脑接近Imp光学传感器(例如,光探测器)。
[0137]该光学配置方法的一个额外优点在于,需要嵌入Imp通信模块设备内的Imp光学传感器(例如,光探测器)通常往往较为廉价,比任何连接器都便宜,并且非常坚固。这种光探测器不需要额外的保护电路,连接器或按钮通常需要该保护电路。实际上,甚至在Imp通信模块安装在已经具有能够用于SSID与密码登录的用户界面的任意设备内时,本申请的光学编程方法依然比替换的方法明显更加用户友好。
[0138]在该方法的一个实施例中,如图10中所示,包括但不限于光电晶体管或光电二极管/简单的光传感器等的光学设备(光探测器、光传感器)耦合至Imp通信模块设备的处理器。在此处,不需要使用红外敏感光探测器(虽然可使用红外敏感光探测器)。确切地说,可使用光学(可见光)敏感光探测器。因此,在本说明书中所显示的实例中,Imp设备光探测器对可见光谱(例如,由计算机化的移动设备的显示屏生成的光谱)敏感。或者,在其他实施例中,Imp光探测器可由滤光器材料包围或覆盖,以使光探测器仅仅对某些波长敏感。
[0139]在此处所显示的Imp原型设备内,使用没有嵌入式滤光器的光探测器,因为这允许由计算机化设备的显示屏(例如,智能电话、平板电脑等)生成的可见光轻易地将Imp设备编程。
[0140]需要在典型的Imp网络配置设置(例如,Imp通信模块配置会话)交易中发送的网络配置信息的量较小,通常小于100个字节。因此,比较简单的编码方法可用于传输这种少量数据。作为一个非限制性实例,这种网络配置数据可包括高达32个字节的本地WiFi网络的SSID (网络名称)和高达32个字节的密码以及各种类型的通信开销(前导字节、控制字节、总和检查等)。
[0141]智能电话通常以恒定的频率(例如,60Hz)刷新其显示屏(例如,每1/60秒刷新一个显示屏帧)。在一个实施例中,传输设备可在每个帧更新或刷新周期编码一个数据位。虽然这种方案并非旨在进行限制,但是该方案具有以下优点:允许计算化设备(例如,智能电话)的整个显示屏用于传输数据。这就反过来更容易使智能电话(传输计算化设备)与在Imp通信模块(在此处,用作光学接收器)上的光探测器对准。
[0142]因此,假设将智能电话或平板电脑的显示屏用作光发送器,然后假设恒定的显示屏更新速率为每秒大约60个帧,智能电话可通过每秒60位的数据速率传输配置数据。因此,使用这些方法,需要大约8.5秒来传输值得网络配置数据的64个字节。
[0143]通常,还可发送额外的数据,例如,在可随后发送该数据、长度字节以及校验和或CRC之前,可发送建立时间与光度级信息的报头,以确保该数据无腐蚀地到达。
[0144]如上所述,并且作为一个非限制性实例,在一个实施例中,通过使智能电话显示屏或其他光学光源发送黑白交替的(二进制1/0)光学模式32个周期,可启动该报头。该前言允许Imp设备确定开始传输,并且还允许建立同步。然后,在该前言之后,光发送器可发送单个“未知的字节”,例如,十六进制0x2A小数42,以表示开始实际数据包有效载荷(即,网络配置数据)。该系统还可传输长度字节,以表示随后的数据的长度。然后,随后是由长度字节表示其长度的数据,并且在一些实施例中,两个字节的CRC (在长度字节与数据字节之上使用CRC-16来计算)数据或其他错误检测和/或校正码可用于结束传输。
[0145]为了更进一步减少传输时间,可通过在每个显示屏更新期间,使用灰度或者甚至颜色(如果Imp设备具有颜色敏感的光探测器)一次传输一个以上的位,来提高数据速率。
[0146]因此,例如,光学配置系统可使用两个光度级来表示每个帧的单个信息位(I个帧=选择黑色或白色=0或I位)。如果除了黑色与白色,还使用两个灰度,那么每个帧可传送2个信息位(等级0、1、2、3=二进制00、01、10、11)。通过8个强度级,该系统可每个帧传送3个位等。这就造成更快地传递2次或3次数据。
[0147]为了执行设置操作,用户可在其移动设备上输入必要的细节,通常使用为了这个目的设计的应用程序(软件应用程序)。或者,在移动设备上的传输程序应用程序可被设计为从该设备自身的无线设置中自动提取必要的细节。这在图9 (906)中进行了显示。然后,用户按压启动按钮,这可提示用户朝着光学设备转动移动设备屏幕,并且开始可听见的倒计时。
[0148]然后,用户将移动设备屏幕向上保持到位于Imp通信模块(例如,接收器的传感器)上的光探测器中,理想地尽可能密切地将由环境光造成的任何信号失真减小到最低程度。这在图11 (904)、(906)中进行了显示。
[0149]然后,在光学上发送Imp通信模块的网络配置数据。在完成传送时,应用程序可通过发出另一个移动设备的提示(例如,音频“提示音”)来完成发送信号,表示完成。这对可将移动设备的屏幕向上保持到Imp中以及因此难以在此时直接读取屏幕的用户有用。
[0150]然后,Imp通信模块可验证网络配置,并且通过使用最近建立的网络连接来将“连接成功的”消息发送给然后将该消息传送给用户保持的移动设备(例如,智能电话)的服务器,从而可选地通过其他可见指示器(在此处,有鉴于此,Imp通信模块可具有嵌入式发光二极管)或者通过移动设备的UI来表示成功。
[0151]图10示出了图9的Imp (900)和图9的智能电话(906)的示意图。
[0152]图11示出了将智能电话(906)向上保持到位于交流电源开关的下部部分上的Imp中的用户,从而产生将本地网络配置传送给Imp的调制光信号。然后,用户将一连串的光(1100)插入启用Imp的交流电源开关内,以便随后显示正在操作的系统。在此处,已经从插槽中部分去除在交流电源开关(904)任意设备的底部插槽上的Imp (900),以更好地显示已经Imp启用交流电源开关。
[0153]图12示出了用户将基于网页浏览器的图形编程系统用于Imp云服务(1200),以配置图7的启用Imp的灯开关(704),用于现在控制(1202)启用Imp的交流电源开关(904)的操作。
[0154]在图12 (1210)中,用户现在使用启用Imp的灯开关(704)来通过启用Imp的交流电源开关(904)控制光(1100)。要注意的是,控制路径穿过Imp云服务(207)与服务器(312),如在图3和4中所示,因此,启用Imp的电源开关(904)可准确地位于远离启用Imp的灯开关(704)的世界的另一侧上,并且假设进行良好的互联网连接,该系统会完美地运作。
[0155]图13示出了可快速配置启用Imp的湿度检测器(1300)和启用Imp的伺服电机(在此处,连接到具有大型硬纸板指针的2x3英尺的白板(1302),在白板上具有指针拉平的标记)的方式,从而在湿度检测器浸入一杯水(1304)内时,临时水平的显示设备几乎立即与大型液位计(1306) —样运行。而且,由于连接的“粘合”逻辑和通信路径穿过Imp云服务(207)与服务器(312),所以实际的仪表(1302)可位于任何地方,例如,准确地位于世界的另一侧上。
[0156]图14提供了准确地作为已经根据本申请网络启用的“更好的捕鼠器”的一个实例。在此处,Imp插槽(通用Imp插槽)显示为(1400)。然后,在电子捕鼠器设备(1402)内安装该Imp插槽,并且Imp (1404)显示为从安装的Imp插槽中突出。在此处,启用Imp的捕鼠器的实际成本仅仅为捕鼠器增加了大约$1.00的材料,该捕鼠器的名义零售价格为大约 $20.00。
[0157]更具体而言,Victor M2524电子捕鼠器为通过高压电击(1404)人道地杀灭老鼠的低成本(大约$20)的电池供电的电子设备,以大约$1.00的成本修改该电子捕鼠器,以便还包括Imp适配器(Imp插槽)(1400)。经修改的电子捕鼠器现在支持网络,并且在已经除掉另一只老鼠时,无论该用户的位置位于该世界的任何地方,该电子捕鼠器都可例如通知其用户。
[0158]其他类型的应用程序的实例包括可通过手机SMS消息开启的启用Imp的门锁、可使启用Imp的湿度与温度传感器与互联网可用的天气预报整合的复杂的工厂供水系统以及相应地使用启用Imp的水控制阀或泵的智能水厂。在洗好衣服时,启用Imp的洗衣机或烘干机可将文本消息发送给用户。启用Imp的运动传感器可放置在老年人或残疾人的家里,并且如果运动传感器在个人正常的时间参数内检测到老年人或残疾人还未参观某个房间(例如,厨房或浴室),那么可将Imp云服务设置为将文本消息或其他警报信号发送给负责人或服务。
[0159]因此,对于通常情况下并不支持网络的设备而言,本申请使得成本甚至非常低的设备支持网络在经济上可行。
[0160]额外的软件与硬件讨论与实例
[0161]Imp设备与软件通常支持各种无线互联网加密方案,例如,WEP、WPA和WPA2加密方案以及WPS设置。[0162]如在本说明书中的其他地方所述,通常可由供应商或用户使用基于网络的集成开发环境(IDE)来开发Imp设备软件。在此处,例如,基于网络的控制台可显示用户感兴趣的启用Imp的设备在线的数量,并且该系统也允许通过互联网服务器(例如,Imp云服务)立即向用户推动软件更新。
[0163]而且,如在本说明书中的其他地方所述,可由一个或多个互联网服务器(例如,图5 (312))(例如,Imp云服务)控制或管理启用Imp的设备。原则上,这种Imp云服务可在任何地方提供服务,从一个Imp或启用Imp的设备到世界上的所有Imp。因此,该标准化的Imp云服务可使供应商不需要操作其自身的Imp控制服务(虽然根据需要与协商,供应商当然可这样做)。
[0164]如上所述,本申请还可使Imp与电话(例如,蜂窝电话与智能电话)相互作用,与其交换消息以及由其控制。例如,可开发智能电话应用程序,该应用程序反过来允许在该应用程序内显示各种与Imp相关的小型应用程序。这些应用程序可允许通过单个应用来监测与控制各种启用Imp的单独设备,并且这再次大幅减少了开发负担。此外,Imp控制互联网服务器或Imp云服务可提供应用程序编程接口(API),以进一步减少供应商的开发负担。 [0165]Imp云服务还可允许各种启用Imp的设备与其他标准的互联网通信方法相互作用,通常通过各种网关,例如,电子邮件、SMS以及微博网关。Imp云服务还可允许多个供应商的不同的启用Imp的设备共同和谐地运转。
[0166]如上所述,为了便于启用Imp的各种任意设备,通常对于进一步提供可接受Imp通信模块设备的标准化的插槽设备(Imp插槽)有用,然后可容易地由任意设备的供应商并入任意设备内,从而Imp启用任意设备。在一些实施例中,可使用最小的材料清单(Β0Μ),通过低于大约$1.00的成本,来建造这种标准化的插槽设备。下面在表1中显示提供标准化的插槽设备所需要的最小电路的一个实例:
[0167]表1:在Imp插槽中的元件(标准化的插槽设备)的实例
[0168]
【权利要求】
1.一种用于将网络接口添加到任意的非网络连接的设备(任意设备)的方法,所述任意设备具有用于实现其功能的电路,所述方法包括: 在所述任意设备中提供插槽,以容纳通信模块; 所述任意设备中的所述插槽另外具有通信模块接口,所述通信模块接口可以与所述通信模块进行交互,并且将控制信号传送给所述电路的至少一部分; 所述任意设备另外具有独特的ID储存设备,所述独特的ID储存设备能够将独特的识别数据从所述任意设备发送给所述通信模块; 所述通信模块具有通信接口,所述通信接口能够与计算机网络建立通信会话; 所述通信模块具有内部固态存储器,所述内部固态存储器能够储存代码和数据; 所述通信模块具有至少一个内部处理器,所述至少一个内部处理器被配置为在通信处理器连接至所述任意设备中的所述插槽时,至少执行所述代码; 将所述通信模块插入所述插槽内; 向所述通信模块提供网络连接;以及 如果使用所述通信模块来操作所述任意设备的所述代码先前还未载入到所述通信模块中,则使用所述网络连接来加载所述代码,以用于操作所述通信模块; 其中,去往所述任意设备的命令或数据是通过所述网络来发送给所述通信模块的,并且由运行所述代码的所述至少一个处理器来解读,并且其中,所述至少一个处理器转而向所述电路发送控制信号;` 或者其中,来自所述电路的命令或数据被发送给所述通信模块,由运行所述代码的所述至少一个处理器来解读,并且使用所述通信接口来发送给所述网络。
2.根据权利要求1所述的方法,其中,所述通信模块进一步包括具有在物理上兼容的电气连接的标准固态存储卡物理接口;其中,所述通信模块还包括电子和逻辑接口,所述电子和逻辑接口在至少一个操作模式中,能够连接到标准存储卡读卡器并且根据标准存储卡协议来储存和检索存储器数据;其中,所述任意设备中的所述插槽另外包括通信模块接口,所述通信模块接口可以与所述通信模块上的所述在物理上兼容的电气连接进行交互,并且将所述在物理上兼容的电气连接之间的控制信号传送给所述电路的至少一部分。
3.根据权利要求2所述的方法,其中,当所述通信模块连接至所述任意设备时,所述通信模块将其至少一些在物理上兼容的电气连接的功能重新配置为交替的模拟或数字协议,以与所述任意设备进行交互。
4.根据权利要求2所述的方法,其中,所述标准固态存储卡物理接口、在物理上兼容的电气接口以及逻辑接口为PC卡、紧凑型闪存卡、智能媒体卡、记忆棒卡、微型卡、多媒体卡、MMC微卡、安全数字卡、SxS卡、通用闪存卡、小型SD卡、微型SD卡、xD图像卡、智能棒卡、串行闪存模块、U卡、NT卡或其他商用的标准固态存储卡格式。
5.根据权利要求1所述的方法,其中,所述插槽为标准化的插槽设备,所述标准化的插槽设备被设计为与多种不同类型的任意设备兼容,并且其中,所述标准化的插槽设备包括用于所述通信模块的插座、识别芯片、通信模块电源以及在所述通信模块与所述任意设备电路之间提供电气接口的接口电路。
6.根据权利要求5所述的方法,其中,所述标准化的插槽设备安装在位于所述任意设备的表面上的插槽的后面,从而产生整体式任意设备以及标准化的插槽设备,使得所述标准化的插槽设备的插座保持打开并且能够接收和移除所述通信模块。
7.根据权利要求1所述的方法,其中,所述代码对所述通信模块的所述至少一个处理器进行配置,以通过防止操作所述任意设备的代码部分中的程序故障或错误对操作所述通信模块网络接口的代码部分产生干扰的方式,作为沙箱或虚拟机来进行操作。
8.根据权利要求7所述的方法,其中,所述代码对所述通信模块的所述至少一个处理器进行配置,以通过向操作所述任意设备的代码部分进一步呈现通信模块设备独立接口的方式,作为虚拟机进行操作。
9.根据权利要求1所述的方法,其中,所述通信模块进一步包括至少一个光探测器; 通过将与特定网络配置有关的信息光学地发送给所述通信模块,来针对所述特定网络配置进一步对所述通信模块进行配置。
10.根据权利要求1所述的方法,其中,所述代码通过以下步骤加载到所述通信模块中: 获得所述网络配置数据,并且将所述网络配置数据存储在所述通信模块的所述内部固态存储器内; 将所述通信模块插入任意设备内,并且使用所述通信模块来读取或储存所述任意设备的独特的识别数据; 使用所述通信模块与所述网络配置数据来建立与远程服务器的网络连接; 将所述独特的识别数据发送给所述远程服务器,并且使用所述远程服务器处的所述独特的识别数据来查找与所述独特的识别数据相关联的代码;以及 在所述网络连接上将与所述独特的识别数据相关联的所述代码发送回所述计算机化设备。
11.根据权利要求10所述的方法,其中,当所述通信模块从第一任意设备移动到第二任意设备时,所述通信模块获取所述第二任意设备的独特的识别数据,建立去往所述远程服务器的网络连接,将所述第二任意设备的所述独特的识别数据发送给所述远程服务器,并且从所述远程服务器接收与所述第二任意设备相关的代码,从而给予所述通信模块为所述第二任意设备添加网络接口的能力,并且允许所述通信模块在所述第一任意设备与所述第二任意设备之间可互换。
12.根据权利要求1所述的方法,其中,所述网络为互联网,并且在所述通信模块与互联网之间的网络连接的至少一部分为有线、无线或光学连接。
13.根据权利要求12所述的方法,其中,所述通信模块与互联网之间的网络连接涉及至少一个连接互联网的路由器或接入点,并且所述通信模块与所述连接互联网的路由器或接入点之间的网络连接为无线连接,并且所述通信模块包括至少一个无线收发器。
14.根据权利要求1所述的方法,其中,在所述通信模块缺失时,所述任意设备能够在非网络连接模式下执行其正常功能中的至少一部分。
15.根据权利要求1所述的方法,其中,在本地网络连接缺失,或者去往能够为所述通信模块提供指令的互联网或互联网服务器的网络连接缺失时,所述通信模块代码能够至少以交替的备用模式来操作所述任意设备。
16.根据权利要求1所述的方法,其中,至少在去往能够为所述通信模块提供指令的互联网或互联网服务器的网络连接缺失时,多个通信模块能够在对等的基础上无线地或光学地进行局部网络化和交互。
17.根据权利要求1所述的方法,其中,所述网络为互联网,所述通信模块保持双向持续的互联网连接,每当发生异步事件时,允许将所述异步事件从互联网传递到所述通信模块。
18.根据权利要求1所述的方法,用于控制至少两个任意设备,每个任意设备装有其自身的通信模块,所述方法包括: 为至少一个互联网服务器配置指令,以管理所述任意设备或通信模块的操作; 在所述通信模块与所述至少一个互联网服务器之间建立网络连接; 使用所述至少一个互联网服务器来将命令或数据从第一任意设备与通信模块中继到第二任意设备与通信模块;或者 使用所述至少一个互联网服务器来将命令或数据从装有其自身的通信模块的至少一个任意设备中继到外部人工接收者或外部自动接收者;或者 使用所述至少一个互联网服务器来将命令或数据从外部人工或自动源中继到装有其自身的通信模块的至少一个任意设备。
19.根据权利要求18所述的方法,通过使用网页浏览器来进一步为所述至少一个互联网服务器配置所述指令,其中,所述网页浏览器具有去往所述至少一个互联网服务器的网络连接。
20.根据权利要求19所述的方法,其中,所述至少一个互联网服务器为所述网页浏览器提供图形或基于规则的任意设备或通信模块配置环境; 并且使用所述网页浏览器上的所述图形或基于规则的任意设备或通信模块配置环境来为所述至少一个互联网服务器配置所述指令。
21.一种用于将网络接口添加到任意的非网络连接的设备(任意设备)的方法,所述任意设备具有用于实现其功能的电路,所述方法包括: 在所述任意设备中提供插槽,以容纳通信模块; 所述任意设备中的所述插槽另外具有通信模块接口,所述通信模块接口可以与所述通信模块进行交互,并且将控制信号传送给所述电路的至少一部分; 所述任意设备另外具有独特的ID储存设备,所述独特的ID储存设备能够将独特的识别数据从所述任意设备发送给所述通信模块; 所述通信模块具有无线通信接口,所述无线通信接口能够与诸如互联网之类的计算机网络建立通信会话; 所述通信模块具有内部固态存储器,所述内部固态存储器能够储存代码和数据; 所述通信模块具有至少一个内部处理器,所述至少一个内部处理器被配置为在通信处理器连接至所述任意设备中的所述插槽时,至少执行所述代码; 将所述通信模块插入所述插槽内; 向所述通信模块提供无线网络连接;以及 如果使用所述通信模块来操作所述任意设备的所述代码先前还未载入到所述通信模块中,则使用所述网络连接来加载所述代码,以用于操作所述通信模块; 其中,所述代码是通过以下步骤来加载到所述通信模块的:获得所述网络配置数据,并且将所述网络配置数据存储在所述通信模块的所述内部固态存储器中; 将所述通信模块插入任意设备内,并且使用所述通信模块来读取或储存所述任意设备的独特的识别数据; 使用所述通信模块与所述网络配置数据来建立与远程服务器的网络连接; 将所述独特的识别数据发送给所述远程服务器,并且使用所述远程服务器处的所述独特的识别数据来查找与所述独特的识别数据相关联的代码;以及 在所述网络连接上将与所述独特的识别数据相关联的所述代码发送回所述计算机化设备; 其中,去往所述任意设备的命令或数据是通过所述网络来发送给所述通信模块的,并且由运行所述代码的所述至少一个处理器来解读,并且其中,所述至少一个处理器转而向所述电路发送控制信号; 或者其中,来自所述电路的命令或数据被发送给所述通信模块,由运行所述代码的所述至少一个处理器来解读,并且使用所述通信接口来发送给所述网络; 其中,当所述通信模块从第一任意设备移动到第二任意设备时,所述通信模块获取所述第二任意设备的独特的识别数据,建立去往所述远程服务器的网络连接,将所述第二任意设备的所述独特的识别数据发送给所述远程服务器,并且从所述远程服务器接收与所述第二任意设备相关的代码,从而给予所述通信模块为所述第二任意设备添加网络接口的能力,并且允许所述通信模块在所述第一任意设备与所述第二任意设备之间可互换。
22.根据权利要求21所述的方法,其中,所述通信模块进一步包括具有在物理上兼容的电气连接的标准固态存储卡物理接口;其中,所述通信模块还包括电子和`逻辑接口,所述电子和逻辑接口在至少一个操作模式中能够连接到标准存储卡读卡器,并且根据标准存储卡协议来储存和检索存储器数据;其中,所述任意设备中的所述插槽另外包括通信模块接口,所述通信模块接口可以与所述通信模块上的所述在物理上兼容的电气连接进行交互,并且将所述在物理上兼容的电气连接之间的控制信号传送给所述电路的至少一部分;以及 其中,当所述通信模块连接至所述任意设备时,所述通信模块将其至少一些在物理上兼容的电气连接的功能重新配置为交替的模拟或数字协议,以与所述任意设备进行交互。
23.根据权利要求21所述的方法,用于控制至少两个任意设备,每个任意设备装有其自身的通信模块,所述方法包括: 通过使用具有去往至少一个互联网服务器的网络连接的网页浏览器,来为所述至少一个互联网服务器配置指令,以管理所述任意设备或通信模块的操作; 其中,所述至少一个互联网服务器为所述网页浏览器提供图形或基于规则的任意设备或通信模块配置环境; 并且使用所述网页浏览器上的所述图形或基于规则的任意设备或通信模块配置环境来为所述至少一个互联网服务器配置所述指令; 在所述通信模块与所述至少一个互联网服务器之间建立网络连接; 使用所述至少一个互联网服务器来将命令或数据从第一任意设备和通信模块中继到第二任意设备和通信模块;或者使用所述至少一个互联网服务器来将命令或数据从装有其自身的通信模块的至少一个任意设备中继到外部人工或自动接收者;或者 使用所述至少一个互联网服务器来将命令或数据从外部人工或自动源中继到装有其自身的通信模块的至少一个任意设备。
24.根据权利要求21所述的方法,其中,在所述通信模块缺失时,所述任意设备能够在非网络连接模式下执行其正常功能中的至少一部分;或者 其中,在本地网络连接缺失时,或者去往能够为所述通信模块提供指令的互联网或互联网服务器的连接缺失时,所述通信模块代码能够在至少以交替的备用模式来操作所述任意设备;或者 其中,至少在去往能够为所述通信模块提供指令的互联网或互联网服务器的网络连接缺失时,多个通信模块能够在对等的基础上无线地或光学地进行局部网络化和交互。
25.根据权利要求21所述的方法,其中,所述通信模块进一步包括至少一个光探测器; 通过将与特定网络配置有关的信息光学地发送给所述通信模块,来针对所述特定网络配置进一步对所述通信模块进行配置。
26.根据权利要求21所述的方法,其中,所述插槽为标准化的插槽设备,所述标准化的插槽设备被设计为与多种不同类型的任意设备兼容,并且其中,所述标准化的插槽设备包括用于所述通信模块的插座、识别芯片、通信模块电源以及在所述通信模块与所述任意设备电路之间提供电气接口的接口电路。
27.根据权利要求21所述的方法,其中,所述插槽为非用户可访问的插槽,或者其中,所述通信模块永久地嵌入所述`任意设备内。
【文档编号】G06F3/00GK103782250SQ201280025660
【公开日】2014年5月7日 申请日期:2012年5月26日 优先权日:2011年5月26日
【发明者】雨果·费斯 申请人:电气银普股份有限公司

最新回复(0)