iOS传感器数据采集

传感器信息采集项目到了一定的节点,总结一下iOS中传感器信息采集的相关知识。

代码下载:https://github.com/haojinming/SensorInIOS

  1. Accelerometer
  2. Gyroscope
  3. Magnetometer
  4. Pedometer
  5. Barometer
  6. GPS
  7. Bluetooth
  8. MotionActivity observer
  9. Audio decibel
  10. Wifi status and strength
  11. Ambient Light
  12. Shake status and times
  13. Steps/Pace/Distance
  14. Pressure
  15. NFC
一、 首先是运动传感器,加速度仪、陀螺仪和罗盘。
主要使用Core Motion模块进行采集,有Pull和Push两种模式。
另外有原始数据和经过系统处理两种模式,主要区别在于系统对重力加速度进行了处理,只保留手机用户对手机的输入,在游戏和判断用户运动状态时很有用。
代码示例(原数据):

可以指定数据更新的频率,实时性比较好。

if self.motionManager.isAccelerometerAvailable{
            self.motionManager.accelerometerUpdateInterval = timeIntervalUpdate
            self.motionManager.startAccelerometerUpdates()
        }
        if self.motionManager.isGyroAvailable {
            self.motionManager.gyroUpdateInterval = timeIntervalUpdate
            self.motionManager.startGyroUpdates()
        }
        if self.motionManager.isMagnetometerAvailable{
            self.motionManager.magnetometerUpdateInterval = timeIntervalUpdate
            self.motionManager.startMagnetometerUpdates()
        }
//get the motion sensor data
        if let data = self.motionManager.accelerometerData{
            self.realTimeData.sensorData.accelerometerData = data.acceleration
        }
        if let data = self.motionManager.gyroData{
            self.realTimeData.sensorData.gyroscopeData = data.rotationRate
        }
        if let data = self.motionManager.magnetometerData{
            self.realTimeData.sensorData.magnetometerData = data.magneticField
        }
代码示例(系统过滤掉重力加速度):

if self.motionManager.isDeviceMotionAvailable{
            self.motionManager.deviceMotionUpdateInterval = timeIntervalUpdate
            self.motionManager.startDeviceMotionUpdates()
        }
if let motionData = motionManager.deviceMotion{
            self.realTimeData.sensorData.accelerometerData = motionData.userAcceleration
            self.realTimeData.sensorData.gyroscopeData = motionData.rotationRate
        }
二、气压,海拔
气压海拔数据更新无法制定更新频率,只能通过Block的方式获取,实际会有几秒钟的延迟。
if CMAltimeter.isRelativeAltitudeAvailable(){
            self.altitudeSensor.startRelativeAltitudeUpdates(to: OperationQueue.main, withHandler: {
                data, error in
                if error != nil{
                    print("Error occurs within altitude sensor.")
                }
                if let dataTemp = data{
                    self.realTimeData.sensorData.altitudeData = dataTemp
                }
            })
        }
        else{
            print("Altitude sensor is not available.")
        }
三、步行相关的传感器,计步器( Pedometer )采集
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,作为一个语言模型,我无法直接提供架构图。但是,我可以为您提供一个文字形式的架构图: 1. 数据采集与存储: - 采集端:传感器、医疗设备等 - 采集方式:实时采集、批量采集 - 存储方式:云端服务器存储、分布式存储 2. 数据分析与挖掘: - 数据挖掘算法:关联规则、聚类、分类、回归等 - 机器学习算法:神经网络、决策树、支持向量机等 - 数据可视化:图表展示、报表生成、实时监控等 3. 人工智能算法: - 深度学习算法:卷积神经网络、循环神经网络、生成对抗网络等 - 自然语言处理:分词、词性标注、实体识别、情感分析等 - 模型训练:数据标注、模型训练、模型调优等 4. 医疗知识库: - 知识库构建:医学文献、专家意见、标准化流程等 - 知识库分类:疾病分类、治疗方案、用药指南等 - 知识库查询:自然语言查询、关键词查询、推荐系统等 5. 医疗设备接口: - 接口协议:TCP/IP、HTTP、Websocket等 - 数据格式:JSON、XML、二进制数据等 - 设备管理:设备注册、数据访问控制、设备状态监控等 6. 移动端应用: - 应用开发:Android、iOS、Hybrid等 - 应用功能:数据可视化、病历管理、诊断辅助等 - 应用安全:数据加密、身份认证、应用审核等 7. 安全保障: - 数据加密:SSL、AES、RSA等 - 身份认证:OAuth、OpenID、Token等 - 安全监控:日志监控、入侵检测、安全审计等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值