[파이썬] IoT 활용한 스마트 환경 모니터링

소개

인터넷을 통해 연결된 사물들이 정보를 수집하고 교환하는 가장 핵심 개념인 IoT는 현재 많은 분야에서 활용되고 있습니다. 이 중에서도 스마트 환경 모니터링은 주변 환경을 모니터링하고 데이터를 수집하여 분석하는 기술입니다.

본 블로그에서는 Python을 사용하여 IoT를 활용한 스마트 환경 모니터링을 구현하는 방법을 알아보겠습니다. 스마트 환경 모니터링의 대표적인 예로는 실내 온도, 습도 모니터링이 있습니다. 이 예제를 통해 실제로 IoT 디바이스를 제어하고 데이터를 수집하는 방법을 알아보겠습니다.

요구사항

라이브러리 설치

pip install RPi.GPIO
pip install Adafruit_DHT

하드웨어 설정

  1. DHT11 센서의 피직연결 올바른 규칙을 확인하고 라즈베리 파이에 연결해주세요.
  2. 라즈베리 파이에 Python GPIO 라이브러리를 설치해주세요.

코드 작성

import Adafruit_DHT
import time

# 온습도 센서의 타입과 핀 번호 설정
sensor = Adafruit_DHT.DHT11
pin = 4

while True:
    # 온습도 값을 읽어옴
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    
    # 값이 제대로 읽어와지지 않은 경우 예외 처리
    if humidity is not None and temperature is not None:
        print('온도={0:0.1f}도 / 습도={1:0.1f}%'.format(temperature, humidity))
    else:
        print('오류 발생')

    # 10초마다 값을 측정
    time.sleep(10)

코드 설명

  1. Adafruit_DHT 라이브러리를 사용하여 온/습도 센서를 제어합니다.
  2. sensor 변수를 통해 사용하는 센서의 타입을 설정합니다. (DHT11, DHT22 등)
  3. pin 변수를 통해 센서가 연결된 GPIO 핀 번호를 설정합니다.
  4. while 루프에서 온/습도 값을 읽어와서 출력합니다. Adafruit_DHT.read_retry() 함수를 사용하여 센서 값이 올바로 읽혀지도록 합니다.
  5. humiditytemperature 변수로 읽어온 값들을 저장합니다.
  6. 정상적으로 값이 읽어와진 경우, 온도와 습도를 출력합니다.
  7. 값이 올바로 읽어와지지 않은 경우 오류 발생을 출력합니다.
  8. time.sleep() 함수를 사용하여 10초마다 값을 측정하도록 합니다.

실행

위의 코드를 실행하기 전에 모든 요구사항이 충족되었는지 확인해주세요. 코드를 실행하면 온/습도 값을 출력하는 것을 확인할 수 있습니다. 이러한 방식으로 온/습도 값을 주기적으로 측정하여 데이터베이스에 저장하거나 웹 서버에 전송할 수 있습니다.

이처럼 Python을 활용하여 IoT를 구현하면 다양한 환경 모니터링을 자동화할 수 있고, 데이터를 분석하여 스마트한 결정을 내릴 수 있습니다. IoT의 발전으로 우리의 일상은 더욱 편리하고 스마트해질 것입니다.