패키지, 저장소 및 앱 카테고리 검색

패키지 상세v3.0.0+0

heart_bpm

스마트폰 카메라를 사용하여 개별 혈압을 쉽게 기록할 수 있습니다.

AndroidiOSWeb
30일 다운로드
2
좋아요
58
Pub 점수
150

패키지 설치

flutter pub add heart_bpm

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

heart_bpm 패키지는 스마트폰 카메라만 사용하여 개별 혈압 측정값을 기록할 수 있도록 합니다. 카메라 피드에서 얼굴 색상의 미세한 변화를 분석함으로써 심박수를 추정하고 심혈관 건강을 비침습적으로 모니터링하는 방법을 제공합니다. 간편성과 접근성을 고려해 설계되었으며, 안드로이드, iOS 및 웹 플랫폼의 건강 중심 애플리케이션에 원활하게 통합됩니다. 이 패키지는 컴퓨터 비전 기술을 활용하여 실시간으로 맥박 변동을 감지하며, 추가 하드웨어 없이 개인의 웰빙 추적을 위한 편리한 도구를 제공합니다.

사용 사례

  • 개인 심박수 모니터링
  • 비침습적 혈압 추정
  • 피트니스 및 웰빙 앱
  • 원격 건강 검진
  • 일일 건강 추적

주요 기능

  • 카메라 기반 맥박 감지
  • 실시간 심박수 분석
  • 크로스 플랫폼 지원 (Android, iOS, Web)
  • Flutter와의 간단한 통합
  • 경량이고 효율적인 처리

적합한 대상

  • 헬스 앱 개발자
  • 피트니스 애호가
  • 원격의료 애플리케이션
  • 모바일 헬스 연구
  • 심혈관 건강을 추적하는 개인

고려 사항

  • 정확도는 조명과 피부 색조에 따라 달라질 수 있습니다
  • 안정적인 카메라 입력이 필요합니다
  • 의료 등급 진단 도구가 아닙니다
  • 심박수에 한정되며, 직접적인 혈압 측정은 아님
  • 신뢰할 수 있는 결과를 얻기 위해 사용자 협력이 필요합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

heart_bpm

Widget to measure heart rate in beats per minute using the camera of smartphone.

Working principle

Covering the camera lens with the fingertip enables the camera to measure the subtle changes in skin tone. These are proportional to the changes in the blood flow through the arteries just below the skin of the fingertip. This is in-turn correlated to the heart beats. Hence, the variations in the skin tone can be approximated to the instances of heart beats. Measuring the time differences between the peaks provides Beats per Minute.

These values are not stable and hence, an exponential moving average filter is implemented. The smoothing factor α, can be controlled by the user from the calling widget.

Implementation

To access the camera, the module utilizes the camera package. Hence, the requirements to use this package have the same requirements.

Android

Minimum android SDK version: 21

Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle file.

minSdkVersion 21
iOS

iOS 10.0 of higher is needed to use the camera plugin. If compiling for any version lower than 10.0 make sure to check the iOS version before using the camera plugin. For example, using the device_info plugin.

Add two rows to the file ios/Runner/Info.plist:

  • one with the key Privacy - Camera Usage Description and a usage description.
  • and one with the key Privacy - Microphone Usage Description and a usage description.

Or in text format add the key:

<key>NSCameraUsageDescription</key>
<string>Heart BPM plugin would like to use camera to measure your heart rate.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Can I use the mic please?</string>

The microphone key is required though the feature is not being used and no audio is enabled in the implementation.

Getting Started

The module can be used simply by accessing it as a widget.

  1. Import the module:

    import 'package:heart_bpm/heart_bpm.dart';
    
  2. Access the widget as simply as:

    /// list to store raw values in
    List<SensorValue> data = [];
    
    /// variable to store measured BPM value
    int bpmValue;
    
    @override
    Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
            title: Text('Heart BPM Demo'),
        ),
        body: Column(
        children: [
            isBPMEnabled ? HeartBPMDialog(
                    context: context,
                    onRawData: (value) {
                        setState(() {
                            // add raw data points to the list
                            // with a maximum length of 100
                            if (data.length == 100)
                                data.removeAt(0);
                            data.add(value);
                        });
                    },
                    onBPM: (value) => setState(() {
                        bpmValue = value;
                    }),
                )
              : SizedBox(),
          Center(
            child: ElevatedButton.icon(
                icon: Icon(Icons.favorite_rounded),
                label: Text(isBPMEnabled
                    ? "Stop measurement" : "Measure BPM"),
                onPressed: () => setState(() =>
                    isBPMEnabled = !isBPMEnabled
                ),
            ),
          ),
        ],
      ),
    );
    

Contributors

Contributor Profile Picture
Karl Mathuthu Karl Mathuthu
Krishna Vedala Krishna Vedala

카테고리

의존성

의존성 목록 2 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.