import 'dart:async';

import 'package:flutter/material.dart';
import 'package:sensors_plus/sensors_plus.dart'; // Import the sensors package

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.green,
      ),
      debugShowCheckedModeBanner: false,
      home: SensorExample(),
    );
  }
}

class SensorExample extends StatefulWidget {
  @override
  _SensorExampleStats createState() => _SensorExampleStats();
}

class _SensorExampleStats extends State<SensorExample> {
  double _gyroX = 0.0;
  double _gyroY = 0.0;
  double _gyroZ = 0.0;

  double _accelX = 0.0;
  double _accelY = 0.0;
  double _accelZ = 0.0;

  double _barometerEvent = 0.0;

  double _magnX = 0.0;
  double _magnY = 0.0;
  double _magnZ = 0.0;
  @override
  void initState() {
    super.initState();

    barometerEventStream().listen((event) {
      setState(() {
        _barometerEvent = event.pressure;
      });
    });
    magnetometerEventStream().listen((event){
      setState(() {
        _magnX = event.x;
        _magnY = event.y;
        _magnZ = event.z;
      });
    });

    gyroscopeEventStream().listen((GyroscopeEvent event) {
      setState(() {
        _gyroX = event.x;
        _gyroY = event.y;
        _gyroZ = event.z;
      });
    });

    accelerometerEventStream().listen((event) {
      setState(() {
        _accelX = event.x;
        _accelY = event.y;
        _accelZ = event.z;
      });
    });
  }
  @override
  void dispose() {
    super.dispose();
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Sensor Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('Gyroscope Data:'),
            Text('gryoX: ${_gyroX.toStringAsFixed(2)}'),
            Text('gyroY: ${_gyroY.toStringAsFixed(2)}'),
            Text('gryoZ: ${_gyroZ.toStringAsFixed(2)}'),

            Text('Accelerometer Data:'),
            Text('accelX: ${_accelX.toStringAsFixed((2))}'),
            Text('accelY: ${_accelY.toStringAsFixed((2))}'),
            Text('accelZ: ${_accelZ.toStringAsFixed((2))}'),

            Text('Barometer Data:'),
            Text('baroPressure: ${_barometerEvent.toStringAsFixed(2)}'),

            Text('Magnetometer Data:'),
            Text('magnX: ${_magnX.toStringAsFixed(2)}'),
            Text('magnY: ${_magnY.toStringAsFixed(2)}'),
            Text('magnZ: ${_magnZ.toStringAsFixed(2)}'),
          ],
        ),
      ),
    );
  }
}

flutter/dart에서 사용가능한 패키지 중 하나인 sensors_plus에 있는 가속도계, 기압계, 자이로스코프, 자력계를 화면에 표시하는 방법

+ Recent posts