[ESP-8266 강좌] 아두이노 없이 ESP-8266만으로 웹브라우저로 led 제어하기안녕하세요 이번에는 아두이노 없이 ESP-8266모듈 단일으로 사용하는 방법에 대해 알아보도록 하겠습니다.
ESP-8266이란?
ESPRESSIF SYSTEMS라는 기업애서 개발된 와이파이 모듈입니다.
펌웨어가 공개되어있어 NODE MCU나 Espruino와 같은 개발환경이 존재합니다.
최근에는 아두이노 ide에서도 개발할 수 있는 펌웨어가 만들어 졌고요
저희는 node MCU를 다루어 보도록 하겠습니다.
http://cafe.naver.com/iotstory/165
기본적인 설치 방법은 위 링크에 자세히 설명 되어 있습니다.
오늘 할 내용은
웹 브라우저로 LED 제어하기
입니다.
[배선]
브레드보드의 검은색선을 esp 8266의 좌측 상단의 핀으로 하고 배선을 합니다.
전원은 3.3v를 인가해 주도록 합니다. esp 8266이 동작하는 최대전압은 3.6v입니다. 5v의 전압을 거시면 고장 날 수 있으니 유의 해주세요
[소스 코드]
개발환경은 esplorer을 사용합니다.
wifi.setmode(wifi.STATION) wifi.sta.config("mechasolution","mecha@123") print(wifi.sta.getip()) led = 4 gpio.mode(led, gpio.OUTPUT) srv=net.createServer(net.TCP) srv:listen(80,function(conn) conn:on("receive", function(client,request) local buf = ""; local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP"); if(method == nil)then _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP"); end local _GET = {} if (vars ~= nil)then for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do _GET[k] = v end end buf = buf.."<a href=\"?pin=ON\">LED_ON</a><br>"; buf = buf.."<a href=\"?pin=OFF\">LED_OFF</a>"; local _on,_off = "","" if(_GET.pin == "ON")then gpio.write(led, gpio.HIGH); elseif(_GET.pin == "OFF")then gpio.write(led, gpio.LOW); end client:send(buf); client:close(); collectgarbage(); end) end)
[소스코드 분석]
wifi.setmode(wifi.STATION) 와이파이의 모드를 스테이션으로 지정합니다.(모듈이 다른 와이파이에 연결이 가능)
wifi.sta.config("와이파이이름","와이파이 비밀번호") 와이파이에 연결을 합니다.
printf(wifi.sta.getip()) 와이파이에 연결된 뒤, 자신의 아이피 주소를 출력합니다. ESPlorer에서 확인하실 수 있습니다.
led = 4 led라는 변수를 선언하고 4를 저장합니다. 짚고 넘어가자면 lua언어에서는 변수형의 구분이 없기때문에 변수형을 지정할 필요가 없습니다.
gpio.mode(led,gpio.OUTPUT) 4번핀의 설정을 출력으로 지정합니다.
srv=net.createServer(net.TCP) 서버를 생성합니다.
listen ~ end) 서버에 연결되는 클라이언트에대한 설정한뒤 html코드를 보내 브라우저 상에 출력을 합니다. 버튼이 눌리면 입력되는 값을 통해 led를 제어하는게 전체 내용입니다.
[동작영상]
|
최신댓글