[파이썬] 웹 프레임워크를 이용한 실시간 건강 상태 모니터링

건강 상태 모니터링은 현대 사회에서 중요한 주제입니다. 실시간으로 건강 상태를 모니터링하고 이를 웹에서 확인할 수 있다면 편리할 것입니다. 이번 글에서는 Python을 사용하여 웹 프레임워크를 이용하여 실시간으로 건강 상태를 모니터링하는 방법에 대해 알아보겠습니다.

웹 프레임워크 선택

Python에는 다양한 웹 프레임워크가 있지만, 이번 예시에서는 Flask를 사용하겠습니다. Flask는 가벼우며 사용하기 쉽고 여러 가지 확장 기능을 제공합니다. 이를 통해 빠르고 간편하게 웹 애플리케이션을 만들 수 있습니다. 아래는 Flask를 설치하는 방법입니다.

pip install flask

실시간 데이터 수집

건강 상태 모니터링을 위해 실시간으로 데이터를 수집해야 합니다. 예를 들어, 심박수, 혈압, 체온 등 자주 갱신되는 값을 받아올 수 있습니다. 이를 위해 센서, 기기 또는 외부 데이터 소스와 연결할 수 있는 Python 라이브러리를 사용합니다. 예를 들어, Adafruit에서 제공하는 라이브러리를 사용하여 심박수 센서 데이터를 수집하는 코드는 다음과 같습니다.

import Adafruit_DHT

# DHT 센서 타입과 핀 번호 설정
sensor = Adafruit_DHT.DHT22
pin = 4

# 센서로부터 데이터 읽기
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

# 데이터 처리
if humidity is not None and temperature is not None:
    print('Temperature={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity))
else:
    print('Failed to retrieve data from the sensor.')

실시간 데이터 전달

데이터를 수집한 후, Flask 웹 애플리케이션으로 실시간으로 데이터를 전달합니다. Flask는 HTTP 요청을 처리하고 응답을 생성하는 기능을 제공합니다. 아래는 데이터를 전달하는 간단한 Flask 예제입니다.

from flask import Flask, jsonify

app = Flask(__name__)

# 데이터를 반환하는 엔드포인트
@app.route('/data')
def get_data():
    humidity, temperature = get_sensor_data()  # 데이터를 가져오는 함수 호출
    data = {
        'humidity': humidity,
        'temperature': temperature
    }
    return jsonify(data)

if __name__ == '__main__':
    app.run()

웹에서 데이터 표시

마지막으로, Flask 애플리케이션에서 실시간으로 받은 데이터를 웹 페이지에 표시할 수 있습니다. 이를 위해 HTML과 JavaScript를 사용합니다. Flask에서는 templates 폴더를 사용하여 웹 페이지를 관리할 수 있습니다. 예를 들어, 아래는 받은 데이터를 표시하는 간단한 HTML 템플릿입니다.

<!DOCTYPE html>
<html>
<head>
    <title>건강 상태</title>
</head>
<body>
    <h1>실시간 건강 상태</h1>
    <p>습도: <span id="humidity"></span>%</p>
    <p>온도: <span id="temperature"></span>°C</p>

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        // 데이터를 가져오고 화면에 표시하는 함수
        function getData() {
            $.ajax({
                url: '/data',
                type: 'GET',
                dataType: 'json',
                success: function(data) {
                    $('#humidity').text(data.humidity);
                    $('#temperature').text(data.temperature);
                },
                error: function(xhr, status, error) {
                    console.log('Error:', error);
                }
            });
        }

        // 일정 간격으로 데이터 업데이트
        setInterval(getData, 1000);
    </script>
</body>
</html>

위의 예제 코드를 Flask 애플리케이션과 함께 실행하면, 웹 페이지에서 실시간으로 건강 상태 데이터를 확인할 수 있습니다.

이렇게 Python의 웹 프레임워크를 사용하여 실시간 건강 상태 모니터링을 구현할 수 있습니다. 이를 통해 효과적으로 건강 상태를 관리하고 필요한 조치를 취할 수 있습니다.