본문 바로가기
아두이노

아두이노 이더넷 클라이언트의 시작-#1

by 오징어땅콩2 2020. 5. 23.
반응형

무엇을 해볼까? 뭘 공부 할까 고민 하다가...
이전해 했던것 한번 더 정리하고 다시해 보기로 했다.
이전에는 아두이노 이더넷 서버라면 이번은 아두이노 클라이언트다.

저번에는 서버는 서비스를 제공하는 입장이고 클라이언트는 서비스를 제공받는 입장이다.
이것은 개념적인 이야기지, 서버가 서비스를 제공하면서 다른 서버로 부터 수시로 서비스를 요청을 할 수가 있다.
즉 서버가 클라이언트고 서버 라는것이다. 딱기 그 구분과 경계를 정의하기 어려운 입장이 있다.
그러나 초보 입장에서는 그 경계를 명확히 하는게 프로그램 개발이 편리하다.
기본은 그렇게 배우고 응용하기 바란다. 응용 먼저하고 기본을 배우지 않는다면 나중에 혼란만 올 뿐이다.

그리고 이번 부터 하는것은 개념이나 소스는 그데로  ESP8266이나 무선에 적용 할 수 있기 때문에,
직접 적용해 보기는 것도 좋을것이다.

마지막으로 지금부터 하는 이야기는 공적적인 분류나 개념정리는 아니다. 
그냥 본인이 분류하고 머리속으로 정리하는것이다. 공식적인 분류나 개념을 누군가 정리해서 발표하면 좋겠지만.
아직은 그런게 없다. 이런것은 학계나 학교, 교수분들이 해야 한다고 생각한다.

일단 무엇을 공부해야 하고 클라이언트로 무엇을 할 수 있는지 분류해보자.
아두이노와 기존 서버로와 통신을 할 것이다. 
그러면 아두이노 프로그램도 개발해야 하고 서버프로그램도 개발해야 한다. 
서버가 리눅스가 되었던, 원도우 서버가 되었던 어째던 만들어야 한다. 
그러면 서버 프로그램을 안만들고 하는 방법은 없을까 ?
그렇다 기존의 프로토콜을 활용하는 방법이다.
httpd, FTP, 기타 서비스 제공하는 서버의 프로토콜을 사용하는것이다.
그리고 두개의 장단점을 알아 보자.

1. 기존 프로토콜의 활용
1.1 단점 기존 프로코콜을 공부해야 한다. 
1.2 내가 서버 프로그램을 안 만들어도 된다. 물론 만들어도 상관 없다. 안정적이다.

예1) 주로 날씨, 기차표 정보를 가져 오는데 사용 할 수가 있다. 
가) 아두이노가 서버에게 정보 제공을 요청. (날씨정보 요청)
나) 아두이노는 그 정보를 받는다. (온도, 습도, 기타 정보)
다) 그 정보를 분류하여 다른 용도로 사용한다. (비가 온다는 정보가 있으면 창문을 닫는다.)

예2) 주로 핸드폰에 문자를 보내 수도 있다. 
가) 아두이노가 서버에게 정보를 제공. (집안에 침입자 발생, 아두이노는 끝)
나) 나머지는 서버가 문자를 보내고 모든게 끝.

예1과 예2는 구분해야 한다. 비슷하지만 좀 다르다. 
그리고 예1은 아두이노 우노로 할 수 없는게 더 많다. 
그것은 지난번에서 언급한것 처럼 우노의 기번 sram이 2k이다. 
그렇다면 서버에게 제공하는 정보의 양의 2k가 넘는다면 불가능 하다.
물론 트릭은 있다. 그것을 설명하기는 기본을 넘어가기 때문에 언급하지 않겠다.
그래서 주로 예1은 메가 보드를 활용 할 것이다. 
우노를 사용하다가 메가를 사용하면 10평 원룸에 살다가 50평 아파트로 이사한 기분이다.


2. 본인이 프로토콜을 만드는것
2.1 본인이 프로토콜의 규칙을 정의하고 만들어야 한다. 이게 보통 수준의 능력이 필요한게 아니다.
2.2 본인이 단순하게 만들어도 사용가능 하다. 별도의 공부는 필요 없다. 본인이 만들고 본인이 사용하기 때문에 곧 본인 마음데로 한다.

2번은 인터넷이 아니더라도 블루투스나 시리얼 통신에 활용 할 수가 있다.

댓글