본문 바로가기

아두이노/응용

아두이노 사용기#5 ESP8266 모듈을 다루어 보다.

아두이노의 제일 큰 장점은 아무래도 "코딩 몇 줄로 모듈들을 사용할 수 있다."일 것이다.

음... 응용에 집중할 수 있다는 얘기이다.


오늘은 ESP8266 모듈을 다뤄 볼 것이다.



1. 라이브러리 다운로드


아래의 링크에서 라이브러리를 먼저 다운로드 한다.

https://github.com/itead/ITEADLIB_Arduino_WeeESP8266


"Clone or download" 클릭.


"Download ZIP" 클릭


다운로드한 ZIP파일을 아두이노 IDE에 추가해주면 된다.

ZIP파일이름은 "ITEADLIB_Arduino_WeeESP8266-master.zip" 일 것이다.



상단 메뉴에서  스케치 > 라이브러리 포함하기 > .ZIP 라이브러리 추가... 선택



2. 예제 코드 돌려보기


아래의 소스코드를 통째로 복사하여 아두이노 IDE에 붙여넣는다.

https://github.com/itead/ITEADLIB_Arduino_WeeESP8266/blob/master/examples/TCPClientSingleUNO/TCPClientSingleUNO.ino


코드를 간략하게 설명하면 


setup 함수

ESP8266모듈을 세팅하고

Wifi 연결까지 시동한다.


loop 함수

TCP/IP를 이용해서 서버와 연결을 한 후

'Hello, This is Client!' 라는 메시지를 서버 측에 보낸다.

그리고 10초간 메시지를 기다린다.

메시지가 도착하면 모니터 프로그램에 표시해주고

서버와의 연결을 끊고 5초세 정도 기다렸다가

다시 loop함수를 돈다.


하지만 위의 코드를 그냥은 못 돌린다.

자신의 환경에 맞게 수정을 해야 한다.


#define SSID        "ITEAD"   //자신의 집 와이파이 이름
#define PASSWORD    "12345678" //그 와이파이 비밀번호
#define HOST_NAME   "172.16.5.12" //통신할 자신의 컴퓨터 IP 주소
#define HOST_PORT   (8090) //통신으로 사용할 포트 번호

SoftwareSerial mySerial(3, 2); /* RX:D3, TX:D2 */ //ESP8266와 연결한 UNO의 포트 번호


아이피 주소 확인하는 방법은 다음과 같다.

# for Linux OS

$ ifconfig


# for Window OS

> ipconfig 



마지막으로 자신의 PC에 돌릴 서버 프로그램이다.

파이썬 코드이다.

# TCP server example
import socket

server_port = 8090
max_users = 5	    #maximum number of queued connections

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", server_port))
server_socket.listen(max_users)

print ("Waiting for client on port ",server_port)

count = 0
while True:
	client_socket, client_address = server_socket.accept()
	print ("connection from ", client_address)
	while True:
		data = client_socket.recv(128)
		if not data:
			break
		print(count, 'received :',data)
		sent = client_socket.send(data)
		if sent == 0:
			print("socket connection broken")
		print(sent)
	print("Disconnected")
	client_socket.close()
	count = count+1

server_socket.close()


위의 코드를 실행하기 위해서는 파이썬이 설치되어 있어야 한다.



다음은 실행 결과이다.


<PC Server side>



<Arduino Side>




3. 연결도







케이블 연결 시에는 항상 조심해야 한다.

다른 건 몰라도 전원, GND는 잘 확인하기 바란다.

안 그러면 보드를 그대로 하늘로 보내야 할지도 모른다.




위의 내용은 제 네이버 블로그에서 가져온 글입니다.

(2016.09.19)

http://chandong83.blog.me/220815798329