代码之家  ›  专栏  ›  技术社区  ›  Arastat

使用室内地理围栏控制飞利浦色调灯泡

  •  2
  • Arastat  · 技术社区  · 7 年前

    对于一个研究项目,我必须找出是否有可能根据地理位置来控制室内飞利浦色调灯泡。 飞利浦色调允许通过GPS进行地理围栏,例如,如果你离开家或回来,但是否有可能以某种方式提高地理围栏的准确性? 这个想法是在离开一个房间进入下一个房间时把灯关掉。

    最后,智能手机上应该有一个应用程序,当智能手机在灯泡的特定范围内时,它会自动切换灯光。据我估计,最大的问题是大多数智能手机还不支持Zigbee。

    例如,即使我买了一个Xbee模块和一个Arduino板,也能读取灯泡的RSSI吗?有可能在安卓系统中以任何方式使用这些信息吗?

    有人对此问题有实际经验吗?

    问候语, 迈克尔

    3 回复  |  直到 7 年前
        1
  •  4
  •   miknik    7 年前

    我玩过一些BLE信标。您可以根据需要更改其传输功率,最低设置会导致信标仅在几英尺外的手机上可见。

    每个房间都有一个灯塔,我不明白为什么这对你不管用。如果房间之间没有门,那么每个房间中的一对信标可能会更可靠。

    从4.3版开始,Android系统就开始支持BLE,很容易测量信号强度,估计到信标的距离等。然后,只需根据哪个信标离手机最近,对桥接器进行剩余通话。如果你有树莓Pi 3,你可以配置它作为BLE信标进行测试,然后再购买任何专用信标。

    为了回应你的评论,编辑添加了以下内容,为这篇冗长的帖子道歉!

    由于您正在使用Android进行开发,我推荐Tasker应用程序和RESTasker插件,因为这提供了一种与色调桥集成并对BLE传感器做出反应的简单方法。

    • 电视状态-我的电视有IP控制,我有python脚本轮询 它每隔一秒打开一次,看看它是打开还是关闭。当这个值 更改python脚本更新我的色调上的电视状态传感器 桥
    • 打开我房子的前门。只要车门打开 局域网上每个家庭成员的电话地址 算出谁在家。然后在
    • 隔夜我们使用无线充电器,将每部手机放在 无线充电器它会更新此人的家庭传感器值

    因此,通过这几个自定义传感器,网桥现在可以触发基于谁在家、他们是否在床上以及电视是否打开的规则。我的一些规则是:

    • 如果客厅的灯亮着,电视开着,调暗 灯光,如果电视关闭,再次增加亮度。如果 然后慢慢将灯泡色调更改为红色。
    • 手机上有无线充电器。python脚本也可以关闭电视 关,它一直开着。
    • 当我把手机放在无线充电器上时,Tasker任务会读取 我女儿从桥上回来了。然后设置我的闹钟 学校
    • Tasker任务读取传感器变量。如果家里没有其他人 电视打开Tasker向我的电视发送IP命令以使

    为了接近你的项目,我会在桥上创建一个传感器,与房子中的每个房间一起,初始值设置为0。然后在Tasker中,我会扫描最近的BLE传感器。假设最近的BLE传感器是客厅,我会让Tasker从桥上读取客厅传感器变量(值为0),然后在值上加1,然后将其写回桥上(值现在为1)。我会让Tasker保存一个变量,上次更新的传感器是客厅,并继续扫描BLE信标。现在,如果Tasker发现一个不同的BLE信标,它比客厅更近,我会让它再次从桥上读取客厅传感器(仍然是1),从值中减去1并写回(现在是0),然后重复上述过程,为手机现在最接近的房间的传感器值加1。 在桥接器中,我会有规则说,如果房间的传感器值=0,则关闭该房间的灯,如果传感器值>0;0打开那个房间的灯。由于您正在读取现有值,并在手机进入房间时对其进行加减,因此系统可以处理家中的多个手机/人。如果两个人在一个房间里,那么房间传感器值将为2,因此只有最后一个人离开时,灯才会熄灭,而不是其中一个人去喝饮料或其他什么。

    正如你所知,我花了太长时间修补色调,但这是一个很好的学习过程。我对编程知之甚少,发现API很容易理解,它的灵活性和与其他事物的易集成性激发了我对几种语言的精通,并在此过程中做了一些很酷的项目。

        2
  •  1
  •   Arastat    7 年前

    今天,我完成了这个项目的工作(这是我的硕士论文),并提出了一个应用程序,能够记录和控制色调灯指向他们,基于信标区域。因此,如果输入支持的区域并且智能手机指向色调灯,则可以单击一个按钮来保存值“UUID”、“Major”、“Minor”、“LightID”、“Room name”、“Pointing direction”和“Pointing tilt”(基于智能手机传感器的值)。

    然后,为了控制灯光,将保存的数据处理为JSON格式。如果智能手机指向其中一个灯光,并且记录的数据(JSON文件中的值)与实际实时值(区域、色调灯光ID、方向等)匹配,则该灯是可控的,可以通过单击按钮打开/关闭。

    因此,在第一次使用应用程序时记录这些点后,现在可以从定义区域内的任何点进行切换,而不是根据灯的接近程度来打开和关闭灯(如我在第一个问题中所述)。

    问候语!

        3
  •  0
  •   Sean Martin    7 年前

    我想添加一些miknik遗漏的信息,但我还没有发表评论的名声。。。

    首先,引用的信标不是BLE,它们是802.15.4信标,受ZigBee、Z-Wave、蓝牙、BLE、Wifi等的支持。它们正是这类项目的绝佳资源,但并非所有设备都需要支持信标,这取决于协议(ZigBee等)和产品开发者(在这个行业中,每个人都喜欢抄近路)。