본문 바로가기
아두이노 기초 학습

6. 아두이노 1시간 학습 후 사물인터넷(IOT) 1분 적용

by 에이치엘 2022. 12. 9.

★ 지난 시간동안 Serial 통신과 millis()함수의 사용방법을 학습했습니다.

이번 시간은 사물인터넷을 만들어볼 생각입니다. 사물인터넷 어렵지 않습니다.

사물인터넷(IOT)는 단순하게 이야기하자면, 아두이노와 같은 인터넷에 연결되어 있지 않은 디바이스를 인터넷에 연결하는 것입니다. 이것이 사물인터넷의 시작입니다. 그 다음은, 인터넷에 연결되면 어디서든 인터넷을 통해서 모니터링 및 제어를 할 수 있기에, 사실 사물인터넷 별거 없습니다.

 

★★ 준비 ★★

◎ 아두이노 보드 ( 본 예제는 아두이노 시리즈 중 UNO 보드를 사용했습니다 )

◎ IOT 코아 앱이 설치된 스마트폰

◎ IOT 리아 앱이 설치된 스마트폰

 

1. 이전 학습 내용 코드 Serial 두번째 내용에서 다음 코드를 사용합니다

 2. 위 코드에서 "현재 시간 : " 부분을 아래와 같이 변경합니다

◎ 시리얼모니터를 이용하여 기존 "현재 시간 : "이 "NOW:"로 변경된것을 확인합니다

◎ 아두이노에서의 준비는 모두 끝이 났습니다. 그럼 이제 사물인터넷으로 만들어볼까요?

 

3-1. IOT 코아 앱을 실행하여 순서대로 진행합니다 ( 그냥 따라하시면 됩니다 ㅎ )

◎ 아두이노는 USB로 연결되는 보드입니다. USB 보드( PCB ) 로 표현한 것은 아두이노 외 다른 개발보드를 사용할 수 있기에 USB 보드(PCB)로 명칭했습니다. 

◎ 마지막 이미지를 보시면 뭔가 복잡하시죠? 근데 실제로는 전혀 복잡하지 않답니다. 

 

3-2. 나만의 USB보드 이름을 지정해주세요

◎ 저는 "아두이노"라고 지어줬습니다.

 

3-3. 통신설정을 설정합니다. 여기서 중요한건 "통신속도"입니다. 

◎ 통신속도를 9600으로 설정했습니다. 왜 9600으로 설정했을까요? 이유는 아래와 같습니다

◎ 아두이노에서 Serial.begin() 함수 즉, 통신속도 값을 9600 으로 지정해줬기 때문에 해당 값과 동일한 값을 보드 등록할때 사용되는 것입니다. 시리얼 통신은 이전 학습시간에도 이야길 했지만, "통신속도"를 양쪽이 동일하게 맞춰줘야됩니다.

 

3-4. "통신설정" 나머지 설정하기

◎ 나머지 값들은, 아두이노에서 수정하지 않는 이상 오른쪽 사진과 동일한 값으로 설정하시면 됩니다.

 

3-5. 프로토콜 기본 설정( 어렵지 않습니다 따라만하세요 )

◎ 입력타입을 "STRING"으로 변경해줍니다. ( 이유는 기초학습을 떼고나면 알게됩니다 ㅎㅎ )

 

◎본문 시작(STX)는 사용하지 않습니다( 기초라서 사용을 안하기보단, 구지 필요없는 부분입니다 )

◎데이터 구분(SPLIT)을 위와 같이 0x3A를 선택합니다

  ( 0x3A 값을 문자로 바꾸면 쌍점(:)이 됩니다. 왜? 라는 물음이 떠오르시는 분은 아스키코드표를 참고하시면됩니다 )

코아&리아 TOP 카테고리에 보시면 아스키코드 표가 있습니다.

  ※ 저희가 출력하는 코드는 Serial.println("NOW:" + String(now)); 입니다. 이 내용이 시리얼모니터로 출력을 해보면 NOW:1000 <- 이런씩으로 출력이 되었죠? 근데 저희는 데이터 구분 값으로 쌍점(:)을 지정했습니다.( 머릿속에 담아두세요 ^^ )

 

◎ 본문 종료( ETX )를 0x0A로 설정합니다( 이부분은 필수 입니다 )

○ 0x0A는 줄바꿈 값입니다. 저희는 Serial.println()함수를 사용했습니다. 즉, 마지막 데이터가 줄바꿈입니다.

 줄바꿈을 문자로하면? '\n'입니다. 아스키코드 표를 보면 다음과 같습니다

LF는 제어 문자로 '\n'을 뜻합니다.

◎ 이미지와 같이 설정이 끝났으면 "등록"버튼을 누르면, 오른쪽 이미지와 같이 아두이노 보드가 등록이 되었습니다.

쉽죠? "통신속도", "데이터구분", "본문종료" 외에 신경쓸 부분은 현재까지 없는거같습니다.

 

3-6. 다음은 프로토콜 등록입니다( 어렵지 않습니다. 따라만하세요 ^^ )

☆ 프로토콜이란? 쉽게 설명하자면, 양측이 서로 언어를 맞춘다고 보시면됩니다. 즉, 한국어를 하는 사람과 영어를 하는 사람이 서로 대화하면 대화가 통할까요? 한쪽은 한국어로 한쪽은 영어로 대답하는데 양측은 상대가 무슨말을 하는지 알아듣지 못할거에요. 그래서 프로토콜이라는 것을 지정해서 양측이 알아들을 수 있는 언어를 만드는거에요. 즉, 한국어를 하는 사람과 영어를 하는 사람이 정하는거에요. 우리는 아침인사를 A라고 하자 점심인사를 B라고 하자 이렇게 정한뒤에 양측은 아침에 만나서 인사할때는 A 라고 외치고, 점심때 만나면 인사를 B 라고 외치는거에요. 그게 프로토콜인거에요.

 

◎ 등록한 아두이노 보드를 선택하여 위 이미지 순서대로 진행합니다.

☆ [수신]보드->코아 : 를 선택하는 이유는 저희 코드가 어떻게 되어있죠? Serial.println()함수로 되어있죠? Serial.println()함수는 보내는 함수에요. 즉, 1초 단위로 아두이노가 계속 말을 한다고 보시면되요. 그럼? IOT 코아 앱 입장에서는 들어야겠죠? 즉, IOT코아는 아두이노가 하는 말을 들어야 하기에 "수신"을 선택하는 거에요. 그럼 "송신"은? 반대겠죠? ㅎㅎ

 

 

◎ 데이터의 체크 박스를 "있음"으로 변경해주세요. 저희는 아두이노에게서 데이터를 받아야 되기에 "있음"을 선택하는 거에요. 

 ◎ 프로토콜의 이름을 지정해주세요. 저는 시간값을 받아오는 프로토콜이기에 "시간" 으로 이름을 지어줬어요.

 ◎프로토콜을 입력해주세요. 여기서 입력해야되는 프로토콜이란? 아래 이미지의 붉은 밑줄을 입력하면됩니다.

◎ 보드 등록할때 쌍점(:)을 구분자(Split)으로 활용한다고 했죠? IOT코아 앱에 입력해야되는 프로토콜은 쌍점(:)을 기준으로 왼쪽 문자 또는 문자열("NOW")을 소문자, 대문자 구분해서 넣어주시면 됩니다. 즉, IOT 코아 앱은 쌍점(:)을 기준으로 왼쪽은 프로토콜로 인식을하고, 오른쪽은 데이터로 인식을 한답니다

◎ "추가"버튼을 눌러서 입력한 프로토콜을 등록해주면 끝!

◎ 저희는 프로토콜이 "NOW" 하나 뿐이기 때문에 "NOW"가 등록이 되었다면, "닫기" 버튼을 눌러서 등록창에서 빠져나옵니다.

 

☆ 모든 준비는 끝났습니다. 이제 아두이노와 IOT코아 앱이 설치된 보드를 연결하기만 하면 됩니다. 

 

4. 연결에 필요한 준비물은 아래와 같습니다

◎ 예제 소스코드가 "업로드"되어 있는 아두이노 , OTG 젠더, IOT코아 앱이 설치된 스마트폰( 위에서 USB포트, 프로토콜 설정이 되어있는 상태여야 합니다 )

 

5. 아래 그림과 같이 서로 연결합니다

6-1. IOT코아 앱의 화면을 아래로 당겨서 "새로고침"합니다

◎ 오른쪽 사진과 같이 연결된 USB가 나타나야지 정상입니다.

※ 만약, 오른쪽 처럼 연결된 USB가 나타나지 않는다면, OTG를 분리했다가 새로 연결해주세요.

 ( 간혹, OTG 인식률이 떨어지는 기종이 아닌 제품이 있더라구요 / 전자제품은 로또!! )

 

6-2. 아래 이미지 순서대로 진행합니다

◎ 3번째 이미지와 같이 버튼을 누르면 "권한"에 대한 메세지가 나옵니다. 이것은 안드로이드에서 "권한"정보를 확인해야되는 조건으로 최초 연결한 경우 권한을 승인해줘야합니다. ( 계속 연결되어있다면, 최초 1번이지만, 아두이노가 분리 된 후 다시 연결하면 안드로이드는 해당 USB를 최초로 인식합니다 )

◎"권한"을 승인했다면 왼쪽 1번 이미지와 같이 다시 버튼을 눌러 위 이미지 순서대로 진행하세요.

 

◎ 위와 같이 프로토콜의 이름 아래 데이터 값이 변경되나요? 만약 변경이 안된다면 댓글 부탁드립니다. ^^;

 

◎ 화면을 왼쪽으로 드래그하면 오른쪽 이미지 처럼 "로그"화면을 볼 수 있습니다.

또한 다시 반대쪽으로 드래그하면 왼쪽 이미지 처럼 "수신"화면을 볼 수 있습니다.

( "송신"프로토콜을 추가했다면, "송신"페이지도 생성된답니다 )

 

★ 여기까지만.! 한다면? 이게 과연 사물인터넷을 만들었다고 볼수 있을까요? 전혀 아니죠? 그럼 이제 준비는 끝났습니다. 

"사물인터넷"을 만들어봅시다. 아주 간단합니다. 

 

◎ 종료 버튼을 눌러 메인화면으로 빠져나옵니다.

 

7-1. 나의 IOT코아 앱에 접속할 수 있는 IOT리아 등록하기( 외부접속자 등록 / 따라만 하시면 됩니다 )

스크린샷으로 설명된 글은 코아[IOT_KOA]카테고리에 있습니다

 

7-2. 외부 접속자의 이름을 지정해줍니다

◎ 저는 "주인님" 으로 지정해주었습니다

 

7-3. 리아 정보를 입력해줍니다. 

☆☆☆ 여기서 중요합니다. 외부접속설정을 위해 IOT 리아 앱이 설치된 스마트폰이 필요합니다.

◎ IOT리아 앱이 설치된 스마트폰에서 IOT 리아 앱을 실행합니다

◎ IOT리아 앱 상단에 있는 번호를 IOT코아 앱에 입력을 해줍니다.

◎ "등록"버튼을 누르면 완료가 되며, 이제 오른쪽 IOT 리아 앱이 설치된 스마트폰은 왼쪽 IOT코아 앱이 설치된 스마트폰으로 접속이 가능해졌습니다.

★★ 단! 아무때나 접속이 가능한건 아니에요!!! ★★

★★ IOT 코아 앱이 설치된 스마트폰이 "온라인"모드에서 동작중일 때만, 가능하답니다. ★★

★★ "동작중" 이란 말은, IOT코아 앱 메인화면 왼쪽 상단 "시작"버튼을 눌러서 동작중일 경우를 말합니다 ★★

 

7-4.IOT 코아앱에서 뒤로가기 버튼을 눌러 메인화면으로 넘어와서 다음 순서대로 동작하세요

◎ IOT코아 앱 상단의 중앙 버튼은 "온라인"/"오프라인" 동작을 뜻합니다.

IOT리아 앱에서 IOT코아 앱을 원격 제어, 모니터링, 알람 메세지 기능을 이용하기 위해서는 IOT 코아 앱은 인터넷에 연결되어 있어야 합니다. 인터넷은 유심을 이용한 LTE, 5G 모바일 통신이나 WIFI로 연결하시면 됩니다.

★ WIFI연결하실때 따로 공유기 설정을 건들필요 없습니다. ^^ 그냥 스마트폰을 WIFI에 연결하고, 메인화면 상단 버튼만 눌러주세요

 

7-5. 다음 순서대로 진행합니다

◎ IOT코아 앱 왼쪽 상단 "시작"버튼을 눌러서 연결된 USB 제어를 시작 합니다

◎ 2번째 이미지처럼 동작 중일 경우 IOT리아 앱의 화면을 아래로 당겨 "새로고침" 해줍니다.

※ 세번째 이미지에서 IOT리아 앱 화면을 보면, 접속 가능한 IOT코아 목록이 나옵니다. 만약 IOT코아 앱을 여러개 사용할 경우, 여러개가 뜨겠죠?

 

7-6. IOT리아 앱 목록에 접속 가능한 IOT코아를 선택합니다.

◎ 오른쪽 화면처럼 IOT코아와 IOT리아 앱의 화면이 동일해졌나요? 동일해졌다면, 여러분들은 아두이노를 단순 디바이스가 아닌 사물인터넷으로 만들었습니다.

 

★ 이번 학습 시작부에서 말씀드린, 사물인터넷 전혀 어렵지 않았죠? 

★ 이게 과연 사물인터넷? 인가요? 라고 물음표를 띄우시는분들도 계시겠지만, 사물인터넷은 사물을 인터넷에 연결하는거에요, 실질적으로는 IOT코아 앱에서 "온라인"모드를 실행하고, "시작" 버튼을 눌렀을 때 이미 사물인터넷은 완료가 되었습니다.  다만, 눈에 보이지 않기에, IOT리아 앱으로 원격 접속까지 해본거에요. 

★★ 처음 IOT코아 , IOT리아 앱을 접해보신분은 조금 복잡하다 생각하실 수도 있을건데, 딱! 3번만 반복해보세요. 보드 등록부터 IOT리아 앱으로 원격 접속까지 딱! 2분이면 끝납니다 ★★

 

※ 이미지가 많다보니 글이 엄청 길게느껴지네요. 대부분 그냥 따라하면 되는 부분이고, 중요한 부분은 딱! 2~3군데밖에 없습니다. 복습 2~3회 하시고, 이번 학습에서 배우신 IOT코아 & IOT리아 앱 사용법을 숙지하셔야 다음 기초학습 진도를 나갈 수 있습니다. 즉! 다음 예제부터는 IOT 코아 앱에서 설정하는거는 웬만하면 제외할 예정입니다.

 

-> 다음 시간에는 LED를 켜고 끄는 학습을 해볼까 합니다. 그럼 오늘은 !! 끝!!

 

댓글