ทดสอบบอร์ด ESP8266 NodeMCU V2 สั่งงานผ่าน WIFI โดยให้ตัว Node MCU เป็น Access Point และ Web Server แล้วใช้ Smartphone เข้า Web สั่งงานเปิดปิดหลอด LED บนบอร์ดครับ
สิ่งจำเป็น
- DRIVER CP210x USB to UART Bridge VCP Drivers ไว้เชื่อมต่อ USB to Serial ไปยังบอร์ด
https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx - NodeMCU Studio เอาไว้เขียน LUA ลงไปที่บอร์ด
http://bbs.nodemcu.com/t/nodemcu-studio-ban-ben-geng-xin-wei-build20150111-update-to-version-build20150111/64
เปิดโปรแกรม NodeMCU Studio เลือก Port Com ที่เชื่อมต่อ
Click ที่ List File lua ด้านซ้ายที่ชื่อว่า init.lua
(โดยที่โปรแกรมอะไรก็ตามที่เขียนอยู่ใน init.lua จะถูกรันเป็นอันดับแรกเมื่อบอร์ดทำงาน)
ทดสอบเขียนคำสั่งเพื่อให้บอร์ดทำงานเป็น Access Point และ Web Server และทดสอบโดยใช้ SmartPhone ต่อ Wifi เข้า Web ไปสั่งงานเปิดปิดหลอดไฟที่อยู่บอร์ด โดยมี Code ดังนี้
lp4 = 4
gpio.mode(lp4,gpio.OUTPUT)
gpio.write(lp4,gpio.LOW)
wifi.setmode(wifi.SOFTAP);
wifi.ap.config({ssid="yesprezzo",pwd="12345678"});
function split(s, delimiter)
result = {};
for match in (s..delimiter):gmatch("(.-)"..delimiter) do
table.insert(result, match);
end
return result;
end
function urldecode(payload)
result = {};
list=split(payload,"\r\n")
list=split(list[1]," ")
list=split(list[2],"\/")
table.insert(result, list[1]);
table.insert(result, list[2]);
table.insert(result, list[3]);
return result;
end
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
local buf = "";
conn:on("receive",function(conn,payload)
list=urldecode(payload)
--print(payload)
buf = buf.."HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nCache-Control: private, no-store\r\n\r\n\
<!DOCTYPE HTML><html><head>\
<meta content=\"text/html;charset=utf-8\"><title>I.n.n.O</title>\
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0\">\
<body bgcolor=\"#ffe4c4\">\
<h2>I.n.n.O-Home v5</h2><hr>"
buf = buf.."<a href=\"on001\"><button>ON 01</button></a> <a href=\"off001\"><button>OFF 01</button></a></p>"
buf = buf.."<a href=\"on002\"><button>ON 02</button></a> <a href=\"off002\"><button>OFF 02</button></a></p>"
buf = buf.."<a href=\"on003\"><button>ON 03</button></a> <a href=\"off003\"><button>OFF 03</button></a></p>"
if(list[2]=="")then
buf = buf.."<p> Not Command</p>"
elseif (list[2]=="on001")then
buf = buf.."<p>ON-001</p>"
gpio.write(lp4,gpio.LOW)
elseif (list[2]=="off001")then
buf = buf.."<p>OFF-001</p>"
gpio.write(lp4,gpio.HIGH)
elseif (list[2]=="on002")then
buf = buf.."<p>ON-002</p>"
gpio.write(lp4,gpio.LOW)
elseif (list[2]=="off002")then
buf = buf.."<p>OFF-002</p>"
gpio.write(lp4,gpio.HIGH)
elseif (list[2]=="on003")then
buf = buf.."<p>ON-003</p>"
gpio.write(lp4,gpio.LOW)
elseif (list[2]=="off003")then
buf = buf.."<p>OFF-003</p>"
gpio.write(lp4,gpio.HIGH)
else
buf = buf.."<p>URL ERROR</p>"
end
buf = buf.."</body></html>"
conn:send(buf)
conn:close()
end)
end)
เมื่อนำ Code ไปว่างเสร็จแล้วกดปุ่มดัง Download จะปรากฏการเขียนข้อมูลลง init.lua ขึ้นทาง Terminal ด้านล่างขวา
กดปุ่ม Restart ที่ตัวบอร์ดแล้วลองนำ Smart Phone มาเชื่อมต่อ Wifi ที่ชื่อ wifi.ap.config({ssid="yesprezzo",pwd="12345678"});
เมื่อ Connected! แล้วให้ใช้ Web Browser เข้า url ip: 192.168.4.1 จะปรากฎเว็บขึ้นมาให้สั่งงาน LED ได้ครับ
รีวิวนี้จบแค่นี้ก่อนนะครับ ถ้ามีความก้าวหน้ามาขึ้นจะกลับมารีวิวอีกครับ ขอบคุณครับ
PS. ถ้ามีข้อสงสัยหรืออยากแลกเปลี่ยนคุยกันได้ที่ www.facebook.com/yesprezzo นะครับ
hello friend, how do I change the wifi name and password?
ReplyDelete