2021.09.01.-2022.06.10.
COVID-19는 내수 경제를 악화시키고 사람들의 이동량을 감소시켰다.
본 과제는 관심 지역의 숨은 관광지와 여행지를 사용자의 편의성에 맞게 소개하는 애플리케이션으로 GPS 사용과 아두이노 블루투스 통신을 활용해 차별화된 기능을 제공한다.
여행 계획을 세우기 위해 따로 캘린더에 들어갈 필요 없이 앱 내에서 제공하는 일정 관리 기능을 이용하여 쉽게 계획을 관리할 수 있고, 여행지 주변의 음식점을 힘들게 찾지 않고 바로 확인할 수 있다.
즉, 실제 우리가 여행을 계획할 때 필요한 단계를 모두 하나의 애플리케이션에서 해결할 수 있게 해 사용자의 편의성을 증가시켰다.
가까운 지역의 여행인 만큼 언제든 갈 수 있고 여행지에 대한 정보를 쉽고 빠르게 얻어서 사람들의 이동량을 늘리고, 국내 여행을 장려하여 우리 지역 내수 경제를 활성화에 도움을 준다.
안드로이드 스튜디오 SDK 30
Windows 10
Intel i7-6700 CPU 3.40 GHz
RAM 16GB
MySQL
phpMyAdmin
갤럭시 노트 20 U
아두이노 Uno, 블루투스 모듈 HC-06, LCD 1602






#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
String inData;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("Welcome!");
delay(3000);
lcd.clear();
}
void loop() {
int i=0;
char commandbuffer[100];
if(Serial.available()){
delay(100);
while( Serial.available() && i< 99) {
commandbuffer[i++] = Serial.read();
}
commandbuffer[i++]='\0';
}
if(i>0)
Serial.println((char*)commandbuffer);
lcd.print((char*)commandbuffer);
delay(1000);
lcd.clear();
}



어플버튼 클릭을 하면 로딩화면이 나오고 2초후에 블루투스 연결 퍼미션 창이 뜬다.

search 버튼을 누를 경우 위와 같이 연결 가능한 블루투스 장치들이 출력된다.

HC-06을 누르고 paired devices를 클릭할 경우, 다음과 같이 HC-06 장치가 뜬다. (연결된 장치)
위의 텍스트를 통해 HC-06과 연결된 것을 확인할 수 있다.

테스트를 위해 SEND 버튼을 클릭하면, 다음과 같이 아두이노와 연결된 LCD에 connected라고 출력된다.

-> 버튼을 클릭할 경우 로그인화면으로 넘어간다.

로그인 화면에서 회원가입 화면으로 넘어갈 수 있다.

회원가입 화면에서는 아이디, 비밀번호, 비밀번호 확인, 관심지역을 입력받는다.

관심지역은 위와 같다.

로그인 화면에서 회원가입된 회원정보를 입력하면,

위와 같은 메인 화면 중 투어 화면으로 진입한다.

1. 일정 메뉴를 통하여 일정화면으로 이동
2. 투어 메뉴를 통하여 투어 화면의 관광지 리스트 및 사진 출력
3. 설정 메뉴를 통하여 회원 설정 화면으로 이동


투어 화면에서는 테마 및 관광지 리스트를 확인할 수 있다.
테마는 다음과 같이 다양한 테마가 있으며,
관광지 리스트에서는 이미지, 관광지 명, 좋아요 등이 확인 가능하다.

관광지의 좋아요 버튼을 누르거나 해제하면, 밑의 전체 좋아요 수가 변동이 된다.

테마 중 전망대 테마를 클릭하면 위와 같은 관광지 리스트로 새로고침이 된다.

관광지를 클릭했을 경우, 다음과 같은 항목이 나온다.

두 항목 중 일정추가를 클릭하면 다음과 같이 관광지를 사용자의 일정에 등록할 수 있는 화면이 나타난다.




지도 보기 항목을 클릭했을 경우, 위치 서비스 퍼미션에 대한 알림이 뜬다.
확인을 누를 경우, 현재 사용자의 위치로 자동 이동합니다.

검색 버튼을 클릭하면, 다음과 같이 관광지의 위치에 마커가 찍힌다.

음식점 버튼을 클릭할 경우, 관광지 주변의 음식점에 대한 위치가 마커로 찍힌다.

위성 버튼을 클릭했을 경우, 확인할 수 있는 화면이다.

두 마커 사이의 거리에 따라,


good


bad
500미터기준으로 good과 bad가 나뉜다.

여담이지만, 한국 외의 미국, 일본 등의 나라는 길찾기를 지원한다.
이거때문에 얼마나 고생을 했었는지....

사용자 일정 조회 및 캘린더

일정 유/무 표시 (.)



밑에 나타난 리스트를 클릭할 경우, 일정삭제 알림창이 뜨고 OK클릭시 일정삭제가 되는 것을 확인할 수 있다.


비밀번호를 변경할 수 있다.

관심지역을 변경할 수 있다.
아두이노와 안드로이드 스튜디오 연동시
거리에 따른 아두이노 bad
거리에 따른 good
카드뷰로 출력하며, 이미지를 추가하여 눈에 보기 쉽게 함테마를 추가하여 사용자가 원하는 테마를 기준으로 관광지를 따로 조회 가능GPS를 통하여 사용자의 위치를 알 수 있으며, 관광지의 위치와 사용자 사이의 거리와 시간을 측정 가능하며, 주변의 음식점 파악 가능캘린더를 통하여 날짜 아래에 작은 ●표시로 표현해주어 쉽게 사용자 일정 관리(조회, 추가, 삭제) 가능좋아요 기능을 통하여 사용자가 관광지에 좋아요를 표시할 수 있으며, 관광지 전체의 좋아요 수를 확인 가능Socket 통신을 통해 사용자가 선택한 두 지점 사이의 거리에 따라 LCD판에 문구를 표시[1] 아두이노와 안드로이드 스튜디오 간의 lCD 블루투스 통신,
https://popcorn16.tistory.com/192
[2] 구글 길찾기, https://www.wingsquare.com/blog/drawing-driving-route-directions-between-two-locations-using-google-directions-in-google-map-android/
[3] 두 마커 사이의 거리 측정, https://metal00456.tistory.com/22
[4] 카드뷰, https://webnautes.tistory.com/1314
[5] 리사이클러뷰, https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=cosmosjs&logNo=220961054247
[6] 음식점 API, https://webnautes.tistory.com/1080