반응형

 

 

 

아두이노(Arduino)를 다루다 보면 다양한 모듈을 사용할 기회가 많은데 그 중에 쉴드(shield) 제품을 사용할 경우가 있습니다. 아두이노 쉴드는 아두이노 보드 본체와 탑처럼 쌓을 수 있게 아두이노의 pin과 결합이 가능한 모듈을 말합니다. 각 쉴드마다 특정 기능을 탑재하고 있어서 마치 아두이노 본체를 하드웨어적으로 업그레이드하는 Flex 한 느낌이 드는 모듈입니다. 

 

아두이노 쉴드 종류는 현재 시장에 나와있는 종류만 300가지가 넘고, Wifi, 이더넷, 블루투스, SD카드, USB, 등 정말 다양한 기능을 탑재한 쉴드제품이 있습니다. 쉴드 하나하나 자세히 다루고 싶긴 하지만 직접 사용해봐야 설명도 가능해서 우선 몇 가지 소개하고 있는 블로그를 아래 링크 걸어두게요 ^^ 참고하세요~

 

[아두이노 기초 강좌] 아두이노 쉴드란? 개념과 종류에 대해

[아두이노 기초 강좌. 아두이노 쉴드의 개념 및 종류] 이번 강좌에서는 아두이노 쉴드(Arduino Shield)에...

blog.naver.com

 

아두이노(Arduino) 쉴드(shield) 제품

아두이노 쉴드를 직접 사용해보시면 아실 듯 하지만 다양한 장점이 있습니다. 우선 단일 모듈은 배선을 해야 해서 전선을 복잡하게 사용해야 하는 경우가 있지만 쉴드는 pin 결합을 통해 배선이 하나 없어도 사용 가능합니다. 또한 아래와 같이 다양한 기능을 탑재한 쉴드를 결합해서 하나의 제품처럼 콤팩트 하게 사용할 수 있는 장점이 있습니다. 좀 멋지죠? ㅎㅎ 하지만 역시나 단점이 많다는 것!! 단점은 각 쉴드에 따라 경중이 있어서 쉽게 말하기 어렵지만.. 치명적인 결함도 있는 경우도 다수 있으니 항상 주의해서 구입해야 합니다.

아두이노 쉴드 사용예

쉴드 제품에 대해서 설명은 이렇게 가볍게 넘어가고 오늘 주제인 가장 관심이 많은 Wifi ESP8266 쉴드 제품 사용 방법에 대해 알아보도록 하겠습니다.

 

 


1. ESP8266 Wifi 쉴드(shield) 모듈

 

ESP8266 Wifi 쉴드 제품은 ESP8266 Wifi 모듈과 같이 ESP8266 칩셋을 사용하기 때문에 Wifi 모듈과 동일한 역할을 합니다. 아두이노에는 일반적으로 기본보드에는 와이파이 칩이 없기 때문에 와이파이 기능이 되려면 Wifi 모듈을 사용하거나 Wifi 쉴드를 사용하면 됩니다. 제품 모양은 아래 사진같이 생겼는데 좌측 중앙에 있는 칩이 Wifi 칩셋이고 그 주위로 Chip의 각 GIPO (General Purpose Input/Output)에 연결할 수 있게 pin이 배치되어 있고 보드 뒷면에는 아두이노의 pin과 결합할 수 있게 pin 다리가 있습니다. 그리고 특이하게 프로그램을 업로드할 때 사용하는 스위치가 있는데 뒤에서 사용방법을 얘기할 때 자세하게 설명드리겠습니다. 

아두이노(Arduino) Wifi 쉴드(shield)

 


 

2. ESP8266 Wifi 쉴드(shield) 모듈 라이브러리(Library) 추가

 

잠깐! ESP8266 Wifi 쉴드를 아두이노 본체에 먼저 결합하시지 마시고요 ㅎㅎ 그전에 라이브러리를 설치하고 스케치를 통해 프로그램을 아두이노를 통해서 쉴드에 업로드해야 합니다. 아마 여기저기 사용방법을 찾아보셨을 건데.. 일부 사용방법에서 펌웨어를 업로드해야 해서 추가로 모듈을 사용해야 한다고 포스팅되어 있는데도 많을 겁니다. 하지만! 매번 하는 이야기이지만 쉽게 복잡한 거 싫어하는 저는 아두이노만으로 충분히 동작하였습니다. 그럼 진행해 볼까요?

 

우선 라이브러리를 다운로드하기 전에 스케치 메뉴에서 File(파일) -> preferences(환경설정)에서 Additional Boards Manager URLs(추가적인 모드 매니저 URLs)에 http://arduino.esp8266.com/stable/package_esp8266com_index.json를 추가해줍니다.

 

아두이노(Arduino) 스케치 환경설정
아두이노(Arduino) 스케치 환경설정에 URLs 추가

그리고 라이브러리 포함하기(Include Library) 메뉴의 라이브러리 관리(Manage Libraries)에서 ESP8266 Community의 esp8266 라이브러리를 설치합니다.

 

아두이노(Arduino) 스케치에서 라이브러리(Library) 추가
esp8266 라이브러리(Library) 설치

esp8266 라이브러리가 정상적으로 설치되고 나면 스케치의 툴(Tool) 메뉴의 보드(Board)에서 NodeMCU 1.0 (ESP-12E Module)을 선택합니다. 

 

아두이노(Arduino) 스케치에서 보드(Board) 선택
아두이노(Arduino) NodeMCU 1.0 (ESP-12E Module) 보드 선택

NodeMCU 1.0 (ESP-12E Module) 보드를 선택하면 툴(Tiool) 메뉴에 보드명이 변경되고 그 아래로 Upload Speed, CPU Frequency 등의 정보가 표시되고 변경할 수 있는 메뉴들이 생성됩니다. 저는 따로 변경 없이 초기 설정되어 있는 그대로 사용하고 있지만 필요하신 분은 필요에 따라 설정을 변경하여 사용하시면 됩니다.  

 

 


 

3. ESP8266 Wifi 쉴드(shield) 모듈 프로그램 업로드

 

ESP8266 Wifi 쉴드와 스케치와 연결이 완료되었으면 테스트 프로그램을 업로드해보겠습니다. 테스트 프로그램은 따로 코딩하지 않고 라이브러리를 설치하면 자동으로 생성되는 예제 프로그램을 사용합니다. 스케치 파일(File) 메뉴에서 예제(Examples) -> ESP8266WebServe에서 'HelloServer' 프로그램을 불러옵니다.

 

그럼 꽤 긴 프로그램이 열리는데 프로그램 내용은 와이파이에 접속하고 연결된 와이파이 망내에서 할당받은 IP주소에 "hellow from esp8266!" 문자를 출력하는 내용입니다. 프로그램을 업로드하고 나서 웹상으로 "hellow from esp8266!"가 출력되었는지 확인이 가능합니다. 프로그램을 모르시더라도 한 줄 한 줄 짚어보면 이해하실 수 있을 겁니다. 여기서 수정할 내용은 프로그램 상단에 나와있는 STASSID와 STAPSK를 접속하려는 Wifi의 SSID(아이디)와 비밀번호로 변경해주시면 됩니다.

 

Wifi 아이디, 비밀번호 입력

프로그램을 업로드하기 전에 몇 가지 단계가 있어 까다롭지만 차근차근 진행하면 원활하게 업로드가 되니 반드시 하나도 빠짐없이 순서를 지켜주세요 ^^ 진행 예시로는 아두이노 우노(UNO) 제품으로 진행되지만 나노나 메가나 비슷하기 때문에 구분 없이 보셔도 됩니다.

 

3.1 아두이노 우노 보드 초기화 

보통 아두이노 보드에 기존 사용하던 프로그램이 업로드되어 있는 경우가 많습니다. 그래서 보드를 초기화하는 작업으로 스케치에서 'BareMinimum' 프로그램을 업로드하면 됩니다. 

 

스케치의 파일(File) 메뉴에서 예제(Examples) -> Basic에서 'BareMinimum' 프로그램을 찾을 수 있습니다.

'BareMinimum' 프로그램은 특별한 게 아니고 처음 스케치를 설치하고 실행하였을 때 보셨던 초기 화면입니다.

 

아두이노(Arduino) 스케치 'BareMinimum'

3.2 EPS8266 쉴드 보드 설정

앞서 잠깐 언급했던 ESP8266 쉴드 보드에 달려있는 스위치를 설정해야 합니다. 보드 설정에 따라 FLASH 모드와 통신 모드로 구분합니다.

 

스위치 DIP 업: FLASH모드 (펌웨어 업로드 및 스케치 업로드 시 사용)

스위치 DIP 다운: 통신 모드 (TX, RX 통신 및 아두이노 시리얼 통신 시 사용)

 

FLASH 모드                       통신모드

 

3.3 아두이노 보드와 ESP8266 와이파이 쉴드 보드 연결

ESP8266 와이파이 쉴드를 아두이노 보드 위에 탑재하기 전에 프로그램 업로드할 때는 다음과 같이 연결해야 합니다. 전원 공급을 위해 5V와 GND를 연결하고 아두이노의 Tx-1, Rx-0과 ESP8266 쉴드의 TXD와 RXD를 연결합니다. 여기서 주의하실 부분은 보통 아두이노의 Tx(전송)는 모듈의 Rx(수신)와 아두이노의 Rx(수신)는 모듈의 Tx(전송)하고 연결하는 게 일반적인데 반대로 Tx는 Tx와 Rx는 Rx와 연결해야 정상적으로 동작합니다. 

 

아두이노(Arduino) ESP8266 와이파이 쉴드(Wifi shield)와 연결 배선

 

3.4 스케치를 통해 프로그램 업로드

배선까지 정상적으로 완료되었으면 아래와 같이 램프에 불이 들어옵니다. 그럼 FLASH 모드 (DIP 스위치를 업)로 설정하고 스케치에서 업로드를 실행합니다. 

 

ESP8266 Wifi shield

그럼 아래와 같이 업로드가 진행되는데 아마 "Connecting......." 메시지에서 진행이 더 이상 안될 겁니다. 계속해서 업로드 실패를 보실 겁니다... 다 끝난 줄 알았는데... 완전 짜증.... 

 

재시도 끝에 해결방법을 찾았는데 방법은 DIP 스위치 오른쪽에 있는 ESP RST 버튼을 타이밍에 맞춰서 눌러줘야 하는 겁니다. 버튼을 누르는 타이밍은 "Connecting........." 메시지를 보고 바로 누르면 됩니다. (좀 복잡한가요..;; 이래서 예전에 한 번 언급했지만 저는 쉴드제품은 절대 구입을 안 합니다... ㅋㅋ)

 

아두이노(Arduino) 스케치 ESP8266 와이파이 쉴드(Wifi shield) 프로그램 업로드

프로그램이 정상적으로 업로드되면 로딩 퍼센트가 100%까지 로딩 메시지를 볼 수 있습니다.

 


 

3. ESP8266 Wifi 쉴드(shield) 모듈 작동 확인

 

프로그램 업로드가 완료되면 정상적인 동작 확인을 위해 시리얼 모니터(Serial Monitor)를 실행합니다. 이때 주의하실 점은 ESP8266Wifi 실드는 통신 모드 (DIP 스위치 다운)으로 설정한 후에 진행해야 합니다. 시리얼 모니터를 실행하고 통신속도를 115200 baud로 설정하면 아래와 같이 "Connected to 접속한 wifi아이디"와 함께 할당받은 IP address를 볼 수 있습니다.

 

아두이노(Arduino) 시리얼 모니터를 통해 ESP8266 wifi 쉴드 접속 IP 확인

저는 IP 192.168.0.101로 할당받았으며, 확인된 IP주소로 웹을 통해 접속하면 짠~ "hello from esp8266!" 메시지를 확인할 수 있습니다 ㅎㅎ

ESP8266 와이파이 쉴드(Wifi shield) 웹으로 접속 후 동작 확인

 

4. ESP8266 Wifi 쉴드(shield) 모듈 아두이노 쉴드에 탑재하기

 

ESP8266 와이파이 쉴드를 아두이노 보드에 탑재하기 전에 또 작업해야 할 일이 있습니다. 아마 쉴드 제작자의 실수로 인한 문제인 듯한데 아두이노의 디지털(Digital) 0번-Rx, 1번-Tx와 만나는 쉴드의 0, 1번 핀이 반대로 제작되어서 그대로 아두이노에 탑재하면 ESP8266 쉴드와 통신이 안 되는 문제가 발생합니다. 그렇기 때문에 아래 사진과 같이 두 핀을 구부려서 접촉되지 않게 한 후에 Tx와 Rx는 전선으로 연결해야 하는 번거로운 점이 있습니다. (여러분.. 쉴드제품 구매하기 전에는 반드시 이런 점들을 확인하셔야 합니다 ㅠㅠ)

  

ESP8266 와이파이 쉴드(Wifi shield) pin 설정

 

 


여기까지 아두이노(Arduino)의 EPS8266 와이파이 쉴드(Wifi shield)를 사용하는 방법에 대해 알아보았습니다. 생각보다 까다롭긴 해도 아두이노 보드 위에 탑재된 모습을 보면 또 멋져 보이기도 하죠 ㅎㅎ

 

아두이노를 사용하시면서 쉴드(Shield)의 Flex 한 모습에 반해 많이들 구매하실 거라 생각하며 저 또한 여러 제품을 구매해서 사용하고 있지만 일반적으로 많이 보급되지 않은 제품은 문제점도 많고 스스로 해결하기 힘들면 아까운 돈을 사용하게 되므로 구매 전에는 반드시 확인하시고 구매하시길 권고하는 바입니다. ^^

 

오늘도 긴 글 읽어주셔서 감사합니다. 궁금하신 내용 있으면 언제든지 댓글로 남겨주세요 감사합니다~

 

 

 

반응형

+ Recent posts