标签: sensor

有没有办法在Android中检索多个传感器数据

我正在尝试获取加速度计和方向数据.目前,我创建了一个AccelerometerManager和OrientationManager.他们都做同样的事情; 实现SensorEventListener并从onSensorChanged()侦听器中的values []中检索数据.

有更简单的方法吗?似乎有两个处理程序重复代码是不必要的.有没有办法使用组合的加速度计和方向数据一起访问values []数组?

由于有两个处理程序,我还必须这样做:

    orientationManager = new OrientationManager(this);
    orientationSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    orientationSensorManager.registerListener(orientationManager, 
            orientationSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), 
            SensorManager.SENSOR_DELAY_GAME);

    accelerometerManager = new AccelerometerManager(this);
    accelerometerSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    accelerometerSensorManager.registerListener(accelerometerManager, 
            orientationSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
            SensorManager.SENSOR_DELAY_GAME);
Run Code Online (Sandbox Code Playgroud)

android sensor accelerometer orientation

7
推荐指数
1
解决办法
2万
查看次数

屏幕关闭时,Android工作方式适用于非工作传感器

[编辑:删除了所有提到的Android版本 - 所有版本的android都存在此问题]

背景:当屏幕关闭时,许多Android手机不会通过在屏幕关闭时调用onSensorChanged()来为Accelerometer读数的应用程序提供更新.此行为在SO上进行了讨论,并在此处进一步说明 http://code.google.com/p/android/issues/detail?id=3708

在某些手机(Nexus S,Droid X2,...)上,加速度计值仅在值发生重大变化时提供.例如,坐在桌子上,每分钟可能有一次或零次更新

为了生成跨手机型号的强大代码,我如何区分每个屏幕缺少更新事件,以及每次非移动缺少更新?我应该维护手机型号的数据库吗?

android sensor accelerometer

7
推荐指数
1
解决办法
3642
查看次数

远程传感器数据记录的最佳数据库

我需要选择一个数据库,用于从大量(数千到数万)传感器远程存储数据,每个传感器每分钟产生一个条目.

需要以各种方式查询所述数据,从具有用于统计的特定数据到用于绘图的简单输出的数据计数.

我正在寻找合适的工具,我从MySQL开始,但我觉得它缺乏这个项目所需的可扩展性,这导致我没有SQL数据库,我不太了解.

无论是关系型还是非关系型数据库都是不错的选择?

谢谢.

database rdbms sensor nosql

7
推荐指数
1
解决办法
8816
查看次数

Android上的温度传感器

 public class MainActivity extends Activity implements SensorEventListener {
    private TextView temperaturelabel;
    private SensorManager sensormanager;
    private Sensor temperature;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    temperaturelabel = (TextView) findViewById(R.id.text);

    sensormanager = (SensorManager)getSystemService(SENSOR_SERVICE);

    temperature= sensormanager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);

   temperaturelabel.setText(""+temperature.getPower());
 }

 protected void onResume() {
     super.onResume();
     sensormanager.registerListener(this, temperature, SensorManager.SENSOR_DELAY_FASTEST);
 }

 protected void onPause() {                 
     super.onPause();
     sensormanager.unregisterListener(this);
 }

 public void onAccuracyChanged(Sensor sensor, int accuracy) {}

 public void onSensorChanged(SensorEvent event) {   
        if (event.sensor.getType() != Sensor.TYPE_AMBIENT_TEMPERATURE) return;

        temperaturelabel.setText(""+temperature.getPower());
    }
 }
Run Code Online (Sandbox Code Playgroud)

我想从设备中获取温度.

我写了这段代码,我在HTC One X上尝试过,但它没有用.

android sensor

7
推荐指数
1
解决办法
9534
查看次数

如何/应该实施卡尔曼滤波器以获得准确的加速度计数据?

我希望尽可能从Android手机中的内置加速度计获得准确的数据.我想跟踪x和y轴的二维运动,甚至必须注册小的运动.

当我看到手机在桌子上平放时加速度计/线性加速度的数据时,当我应该为零时,它会发生很大的变化.

我看过卡尔曼滤波器,这似乎是一个很好的方法,但我在设置模型时遇到了问题.

1.卡尔曼滤波器是否可以从加速度计获得尽可能准确的数据?

2.卡尔曼滤波器是否有效?也许我误解了但似乎加速度或速度必须是恒定的?

3.如何设置使用卡尔曼滤波器的模型?我很难理解(除其他事项外)过程噪音是什么?

android sensor accelerometer android-sensors kalman-filter

7
推荐指数
1
解决办法
2万
查看次数

iPhone温度传感器

我的问题与此非常相似:iPhone接近传感器.有明确的iPhone内的温度计的一些方式是由OS可读.有没有人发现超级秘密的无证API来读取这个传感器?

iphone api sensor

6
推荐指数
1
解决办法
1万
查看次数

如何在Android上从方位角获取指南针方向

我必须显示用户指向Android设备的方向.

我正在使用Sensor.TYPE_ACCELEROMETER,Sensor.TYPE_MAGNETIC_FIELD以获得方位角,俯仰,滚动.但我能够弄清楚如何从这里获得方向(北,南,东,西,......).

请帮忙

谢谢

android sensor azimuth android-sensors

6
推荐指数
1
解决办法
1万
查看次数

CoAP数据包的大小是多少?

我是这项技术的新手,有人可以帮助我了解一些疑问吗?

Q-1.CoAP数据包的大小是多少?
(我知道有4个字节的固定标头,但是包括标头,选项和有效负载的最大大小限制是多少?)

Q-2.像MQTT这样的Keep Alive有什么概念吗?
(它在UDP上工作了多长时间保持打开连接,是否有任何默认时间或每次发送数据包时都保持打开状态?)

Q-3.我们可以使用CoAP和TCP吗?
(CoAP的主要问题是它适用于UDP,是否有像MQTT QoS这样的概念?假设传感器每隔一秒发布一些数据,如果用户下线,CoAP中是否有任何保证,订户将获得所有数据时它上线了?)

Q-4.连接的持续时间是多少?
(CoAP支持发布/订阅架构,可能一直需要连接打开,是否可以与CoAP一起使用它是否基于UDP.)

Q-5.它是如何发现资源的?
(我有一个网关和5个传感器,这些传感器将如何连接到网关?网关会找到这些传感器吗?或者传感器会找到网关吗?)

Q-5.传感器如何在网关中注册?

请帮帮我,我真的需要回答.我对这些事情都很陌生,并建议我实施的观点.

谢谢.

linux gateway sensor coap iot

6
推荐指数
1
解决办法
4602
查看次数

使用Python分析大量传感器数据

我是Python的新手,我必须分析一个包含Excel格式的原始sensordata的大型数据集.

对于每个研究参与者,每个Excel数据文件大于100 MB.excelfile包含5张用于测量5种不同生理参数的薄片.每张纸包含超过100万行和两列(时间,生理参数).

在100万行sensordata之后,数据会自动在Excel文件的以下列(C和D)中继续.

每次我尝试在Python中加载数据文件时,都需要永远.我想知道几件事:

1)如何告诉Python从特定的 Excel工作表中读取数据?这花了这么长时间是正常的吗?

这是我试过的:

df = pd.read_excel("filepath", sheet_name="Sheetname")
print (df.head (5)) 
Run Code Online (Sandbox Code Playgroud)

2)使用Pandas在Python中为大型数据文件进行数据修改是否可行?我试过这个来加快这个过程:

import xlrd
work_book = xlrd.open_workbook('filepath', on_demand=True)
work_book.release_resources()
Run Code Online (Sandbox Code Playgroud)

3)后来:我想比较不同研究参与者的生理参数.由于这是研究参与者之间的时间序列分析,我怎样才能在Python中开始这样做?

我在几天内学会了Python的基础知识,到目前为止我都很喜欢它.我意识到我还有很长的路要走.

更新:我想我刚刚完成了时间序列分析(实际上只是趋势分析,使用Dickey-Fuller测试和滚动均值可视化技术)!:D非常感谢你的帮助!大熊猫中的"datetime"模块对我来说是最困难的,而我的日期时间列仍然被识别为"对象".这是正常的吗?不应该是datetime64吗?

python excel sensor pandas

6
推荐指数
1
解决办法
358
查看次数

Android NDK Sensor奇怪的报告间隔到事件队列

我尝试从NDK访问加速度计.到目前为止它的作用.但事件写入事件队列的方式似乎有点奇怪.

请参阅以下代码:

ASensorManager* AcquireASensorManagerInstance(void) {
    typedef ASensorManager *(*PF_GETINSTANCEFORPACKAGE)(const char *name);
    void* androidHandle = dlopen("libandroid.so", RTLD_NOW);
    PF_GETINSTANCEFORPACKAGE getInstanceForPackageFunc = (PF_GETINSTANCEFORPACKAGE) dlsym(androidHandle, "ASensorManager_getInstanceForPackage");
    if (getInstanceForPackageFunc) {
        return getInstanceForPackageFunc(kPackageName);
    }

    typedef ASensorManager *(*PF_GETINSTANCE)();
    PF_GETINSTANCE getInstanceFunc = (PF_GETINSTANCE) dlsym(androidHandle, "ASensorManager_getInstance");

    return getInstanceFunc();
}

void init() {
    sensorManager = AcquireASensorManagerInstance();
    accelerometer = ASensorManager_getDefaultSensor(sensorManager, ASENSOR_TYPE_ACCELEROMETER);

    looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS);

    accelerometerEventQueue = ASensorManager_createEventQueue(sensorManager, looper, LOOPER_ID_USER, NULL, NULL);

    auto status = ASensorEventQueue_enableSensor(accelerometerEventQueue,
                                                 accelerometer);
    status = ASensorEventQueue_setEventRate(accelerometerEventQueue,
                                            accelerometer,
                                            SENSOR_REFRESH_PERIOD_US);
}
Run Code Online (Sandbox Code Playgroud)

这就是我初始化一切的方式.我的SENSOR_REFRESH_PERIOD_US是100.000 - 每秒10次刷新.现在我有以下方法来接收事件队列的事件.

vector<sensorEvent> update() {
    ALooper_pollAll(0, NULL, NULL, NULL); …
Run Code Online (Sandbox Code Playgroud)

c++ java-native-interface android sensor android-ndk

6
推荐指数
1
解决办法
317
查看次数