sw

raspberry pi pico 2w watchdog 사용하기

mvsw 2025. 7. 31. 08:00

 

Edge 단에서 사용되는 장비들은 예측할 수 없는 변수로 인해서 전원이 끊기거나 인터넷이 끊기거나 하는 일이 발생한다. 

 

이런일이 있을때 자동으로 재부팅 되도록 하는 기능이 있는데 이게 WatchDog이다. 

(이름부터 뭐 하는 친구 일지 느낌이 빡 온다)

 

WatchDog자체는 아주아주 오래된 기능이지만 

 

Raspberry pi pico 2w 에서 아주 쉽게 사용할 수 있도록 되어 있다는 점이 너무 좋다.

 

from machine import Pin, WDT
wdt = WDT(timeout=8388)
wdt.feed()

 

사용방법은 위 3줄이 다라고 봐도 무방하다 

 

WDT(timeout=8388)은 8388ms 동안 wdt.feed()가 실행되지 않으면 자동으로 Device를 재부팅 하는 Watchdog instance를 반환한다는 의미이다. 

 

따라서 내가 실행하는 코드 항목마다 wdt.feed()를 넣어놓거나 반복문안에 넣어놓으면 된다. 

 

사용방법은 너무 간단해서 딱히 뭔가 더 설명할게 없을 것 같은데....

 

 

from machine import Pin, WDT
wdt = WDT(timeout=8388)
wdt.feed()

#--------------#
# Setting Code # 
#--------------#


# Loop Code
for i in range(1000):
   # Your Code
   wdt.feed()

 

 

이 정도로 보면된다. 

 

아주 쓰기 쉬워서 참 좋다.