볼트 IoT 기반 실시간 수위 모니터링 및 알림 시스템
부품 및 소모품
부품 수량 비고
Bolt IoT Bolt WiFi 모듈 1 메인 IoT 컨트롤러
아두이노 UNO 1 센서 인터페이스용
초음파 센서 HC-SR04 1 수위 측정용
USB-A to Micro-USB 케이블 1 전원 및 데이터 통신
점퍼 와이어 1세트 연결용
앱 및 온라인 서비스
Bolt IoT Bolt Cloud
아두이노 IDE
Integromat (현 Make)
프로젝트 소개
소개
방갈로르에서 몇 년 살았다면 홍수에 익숙할 것입니다. 매년 장마철이면 아파트 지하 주차장에 물이 차서 오토바이 시동조차 걸 수 없습니다. 더 나쁜 건 물이 빠진 후 수리하러 정비소에 가야 한다는 점이죠. 올해는 그냥 당하지 않기로 했습니다. 주차장 침수 시 알림을 주는 수위 모니터링 시스템을 직접 만들었습니다.
같은 시스템을 구축하는 방법을 소개합니다.
필수 라이브러리 설치
여기 와 여기 에서 BoltIoT-Arduino-Helper 라이브러리(BoltIoT 제공)와 초음파 라이브러리(Erick Simoes 제공)를 다운로드하세요.
아두이노 IDE에서 '스케치' → '라이브러리 포함' → '.ZIP 라이브러리 추가...'를 선택하고 다운로드한 폴더에서 라이브러리를 선택해 설치하세요.
아두이노 코드 업로드
아두이노 IDE를 여세요.
본문 하단의 아두이노 코드를 복사해 스케치에 붙여넣으세요.
'Ctrl+S'(윈도우/우분투) 또는 'Cmd+S'(맥)로 저장하세요.
도구 → 보드에서 'Arduino/Genuino Uno'를 선택하세요.
USB 케이블로 아두이노 또는 볼트두이노를 PC에 연결하세요.
도구 → 포트에서 'Arduino/Genuino uno'가 붙은 포트를 선택하세요.
'업로드' 버튼을 클릭하세요.
하드웨어 설정
아래 프리칭 다이어그램대로 연결하세요.
참고: '>'를 클릭하면 볼트두이노 사용 시 배선도를 볼 수 있습니다.
볼트두이노를 사용하면 볼트 WiFi 모듈이 직접 장착되어 배선이 더 간단합니다.
센서가 바닥을 향하도록 장착하세요. 물이 고이는 곳을 향하게 합니다.
주의: 감지 임계값은 항상 센서 높이보다 작습니다.
9V 또는 12V DC 어댑터로 전원을 공급하세요.
참고: 볼트 설정이 안 되어 있다면 여기 의 설정 단계를 따르세요.
Integromat 시나리오 설정으로 이메일 알림 보내기
Integromat 계정이 없다면 여기 에서 가입하세요. 이미 계정이 있다면 로그인하세요.
내가 만든 '수위 감지' 시나리오를 복제하는 단계입니다.
본 프로젝트 코드 섹션에 첨부된 'WaterLevelDetection.json' 블루프린트 파일을 다운로드하세요.
우측 상단의 'Create a new scenario' 버튼을 클릭하고 계속하기를 누르세요.
화면 하단의 'more' 버튼을 클릭하세요.
'Import Blueprint'를 선택하고 'Choose file'을 클릭하세요.
다운로드한 'WaterLevelDetection.json' 파일을 선택하고 열기 → 저장을 누르세요. 시나리오가 로드됩니다.
시나리오 이름을 'Water Level Detection'으로 변경하세요.
시나리오 구성 단계
여기 에서 Bolt Cloud API 키를 발급받으세요. 아래 이미지는 API 키 활성화 및 복사 방법입니다.
Integromat 시나리오로 돌아가 첫 번째 BoltIoT 버블을 클릭하고 'add' 버튼을 누르세요.
복사한 API 키를 붙여넣고 'continue'를 클릭하세요.
디바이스 이름을 추가하세요. 볼트 WiFi 모듈의 디바이스 이름은 여기 에서 확인할 수 있습니다. 확인을 누르세요.
두 번째, 세 번째 BoltIoT 버블에서는 드롭다운에서 'My Bolt Connection'을 선택하고 각각 올바른 디바이스 이름을 입력하세요.
수학 버블을 클릭하고 값 100을 센서 설치 높이(cm)로 변경하세요. 확인을 누르세요.
수학 버블과 Gmail 버블 사이의 빨간 점을 클릭하고, 60을 알림을 받고 싶은 수위 높이(cm)로 변경하세요. 확인을 누르세요.
Gmail 버블을 클릭하고 편집 버튼을 누르세요.
본인 이메일 주소를 입력하고 확인을 누르세요.
'Add' → 'Continue'를 누르고 Integromat의 Gmail 접근을 허용하세요.
수신자를 더 추가하려면 'Add a recipient' 버튼을 이용하세요. 확인을 누르세요.
회로에 전원이 연결되고 센서 앞에 장애물이 없는지 확인한 후 'Run' 버튼을 누르세요. 시나리오가 실행되어 필터 단계(생각 말풍선의 '1')에서 대기합니다. 센서 앞에 손을 대고 실행하면 Gmail 버블까지 진행되어 이메일이 발송됩니다.
'off' 옆 버튼을 눌러 'on'으로 변경하세요. 이제 시나리오가 15분마다 자동 실행되며, 설정된 수위 이상 상승 시 알림을 받습니다.
시스템 장착
센서가 바닥을 향하도록 장착하고, 시스템에 전원을 공급한 뒤 볼트가 WiFi를 통해 지속적으로 인터넷에 접속할 수 있게 하세요.
활용 분야
주차장 침수 감지
물탱크 만수/공수 알림
바닷가 주택의 고조 감지
볼트 기반 추가 프로젝트
볼트로 다른 프로젝트를 만들고 싶다면:
볼트 시작하기: 온도 모니터링 시스템
홈 오토메이션
코드
초음파 HC-SR04를 이용한 수위 감지 시스템 (C/C++)
#include <Ultrasonic.h>
#include <BoltIoT-Arduino-Helper.h>
#define ULTRASONIC_TRIG_PIN 12
#define ULTRASONIC_ECHO_PIN 13
Ultrasonic ultrasonic(ULTRASONIC_TRIG_PIN, ULTRASONIC_ECHO_PIN);
int distance = 0;
String getDistance(String *arguments) {
distance = ultrasonic.read();
String returnString = "" + String(distance);
return returnString;
}
void setup() {
boltiot.begin(Serial);
boltiot.setCommandString("RD\r", getDistance);
boltiot.setCommandString("GetDistance", getDistance);
}
void loop() {
boltiot.handleCommand();
}
WaterLevelDetection (JSON) - Integromat 시나리오 블루프린트
Integromat용 시나리오 블루프린트 JSON 파일입니다. 프로젝트 파일 저장소에서 다운로드하세요.
회로도