Walabot 기반 화장실 위생 모니터
이 시스템은 카메라 없이 Walabot RF 센서로 변기가 깨끗한지, 현재 사용 중인지 판단합니다.
배경
중요성
더럽거나 물이 제대로 안 내려간 공중 화장실은 광범위한 위생 문제입니다. 카메라를 변기 내부에 설치할 수 없으므로, 사용자 입장 전 오염이나 점유를 감지할 대체 센싱 기술이 필요합니다.
Walabot 기술
Walabot은 프로그래머블 3D 이미징 센서로 무선 주파수 파를 사용해 광학 이미지 캡처 없이 환경 깊이 맵 생성. 여러 안테나 쌍에서 광대역 신호 송수신 분석으로 장애물 뒤 물체의 3D 표현 재구성—카메라가 비현실적인 실내 애플리케이션에 이상적.
변기에서의 작동 원리
센서는 변기 지붕에 장착. 초기화 시 깨끗한 변기 스캔. 이후 1분 간격 스캔으로 초기화 때 없던 새 객체(예: 대변) 감지. 초기 상태가 깨끗함으로 알려졌으므로 편차는 변기 사용됐거나 더 이상 깨끗하지 않음 의미. 감지된 객체까지 거리 측정으로 현재 점유 여부도 판단 가능.
시스템 아키텍처
완전한 솔루션은 다음 구성요소로 구성:
- Walabot 센서
- 라즈베리 파이 3(엣지 프로세서)
- Ubidots 클라우드 플랫폼(MQTT 데이터 업로드용)
- MIT App Inventor로 빌드한 안드로이드 앱(실시간 모니터링용)
라즈베리 파이가 Walabot 출력 읽고 객체 존재와 거리 평가, 상태를 MQTT로 Ubidots에 발행. 안드로이드 앱이 HTTP로 데이터 조회해 변기 청결/점유 여부 표시.
설치 및 설정 단계
- 라즈베리 파이에 Walabot SDK 설치
Sparkfun.com "Getting Started" 가이드 따라 SDK 설정.
- Paho MQTT 클라이언트 설치
파이에서 sudo pip install paho-mqtt 실행.
- Ubidots 가입
Ubidots.com 계정 생성, 디바이스 토큰과 ID 기록.
- Ubidots API 설치
파이에서 sudo pip install ubidots 실행.
- 파이썬 모니터링 스크립트 개발
스캔 파라미터 구성, 새 객체 식별, 상태 변수 Ubidots 전송. 예시 설정값: minInCm, maxInCm, resInCm = 30, 300, 3
minIndegrees, maxIndegrees, resIndegrees = -15, 15, 5
minPhiInDegrees, maxPhiInDegrees, resPhiInDegrees = -30, 30, 5
threshold = 2
감지 로직이 거리 임계값 기반으로 점유, 비점유-더러움, 깨끗 상태 구분.
- 안드로이드 앱 빌드
MIT App Inventor로 https://things.ubidots.com/api/v1.6/datasources/YOUR_OWN_DEVICE_ID/variables/?token=YOUR_OWN_TOKEN에서 데이터 가져와 변기 상태 표시하는 앱 생성(플레이스홀더 교체).
테스트 및 검증
배포 후 변기에 수동으로 객체 투입하며 안드로이드 기기 실시간 업데이트 관찰로 테스트. 파이썬 스크립트 감지 임계값 조정으로 작은 객체(예: 단일 대변) 신뢰적 식별, 배경 노이즈 무시.
핵심 코드 스니펫
if targets:
for i, target in enumerate(targets):
print(target.zPosCm)
if 100 < target.zPosCm < 180:
print("Toilet is engaged.")
engage_variable.save_value({'value':1})
elif 200 < target.zPosCm < 210:
print("Toilet is not engaged, not clean.")
engage_variable.save_value({'value':0})
clean_variable.save_value({'value':1})
else:
print("Toilet is not engaged and clean.")
engage_variable.save_value({'value':0})
clean_variable.save_value({'value':0})
break
else:
print('Not engaged and clean')
clean_variable.save_value({'value':0})
engage_variable.save_value({'value':0})
결론
Walabot의 비광학 이미징을 활용해 이 시스템은 공중 화장실 위생과 점유를 실시간 모니터링하는 신뢰할 수 있는 카메라 프리 솔루션을 제공합니다. 라즈베리 파이 엣지 컴퓨팅, Ubidots 클라우드 연결, 직관적 안드로이드 인터페이스 조합으로 높은 위생 기준을 추구하는 공공 시설과 기업에 간편한 배포 가능.