[ESP8266] NodeMCU ด้วยภาษา LUA #1 : Getting Started
บอร์ดที่จะใช้ในการทดลองต่อไปนี้ คือ NodeMCU Dev Kit V1(สีดำ) และ NodeMCU Firmware V.0.9.6 Build 20150704 ครับ
การ Flash บอร์ด
เนื่องจากบางทีเราได้บอร์ดมาแล้ว เวอร์ชั่นมีมาอยู่แล้วมันอาจะเก่าไปแล้ว หรือบางทีเราก็นำบอร์ดไปเขียนเฟิร์มแวร์เองแล้ว (เช่น เล่น NodeMCU ด้วย Arduino IDE) เราก็สามารถมา flash เฟิร์มแวร์ของ NodeMCU ลงไปใหม่ เพื่อนำมาใช้งานกับการพัฒนาด้วยภาษา Lua ได้ครับ
Step 1 : ดาวโหลดโปรแกรม NodeMCU-Flasher
ดาวโหลดเสร็จแล้ว ให้ทำการแตกไฟล์ Zip ที่ดาวโหลดมาเลยครับ
Step 2 : ดาวโหลดเฟิร์มแวร์ล่าสุด https://github.com/nodemcu/nodemcu-firmware
- เลื่อนลงมากลางๆนะครับ แล้วคลิ๊กที่ไอคอน Download
Version ล่าสุด ณ ปัจจุบันคือ 0.9.6-dev_20150704 ครับ
มี Firmware อยู่ 2 แบบครับ
- nodemcu_float คือเฟิร์มแวร์ที่สามารถคำนวณแบบจุดทศนิยมได้ครับ
- nodemcu_integer คือ เฟิร์มแวร์ที่สามารถคำนวณแบบจำนวนเต็มได้เท่านั้นครับ
คำถามคือ…ต่างกันอย่างไร แล้วเลือกใช้อะไรดี?
คำตอบ ถ้ามีเซนเซอร์วัดอุณภูมิ ได้ค่าอยู่ที่ 30.25 C
- ต้องการแสดงผลแบบทศนิยม เช่น อุณหภูมิ 30.25 C แบบนี้ต้องเวอร์ชั่น float ครับ
- ต้องการแสดงผลเฉพาะจำนวนเต็ม เช่น 30 C ก็เลือกแบบ integer ครับ (ข้อดีคือประหยัด memory ครับ)
Step 3 : ติดตั้ง Driver
- ดาวโหลด Driver(CH340G) ที่นี่ สำหรับ NodeMCU DevKit Beta (สีเหลือง,สีน้ำเงิน)
- ดาวโหลด Driver(CH201x) ที่นี่ สำหรับ NodeMCU DevKit V1 (สีดำ)
Step 4 : Flash Firmware
- เสียบสาย Micro USB เข้ากับบอร์ด
เปิดโปรแกรม (ตำแหน่งที่แตกไฟ์Zip)\nodemcu-flasher-master\Win64\Release\ESP8266Flasher
เลือก COM Port ของ NodeMCU ซึ่งโดยปกติจะเลือกมาให้แล้วครับ (ในที่นี่คือ COM9 นะครับ)
- ที่แทป Config ให้เราคลิ๊กที่ไอคอนรูปเฟืองในกรอปสีเหลือง แล้วเลือกไฟล์ Firmware (.bin) เวอร์ชั่นล่าสุดที่ดาวโหลดมาครับ
- กลับมาที่หน้า Operation แล้วกด Flash ได้เลยครับ
- รอ Flash สักครู่ครับ
- รอจน Flash เสร็จ ก็จะขึ้นไอคอนเครื่องหมายถูกสีเขียวที่มุมซ้ายล่างครับ
* หากใครเกิดอาการค้างก่อน ที่จะ Flash เสร็จ
- ให้ลองปรับ Baudrate ลงเหลือสัก 115200 (เหลือต่ำกว่านั้น) ในช่อง Advanced แล้ว Flash ใหม่ครับ
ลองเขียนภาษา LUA
Step 1 : ดาวโหลดโปรแกรม ESPlorer IDE
http://esp8266.ru/esplorer/#download
(ต้องมี JAVA SE version 7 หรือใหม่กว่า)
ให้เลือกดาวโหลด ที่ไอคอน Download Now
ได้มาแล้วให้ทำการแตกไฟล์ Zip ครับ แล้วเปิดโปรแกรม ESPlorer ขึ้นมาครับ
(ต้องเสียบ NodeMCU ไว้ก่อนเปิดโปรแกรมด้วยนะครับ)
Step 2 : ทดสอบการเชื่อมต่อและการใช้งานพื้นฐาน
เมื่อเสียบสายแล้ว มี COM Port ขึ้นแล้ว ก็กด Open เพื่อทำการเชื่อมต่อบอร์ดกับโปรแกรมได้เลยครับ
กดเสร็จที่ Console จะแสดงค่าที่ได้จาก NodeMCU ครับ เช่นเวอร์ชั่น และ build ครับ
หากใครไม่ขึ้นแบบนี้ไม่ต้องตกใจครับ ลองกดปุ่ม Chip ID ดูว่าที่ Console มีค่าอะไรกลับมาให้เราบ้างไหม
ถ้ากดแล้วขึ้นตัวเลขมาแบบนี้ ก็ถือว่าใช้ได้ครับ
Step 3 : ทดลองเขียนโค๊ดภาษา Lua กันครับ
https://gist.github.com/sathittham/3159154bce89385bd080
- Ex 2 : Blink ไฟกระพริบ (Delay)
blink_delay.lua
https://gist.github.com/sathittham/06feff17c2f001b29208
- ทดสอบได้ด้วยการกดปุ่ม View on ESP นะครับ
- หากต้องการอัพโหลดโค๊ดลงไปบน NodeMCU ให้กดปุ่ม Save to ESP ครับ (อัพแล้ว ลองกดปุ่ม Reload ดูครับว่าไฟล์ที่เราอัพไปมาไหม๊)
- Ex 3 : Blink ไฟกระพริบ (Timer Alarm)
blink_timer.lua
https://gist.github.com/sathittham/b280c573b9cf799e9f60
- ทดสอบได้ด้วยการกดปุ่ม View on ESP นะครับ
- หากต้องการอัพโหลดโค๊ดลงไปบน NodeMCU ให้กดปุ่ม Save to ESP ครับ (อัพแล้ว ลองกดปุ่ม Reload ดูครับว่าไฟล์ที่เราอัพไปมาไหม๊)
ผลลัพธ์
อ้างอิง
- สามารถดาวโหลดคู่มื่อการใช้งานเพิ่มเติมได้ที่ Getting Started with The ESPlorer IDE by Rui Santos
- https://github.com/nodemcu