android - 使用 Android 手机气压计的楼层计数器

标签 android algorithm android-sensors pressure

我正在尝试实现一个 Android 应用程序,它通过使用手机的气压计测量不同楼层的压力来告诉用户他是要下楼还是上楼。

我的想法是编写一个计步器来扫描用户是否在行走,并检查每 N 步、第 1 步和第 N 步的压力,如果压力变化达到 0.3 mbar 的阈值,我可以判断floor 改变了(我做了一些试验来找到 0.3 的值)。
问题是,如果第一步是在楼梯的开头,最后一步是在另一层楼,这种方法就有效,否则气压计将无法识别两层楼之间的压力差。 有人可以建议我解决这个问题的想法吗?

附言我被迫使用气压计,所以我必须使用这个传感器。

最佳答案

假设您的 0.3 mbar 是可靠的(它可能不可靠;见下文),您不能只假设 N 个步骤,因为有些人会一次跑两步,有些人会采取每一步都要走两步,有些疯狂的 child 会一跳就跳下整段楼梯。

所以您可能想结合使用时间和步数。例如,设置一个计时器每 10 秒计时一次,并在那个时间检查气压计。只需使用步骤来确定手机在此期间是否一直在移动。

您可能会发现 0.3 mbar 充其量只是一个非常粗略的近似值。根据温度和湿度,以及楼梯是在建筑物内还是在封闭的楼梯间内,它可能每天都在变化,而且很可能在一天内变化。一些封闭的楼梯间在它们与建筑物内部(或它们与外部之间)之间存在压力差,当有人打开一扇门进入建筑物或向外部打开时,压力变化非常快。

这还取决于楼层的高度。

关于android - 使用 Android 手机气压计的楼层计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23512709/

相关文章:

java - 获取表列的总数

多行斜接连接的算法

android - 重新校准 Android 加速度计?

Android Studio 库模块引用

Android - 通过网页 url 启动谷歌地图

android - react native :how to understand device is rooted?

c# - 如何获取两个平面网格的公共(public)部分?

mysql - MySQL 中的深度优先搜索

android - 方法 onPause( ), onResume( ) 未定义类型

android - 是否可以在真实(非模拟)设备上模拟加速度计运动?