我希望将Android智能手机收集的实时传感器数据传输到我的电脑上,并在我的电脑上进行信号处理。我怎样才能做到这一点?非常欢迎任何有用的教程链接。
通过无线方式或 USB 电缆都是可以接受的。
当数据传输时,计算机如何处理它们?
我熟悉 Python,因此最好使用 Python 来处理即将到来的数据。
Python 是否有可能不断地接受新来的数据并对其进行处理?
我希望将Android智能手机收集的实时传感器数据传输到我的电脑上,并在我的电脑上进行信号处理。我怎样才能做到这一点?非常欢迎任何有用的教程链接。
通过无线方式或 USB 电缆都是可以接受的。
当数据传输时,计算机如何处理它们?
我熟悉 Python,因此最好使用 Python 来处理即将到来的数据。
Python 是否有可能不断地接受新来的数据并对其进行处理?
有多个 Android 应用程序可以无线传输传感器数据。结帐,例如“智能手机 IMU GPS”[1],它是开源的 [2]。它通过UDP传输数据。用于接收数据流的 Python 代码片段在应用程序描述 [1] 中给出。确保智能手机和接收设备连接到同一个 WiFi 网络,并且没有防火墙阻止流量。
[1] https://play.google.com/store/apps/details?id=de.lorenz_fenster.sensorstreamgps
[2] https://sourceforge.net/projects/smartphone-imu/
您可以使用来自 Github 的Sensor Server 应用程序,它将实时传感器数据流式传输到 WebSocket 客户端。
要从 Android 接收实时传感器数据,您只需使用以下 URL 连接到应用程序
ws://ip:port/sensor/connect?type=<sensor-type>
<sensor-type>
您要连接的传感器类型在哪里。例如
对于加速度计:/sensor/connect?type=android.sensor.accelerometer
对于方向:/sensor/connect?type=android.sensor.orientation
对于陀螺仪:/sensor/connect?type=android.sensor.gyroscope
等等...
几乎每种语言都提供了 Websocket 协议的实现。要在 Python 脚本中接收实时数据,您可以使用Python 的 WebSocket 客户端
import websocket
def on_message(ws, message):
print(message) # sensor data here in JSON format
def on_error(ws, error):
print("### error ###")
print(error)
def on_close(ws, close_code, reason):
print("### closed ###")
print("close code : ", close_code)
print("reason : ", reason )
def on_open(ws):
print("connection opened")
if __name__ == "__main__":
ws = websocket.WebSocketApp("ws://192.168.0.102:8082/sensor/connect?type=android.sensor.accelerometer",
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.run_forever()
Sensor Server 应用程序和 Websocket 客户端必须连接到同一网络