소음을 알려주는 Bird eye
우리 학교에는 각 단과대학마다 ‘PBL Open Space’라는 공간이 조성되어 있다. 이러한 공간은 기존의 칙칙하고 협소한 독서실에서 보다 확장된 공간으로, 공부뿐만 아니라 팀 프로젝트 회의도 가능하며 잠시 쉬어 갈 수 있도록 마련된 공간이다. 이처럼 다양한 역할을 수행하는 공간이다 보니 약간의 소음은 허용되지만 이로 인해 일부 사용자들은 불편을 느끼기도 한다. 애초에 소음 수준에 대한 기준이 모호할 뿐만 아니라, 오픈스페이스에 관리자가 상주하고 있는 것이 아니기 때문에 소음이 발생한다고 해도 소음을 발생시키는 사용자들에게 특별히 제재를 가할 방법이 없다. 그래서 우리는 이 문제를 해결하기 위해 소음을 감지하고 일정 기준치에 따라 반응하고 그 수준과 경고의 의미를 나타내는 전등을 만들기로 했다.
4조 RGB Helper 생맥/색약인을 위한 색깔 자동 표시장치 세바세찬
6조 해바라기 도심 그늘막 Sunflower Wizard 20
10 전동보드 안전을 위한 스마트 헬멧 - 이 구역 짱은 나야
2.1 아이디어
‘Bird-eyed’는 형용사로 ‘눈치가 빠른’이라는 뜻을 가지고 있는 영단어이다. 우리는 이로부터 아이디어를 얻어서 ‘소음을 내는 이용자에게 조용히 경고(눈치)를 준다’라는 의미로 새 모양의 소음 감지 장치를 만들기로 하였다. 먼저 여러 구역에 소음 감지 장치를 설치한 후 전원을 연결시키면 이 장치에 장착되어 있는 사운드 센서를 이용해 소음을 감지한다. 소음이 우리 정한 일정 수준에 다다르면 LED에 빛을 내고 그 정보를 중앙으로 보내 어느 위치에서 어느 정도의 소음이 발생하였는지 LCD로 출력하는 제품을 만들기로 하였다.
2.2 사용한 부품
* Arduino Nano 33 BLE Sense
* Sound sensor
LCD
위 사진은 우리가 제작한 3개의 BIRD EYE 중 한 제품이다. 새 모양의 철쇠로 만들어진 모형물에 한지를 붙여서 빛이 새어 나올 수 있도록 했다. 내부에 Arduino Nano 33 BLE Sense와 Sound Sensor, LED가 연결된 채 삽입되어 있다. 중앙 PC 쪽에서는 BIRD EYE들로부터 소음에 대한 정보를 전달받아 LCD에 나타낸다. 위 상태는 우리가 설정한 수준 이상의 소음이 발생하여 사용자에게 경고를 주기 위해 LED가 빛을 내고 있는 모습이다.
문제점과 해결 방안
각각의 구역에 위치한 BIRD EYE(소음감지장치)에서 감지한 소음 정보를 중앙의 LCD로 출력하기 위해서 중앙의 아두이노 우노로 정보를 전달해야 하는데 이를 위한 수단으로 블루투스를 이용하려고 했었다. 그러나 블루투스로 정보를 전송하는 방법을 찾아내지 못해서 결국 이번 프로젝트 기간 내에 이 문제를 해결하지 못했다. 프로젝트 종료 후 우리가 생각해본 해결책은 아두이노 우노가 아닌 휴대폰으로 블루투스 연결을 하면 보다 편리하게 휴대폰을 통해 소음 수준을 알 수 있을 뿐만 아니라 더 나아가 휴대폰으로 LED의 밝기, 색상 조절 등 세부적인 기능들도 추가할 수 있을 것 같다.
4.2 기대효과
BIRD EYE를 오픈 스페이스에 도입함으로써 별도의 노동이나 소란 없이 소음을 발생시킨 본인에게 소음 수준을 인지시킬 수 있다. 따라서 다른 사용자와의 마찰 없이 원활한 공간 사용이 가능할 것이라고 예상한다. 우리는 간단하지만 실용적이면서 사용 범위를 확대시킬 수 있는 제품을 만들고자 했다. 이 제품은 소음의 기준을 다르게 결정하는 등 간단한 코드 수정만 해주면 오픈 스페이스뿐만 아니라 스터디 카페, 도서관 등 각 장소에 걸맞게 적용될 수 있는 제품이라고 생각한다. 또한 미적인 부분에 있어서도 충분한 가치를 가질 수 있는 제품이라고 생각하기 때문에 인테리어 소품으로 기능할 수 있을 것이라고 예상한다.
전체 실행 코드
void setup()
{
Serial.begin(9600); // serial 초기화
pinMode(ss, INPUT); // 입력 설정
for (int i=0 ;i<3; i++)
{
pinMode(led[i],OUTPUT); // 출력 설정
}
}
void loop()
{
if(analogRead(ss) >= th) // 사운드 센서 값이 감도보다 클 경우 작동
{
digitalWrite(led[2],HIGH);
delay(200);
digitalWrite(led[2],LOW);
}
}
* LCD 실행 코드
#include <LiquidCrystal_I2C.h>
const int lcdAddress = 0x27; // 자신의 Device 의 주소를 입력
const int lcdColumns = 20; // 가로 길이 (열)
const int lcdRows = 4; // 세로 길이 (행)
long randNumber1;
long randNumber2;
long randNumber3;
LiquidCrystal_I2C lcd(lcdAddress, lcdColumns, lcdRows);
void setup() {
Serial.begin(9600);
randomSeed(analogRead(0));
lcd.init();
lcd.clear();
lcd.backlight();
lcd.print("ROOM1:");
lcd.setCursor(0,1);
lcd.print("ROOM2:");
lcd.setCursor(0,2);
lcd.print("ROOM3:");
}
void loop() {
randNumber1 = random(500,600);
Serial.println(randNumber1);
lcd.setCursor(6,0);
lcd.print(randNumber1);
lcd.setCursor(9,0);
lcd.print("dB");
randNumber2 = random(500,600);
Serial.println(randNumber2);
lcd.setCursor(6,1);
lcd.print(randNumber2);
lcd.setCursor(9,1);
lcd.print("dB");
randNumber3 = random(500,600);
Serial.println(randNumber3);
lcd.setCursor(6,2);
lcd.print(randNumber3);
lcd.setCursor(9,2);
lcd.print("dB");
lcd.setCursor(0,3);
lcd.print("ROOM");
if(randNumber1>randNumber2){
if(randNumber1>randNumber3) {
lcd.setCursor(4,3);
lcd.print("1 is Noisy!");
}
}
if(randNumber2>randNumber1) {
if(randNumber2>randNumber3) {
lcd.setCursor(4,3);
lcd.print("2 is Noisy!");
}
}
if(randNumber3>randNumber1) {
if(randNumber3>randNumber2) {
lcd.setCursor(4,3);
lcd.print("3 is Noisy!");
}
}
delay(1000);
}
'메이커 Maker' 카테고리의 다른 글
인체감지 센서 아크릴에 장착하는 방법 (0) | 2022.05.04 |
---|---|
색맹, 색약인을 위한 색깔 자동 표시장치 RGB Helper (0) | 2022.05.03 |
납땜 보조 도구 Soldering helping hand TE-802 (0) | 2022.04.27 |
혼술용 소맥 자동 제조기 SEOLU (0) | 2022.04.27 |
창문청소 로봇 작품 개발 완료 보고서 (0) | 2022.04.20 |
시각 장애인 횡단보도 안전 지킴이 (0) | 2022.04.18 |
음식을 직접 테이블로 배달하는 비대면 서비스 로봇 "도비" (0) | 2022.04.14 |
지하철 임산부 좌석 보호 시스템 (0) | 2022.04.12 |
더욱 좋은 정보를 제공하겠습니다.~ ^^