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
'IT테크' 카테고리의 다른 글
딥러닝을 활용한 수질 분석: 혁신적인 환경 모니터링 (5) | 2025.08.01 |
---|---|
소켓 통신 프로그래밍: 초보자를 위한 가이드 (2) | 2025.07.31 |
백엔드 개발자의 모든 것: 역할, 기술, 커리어 가이드 (5) | 2025.07.31 |
국내 SI업체 10개사 최근 동향 (6) | 2025.07.27 |
U-City에서 스마트시티로 : 진화 과정과 차이점 비교 (8) | 2025.07.27 |