안녕하세요~ 메이크잇나우 입니다.
스마트 버스정류장 만들기 두번째 시간입니다.
오늘은 가져온 데이터를 어떻게 정리하는지 한번 확인해 볼까요?
▼▼ 스마트버스정류장 만들기 1탄이 궁금하시다면? ▼▼
[공공데이터 API] 스마트 버스정류장 만들기
안녕하세요~ 메이크잇나우 입니다.오늘은 저희 버스정류장에서 사용하고 있는공공데이터 API를 가져오는 방법을 같이 알아볼까요? ■ 공공데이터 API 버스정류장버스나 지하철 등 대중교통을 많
www.makeitnow.kr
■ API를 활용한 버스정보 가져오기
https://smartstore.naver.com/makeitnow/products/10890436377
ECO보드 AIoT 스마트 버스정류장 키트 | AIoT 사물인터넷 코딩 교육용 : 메이크잇나우
[메이크잇나우] 메이커 제품을 만날 수 있는 마켓입니다.
smartstore.naver.com
지난 시간에 공공데이터 API를 활용하여 호출하는 방법을 확인했는데요.
URL에 필요한 내용을 담아 주소창에 입력하면 해당 데이터를 가져올 수 있었죠.
그러면 이렇게 가져온 데이터는 어떻게 활용을 할까요?
URL을 통해 정보를 요청하면, 내가 지정한 버스정류장으로 향하는 모든 버스의 정보가 들어옵니다.
여기서 저희가 필요한건 두 가지 입니다.
1. 같은 번호의 버스중에는 가장 빨리 오는 시간만 표시한다.
2. 버스의 도착시간이 가장 빠른 것 부터 순차적으로 나열한다.
■ 동일한 번호의 버스정보 업데이트 하기
버스정보의 구조를 보면 {} 안에 하나의 버스에 대한 모든 데이터를 담고 있으며,
모든 데이터는 'KEY:VALUE' 의 형태로 세트를 이루는 것을 볼 수 있습니다.
그리고 그 안에서 필요한 도착시간과 버스번호 두 가지만을 추출해 낼 수 있습니다.
이를 통해 추출해낸 정보를 순차적으로 새로운 딕셔너리에 하나씩 담아 주는데,
이때 {버스번호 : 시간} 이라는 세트로 담아주게 됩니다.
이렇게 하나씩 담을 때, 버스번호를 기준으로 딕셔너리 안에 같은 버스번호가 없다면 그대로 담아주고
만약에 같은 버스번호가 있다면, 기존의 데이터와 시간을 비교하여 더 짧은것으로 업데이트 하는 방식이죠.
■ 시간순으로 순차정렬 하기
위와 같은 과정을 한번 거치게 되면,
각기 다른 버스번호와 해당 번호의 버스중 가장 빨리 도착하는 시간이 남아 있겠죠?
여기서는 시간을 비교하여 오름차순으로 정렬해 줍니다.
아두이노를 활용한다면, 버블정렬 과 같은 방식을 활용하여 오름차순 정렬을 하게 됩니다.
쉽게 말해 앞,뒤의 데이터 2개씩을 비교하여 더 높은 데이터를 우측으로 정렬하는 방식인데요.
이런 방식을 계속 거치다 보면, 오름차순으로 정렬이 되겠지만 더 쉬운 방법도 있죠.
이지블록스 에서는 오름차순 블록 하나만 사용하여 더욱 쉽게 활용할 수 있습니다.
Easy Blocks
블록코딩으로 간단하게 만드는 나만의 스마트 디바이스
easyblocks.kr
■ 디스플레이 나타내기
이렇게 정렬된 값을 비로소 OLED 디스플레이에 나타내게 됩니다.
실제 저희 스마트 버스정류장 키트를 조립하면 출력되는 OLED 화면입니다.
초단위로 들어오는 데이터는 60으로 나눠서 분과 초를 나눠 보기편하게 만들어주면 완성입니다.
공공데이터 포털에서 정보가 업데이트 되는데는 30초~1분 정도의 시간이 필요합니다.
이렇게 데이터를 정리하는 순서와 방법을 알아보았는데, 유익하셨나요?
저희 키트나 프로그램이 궁금하시다면 카카오톡으로 언제든 문의주세요 :)
MAKE IT NOW
디지털 교육을 위한 시작 SMART WORLD, HEXA BOARD, 지능형 과학실
pf.kakao.com
'메이커 활동' 카테고리의 다른 글
[공공데이터 API] 스마트 버스정류장 만들기 (1) | 2025.07.09 |
---|---|
[스마트워치] AI 모델을 활용한 스쿼트 운동하기 (1) | 2025.07.08 |
제 1회 교사연수 프로그램 진행 (0) | 2025.03.24 |
헥사보드 로봇 축구 - 스마트 모빌리티 체험 with 2024 창의과학축제 (4) | 2024.12.15 |
[로봇축구] 광명시청소년수련관 해오름 공유 Festival (1) | 2024.12.02 |