Увімкнення пристрою Android з детектором руху (зовнішній пристрій?)


10

Проблема

Я шукаю детектор руху, який можна встановити, щоб розбудити вкорінений планшет Android (4.3) та увімкнути екран, коли хтось проходить повз нього в радіусі, можливо, 2-3 м.

Ідеї

Я, безумовно, готовий придбати для цього зовнішній пристрій і вкласти (розумну) суму грошей, це було б просто таким, яке я можу якось підключити до планшета.

Чи можуть бути детектори близькості з поля домашньої автоматизації з гідною якістю виявлення (хороший кут і налаштована відстань), які можуть надсилати натискання на Android? Я можу написати якийсь код з нуля, якщо це необхідно, але я дуже неосвічений і недосвідчений в області апаратних засобів, тому я не знаю, як утримувати паяльник, наприклад. ;)

Фон

Ідея тут полягає в тому, щоб перетворити старий планшет на якийсь стаціонарний екран приладної панелі, тому я особливо не переживаю з приводу зносу акумулятора (він закінчується, і відтепер він буде використовуватись із підключеним до нього кабелем живлення dies) або інтенсивне використання (якщо ми не говоримо про 100% процесор 24/7, що, ймовірно, може вбити його за кілька днів)

Попередні дослідження

Я трохи дослідив, чи можна це зробити з наявними датчиками в пристрої, і вважаю, що це неможливо.

Проблема використання датчика близькості полягає в тому, що він дійсно повертається, чи є щось (вважається, що це ваше вухо під час дзвінка) прямо поруч (за кілька сантиметрів). Але я щось шукаю в зоні 2-3 м.

Інша ідея - це фронтальна камера, але проблема, здається, полягає в тому, що: а) камера на багатьох пристроях автоматично вимикається, коли екран вимкнено, і б) лише камери переднього плану можуть отримати доступ до камери, але я хочу, щоб планшетний ПК показати інший додаток щодо виявлення.

Я швидко ознайомився з пробудженням екрана у відповідь на натискання сповіщень, і це не здається занадто важким за допомогою PowerManager API . Не впевнений, як швидко пристрій реагуватиме на поштовх у глибокому сні, але це вторинна проблема.


Чому б не використовувати Bluetooth або NFC за допомогою користувацького сценарію? Побачили подібне підтвердження концепції деінде, використовуючи Bluetooth на ПК та Bluetooth-пристрій, що носиться на шиї, залишають стіл ПК та ПК замикаються, повертаються поблизу ПК, ПК розблокується.
t0mm13b

@ t0mm13b Я дуже не хочу нічого носити. Це призначено як постійне налаштування, і я не хочу носити пристрій BT протягом усього життя. ;) NFC означатиме, що це вже не вільний від руки, що я також хотів би бути. Але нехай вони йдуть, ось такі творчі ідеї, на які я сподівався. :)
hheimbuerger

У додатках існує "домашня автоматизація" та тип контролю програм тривоги та обладнання. Це може бути способом повернути інфрачервоний детектор людини, який надсилає інформацію на пристрій.
Psycogeek

@Psycogeek Так, ви маєте гідний датчик руху з поля "домашньої автоматизації"?
hheimbuerger

Я не знаю конкретного.
Psycogeek

Відповіді:


6

Щоб повідомити вам, що я розробив просте рішення, яке поєднує додаток із магазину додатків під назвою детектор руху від jastrzab: https://play.google.com/store/apps/details?id=org.motion.detector Потім встановіть плагін під назвою Turn Screen: https://play.google.com/store/apps/details?id=org.jastrzab.plugin.screen

  1. Встановіть обидва додатки.
  2. Відкрийте додаток «Детектор руху» та увімкніть «Надіслати» внизу налаштувань. Клацніть на детекторі руху (вгорі), а потім прокрутіть вниз до "камери" та виберіть "спереду".
  3. Відкрийте додаток Turn Screen. натисніть єдину кнопку, щоб активувати її.
  4. Відкрийте налаштування Android, вимкніть заблокований екран або виберіть "немає".
  5. Змініть параметри сну, щоб вимкнути час у потрібний час.
  6. Вимкніть Daydream.
  7. Відкрийте додаток (або головний екран), який потрібно відобразити на екрані, коли планшет прокинеться, і все налаштовано! Зачекайте, коли екран ляже спати, пройдіться або помахуйте біля камери, і він розбудить його.

Чудово працює вдень або при включеному освітленні. Зараз я працюю над зовнішнім датчиком руху PIR, який дозволить планшету прокинутися в темряві. Простий дизайн поки що просто використовує дешевий датчик PIR та невеликий світлодіодний світло, встановлений під камерою. Коли я проходжу PIR, спрацьовує світлодіодне світло, що дозволяє камері бачити, що запускає рух. Сподіваючись розібратися, як усунути світлодіод і просто запустити PIR безпосередньо в планшет, використовуючи роз'єм для навушників або USB на планшеті. Пропозиції вітаються.


О, і не забудьте ввімкнути детектор руху, натиснувши синє коло вгорі на головній сторінці програми (поруч із "Детектором руху"). Насолоджуйтесь
Dallas Partin

Це чудово працювало для мене, дякую! Використання Android 4.4 kitkat
Rusty Divine

Посилання, яке ви надали на Диску Google, порушено. :(
Віт

5

Як зазначив Даллас Partin тут , є безкоштовний додаток називається детектор руху . Я використовую його деякий час, і можу сказати, що він працюватиме з іншими програмами на передньому плані та з заблокованим екраном. Це виявить рух за допомогою вбудованої камери, тому це безкоштовно. Крім того, вам не доведеться викорінювати свій пристрій для цього.

Ви сказали, що не знаєте, як паяти, але існує дуже простий спосіб зробити свій власний зовнішній датчик для цього. З двох відомих мені методів я згадував один нижче:

Спосіб №1. Використання вбудованої камери

  1. Завантажте детектор руху .

  2. Завантажити Tasker .

  3. Завантажте AutoStart

  4. Запустіть додаток Tasker і торкніться трьох крапок у верхньому правому куті.

  5. Натисніть НастройкиUI (вгорі), зніміть прапорець Режим початківця .

  6. Вийдіть з цього і торкніться вкладки Vars вгорі.

  7. Торкніться +і назвіть його % DISPLAYSTATE .

  8. Перейдіть на вкладку Профілі та торкніться +→ виберіть ПодіяДисплейДисплей увімкнено .

  9. Торкніться Backклавіші / кнопки. Торкніться нового завдання , назвіть його Display On.

  10. Торкніться +ЗмінніНабір змінних . Торкніться значка олівця поруч із ім'ям .

  11. Tap % DISPLAYSTATE і де він каже , щоб , зробити це 1.

  12. Повторіть «крок 11» за винятком того, що зміни все , щоб Display Off і зміни , де ми поміщаємо 1в 0.

  13. Перейдіть на вкладку Сцени вгорі.

  14. Торкніться +і назвіть щось.

  15. Утримуйте і перетягніть пунктирною лінією та змініть розмір екрана.

  16. Торкніться значка шестерні у верхньому лівому куті, щоб повернутися назад.

  17. Натисніть Профілі та створіть новий за допомогою +кнопки.

  18. Торкніться подіїсистеманаміри отримані .

  19. Ви можете ігнорувати все, крім випадків, де написано Дія . Тут вам потрібно ввести 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. Open Auto Start і переконайтеся , що він говорить на .

  35. Торкніться ДодатиПоказати всі програмиДетектор руху .

  36. Поставте прапорець "перейти на головний екран після автоматичного запуску" та змініть "затримка запуску" на 5.

Це працює для мене бездоганно!

Також зауважте, що в детекторі руху є налаштування, які ви можете змінити, коли детектор руху вимкнено . Однією з найважливіших є камера. Якщо у вас виникають проблеми, переконайтесь, що для камери встановлено передню частину .

Ви сказали, що хочете встановити зовнішній датчик, який може відчути відстань у межах 2-3 см, але якщо ви добре відстоюєте рішення для дальшого рішення, то це дуже надійно і порівняно просто налаштувати! Але якщо все-таки у вас серце встановлено на зовнішній датчик, я би був більш ніж радий дати вам і деякі вказівки щодо цього!

Удачі, і я сподіваюся, що це вам допоможе!


Дякую за вашу відповідь, я спробую це в кінцевому підсумку! (На жаль, на даний момент у мене немає часу на цей проект.) Я вважаю, що читаю, що камера працює у фоновому режимі, залежить від пристрою, але я побачу, чи може це зробити мій пристрій.
hheimbuerger

Зауважте, що я не казав, що хотів датчик, який відчуває рух у межах "2-3 см", а скоріше я сказав "2-3 м", тобто коли людина проходить через приміщення, де знаходиться пристрій.
hheimbuerger

зауважте, що я не казав, що хочу сенсор, який відчуває рух у межах "2-3см", а радше сказав "2-3м" Добре, я думав, що здавалося трохи близьким :) Я читав, що більшість пристроїв працювати з камерою у фоновому режимі, але так, це означає, що не все буде. Якщо він не працює на вашому конкретному пристрої, і ви все ще хочете вирішити, зробити зовнішній датчик не так вже й важко, як це зробити за 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

Я ненавиджу це говорити, хлопці, але все, що я робив, - це приєднати свій корм із моєї PIR у стелю (яка вже контролює світлодіоди в душі) на мій андроїд. Коли хтось приходить увімкнення живлення, увімкнює телефон і боби твій дядько.


Використання екрана пристрою, коли функція включення / вимкнення живлення. Приємно.
cde

1

Я шукав спосіб увімкнути екран планшета, коли я наблизився до планшета, який встановлений на стіні для моніторингу мого будинку. Так само, як і термостат Nest. Нещодавно я придбав плату сигналізації Konnected та модуль wifi від Nate Clark. Він запропонував мені використовувати www.ozerov.de/fully-kiosk-browser/ Існує невеликий плата за ліцензію. Він добре працює за призначенням. Я використовую Actiontiles, інтегрований з моїми Smartthings. Мій планшет встановлений на стіні з безперервним джерелом живлення.

           Nate Clark <nate@konnected.io>

0

Ви можете перевірити Wimoto . Це невеликі та дешеві Bluetooth-сенсори, які мають декілька смаків (температура, зондування руху, виявлення рідини тощо). Вони кажуть, що є додаток для Android, і найближчим часом для нього вийде SDK.

Потім, якщо ви хочете чогось більш простого (а ваш планшет має передню камеру), ви можете просто скористатися додатком. Наприклад (тільки після того, як швидкий пошук так не використовував його) Camera Trigger .

Сподіваюсь, це допомагає.


Wimoto схоже на ті пристрої, про які я думав, але не зміг знайти датчик руху. У них є такий?
hheimbuerger

Камера тригера має ті самі проблеми, про які було сказано вище, вона не працює з вимкненим екраном або коли на передньому плані інша програма.
hheimbuerger

Так, вони називають це Wimoto Sentry. Я також натрапив на шпагат, який також є
мікросенсором

Ти правий. Я заплутався, тому що в Amazon він (неправильно, напевно) вказаний як "Bluetooth Smart Sensor Water". Виглядає добре, але, мабуть, пройде ще кілька місяців, поки ми не зможемо отримати його.
hheimbuerger

0

Єдиний доступний і досить доступний датчик руху, який я міг знайти, - це Belkin WeMo Motion .

Ian McCracken створив неофіційну SDK для WeMo під назвою Ouimeaux ( docs , PyPi ).

Мій поточний план полягає в тому, щоб написати крихітну програму, запущену на Raspberry Pi, яка використовує Ouimeaux, щоб відповісти на сигнал руху WeMo і відправити push-повідомлення на пристрій Android. А потім ще простіший додаток для Android, який реагує на натиснене сповіщення і прокидає пристрій і вмикається на екрані. (Останнє також можливо зробити із Tasker замість цього.)

Як другий крок, відповідні частини Ouimeaux можна було б переписати на Java, і тоді можна було б підключити прямо з програми до WeMo, що зробить Raspberry Pi зайвим.

Пропозиції щодо вдосконалення, звичайно, вітаються. Зокрема, якщо ви знаєте існуючий спосіб пробудити екран Android із сценарію Python / оболонки / інакше викликати натискання сповіщення. Це звучить занадто банально, щоб вимагати написання нового додатка.


Якщо вимкнути блокування пристрою, ви можете створити невелику програму, яка приймає введення для дії, і використовує Java ProcessBuilder для запуску команди оболонки для ключової події, наприклад, "введення оболонки keyevent 26" (натискання кнопки живлення), яка повинна в теоретичній роботі. В даний час я виконую команду оболонки після натискання кнопки, щоб запустити нову функцію 'screenrecord' в Android KitKat, у фоновому режимі для програми, яку я створюю, щоб я міг перевірити, чи працює команда оболонки таким чином.
Графн

@Hrafn Я не зовсім зрозумів: який намір робити це?
hheimbuerger

Ви запитували можливі способи пробудження екрана. Якщо ви можете отримати якийсь вхід, ви можете створити Java Process (як частину програми Android, яка працює у фоновому режимі) і змусити його запускати кнопку живлення в оболонці пристрою. Це повинно, якщо пристрій налаштовано не блокувати, розбудити екран.
Графн

@Hrafn Я бачу, але тоді ви можете просто використовувати API PowerManager, до якого я вже пов’язаний у питанні. Потрібно лише близько чотирьох рядків коду. Хоча одна з можливостей полягає в тому, щоб утримувати пристрій підключеним до кабелю і просто викликати пробудження через adbщось на зразок Wakey Droid .
hheimbuerger

Звичайно. Але, щоб використовувати API PowerManager, вам потрібно керувати станом неспокійності вашим "(я думаю). Тож якщо ви придбаєте будильник, ви хочете відправити сигнал відключення живлення через певний час. Під час виклику keyevent через оболонку вам не доведеться керувати цим, і ви можете просто дозволити системі обробляти все.
Графн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.