일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MQTT
- SK텔레콤
- Espressif
- raspberry pi
- 해외주식
- cluster
- 오블완
- 현대통신
- 매터
- homebridge
- 미국주식
- 힐스테이트 광교산
- Bestin
- 티스토리챌린지
- 코스피
- 나스닥
- 홈네트워크
- Apple
- 국내주식
- Python
- 애플
- 월패드
- 파이썬
- ConnectedHomeIP
- 공모주
- 배당
- matter
- Home Assistant
- RS-485
- esp32
- Today
- Total
YOGYUI
Keyes ESP8266 WiFi Module 본문
IoT를 위한 아두이노 구현 시 일반 아두이노 보드에 WiFi Module을 결합하는 방식도 있지만, "MCU + WiFi 일체형 모듈"로 프로토타이핑하는 방식도 있다 (요즘은 MCU + WiFi + BLE + Zigbee 완전 통합형 모듈도 시중에 많이 판매되고 있다)
이번 포스팅에서는 몇년 전에 프로토타이핑한다고 구매하고 딱 한번 써본 Keyes 사의 ESP8266 WiFi 모듈에 대한 간단한 리뷰? 를 적어보도록 한다 (지금은 단종된듯...)
1. Introduction
ESP8266은 Espressif Systems라는 중국 회사에서 설계한 SoC로, Single Core 32bit MCU + 2.4GHz WiFi 모듈을 내장하고 있다
다양한 시리얼 통신 (UART, I2C, I2S, SPI)를 지원하며, ADC도 갖추고 있다
다양한 서드파티에서 ESP8266 IC와 전원 회로 및 안테나를 하나로 임베딩한 모듈을 만들어 판매하고 있으며, 일반 소비자는 아래와 같이 생긴 모듈을 구매해 테스트 및 제품 제작을 진행한다 (모듈 하나 가격이 under 5천원)
다양한 하드웨어적 기능을 갖췄다는 사실보다는, 아무래도 아두이노 IDE를 활용해서 바로 코딩해볼 수 있다는 점이 사용자들이 많이 찾는 이유가 아닐까 싶다 (대륙 스케일의 규모의 경제를 활용한 놀랍도록 저렴한 가격도 한몫한다)
와이파이 모듈과 AT-Command라는 방식의 통신으로 와이파이 송수신을 코딩해야되는데, 공인된 아두이노 라이브러리를 통해 귀찮은 AT-Command 코딩 없이 바로 프로토타이핑가능하니 하드웨어 개발 속도가 꽤나 향상되는 감이 있다
(물론 개발자 입장에서는 AT-Command도 한번쯤은 직접 구현해 볼 필요가 있다, 별로 어렵지도 않고...)
만약 Bluetooth도 함께 내장된 모듈을 찾는다면 Espressif의 ESP-32 시리즈도 고려할만한 SoC이다
KEYES 사의 ESP8266 모듈은 AI-Thinker사의 ESP-12F를 기반으로 설계되었다 (ESP-12F 데이터시트)
Built-in Flash Memory가 32Mbit로 꽤 넉넉한 편이라 왠만한 사이즈의 코딩 결과물은 문제없이 업로드된다
NodeMCU라는 와이파이 기반 IoT 플랫폼을 위한 하드웨어로도 널리 알려져있다 (ESP 기반 서드파티가 워낙 많고 커뮤니티가 매우 활성화되어있어 IoT 입문자들이 많이 찾는 하드웨어라고 할 수 있다)
2. Arduino IDE
아두이노 IDE에서 ESP8266 와이파이 모듈을 다루기 위해서는 Board Manager에서 ESP8266 보드를 추가해줘야한다
(모든 과정은 Keyes 공식 사이트의 가이드를 참고하였다)
2.1. Board Manager
아두이노 IDE 환경설정 (OSX: 메뉴바 - Arduino - Preferences)의 "Additional Boards Manager URLs" 항목에 다음 URL을 복붙한다
http://arduino.esp8266.com/stable/package_esp8266com_index.json
확인을 누른 후 보드 매니저를 연 뒤 (OSX: 메뉴바 - Tools - Board: "Arduino XXX" - Board Manager) 'ESP8266'으로 검색하여 'esp8266 by ESP8266 Community' 항목을 설치해준다 (21년 1월 기준 최신버전 = 2.7.4)
보드를 설치하면 관련 라이브러리도 자동으로 같이 설치된다
(라이브러리 설치 경로: Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries)
설치 완료 후 ESP8266 보드가 USB로 연결되어 있는 상태에서 보드를 'Generic ESP8266 Module'로 변경
보드 설정은 다음과 같이 해준다
(설정이 다르면 업로드가 안되거나, Memory leakeage 이슈가 발생할 수 있다)
보드 설정 후 다음과 같이 본인의 WiFi 네트워크에 연결하는 예제코드를 컴파일 후 업로드해보자
[중요]
ESP8266은 2.4GHz WiFi만 지원하니, 본인의 와이파이가 5GHz 전용으로 설정되어 있다면 공유기의 설정을 바꿔야한다
#include <ESP8266WiFi.h>
void setup()
{
Serial.begin(115200);
Serial.println();
WiFi.begin("당신의 WiFi SSID", "WiFi 패스워드");
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
}
연결 완료 후 ESP8266 디바이스의 IP Address 및 Mac Address가 출력된다
공유기 내부 네트워크 정보에서 ESP 디바이스를 찾을 수 있다 (맥어드레스가 일치하지는 않는다...)
Arduino IDE를 이용한 IoT 디바이스 DIY를 위한 ESP8266 세팅은 이정도면 충분하다
물론 deploy시에는 보통은 RTOS를 올리는게 일반적인데, 이는 Eclipse와 ESP8266 SDK를 통해 구현할 수 있다
(관련 페이지, 추후 프로젝트 진행하면서 블로그 업로드 하고 싶으면 하고...귀찮으면 안할 예정)
[참고]
보드의 USB - 시리얼 컨버터는 CH340G IC 기반이다. 만약 Windows OS에서 드라이버를 감지하지 못한다면 링크에서 드라이버를 다운로드받아서 설치해줘야 한다
[참고]
OSX Big Sur에서는 업로드 시 "pyserial or esptool directories not found next to this upload.py tool."과 같은 오류 메시지가 발생할 수 있다. 해결은 아두이노 커뮤니티를 참고하자
[Pin Map]
'Hardware > Arduino' 카테고리의 다른 글
(CJMCU-2812-16) WS2812 RGB LED Array (x16 Ring) (0) | 2021.03.01 |
---|---|
ArduinoJson Document - Key 존재 여부 확인 (0) | 2021.02.15 |
ESP8266에서 MQTT 구동하기 (0) | 2021.02.01 |
Adafruit HT16K33 Backpack + LED Display (14-segment) (0) | 2021.01.28 |