프로젝트

나도 메이커! 메이커스 여러분들의 작품/프로젝트를 공유하는 공간입니다.

아두이노로 실시간 버스정보 받아오기 (2)

2016-12-01 17:41:37

개요

 

안녕하세요! 이전글에 이어 바로 이어서 글을 작성합니다ㅎ

저번글에서는 간단하게 경기버스정보시스템의 API를 사용하여 데이터를 오렌지보드 WiFi에 읽어오는 작업을 했는데요.

 

이번글에서는 읽어온 정보에서 내가 원하는 데이터만 파싱하여 LCD에 출력하는 작업까지 하여 완성해보겠습니다.

 

비록 외관은 없지만 기능면에는 잘 굴러가기 때문에 실제로 써봐도 지장이 없습니다!

저는 실제로 이걸 써볼 생각입니다ㅎ

(실제로 하루 사용해봤는데 볼품없지만 버스 시간을 체크하는데는 정말 유용했습니다.)

 

 

 

 

 

제가 일할 때 느끼는 출근시간과 퇴근시간은 매우매우 중요합니다. 그런만큼 등하교 시간도 누구한테는 중요하게 느껴질거라 생각합니다.

출근시간에 준비하면서 스마트폰을 찾고 어플을 켜서 제가 타고 다니는 버스를 찾아 누르는 작업을 하기 쉽지 않습니다.

마찬가지로 퇴근시간에도 스마트폰을 켜서 어플을 켜서 버스시간을 보는 일 또한 간단해 보이지만 번거롭습니다.

 

시간이 소중한 분들을 위해 제작한 프로젝트입니다!

단순하게 버튼을 두번 누르는 작업만으로도 내가 탈 버스의 시간과 현재 위치를 대략적으로 파악할 수 있습니다.(다음 버스와 다다음 버스까지 체크합니다.)

(지하철을 타고 다니는 분들에게는 별 도움이 안되는 프로젝트네요ㅜ)

 

WiFi보드를 제외하면 모든 모듈들을 쉽게 구할 수 있기 때문에 정말 간편하게 제작할 수 있을거라 생각합니다!

 

 

 

 

동영상

 

 

 

 

 

필요한 부품 목록

 

NO    

부품명      

수량     

상세설명

1

OrangeBoard WiFi

1

WizFi250라이브러리 사용

I2C LCD 1 I2C 4핀 16x2 LCD
3 푸시 버튼 2  
4 LED 1  
5 저항 1 330옴

 

부품명 OrangeBoard WiFi I2C LCD 택트 스위치 LED 저항
파트
 

 

 

 

 

하드웨어 making

 

 

 

 

 

 

 

소프트웨어 coding

 

 

 

 

 

이전 글과 마찬가지로 코드에서 SSID, PASS, APIKEY, ROUTEID, STATIONID는 사용자가 직접 입력하는 부분입니다.

각각 WiFi이름, WiFi패스워드, 공개키, 노선ID, 정류소ID입니다.

 

 이 부분만 잘 입력하면 문제없이 작동되는 것을 확인하였습니다.

 

 

 

버튼의 기능은 아래사진과 같습니다.

 

디지털 7번핀에 연결된 버튼(흰색)을 누를경우에는 Gbus에 연결하여 현재 내가 지정한 버스의 시간 정보를 읽어옵니다.

디지털 6번핀에 연결된 버튼(노란색)을 누를경우에는 정보에서 원하는 정보만 파싱해서 LCD에 출력합니다.

 

 

 

 

LCD는 꼭 16x2 LCD를 사용하지 않더라도 OLED나 한글LCD 등의 다양한 LCD를 사용하여 사용할 수 있습니다.

다만 WiFi보드에서 SPI통신을 사용하고 있기 때문에 SPI통신핀과 겹치지 않는 선에서 선택하셔야 합니다.

 

제가 선택한 LCD는 I2C통신을 사용하기 때문에 SPi와 겹치지 않고 선 또한 간결하게 연결하여 사용하기 때문에 쉽게 사용할 수 있었습니다.

다만 위에서 사용한 16x2 LCD는 액정이 작기 때문에 다양한 정보를 한 화면내에 출력하는 것이 어려웠습니다.

그래서 위 사진과 같이 도착예정시간과 현재 위치만을 한 화면에 출력하게 만들었습니다.

 

 

 

 

위에 보이는 파란색 LED는 데이터를 요청하여 응답받는데 성공했을 경우 불이 잠깐 켜졌다 꺼지게 됩니다.

LED가 켜지는 것을 확인했다면 노란 버튼을 눌러 버스 정보를 읽어올 수 있습니다.

 

버스 정보는 5초 간격으로 첫 번째 도착 예정 버스, 두 번째 도착 예정 버스 정보가 출력됩니다.

 

LCD의 첫 줄에는 지정한 정류장에 도착하기까지 남은시간이 출력되고

두 번째 줄에는 지정한 정류장에 도착하기까지 남은 정류장 수가 출력됩니다.

 

 

 

 

손재주가 부족하여 많이 만들지는 못했지만 잘 꾸밀 수만 있다면 좋은 프로젝트가 될 수 있을거 같습니다!

 

감사합니다^^;

수박쨈

WiFi, WiFi보드, Arduino, OrangeWiFi, OpenAPI, API, 버스 정보, 버스, 시스템
profile

정원교 2016-12-05 17:30:36

완전 재밌고 유용한 내용입니다~^^

profile

정진교 2017-01-09 17:05:08

혹시 노선ID와 정류장ID를 어디서 확인 할 수 있는지 알 수 있을까요?

profile

양제우 2017-01-10 23:19:23

버스 정보 어디서 받아오셨는지요??

profile

수박쨈 2017-01-11 09:22:26

이전 글을 참조해주시면 될 거 같습니다

profile

정진교 2017-02-22 11:18:04

필요한 부품들 자세히 써주 실 수 있나요? 선 같은 것도요(어디서 사는지도...)

profile

aaaal 2017-03-23 17:16:44

재밌네요

profile

이카루스 2017-03-31 16:23:52

아 이게 이런식으로 공개가 되어있는거였군요

profile

flippy 2017-05-05 15:15:35

코딩 공개 가능 하신가요? ㅜㅜ

profile

라미혀니빠 2017-05-10 18:23:48

와~ 소중한 정보 공유 감사^^
제가 소스를 봐도 까막눈이라 더 열심히 공부해야 하겠습니다만 보다가 궁금해진게,
궁금한게 있는데 혹시 버튼 하나에 두 가지 기능을 순차적으로 작동하게 할 수는 없을까요?
버튼 한 번 누르면 정보를 받아오고, 정보가 오면 화면에 뿌려주는 방식으로요^^

profile

최용혁 2017-05-28 20:42:50

꼭 한번 해보고싶네요

profile

홍지택 2017-06-12 12:17:09

재미있고 한번 해보고싶네요

profile

하늘 2017-08-04 08:49:00

죄송한데 WiFi이름, WiFi패스워드, 공개키, 노선ID, 정류소ID는 어덯게 아나요(잘 모르겠어서) 부탁드려요

profile

니아마오 2017-10-31 17:21:00

서버 접속 버튼을 누르면 서버에 접속하는 것 까지는 정상적으로 동작을 하는데 화면 출력 버튼을 누르면 lcd에 아무런 변화가 없습니다.... 해결 해 주실 수 있으신가요...................?

profile

김중수 2018-02-01 20:05:32

한번 해보고 싶네요

profile

통통 2018-02-17 18:36:25

위내용과 관련 없는 질문 이지만 혹시 압력을 받은 시간을 기록하는 장치를 lcd 를 이용해서 만들어 볼수 있나요?

profile

빼꼼 2020-06-19 12:26:17

혹시 일반 아두이노 보드에 와이파이 모듈 달아서 사용 가능한가요?