일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mysql c
- 알고리즘
- ubuntu
- web
- 웹 프로그래밍
- 데이터베이스
- vm
- 아두이노 wifi
- 아두이노 핀
- 코딜리티
- Arduino pin
- Mysql c API
- 아두이노 핀 맵
- Arduino pin map
- 라즈베리파이
- 아두이노
- HTML
- database
- html input
- mysql api
- MySQL
- Arduino
- 아두이노 pro mini
- Codility
- 아두이노 와이파이
- Virtual Box
- wifi멀티탭
- 아두이노 프로미니
- Raspberry Pi
- 아두이노 핀맵
- Today
- Total
offfff
3. 아두이노+ESP8266 본문
A. 사용부품
ESP8266, 아두이노 프로미니
1. ESP8266 펌웨어 업그레이드
2. 아두이노와 ESP8266 연결 방법(참고)
3. ESP8266 라이브러리 설치
- https://github.com/itead/ITEADLIB_Arduino_WeeESP8266 에서 다운로드
- 아두이노에서 라이브러리 추가하는 방법(압축파일 형태)
아래 메뉴 클릭해서, 라이브러리 압축파일이 있는 경로에서 파일을 추가
- 라이브러리 수정
ESP9266.h 파일에서, 아래 주석처리 된 라인 1줄을 해제해야 사용 가능
ESP8266 모듈 펌웨어 용 라이브러리 사용 중일 경우, 클래스 이름을 변경해줘야 함
(Ctrl+F, Replace 사용해서 ESP8266을 A_ESP8266으로 변경 함, 기존 라이브러리와 충돌 방지)
4. 테스트용 서버 유틸리티(Hercules SETUP utility)
- http://new.hwg.cz/files/download/sw/version/hercules_3-2-8.exe 에서 다운로드
- TCP Server 탭에서 Listen 버튼 클릭하여 서버 구동(포트번호 원하는 값 지정 가능)
5. 아두이노, ESP8266 연결 및 구동
(1) 아두이노, ESP8266 회로 구성
- 아래는 인터넷에서 흔히 구할수 있는 연결 방법, 아두이노 프로미니에서는 잘 동작하지 않았다.
※ 아두이노 프로미니에 연결할 때, 알아야 할 점
1. ESP8266의 동작전압
검색해 보면 3.3V에서 동작한다고 나와있으나, 5V에 연결해야 동작 함
VCC와 CH_PD를 5V에 연결하여 pull-up 시킨다
2. ESP8266의 RX에는 3.3V의 전압을 1로 인식
따라서 아두이노 프로미니 TX단에서 나오는 5V 전압은
Voltage divider로 3.3V언저리로 전압강하 해야 함
(2) 예제 소스코드
- SSID, PASSWORD, HOST_NAME, HOST_PORT 번호 알맞게 수정
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 #include "A_ESP8266.h"#include <SoftwareSerial.h>#define SSID "apple"#define PASSWORD "12345678"#define HOST_NAME "192.168.0.7"#define HOST_PORT (23)SoftwareSerial mySerial(11, 10); //RX 11, TX 10A_ESP8266 wifi(mySerial);void setup(void){Serial.begin(9600);Serial.print("setup begin\r\n");Serial.print("FW Version:");Serial.println(wifi.getVersion().c_str());if (wifi.setOprToStationSoftAP()) {Serial.print("to station + softap ok\r\n");} else {Serial.print("to station + softap err\r\n");}if (wifi.joinAP(SSID, PASSWORD)) {Serial.print("Join AP success\r\n");Serial.print("IP:");Serial.println( wifi.getLocalIP().c_str());} else {Serial.print("Join AP failure\r\n");}if (wifi.disableMUX()) {Serial.print("single ok\r\n");} else {Serial.print("single err\r\n");}Serial.print("setup end\r\n");if (wifi.createTCP(HOST_NAME, HOST_PORT)) {Serial.print("create tcp ok\r\n");} else {Serial.print("create tcp err\r\n");}pinMode( 13, OUTPUT );}void loop(void){uint8_t buffer[128] = {0};uint32_t len = wifi.recv(buffer, sizeof(buffer), 10000);if (len > 0) {Serial.print("Received:[");for(uint32_t i = 0; i < len; i++) {Serial.print((char)buffer[i]);}Serial.print("]\r\n");}if ( buffer[0] == '1' ) digitalWrite( 13, HIGH );else if ( buffer[0] == '0' ) digitalWrite( 13, LOW );}cs
(3) 클라이언트 접속
'프로그래밍' 카테고리의 다른 글
[Linux] 사용자 계정 관리 (0) | 2017.09.03 |
---|---|
[Linux] VIM 설정 : 키 맵 사용/ 토글키 만들기 (0) | 2017.08.31 |
2. ESP8266 IDE 구축 (0) | 2017.02.14 |
1. ESP8266(WiFi Module) (0) | 2017.02.13 |
0. 아두이노 프로미니 시작 (0) | 2017.02.12 |