DOI QR코드

DOI QR Code

Development of System for Drunk Driving Prevention using Big Data in IoT environment

IoT 환경에서 빅데이터를 활용한 음주 운전 방지 시스템 개발

  • 신동진 (안양대학교 컴퓨터공학과) ;
  • 황승연 (안양대학교 컴퓨터공학과) ;
  • 김정준 (안양대학교 소프트웨어학과)
  • Received : 2022.08.16
  • Accepted : 2022.12.09
  • Published : 2022.12.31

Abstract

Even after the drunk driving law was revised through the Yoon Chang-ho Act in 2019, the proportion of habitual offenders among all drunk drivers in 2021 was 4.7%, up 0.5% from 2018. In addition, drunk driving is not easily stopped due to the addiction of alcohol, and there is a high probability of recidivism in accidents as it is often driven again. Therefore, in this paper, to prevent this, when alcohol is measured using its own sensor rather than a manual police measure, the vehicle stops and related data such as the current location and time are automatically saved. Since it is not possible to develop directly on the car, this system was developed by converging various technologies and sensors such as Arduino board, Firebase, and GPS based on the IoT environment in consideration of the simulation environment.

2019년 윤창호법을 통해 음주 운전 법 개정 후에도 전체 음주 사고 운전자 중 재범 점유율은 2021년 4.7%로 나타나 2018년 대비 0.5% 증가했다. 거기다 음주 운전은 알코올의 중독성으로 인해 쉽게 끊지 못하고, 다시 운전하는 경우가 많아 사고의 재범 확률이 매우 높다. 따라서 본 논문에서는 이를 방지하고자 알코올을 수동으로 경찰관이 측정하는 방법이 아닌 자체적인 센서를 이용하여 알코올이 측정되면, 자동차의 시동이 멈추게 되고, 현재 위치와 시간과 같은 관련 데이터들을 자동으로 저장한다. 직접 자동차에 개발을 할 수 없으므로 시뮬레이션 환경을 고려하여 본 시스템은 IoT 환경을 기반으로 아두이노 보드와 Firebase, GPS 등 다양한 기술과 센서를 융합하여 개발되었다.

Keywords

Ⅰ. 서론

지난 3년간 음주 운전으로 인해 약 25만 명의 면허가 취소된 것으로 나타나고, 음주 운전 재범자들의 점유율조차 증가한 실정이다. 삼성화재 부설 삼성교통안전문화연구소는 ‘음주 운전 재범 실태 및 음주 시동 잠금장치 도입 필요성’ 보고서를 발표했다. 최근 4년(2018~2021년) 음주 운전 교통사고를 두 번 이상 발생한 운전자는 1197명이었다. 지난 2019년 윤창호법 개정 후에도 전체 음주사고 운전자 중 재범자 점유율은 2021년 4.7%로 나타나, 2018년 4.2% 대비 0.5%포인트 증가한 것으로 분석됐다. 2021년 12대 중과실 사고 중 음주 운전 사고 재범률은 4.7%로 다음으로 높은 신호위반 사고(1.8%), 중앙선 침범 사고(0.9%)에 비해 각각 2.6배, 5.2배 높은 수준에 해당한다[1].

삼성교통안전문화연구소 유상용 책임연구원은 “음주운전 행위는 다른 교통법규 위반과 달리 제어가 어려운 중독성이라는 특성이 있어 단기적 처벌만으로는 근절하기 어렵기 때문에 지속적인 음주 운전 단속뿐만 아니라 시스템적으로 사전에 운전 자체를 차단 할 수 있는 방안을 마련해야 한다”고 말했다[2].

따라서 본 논문에서는 사회적 이슈 중 음주 운전을 예방하기 위한 방안인 음주 운전 시동 잠금장치를 위해 IoT를 활용하여 음주 운전을 방지할 수 있는 시스템을 제안한다. 음주 운전 시동잠금장치의 시뮬레이션 환경을 위해 아두이노를 활용한 IoT 환경 기반 자동차 모형을 우선 구상했다.

주요 개발 과정은 첫 번째, 아두이노 Mega ADK에 여러 부품을 연결하고, Node MCU는 아두이노 Mega ADK 간에 I2C 통신으로 정보를 전송받아 음주 측정량, 위치, 시동 여부를 Firebase로 전송한다. Firebase로 해당 사용자의 정보를 확인할 수 있으며 앱으로도 해당 정보를 확인할 수 있다. 두 번째, 스마트 키로 시동을 걸었을 때, 센서가 알코올을 감지하면 자동차의 운전 관련 기능만을 차단한다. 스마트 키는 버튼스위치와 터치 센서로 제작하였고, 알코올 측정은 MQ-3 센서가 수행하며, DC 모터도 장비하여 실시간으로 운전 여부를 확인할 수 있다. 알코올 측정이 감지되면 액티브 버저가 울리며 신호등 모듈이 붉은색으로 유지되고, GPS 모듈로 위치 정보를 전송할 수가 있다. 마지막으로 정보가 저장된 Node MCU에서 Firebase로 해당 운전자의 정보가 전송되면, 해당 운전자의 음주 측정량과 정보를 실시간으로 확인할 수 있다. 즉, 음주 측정이 감지되어 운전 관련 기능이 정지되었고, 해당 운전자의 위치 정보와 음주 측정량을 확인하여 신속하게 대응할 수 있다.

Ⅱ. 관련 연구 및 기술

1. 관련 연구

가. 무선 통신이 가능한 음주 측정 시스템

무선 통신이 가능한 음주 측정 시스템은, 금속산화물 저항체와 나노물질로 이루어진 전극과, 금속산화물 저항체로 이루어진 채널을 포함하는 센싱 모듈과, 상기 센싱 모듈과 연결되어 스마트 단말기와 무선 통신하는 통신 모듈을 개발했다. 따라서 음주 측정 결과를 스마트 단말기를 통해 확인이 가능하기 때문에 보다 편리하게 사용할 수 있다. 또한, 스마트 단말기에서 음주 측정 결과에 대한 데이터의 누적 및 관리가 가능하여, 장기적으로 음주 습관을 조절할 수 있다. 그리고 채널을 금속산화물 저항체로 구성함으로써, 알코올 기반의 가스에 노출시 전류 변화를 측정하여 알코올 농도를 측정할 수 있기 때문에, 사용자가 용이하게 알코올 농도의 측정이 가능한 이점이 있다[3].

나. 지문 인식을 통한 음주 측정 시동장치

지문 인식 음주 측정 시동장치는 지문 인식을 통한 음주 측정 시동장치를 개발하여 손가락 지문으로 누를 수 있게 원형으로 형성된 시동장치 몸체와 상기 시동장치몸체 중심에 혈중 알코올 농도를 측정할 수 있게 지문인식 장치로 구성하여서, 지문인식을 통한 음주측정 시동장치를 이용하여 몸에 전류를 흘러 보내 혈중의 알코올 농도를 측정하여 음주 운전을 예방한다[4].

다. 차량용 음주 시동 방지 시스템

차량용 음주 시동 방지 시스템은 스마트키를 소지한 운전자가 차량의 운전석에 착석하면 착석상태를 감지하여 차량의 시동을 걸 수 없도록 하는 방안으로 강제 음주측정 방식을 통해 비정상 상태인 경우 시동을 걸 수 없도록 하여 음주 운전을 원천 차단할 수 있다. 또한, 스마트키의 기능 또는 설계변경 없이도 음주자의 시동 방지 기능을 구현할 수 있어 기존의 스마트키를 그대로 사용 가능해 차량용 음주 시동 방지 기능 구현을 위한 시스템 구축 비용을 절감할 수 있다[5].

2. 관련 기술

가. Arduino

아두이노는 마이크로컨트롤러를 사용하여 개발된 개발자 전용 보드이다. 사용하는 마이크로컨트롤러는 ATMega 328P로 16MHz로 동작하고, 프로그램 저장용 플래시 32KB를 내장한 프로세서를 가지고 있다. 따라서 아두이노는 C 언어 기반 프로그래밍을 통해 쉽고, 간단한 프로그래밍 개발환경이 지원되고, 다양한 운영 체제가 지원되며, 저럼한 가격으로 오픈 소스 기반 소프트웨어 및 하드웨어인 다양한 센서를 내부의 모듈과의 연결 통합을 통해 개발 보드를 완성할 수 있다. 아두이노는 아두이노 전용 개발 도구(IDE)를 통해 센서 동작에 필요한 라이브러리 및 패키지를 사용자가 직접 설치하여 사용할 수 있다[6].

나. Firebase

Firebase는 2011년 자체 회사에서 개발하고, 2014년 구글에 인수되어 모바일 및 웹 애플리케이션 개발 플랫폼으로 사용가능하다. 운영체제에 상관없이 앱을 개발 할 때 사용가능한 개발 도구로써 앱 개발 기간을 단축시켜주고, 개발 난이도를 낮출 수 있다. 또한, 주요 기능으로는 SSO(Single Sign On) 방식의 인증 절차를 통해 회원가입에 대한 서비스를 쉽게 개발할 수 있고, 무엇보다 실시간 데이터베이스를 지원하기 때문에 서버와 클라이언트 사이의 데이터를 실시간으로 동기화할 수 있다[7].

Ⅲ. 시스템 소개

1. 전체 시스템 구성도 및 주요 시나리오

본 연구에서 개발된 IoT를 활용한 음주 운전 방지 시스템의 시스템 구성도는 그림 1과 같다.

OTNBBE_2022_v22n6_69_f0001.png 이미지

그림 1. IoT를 활용한 음주 운전 방지 시스템 구성도

Fig. 1. Diagram of drunk driving prevention system using IoT

그림 1은 IoT를 활용한 음주 운전 방지 시스템의 시스템 구성도 및 시나리오의 모습이다. 알코올 측정량에 따른 알코올 측정 검지 결과를 단계적으로 표현하여 소량의 알코올로 운전하다가 큰 사고로 이어지는 사례가 지금도 계속되고 있기 때문에 알코올이 조금이라도 감지되면 붉은색 LED가 나타나도록 구상했다. 노란색 LED 일 때, 시동 버튼을 누를 시에 붉은색 LED로 변하며 경고음이 울리는 동시에 모터가 정지되고, 관련 데이터는 아래의 시나리오에 있는 Firebase로 전송된다.

그림 2는 Firebase를 활용한 데이터 전송 시나리오 모습을 보여준다. 개발 보드인 아두이노 Mega ADK에 있는 정보가 Node MCU로 전송이 되고, 정보를 받은 Node MCU는 파이어 베이스에 전송이 되어 실시간으로 사용자의 음주 측정 여부를 확인할 수 있다. 아두이노Mega ADK와 NodeMCU는 I2C 통신을 활용하여 데이터를를 주고받을 수 있도록 구현했다. 또한, 사용자는 앱을 통해 이름, 차량 고유 번호, 운전 시동 여부, 해당 날짜를 Firebase에 저장된 데이터를 수신하여 확인할 수 있다.

OTNBBE_2022_v22n6_69_f0002.png 이미지

그림 2. Firebase 데이터 전송 시나리오

Fig. 2. Firebase Data Transfer Scenarios

2. 핵심 주요 기능 개발

가. 알코올 측정 기능

그림 3은 알코올 측정 기능을 위해 MQ-3 센서와 알코올 측정량에 따라 LED를 발산하는 전구의 연결 회로도 모습이다. MQ-3 센서는 알콜, 에탄올을 측정할 수 있는 감도 조절부를 가지고 있어 센서 자체의 민감도를 조절할 수 있어 시계 방향으로 회전하면 민감도를 낮춰주고, 반시계 방향으로 회전하여 민감도를 올릴 수 있다. 본 연구에서는 좌측인 시계방향 20°로 회전하여 민감도를 조절했다. 그리고 신호등 센서를 통해 알코올 측정 수치에 따라 빨간색, 노란색, 초록색으로 LED를 표현된다.

OTNBBE_2022_v22n6_69_f0003.png 이미지

그림 3. 알코올 측정 기능 핀 연결 회로도

Fig. 3. Alcohol measurement function pin connection schematic

그림 4는 그림 3의 알코올 측정 기능을 개발한 핵심 소스코드를 보여준다. MQ-3 센서핀을 아두이노 보드의 A8핀에 연결하고, void setup() 함수에서 아두이노 보드와 PC간의 통신 속도를 설정했다. 그리고 void loop()함수를 통해 센서값이 400이면 운전이 불가능한 수치로 판단하여 전구의 LED가 빨간색으로 표현된다. 그리고 센서값이 200 이상, 400 미만이면, 전구의 LED가 노란색으로 표현되고, 센서값이 200 미만이면, 전구의 LED가 초록색으로 표현된다.

OTNBBE_2022_v22n6_69_f0004.png 이미지

그림 4. 알코올 측정 기능 핵심 소스코드

Fig. 4. Alcohol measurement function core source code

나. I2C 통신 기능

그림 5는 아두이노를 활용하여 Node MCU와 I2C 통신을 위한 연결 회로도 모습이다. I2C 통신은 여러 개의 보드에 고유의 아이디를 부여해 직접 통신이 가능하도록 만든 통신 방식으로 최소한의 입출력 핀(SDA, SCL)으로만 사용하여 양방향 통신이 가능하다. 아두이노를 제외한 다른 보드를 이용할 경우 관련 공식 문서를 통해 해당보드의 SDA, SCL 핀이 몇 번 핀인지 확인하고, 해당 핀에 연결이 필요하다.

OTNBBE_2022_v22n6_69_f0005.png 이미지

그림 5. 아두이노 I2C 통신 핀 연결 회로도

Fig. 5. Arduino I2C communication pin connection circuit diagram

그림 6은 그림 5의 I2C 통신을 위해 개발된 핵심 소스코드 모습을 보여준다. 그림 6의 좌측은 Node MUC I2C 통신 소스코드로 아두이노에서 센서로 보내는 역할이다. 관련된 Wire.h 헤더를 통해 관련된 함수 및 메소드를 사용할 수 있다. 데이터 통신에는 requestFrom 함수를 통해 연결된 주소에 메시지의 byte를 요청하는 방법으로 통신한다. 그림 6의 우측은 아두이노 보드 통신소스코드로 센서에서 아두이노로 보내는 역할이다. 동일하게 관련된 Wire.h 헤더를 통해 관련된 함수 및 메소드를 사용할 수 있다. 데이터를 읽을 때는 Wire의 write 함수를 통해 데이터를 수신할 수 있다.

OTNBBE_2022_v22n6_69_f0006.png 이미지

그림 6. 아두이노 I2C 통신 핵심 소스코드

Fig. 6. Arduino I2C communication core source code

다. GPS 기능

그림 7은 Firebase에 데이터를 저장할 때 사용되는 필드 값 중 하나인 현재 위치를 저장하기 위한 연결 회로도 모습이다. 센서의 데이터 전송을 담당하는 TX1 핀을 아두이노 보드의 18번, 데이터 수신을 담당하는 RX1 핀을 아두이노 보드의 19번에 GPS 센서를 연결했다.

OTNBBE_2022_v22n6_69_f0007.png 이미지

그림 7. GPS 기능 핀 연결 회로도

Fig. 7. GPS Function Pin Connection Schematic

그림 8은 그림 7의 GPS 센서와 연결되어 개발된 핵심 소스코드 모습을 보여준다. 아두이노 환경 설정에서 온라인으로 관련 Adafruit_GPS 라이브러리를 설치하고, 헤더로 선언한다. 관련 초기화 변수를 선언하고, GPS 센서를 통해 위도(lat)와 경도(long)를 측정할 수 있다. 측정되어 출력되는 값들은 위도와 경도 값만 출력하지 않고, 다양한 값이 출력되어 위도와 경도만을 필터링하기 위해 substring 함수를 이용하여 추출하였다. 그림 9는 실시간으로 수집된 GPS의 위도, 경도 값을 보여준다.

OTNBBE_2022_v22n6_69_f0008.png 이미지

그림 8. GPS 기능 핵심 소스코드

Fig. 8. GPS function core source

OTNBBE_2022_v22n6_69_f0009.png 이미지

그림 9. GPS 센서를 통해 수집된 위도, 경도 값 출력

Fig. 9. Latitude, longitude value output collected via GPS sensor

그림 9는 그림 8의 소스코드로 동작하는 GPS 센서를 통해 수집된 위도인 Lat 값, 경도인 Long의 값, 측정 당시 시간을 함께 출력한 모습을 보여준다. 그림 10은 핵심 기능과 함께 기타 기능이 모두 포함된 IoT 기반 음주 운전 방지 시스템의 모습을 보여준다.

OTNBBE_2022_v22n6_69_f0010.png 이미지

그림 10. IoT 센서를 활용한 음주 운전 방지 시스템

Fig. 10. Drunk driving prevention system using IoT sensor

기존 첫 모습은 신호등 모듈의 LED가 초록색으로 표현되어 알코올이 낮게 감지된 상태인데, 알코올을 MQ-3 센서에 가까이 근접하니 신호등 모듈의 LED는 빨간색으로 표현되어 있어 제작한 시스템의 모터가 동작하지 않아 바퀴가 멈춰 있는 모습을 보여준다.

그림 11은 IoT 기반 음주 운전 방지 시스템의 통신 및 GPS 기능을 통해 저장된 데이터베이스에서 저장되어 있는 데이터를 불러와 앱에서 확인할 수 있는 모습을 보여준다.

OTNBBE_2022_v22n6_69_f0011.png 이미지

그림 11. 앱에서 음주 관련 데이터를 표출한 모습

Fig. 11. Appearance of drinking-related data in the app

그림 11은 IoT 기반 음주 운전 방지 시스템을 통해 수집된 데이터를 앱으로 표출한 모습을 보여준다. 앱은 Android Studio를 통해 개발되었고, 그림 12에서 설명된 방법대로 알코올을 측정하여 모터가 멈추게 되면, 측정했을 때의 시간, 자동차 고유 번호, 알코올 측정량, 해당 LED 색을 아이콘으로 보여준다. 그리고 그림 12의 하단 URL을 클릭하면, 알코올을 측정한 운전자의 위치를 구글맵 API를 이용하여 확인할 수 있다.

Ⅳ. 결론

본 논문에서는 음주 운전 관련 법이 개정되었음에도, 증가하는 음주 운전 사고 횟수와 재범률을 줄이고자 음주 운전을 하기 전 자동차의 시동을 켜는 운전자나 경찰관이 음주 측정을 시행할 때 편리하게 자동차의 운행을 정지하는 방안을 고려하여 IoT 기반 음주 운전 방지 시스템을 개발했다. 주요 핵심 기능으로 알코올을 측정하기 위해 MQ-3 센서가 사용되었고, 아두이노 보드와 Node MCU의 통신을 위해 I2C 방안이 사용되었다. 또한, 강제로 자동차의 운행을 실시하거나 음주 측정 시 해당 위치가 저장되기 위해 GPS 센서가 사용되었다.

본 시스템 개발을 통해 음주 운전의 빠른 예방이 될 수 있을 것으로 기대된다. 음주는 술에 취하여 자기 자신도 모르게 운전하게 되는 경우가 많이 있어 이를 방지 하기 위해서는 운전 중이 아닌 운전하기 전에 미리 자동차의 시동을 걸지 못하게 막아버리면 사건을 미리 예방할 수 있기 때문이다. 또한, 실시간으로 운전자의 알코올 측정값이 데이터베이스에 저장되고, 운전자의 정보를 확인하기 때문에 도망을 치더라도 GPS 센서의 위치 전송 내용을 확인함으로써 음주 운전자의 위치 파악과 동시에 사고가 발생하기 전에 신속하게 대응할 수 있다.

References

  1. Drunk Driving Control by Year, https://www.edaily.co.kr/news/read?newsId=01259526632333840&mediaCodeNo=257
  2. Sang-Dong Lee, "Recidivism of drunk driving and the necessity of introducing a drunk driving lock", Samsung, Traffic, Safety Research Institute, 2022.
  3. Jang-Woong Park, Jae-Joon Kim, "Drinking measurable biosensor system by using wireless communication", Korean Intellectual Property Office - Ulsan National Institute of Science and Technology, UNIST, 2017.
  4. Dong-Ho Kim, "Drinking measurement starting device through fingerprint awareness", Korean Intellectual Property Office - Personnal Patent, 2020.
  5. Soo-Chul Kang, "Drinking start-up Prevention System for Vehicles", Korean Intellectual Property Office - Won Jin Energy Co., Ltd., 2020.
  6. Dong-Jin Shin, Jin Lee, Min-Hui Heo, Seung-Yeon Hwang, Yong-Soo Lee, Jeong-Joon Kim, "Development of Fine Dust Analysis Technology using IoT Sensor", The Journal of the Institute of Internet, Broadcasting and Communication (IIBC), Vol. 21, No. 1, pp. 121-129, 2021. DOI: https://doi.org/10.7236/JIIBC.2021.21.1.121
  7. Khawas C, Shah P, "Application of firebase in android app development-a study", International Journal of Computer Applications, Vol. 179, No. 46, pp. 49-53, 2018. https://doi.org/10.5120/ijca2018917200