본문 바로가기
IT테크

IoT 센서 데이터 수집 프로그램 개발 가이드

by 뇌색남리키 2025. 8. 1.
반응형

IoT 센서 데이터 수집 프로그램 개발 가이드

IoT(사물인터넷) 기술은 다양한 센서를 통해 데이터를 수집하고 이를 분석하여 유용한 정보를 도출하는 데 핵심적인 역할을 합니다. 이번 포스트에서는 Python을 사용하여 온도 및 습도 센서 데이터를 수집하고 파일에 저장하는 간단한 프로그램을 개발하는 방법을 소개합니다.

 

준비물

  • 하드웨어: Raspberry Pi (또는 유사한 IoT 장치), DHT11/DHT22 온도 및 습도 센서
  • 소프트웨어: Python 3.x, Adafruit_DHT 라이브러리
  • 개발 환경: Raspberry Pi에 Python 환경 설정 완료

1. 센서 연결 및 환경 설정

DHT11/DHT22 센서를 Raspberry Pi의 GPIO 핀에 연결합니다. 예를 들어, 데이터 핀을 GPIO 4번에 연결했다고 가정합니다. 다음으로, 필요한 라이브러리를 설치합니다:

pip install Adafruit_DHT

2. 데이터 수집 프로그램 작성

아래는 DHT11 센서에서 온도와 습도 데이터를 주기적으로 수집하여 CSV 파일에 저장하는 Python 코드입니다.

import Adafruit_DHT
import time
import csv
from datetime import datetime

# 센서 설정
DHT_SENSOR = Adafruit_DHT.DHT11
DHT_PIN = 4

# CSV 파일 설정
csv_file = "sensor_data.csv"
header = ["Timestamp", "Temperature (°C)", "Humidity (%)"]

# CSV 파일 초기화
with open(csv_file, mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(header)

# 데이터 수집 루프
while True:
    try:
        # 센서에서 데이터 읽기
        humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
        
        if humidity is not None and temperature is not None:
            # 현재 시간 기록
            timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            
            # 데이터 출력
            print(f"Time: {timestamp}, Temp: {temperature}°C, Humidity: {humidity}%")
            
            # CSV 파일에 데이터 저장
            with open(csv_file, mode='a', newline='') as file:
                writer = csv.writer(file)
                writer.writerow([timestamp, temperature, humidity])
        else:
            print("Failed to retrieve data from sensor")
        
        # 10초 대기
        time.sleep(10)
        
    except KeyboardInterrupt:
        print("Program terminated")
        break
    except Exception as e:
        print(f"Error: {e}")
        time.sleep(10)

코드 설명

  • 라이브러리: Adafruit_DHT로 센서 데이터를 읽고, csv와 datetime으로 데이터를 저장합니다.
  • 데이터 저장: 수집된 온도와 습도 데이터를 타임스탬프와 함께 CSV 파일에 저장합니다.
  • 에러 처리: 센서 읽기 실패나 키보드 인터럽트를 처리하여 프로그램의 안정성을 높입니다.
  • 주기적 실행: 10초마다 데이터를 수집합니다.

3. 프로그램 실행

터미널에서 다음 명령어로 프로그램을 실행합니다:

python sensor_data.py

실행 후, sensor_data.csv 파일이 생성되며, 수집된 데이터가 다음과 같이 저장됩니다:

Timestamp,Temperature (°C),Humidity (%)
2025-08-01 10:00:00,25.5,60.2
2025-08-01 10:00:10,25.6,60.1
...

4. 데이터 활용 아이디어

  • 실시간 모니터링: Flask 또는 Django를 사용해 웹 대시보드를 만들어 데이터를 시각화.
  • 클라우드 연동: AWS IoT 또는 Google Cloud IoT에 데이터를 전송해 원격 관리.
  • 알림 시스템: 온도나 습도가 임계값을 초과하면 이메일이나 SMS 알림 전송.

마무리

이 포스트에서는 Raspberry Pi와 DHT11 센서를 사용해 IoT 데이터 수집 프로그램을 만드는 방법을 다뤘습니다. 이 코드를 기반으로 센서 종류를 변경하거나 데이터를 데이터베이스에 저장하는 등 다양한 확장이 가능합니다. IoT 프로젝트를 시작하는 데 이 글이 도움이 되길 바랍니다!

궁금한 점이 있다면 댓글로 질문해주세요!

 

함께보면 좋은 정보

 

딥러닝을 활용한 수질 분석: 혁신적인 환경 모니터링

딥러닝을 활용한 수질 분석: 혁신적인 환경 모니터링수질 오염은 전 세계적으로 심각한 환경 문제로, 깨끗한 물 공급과 생태계 보존을 위한 지속적인 모니터링이 필요합니다. 전통적인 수질 분

jy.zzupzzup.com

 

소켓 통신 프로그래밍: 초보자를 위한 가이드

소켓 통신 프로그래밍: 초보자를 위한 가이드소켓 통신은 네트워크 프로그래밍의 핵심 기술로, 두 개 이상의 장치가 데이터를 주고받을 수 있도록 연결을 설정하는 방법입니다. 주로 서버와 클

jy.zzupzzup.com

 

반응형