使用运动检测器打开Android设备(外部设备?)


10

问题

我正在寻找一种运动检测器,可以将其设置为唤醒扎根的Android(4.3)平板电脑,并在有人经过大约2-3m的半径时通过时打开屏幕。

主意

我绝对愿意为此购买一台外部设备,并投入(合理的)数量的钱,但我必须以某种方式可以将其连接到平板电脑。

家用自动化领域可能有任何具有良好探测质量(良好的角度和可配置的距离)的接近探测器可以发送Android推送通知吗?如有必要,我可以从头开始编写一些代码,但是我对硬件领域一无所知,没有经验,因此,例如,我不知道如何握住电烙铁。;)

背景

这里的想法是将旧的平板电脑转变成某种固定的仪表板屏幕,因此我并不特别担心电池的磨损(它的寿命已经结束,并且从现在开始将一直使用,直到插入电源电缆为止)死机)或大量使用(除非我们谈论的是100%CPU 24/7,这可能会在几天之内杀死它)。

以前的研究

我调查了一下是否可以使用设备中的现有传感器完成此操作,我认为这是不可能的。

使用接近传感器的问题在于,它实际上仅返回是否有东西(假设在通话中是您的耳朵)紧挨着它(距离几厘米)。但是我正在寻找2-3m区域的东西。

另一个想法是前置摄像头,但是问题似乎是:a)许多设备的摄像头在屏幕关闭时自动关闭,并且b)只有前台应用可以访问摄像头,但是我希望平板电脑能够在检测到时显示另一个应用程序。

我快速浏览了一下以响应推送通知而唤醒屏幕,使用PowerManager API似乎并不难。不确定深度睡眠时设备对推送的响应速度如何,但这是第二个问题。


为什么不使用自定义脚本使用Bluetooth或NFC?在其他地方也看到过类似的概念验证,在PC上使用了蓝牙,并且将蓝牙设备戴在了脖子上,离开了PC桌面,PC锁住了,回到PC附近,PC自行解锁。
t0mm13b 2014年

@ t0mm13b我真的不想穿任何东西。这是永久性设置,我一生都不想佩戴BT设备。;)NFC意味着这不再是免提的,我也希望如此。但是,让他们继续前进,这就是我所希望的那种创意。:)
hheimbuerger 2014年

在应用程序中,存在应用程序和硬件的“家庭自动化”和警报控制类型。这可能是使红外人体探测器将信息发送回设备的一种方法。
Psycogeek

@Psycogeek是的,您是否来自“家庭自动化”领域的体面运动传感器?
hheimbuerger 2014年

我不知道具体的一个。
Psycogeek 2014年

Answers:


6

只是想让我知道一个简单的解决方案,它结合了来自jastrzab的应用商店中名为Motion Detector的应用:https : //play.google.com/store/apps/details? id = org.motion.detector 然后安装名为“旋转屏幕”的插件:https : //play.google.com/store/apps/details?id=org.jastrzab.plugin.screen

  1. 安装两个应用程序。
  2. 打开运动检测器应用程序,然后打开设置底部的“发送”。单击运动检测器(在顶部),然后向下滚动到“摄像机”并选择“前”。
  3. 打开“旋转屏幕”应用。单击唯一按钮使其处于活动状态。
  4. 打开android设置,关闭锁定屏幕或选择“无”。
  5. 将睡眠设置更改为在所需的时间超时。
  6. 关闭白日梦。
  7. 平板电脑唤醒后,打开要在屏幕上显示的应用程序(或主屏幕),一切就绪!等待屏幕进入睡眠状态,然后路过或对着摄像机挥手致意,它将被唤醒。

在白天或开灯时效果很好。我目前正在使用外部PIR运动传感器,该传感器可使平板电脑在黑暗中唤醒。到目前为止,简单的设计仅使用便宜的PIR传感器和安装在摄像机下方的小型led灯。当我走过PIR时,会触发LED灯,让摄像机看到,从而触发运动。希望找出消除LED的方法,然后使用平板电脑上的耳机插孔或USB直接将PIR运行到平板电脑中。欢迎提出建议。


哦,别忘了通过单击应用程序主页顶部的蓝色圆圈(“运动检测器”旁边)来打开运动检测器。享受
达拉斯·帕丁

这对我来说很棒,谢谢!使用android 4.4 kitkat
Rusty Divine

您提供给Google云端硬盘的链接已断开。:(
惠特

5

正如达拉斯·帕丁Dallas Partin)在这里提到的那样,有一个名为Motion Detector的免费应用程序。我已经使用了一段时间,可以告诉您它将与前台的其他应用程序以及屏幕锁定一起使用。这将使用内置摄像头检测运动,因此它是免费的。另外,您不必为此而使您的设备root。

您说过您不知道如何焊接,但是有一种非常简单的方法可以为此制作自己的外部传感器。在我知道的两种方法中,下面提到一种:

方法1。使用内置摄像头

  1. 下载运动检测器

  2. 下载Tasker

  3. 下载自动启动

  4. 启动Tasker应用程序,然后点击右上角的三个点。

  5. 点击首选项UI(在顶部),取消选中初学者模式

  6. 退出,然后点击顶部的Vars标签。

  7. 点击+并将其命名为%DISPLAYSTATE

  8. 转到配置文件选项卡,然后点击+→选择事件显示显示在

  9. 点击Back键/按钮。点击“ 新建任务”,为其命名Display On

  10. 点击+变量变量集。点击名称旁边的铅笔图标。

  11. 点击%DISPLAYSTATE,然后在显示To的地方输入1

  12. 重复“步骤11”,除了将所有内容更改为Display Off并更改1到的位置0

  13. 转到顶部的“ 场景”选项卡。

  14. 点击+并命名。

  15. 按住并拖动虚线,使其达到屏幕大小。

  16. 点按左上角的齿轮图标可返回。

  17. 点击配置文件,然后使用+按钮创建一个新的配置文件

  18. 点击事件系统收到意图

  19. 您可以忽略所有内容,除非它显示Action。在这里您需要输入org.jastrzab.move.ACTION_GLOBAL_BROADCAST(大写很重要)。如果这对您不起作用,请尝试以下方法org.motion.detector.ACTION_GLOBAL_BROADCAST

  20. 点击左上角的齿轮图标(后)。它将弹出一个菜单。

  21. 点击新任务并为其命名。

  22. 在该任务中,+再次点击并点击场景显示场景

  23. 在显示名称的地方,点击放大镜图标(而不是铅笔),然后点击场景名称

  24. 现在显示显示为”,“活动,完整显示,无限制”。

  25. 滚动到底部,并说是否。点击铅笔图标,然后选择%DISPLAYSTATE

  26. 点按中间的按钮,然后将其更改为“等于”。在右侧框中,键入0

  27. 点击+并执行任务等待

  28. MS更改为25到100之间的某个值。

  29. 点击+场景销毁场景,然后点击名称上的放大镜图标。选择场景。

  30. 现在返回Tasker应用程序的主屏幕。

  31. 进入运动检测器应用程序,并确保其已关闭。如果不是,请点击蓝色圆圈。

  32. 转到底部,在其上显示“ 发送”,确保已打开

  33. 返回顶部,然后再次点击蓝色圆圈以将其打开。

  34. 打开“ 自动启动”,并确保其显示“ 开”

  35. 点击添加显示所有应用程序运动检测器

  36. 选中“自动启动后返回主屏幕”,然后将“启动延迟”更改为5

这对我来说一直是完美的!

另外,请注意,在“ 运动检测器”中有一些设置可以在“运动检测器” 关闭时更改。最重要的之一是相机。如果遇到问题,请确保将Camera设置为Front

您确实说过想要一个可以感应2-3cm之内距离的外部传感器,但是如果您想更好地解决更远的感应解决方案,这将是非常可靠且相对容易安装的!但是,如果您仍然将心放在外部传感器上,那么我也非常乐意为您提供一些说明!

祝您好运,希望对您有所帮助!


感谢您的回答,我最终会尝试一下!(但是,不幸的是,当前该项目没有时间。)我相信我读到了相机是否在后台工作是特定于设备的,但我将看看我的设备是否可以做到。
hheimbuerger 2015年

请注意,我没有说我想要一个传感器内“2-3CM”,而是我说:“2-3M”,即当一个人通过室内设备处于感官运动。
hheimbuerger

请注意,我并不是说我想要一个传感器来感测“ 2-3cm”内的运动,而是说“ 2-3m”。好吧,我认为这似乎有点接近:)我读过大多数设备会可以在后台使用相机,但是是的,这确实意味着并非所有人都可以。如果它在您的特定设备上不起作用,并且您仍然想要一种解决方案,那么制作外部传感器的价格就不那么昂贵,不到10美元。但是,此方法更加简单和可配置。每当您有时间工作时,祝您好运!
丹尼尔·福特

更新:意向包已重命名为org.motion.detector.ACTION_GLOBAL_BROADCAST。请参阅文件的位置:programy.jastrzab.com/...和这里的讨论:reddit.com/r/tasker/comments/27bvf8/help_motion_detector_app/...以上仍然有效; 只需在此注释中用新名称替换软件包名称。
安德烈·克里斯托弗·安徒生

@AndréChristofferAndersen很高兴认识!谢谢你指出这一点;我将其添加到答案中以防止混淆。
丹尼尔·福特

1

我不知道这是否适合您,但是带有运动传感器的电源插头又如何呢?当检测到移动时,数位板将接通电源,屏幕将打开。加上Tasker,您可以配置更多功能来检测移动。


1

我讨厌这么说,但是我所做的只是将我的Feed从天花板上的PIR(已经控制了淋浴中的LED)连接到了我的Android。当有人进来时,电话上的电源开关和鲍勃都是你的叔叔。


打开/关闭电源功能时使用设备的屏幕。真好
cde

1

我一直在寻找一种方法,当我靠近安装在墙上以监控我的房屋的平板电脑时,可以打开平板电脑屏幕。就像Nest恒温器一样。我最近从Nate Clark购买了Konnected警报系统板和wifi模块。他建议我使用www.ozerov.de/fully-kiosk-browser/收取少量许可费用。它可以很好地达到预期的目的。我正在使用与我的Smartthing集成的Actiontiles。我的平板电脑壁挂式安装,具有连续电源。

           Nate Clark <nate@konnected.io>

0

您可能想看看Wimoto。它们是小型且便宜的蓝牙传感器,具有几种口味(温度,运动感应,液体检测等)。他们说会有一个Android应用程序传入,并且将在不久的将来发布一个SDK。

再说一次,如果您想要更简单的东西(并且您的平板电脑带有前置摄像头),您可以简单地使用一个应用程序。例如(仅在快速搜索后才使用过)Camera Trigger

希望这可以帮助。


Wimoto听起来像我在想的那种设备,但是我找不到运动传感器。他们有一个吗?
hheimbuerger 2014年

相机触发器具有上述相同的问题,它在屏幕关闭或前台有其他应用程序时不起作用。
hheimbuerger 2014年

是的,他们称之为Wimoto Sentry。我还遇到了Twine,它也是一个具有几个功能的微型传感器
Hrafn 2014年

你是对的。我很困惑,因为在亚马逊上它被(错误地认为)被列为“蓝牙智能水传感器”。看起来不错,但是显然要再等几个月才能得到。
hheimbuerger 2014年

0

我能找到的唯一负担得起且价格合理的运动传感器是Belkin WeMo Motion

Ian McCracken为WeMo创建了一个非正式的SDK,名为OuimeauxdocsPyPi)。

我目前的计划是编写一个运行在Raspberry Pi上的微型应用程序,该应用程序使用Ouimeaux响应来自WeMo Motion的信号并将推送通知发送到Android设备。然后是一个更简单的Android应用程序,它响应推送通知并唤醒设备并打开屏幕。(后者也可以用Tasker代替。)

第二步,可以用Java重写Ouimeaux的相关部分,然后可以将应用程序直接连接到WeMo,从而使Raspberry Pi变得多余。

当然,欢迎提出改进建议。特别是如果您知道现有的从Python / shell脚本/否则触发推送通知中唤醒Android屏幕的方法。听起来太琐碎,无法编写新的应用程序。


如果禁用设备锁定,则可以创建一个小型应用程序,该应用程序将采取输入操作,并使用Java ProcessBuilder对按键事件(例如“ shell input keyevent 26”(按电源按钮按下))运行shell命令,在理论上的工作。我当前正在按下按钮后运行shell命令,以在我正在创建的应用程序的后台运行Android KitKat中的新“屏幕记录”功能,因此我可以验证以这种方式运行shell命令是否有效。
2014年

@Hrafn我不太明白:这样做的目的是什么?
hheimbuerger 2014年

您正在寻找唤醒屏幕的可能方法。如果可以得到某种输入,则可以创建一个Java进程(作为在后台运行的Android程序的一部分),并使其在设备的外壳中单击电源按钮。那应该,如果设备配置为不锁定,则唤醒屏幕。
2014年

我看到了@Hrafn,但随后您可以使用已经在问题中链接到的PowerManager API。它只需要大约四行代码。尽管一种可能性是保持设备与电缆的连接,然后通过Wakey Droid之adb类的东西触发唤醒。
hheimbuerger 2014年

当然。但是要使用PowerManager API,您需要自行管理唤醒状态(我认为)。因此,如果您获得了唤醒锁,则希望在一定时间后发送掉电信号。通过shell进行keyevent调用,您不必进行管理,而只需让系统处理所有事情即可。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.