- Arduino 기반 차량 추적 시스템에 필요한 구성 요소 :
- GSM 모듈을 사용하여 위치를 추적하는 방법 :
- GSM 및 GPS를 Arduino와 인터페이스하기위한 회로 설명 :
- Arduino를 사용한 GSM 및 GPS 기반 차량 추적 시스템-작동 중
- 차량 위치를 추적하기 위해 Arduino 코드와 인터페이스하는 GAM 및 GPS
차량 추적 시스템은 차량 관리 및 자산 추적 애플리케이션에서 매우 일반적으로 사용됩니다. 오늘날 이러한 시스템은 차량의 위치를 추적 할 수있을뿐만 아니라 속도를보고하고 원격으로 제어 할 수도 있습니다. 일반적으로 차량 추적은 위도 및 경도 (GPS 좌표)의 형태로 차량 위치를 추적하는 프로세스입니다. GPS 좌표는 위치의 값입니다. 이 시스템은 실외용으로 매우 효율적입니다. 이러한 종류의 차량 추적 시스템 프로젝트 는 택시 / 택시, 도난 차량, 학교 / 대학 버스 등을 추적하는 데 널리 사용되고 있으며,이 프로젝트에서는 GPS를 통해 Arduino를 사용하여 GSM 및 GPS 기반 차량 추적 시스템을 구축하는 데 한발 앞서 나갑니다. 이 차량 추적 시스템 은 또한 GPS 및 GSM을 사용하여 차량을 추적하고 하드웨어와 소프트웨어를 거의 변경하지 않아 사고 감지 경보 시스템, 군인 추적 시스템 등으로도 사용할 수 있습니다.
우리는 또한 이전에 많은 다른 유형의 차량 추적 시스템을 구축했으며 관심이있는 경우 확인할 수 있습니다.
- Arduino를 사용한 GPS 차량 추적 및 사고 경보
- Arduino 및 ESP8266을 사용하여 Google지도로 차량 추적
- MSP430을 사용한 GPS 차량 추적 및 사고 경보
- Arduino를 사용한 LoRa 기반 GPS 차량 추적
- SIM800 및 Arduino를 사용하는 GPS없는 위치 추적기
Arduino 기반 차량 추적 시스템에 필요한 구성 요소:
Arduino를 고소하는 간단한 차량 추적 시스템을 구축하려면 다음 구성 요소가 필요합니다.
- Arduino UNO
- GSM 모듈
- GPS 모듈
- 16x2 LCD
- 전원 공급
- 전선 연결
- 10K POT
GSM 모듈을 사용하여 위치를 추적하는 방법:
GPS는 Global Positioning System의 약자로 정확한 UTC 시간 (협정 세계시)으로 지구상의 모든 위치의 위도와 경도를 감지하는 데 사용됩니다. GPS 모듈은 차량 추적 시스템 프로젝트의 주요 구성 요소입니다. 이 장치는 시간과 날짜와 함께 매초마다 위성으로부터 좌표를 수신합니다.
GPS 모듈 은 추적 위치와 관련된 데이터를 실시간으로 전송하며 NMEA 형식으로 많은 데이터를 전송합니다 (아래 스크린 샷 참조). NMEA 형식은 한 문장 만 필요한 여러 문장으로 구성됩니다. 이 문장은 $ GPGGA 에서 시작 하며 좌표, 시간 및 기타 유용한 정보를 포함합니다. 이 GPGGA 는 Global Positioning System Fix Data 라고합니다. 여기에서 GPS 데이터 및 문자열 읽기에 대해 자세히 알아보십시오.
문자열의 쉼표를 세어 $ GPGGA 문자열에서 좌표를 추출 할 수 있습니다. $ GPGGA 문자열을 찾아서 배열에 저장한다고 가정하면 Latitude는 두 개의 쉼표 뒤에 있고 Longitude는 네 개의 쉼표 뒤에 있습니다. 이제 이러한 위도와 경도를 다른 배열에 넣을 수 있습니다.
다음은 설명과 함께 $ GPGGA 문자열입니다.
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0.9,510.4, M, 43.9, M`` * 47
$ GPGGA, HHMMSS.SSS, latitude, N, longitude, E, FQ, NOS, HDP, altitude, M, height, M,, 체크섬 데이터
식별자 |
기술 |
$ GPGGA |
글로벌 포지셔닝 시스템 수정 데이터 |
HHMMSS.SSS |
시간 (시간 분 초 및 밀리 초 형식) |
위도 |
위도 (좌표) |
엔 |
방향 N = 북, S = 남 |
경도 |
경도 (좌표) |
이자형 |
방향 E = 동쪽, W = 서 |
FQ |
품질 데이터 수정 |
NOS |
사용중인 위성 수 |
HPD |
정밀도의 수평 희석 |
고도 |
해발 고도 |
미디엄 |
미터 |
신장 |
신장 |
체크섬 |
체크섬 데이터 |
GSM 및 GPS를 Arduino와 인터페이스하기위한 회로 설명:
이 차량 추적 시스템 프로젝트 의 회로 연결 은 간단하며 이미지 아래에 나와 있습니다. 여기서 GPS 모듈의 Tx 핀은 Arduino의 디지털 핀 번호 10에 직접 연결됩니다. 여기에서 소프트웨어 직렬 라이브러리를 사용하여 핀 10과 11에서 직렬 통신을 허용하고 각각 Rx 및 Tx로 만들고 GPS 모듈의 Rx 핀을 열어 둡니다. 기본적으로 Arduino의 핀 0과 1은 직렬 통신에 사용되지만 SoftwareSerial 라이브러리를 사용하면 Arduino의 다른 디지털 핀에서 직렬 통신을 허용 할 수 있습니다. 12V 공급은 GPS 모듈에 전원을 공급하는 데 사용됩니다.
GSM 모듈의 Tx 및 Rx 핀은 Arduino의 Rx 및 Tx 핀에 직접 연결됩니다. GSM 모듈은 12v 전원으로도 공급됩니다. 옵션 LCD의 데이터 핀 D4, D5, D6 및 D7은 Arduino의 핀 번호 5, 4, 3 및 2에 연결됩니다. LCD의 Command 핀 RS와 EN은 Arduino의 2, 3 번 핀에 연결되고 RW 핀은 접지와 직접 연결됩니다. 전위차계는 LCD의 대비 또는 밝기를 설정하는데도 사용됩니다.
Arduino를 사용한 GSM 및 GPS 기반 차량 추적 시스템-작동 중
이 프로젝트에서 Arduino는 GPS 수신기와 GSM 모듈로 전체 프로세스를 제어하는 데 사용됩니다. GPS 수신기는 차량의 좌표를 감지하는 데 사용되며 GSM 모듈은 SMS로 사용자에게 좌표를 전송하는 데 사용됩니다. 또한 선택 사항 인 16x2 LCD는 상태 메시지 또는 좌표를 표시하는데도 사용됩니다. 우리는 GPS 모듈 SKG13BL 및 GSM 모듈 SIM900A를 사용했습니다.
프로그래밍 후 하드웨어를 준비하면 차량에 설치하고 전원을 켤 수 있습니다. 그런 다음 차량에 배치 된 시스템에 SMS "Track Vehicle"을 보내면됩니다. 다음 프로젝트에서와 같이 문자열의 시작과 끝을 올바르게 식별하기 위해 #Track Vehicle *과 같은 접두사 (#) 또는 접미사 (*)를 사용할 수도 있습니다. GSM 기반 홈 자동화 및 무선 게시판
전송 된 메시지는 시스템에 연결된 GSM 모듈에서 수신하여 Arduino로 메시지 데이터를 전송합니다. Arduino는 그것을 읽고 전체 메시지에서 주요 메시지를 추출합니다. 그런 다음 Arduino의 미리 정의 된 메시지와 비교하십시오. 일치가 발생하면 Arduino는 GPS 모듈 데이터 (위에서 설명한 GPS 작동)에서 $ GPGGA String을 추출하여 좌표를 읽고 GSM 모듈을 사용하여 사용자에게 보냅니다. 이 메시지에는 차량 위치 좌표가 포함되어 있습니다.
차량 위치를 추적하기 위해 Arduino 코드와 인터페이스하는 GAM 및 GPS
프로그래밍 부분에서 먼저 라이브러리를 포함하고 LCD 및 소프트웨어 직렬 통신을위한 핀을 정의합니다. 또한 데이터를 저장하기 위해 배열로 일부 변수를 정의하십시오. 소프트웨어 직렬 라이브러리는 핀 10 및 11에서 직렬 통신을 허용하는 데 사용됩니다.
#포함
여기서 array str 은 GSM 모듈에서 수신 한 메시지 를 저장하는 데 사용되고 gpsString 은 GPS 문자열을 저장하는 데 사용됩니다. char * test =”$ GPGGA” 는 좌표에 필요한 올바른 문자열을 비교하는 데 사용됩니다.
설정 기능에서 시리얼 통신, LCD, GSM 및 GPS 모듈을 초기화하고 LCD에 환영 메시지를 표시했습니다.
void setup () {lcd.begin (16,2); Serial.begin (9600); gps.begin (9600); lcd.print ("차량 추적"); lcd.setCursor (0,1);……………
루프 기능에서 우리는 메시지와 GPS 문자열을받습니다.
void loop () {serialEvent (); if (임시) {get_gps (); 추적(); }}
void init_sms 및 void send_sms () 함수 는 메시지를 초기화하고 보내는 데 사용됩니다. init_sms 기능 에서 적절한 10 자리 휴대폰 번호를 사용하십시오.
함수 void get_gps () 는 수신 된 문자열에서 좌표를 추출하는 데 사용되었습니다.
void gpsEvent () 함수 는 Arduino로 GPS 데이터를 수신하는 데 사용됩니다.
void serialEvent () 함수 는 GSM에서 메시지를 수신하고 수신 된 메시지를 미리 정의 된 메시지 (Track Vehicle)와 비교하는 데 사용됩니다.
void serialEvent () {while (Serial.available ()) {if (Serial.find ("Track Vehicle")) {temp = 1; 단절; }…………..
초기화 기능 'gsm_init () ' 는 GSM 모듈의 초기화 및 설정에 사용되며, 먼저 GSM 모듈에 'AT'명령을 전송하여 GSM 모듈의 연결 여부를 확인합니다. OK 응답이 수신되면 준비가 된 것입니다. 시스템은 모듈이 준비 될 때까지 또는 'OK'가 수신 될 때까지 모듈을 계속 확인합니다. 그런 다음 ATE0 명령을 전송하여 ECHO를 끄고 그렇지 않으면 GSM 모듈이 모든 명령을 에코합니다. 마지막으로 'AT + CPIN?'을 통해 네트워크 가용성을 확인합니다. 명령, 삽입 된 카드가 SIM 카드이고 PIN이있는 경우 + CPIN: READY 응답을 제공합니다. 네트워크를 찾을 때까지 반복적으로 확인합니다. 이것은 아래 비디오에서 명확하게 이해할 수 있습니다.
아래 코드 섹션에서 위의 모든 기능을 확인하십시오.