집에서 쉽게 만드는 Raspberry Pi IoT 프로젝트 5선

집에서 쉽게 만드는 Raspberry Pi IoT 프로젝트 5선

아래 5가지 프로젝트는 Raspberry Pi와 간단한 주변 기기를 활용해 집에서도 손쉽게 구현할 수 있는 IoT 예제입니다. 준비물, 설치 가이드, 코드 예제, 그리고 동영상 튜토리얼 링크를 통해 단계별로 따라 해보세요.


프로젝트 1: 스마트 보안 카메라 (MotionEyeOS)

준비물 목록

  • Raspberry Pi 3B+ 이상
  • MicroSD 카드 (32GB 이상)
  • Pi 카메라 모듈 또는 USB 웹캠
  • LAN 케이블 또는 Wi-Fi 동글
  • 전원 어댑터 (5V/3A)

단계별 설치 가이드

  1. MotionEyeOS 이미지 다운로드
    공식 GitHub에서 MotionEyeOS ARM 이미지를 받습니다.
  2. MicroSD 카드 굽기
    Raspberry Pi Imager 또는 Balena Etcher를 사용해 이미지를 SD 카드에 씁니다.
  3. 네트워크 설정
    카드의 /boot/ 파티션에 wpa_supplicant.conf 파일을 생성해 SSID/PSK를 입력합니다.
  4. 부팅 및 초기 설정
    SD 카드를 Pi에 장착 후 부팅하면 웹 인터페이스(포트 8765)가 활성화됩니다.
  5. 카메라 등록 및 스트림 확인
    브라우저에서 http://<Pi_IP>:8765에 접속해 카메라를 추가하고 모션 감지, 녹화 옵션을 설정합니다.

코드 예제

import requests

# 모션 감지 스냅샷 가져오기
url = "http://<Pi_IP>:8081"
resp = requests.get(url)
with open("snapshot.jpg", "wb") as f:
    f.write(resp.content)
print("스냅샷 저장 완료")

동영상 튜토리얼

IoT Raspberry Pi 4 Full Course Tutorial for Beginners in Python


프로젝트 2: AWS IoT 연동 실시간 데이터 전송

준비물 목록

  • Raspberry Pi 3B+ 이상
  • MicroSD 카드 (16GB 이상)
  • 온도·습도 센서 (DHT11/DHT22)
  • 점퍼 케이블
  • 인터넷 연결

단계별 설치 가이드

  1. AWS IoT Core 설정
    AWS 콘솔에서 ‘Thing’ 등록 후 정책(policy)과 인증서(certificate)를 생성합니다.
  2. 인증서 파일 복사
    .pem 인증서, 개인키, 루트 CA를 /home/pi/aws_iot/ 폴더에 복사합니다.
  3. 필요 라이브러리 설치
    sudo apt update && sudo apt install python3-pip
    pip3 install AWSIoTPythonSDK Adafruit_DHT
    
  4. Python 스크립트 작성
    아래 예제 코드를 참고해 센서 데이터를 MQTT로 전송합니다.
  5. 스크립트 실행 및 모니터링
    python3 send_iot.py를 실행한 뒤 AWS IoT 콘솔에서 메시지 수신 여부를 확인합니다.

코드 예제

import Adafruit_DHT
from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient

# 센서 설정
sensor = Adafruit_DHT.DHT11
pin = 4

# AWS IoT 설정
client = AWSIoTMQTTClient("raspiClient")
client.configureEndpoint("YOUR_ENDPOINT.amazonaws.com", 8883)
client.configureCredentials("root-CA.pem", "private.pem.key", "certificate.pem.crt")
client.connect()

humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
payload = {"temp": temperature, "hum": humidity}
client.publish("home/raspi/sensor", str(payload), 1)
print("데이터 전송:", payload)

동영상 튜토리얼

AWS IoT Core with Raspberry Pi4 Tutorial – Complete Guide


프로젝트 3: Azure IoT Hub 연결 온·습도 모니터

준비물 목록

  • Raspberry Pi 3B+ 이상
  • MicroSD 카드 (16GB 이상)
  • DHT11 또는 DHT22 센서
  • 점퍼 케이블
  • Azure 계정 및 IoT Hub

단계별 설치 가이드

  1. Azure IoT Hub 생성
    리소스 그룹 내에 IoT Hub를 만들고 디바이스를 등록해 연결 문자열(connection string)을 복사합니다.
  2. 라이브러리 설치
    sudo apt update
    pip3 install azure-iot-device Adafruit_DHT
    
  3. Python 코드 작성
    IoT Hub SDK를 사용해 센서 데이터를 전송하는 스크립트를 만듭니다.
  4. 스크립트 실행 테스트
    python3 azure_send.py로 메시지가 Azure 포털에 표시되는지 확인합니다.
  5. Stream Analytics 또는 Power BI 연동
    실시간 대시보드 구축을 위해 Stream Analytics 입력으로 데이터를 연결합니다.

코드 예제

import time
import Adafruit_DHT
from azure.iot.device import IoTHubDeviceClient

CONN_STR = "HostName=....azure-devices.net;DeviceId=raspi;SharedAccessKey=..."
client = IoTHubDeviceClient.create_from_connection_string(CONN_STR)

while True:
    hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 4)
    msg = '{{"temperature": {0:.1f}, "humidity": {1:.1f}}}'.format(temp, hum)
    client.send_message(msg)
    print("Sent:", msg)
    time.sleep(10)

동영상 튜토리얼

How to build IoT solutions using Azure IoT with Raspberry Pi – full course


프로젝트 4: 스마트 날씨 스테이션 (OpenWeatherMap + OLED)

준비물 목록

  • Raspberry Pi 3B+ 이상
  • MicroSD 카드 (8GB 이상)
  • I2C OLED 디스플레이 (0.96″)
  • DHT11 센서
  • 점퍼 케이블
  • OpenWeatherMap API 키

단계별 설치 가이드

  1. I2C 활성화
    sudo raspi-config에서 인터페이스 설정 → I2C 활성화 후 재부팅합니다.
  2. 필수 라이브러리 설치
    sudo apt update
    pip3 install adafruit-circuitpython-ssd1306 Adafruit_DHT requests
    
  3. API 호출 테스트
    requests 모듈로 OpenWeatherMap에 현재 날씨 데이터를 받아오는지 확인합니다.
  4. OLED 출력 코드 작성
    디스플레이에 온도·습도·기압 데이터를 순차적으로 그리도록 스크립트를 작성합니다.
  5. 시스템 서비스 등록
    부팅 시 자동 실행되도록 systemd 서비스로 등록합니다.

코드 예제

import time, requests, board, busio
from PIL import Image, ImageDraw, ImageFont
import adafruit_ssd1306, Adafruit_DHT

API_KEY = "YOUR_OWM_KEY"
CITY    = "Seoul,KR"
sensor  = Adafruit_DHT.DHT11
pin     = 4

i2c = busio.I2C(board.SCL, board.SDA)
disp = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c)
font = ImageFont.load_default()

while True:
    # 로컬 센서
    hum, temp = Adafruit_DHT.read_retry(sensor, pin)
    # 외부 API
    res = requests.get(f"http://api.openweathermap.org/data/2.5/weather?q={CITY}&appid={API_KEY}&units=metric").json()
    weather = res["weather"][0]["main"]
    # 디스플레이 그리기
    image = Image.new("1", (128, 64))
    draw  = ImageDraw.Draw(image)
    draw.text((0, 0), f"T:{temp:.1f}C H:{hum:.1f}%", font=font, fill=255)
    draw.text((0, 16), f"{weather}", font=font, fill=255)
    disp.image(image)
    disp.show()
    time.sleep(60)

동영상 튜토리얼

IoT Raspberry Pi 4 Full Course Tutorial for Beginners in Python


프로젝트 5: Home Assistant 기반 스마트 홈 허브

준비물 목록

  • Raspberry Pi 4 (4GB+)
  • MicroSD 카드 (32GB 이상)
  • Home Assistant OS 이미지
  • USB-Zigbee 동글 또는 Z-Wave 동글 (선택)
  • 전원 어댑터 (5V/3A)

단계별 설치 가이드

  1. Home Assistant OS 다운로드
    공식 사이트에서 Raspberry Pi 4용 이미지를 받습니다.
  2. 이미지 굽기
    Balena Etcher나 Raspberry Pi Imager로 SD 카드에 씁니다.
  3. 부팅 후 초기 설정
    http://homeassistant.local:8123에 접속해 계정을 생성합니다.
  4. 통합(Integration) 추가
    Zigbee, MQTT, Google Assistant 등 필요한 통합 기능을 설정합니다.
  5. 자동화(Automation) 작성
    대시보드에서 트리거·동작 조건을 정해 조명·스마트 플러그 연동 자동화를 만듭니다.

YAML 예제

automation:
  - alias: '퇴근 후 복도등 켜기'
    trigger:
      platform: state
      entity_id: device_tracker.my_phone
      to: 'home'
    action:
      service: switch.turn_on
      entity_id: switch.hall_light

동영상 튜토리얼

AWS IoT Core with Raspberry Pi4 Tutorial – Complete Guide


다섯 가지 프로젝트를 통해 센서 제어, 클라우드 연동, 디스플레이 출력, 스마트 홈 통합까지 다양한 IoT 경험을 쌓을 수 있습니다. 각 단계별 설명을 참고해 자신만의 확장 기능도 추가해 보세요!

 

댓글 남기기