집에서 쉽게 만드는 Raspberry Pi IoT 프로젝트 5선
아래 5가지 프로젝트는 Raspberry Pi와 간단한 주변 기기를 활용해 집에서도 손쉽게 구현할 수 있는 IoT 예제입니다. 준비물, 설치 가이드, 코드 예제, 그리고 동영상 튜토리얼 링크를 통해 단계별로 따라 해보세요.
프로젝트 1: 스마트 보안 카메라 (MotionEyeOS)
준비물 목록
- Raspberry Pi 3B+ 이상
- MicroSD 카드 (32GB 이상)
- Pi 카메라 모듈 또는 USB 웹캠
- LAN 케이블 또는 Wi-Fi 동글
- 전원 어댑터 (5V/3A)
단계별 설치 가이드
- MotionEyeOS 이미지 다운로드
공식 GitHub에서 MotionEyeOS ARM 이미지를 받습니다. - MicroSD 카드 굽기
Raspberry Pi Imager 또는 Balena Etcher를 사용해 이미지를 SD 카드에 씁니다. - 네트워크 설정
카드의/boot/
파티션에wpa_supplicant.conf
파일을 생성해 SSID/PSK를 입력합니다. - 부팅 및 초기 설정
SD 카드를 Pi에 장착 후 부팅하면 웹 인터페이스(포트 8765)가 활성화됩니다. - 카메라 등록 및 스트림 확인
브라우저에서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)
- 점퍼 케이블
- 인터넷 연결
단계별 설치 가이드
- AWS IoT Core 설정
AWS 콘솔에서 ‘Thing’ 등록 후 정책(policy)과 인증서(certificate)를 생성합니다. - 인증서 파일 복사
.pem
인증서, 개인키, 루트 CA를/home/pi/aws_iot/
폴더에 복사합니다. - 필요 라이브러리 설치
sudo apt update && sudo apt install python3-pip pip3 install AWSIoTPythonSDK Adafruit_DHT
- Python 스크립트 작성
아래 예제 코드를 참고해 센서 데이터를 MQTT로 전송합니다. - 스크립트 실행 및 모니터링
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
단계별 설치 가이드
- Azure IoT Hub 생성
리소스 그룹 내에 IoT Hub를 만들고 디바이스를 등록해 연결 문자열(connection string)을 복사합니다. - 라이브러리 설치
sudo apt update pip3 install azure-iot-device Adafruit_DHT
- Python 코드 작성
IoT Hub SDK를 사용해 센서 데이터를 전송하는 스크립트를 만듭니다. - 스크립트 실행 테스트
python3 azure_send.py
로 메시지가 Azure 포털에 표시되는지 확인합니다. - 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 키
단계별 설치 가이드
- I2C 활성화
sudo raspi-config
에서 인터페이스 설정 → I2C 활성화 후 재부팅합니다. - 필수 라이브러리 설치
sudo apt update pip3 install adafruit-circuitpython-ssd1306 Adafruit_DHT requests
- API 호출 테스트
requests
모듈로 OpenWeatherMap에 현재 날씨 데이터를 받아오는지 확인합니다. - OLED 출력 코드 작성
디스플레이에 온도·습도·기압 데이터를 순차적으로 그리도록 스크립트를 작성합니다. - 시스템 서비스 등록
부팅 시 자동 실행되도록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)
단계별 설치 가이드
- Home Assistant OS 다운로드
공식 사이트에서 Raspberry Pi 4용 이미지를 받습니다. - 이미지 굽기
Balena Etcher나 Raspberry Pi Imager로 SD 카드에 씁니다. - 부팅 후 초기 설정
http://homeassistant.local:8123
에 접속해 계정을 생성합니다. - 통합(Integration) 추가
Zigbee, MQTT, Google Assistant 등 필요한 통합 기능을 설정합니다. - 자동화(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 경험을 쌓을 수 있습니다. 각 단계별 설명을 참고해 자신만의 확장 기능도 추가해 보세요!