라즈베리파이 + Tapo

silver and green circuit board
Photo by Alessandro Oliverio on Pexels.com

와이파이(Wi-Fi/IP 네트워크) 또는 클라우드 API를 통해 제어합니다.

Tapo 스마트 플러그는 라즈베리파이와 블루투스로 직접 통신하여 전원을 껐다 켜는 구조가 아닙니다.

1. Tapo 작동 및 제어 방식

Tapo 장치는 초기에 스마트폰 앱으로 설정할 때만 블루투스(BLE)를 사용하고, 등록이 완료된 후에는 2.4GHz Wi-Fi 네트워크에 연결되어 동작합니다.

  • 네트워크 제어 (로컬 제어): 라즈베리파이 A와 Tapo 플러그가 같은 Wi-Fi(공유기)에 연결되어 있다면, 라즈베리파이가 공유기를 거쳐 Tapo의 로컬 IP로 제어 명령을 보냅니다.
  • 클라우드 제어: 외부 네트워크에 있더라도 TP-Link 클라우드 API를 거쳐 제어할 수 있습니다.

2. 라즈베리파이에서 Tapo 제어하는 방법

Python의 kasa 라이브러리(또는 PyP100 / tapo 라이브러리)를 사용하면 라즈베리파이에서 명령어 몇 줄로 간단하게 전원을 켜고 끌 수 있습니다.

Python 예시 코드 (kasa 라이브러리)

Python

import asyncio
from kasa import SmartPlug

async def main():
    # Tapo 플러그의 IP 주소 설정
    plug = SmartPlug("192.168.0.50")
    
    # 장치 정보 업데이트
    await plug.update()
    
    # 전원 켜기
    await plug.turn_on()
    print("전원이 켜졌습니다.")
    
    # 전원 끄기
    # await plug.turn_off()

asyncio.run(main())

💡 요약 및 팁

  • 연결 방식: 블루투스 (X) $\rightarrow$ Wi-Fi / 로컬 IP 통신 (O)
  • 설정 시 주의점: 라즈베리파이 A와 Tapo 스마트 플러그가 동일한 와이파이 네트워크(같은 공유기)에 접속되어 있어야 로컬에서 빠르고 안정적으로 제어할 수 있습니다.
  • IP 고정: 공유기 설정에서 Tapo 플러그의 IP 주소를 고정(DHCP Static IP)해 두면 라즈베리파이 스크립트가 끊이지 않고 잘 동작합니다.