ในครั้งนี้เราจะมาทดลอง ใช้ภาษา Lua ในการเขียน script ให้กับ NodeMcu ซึ่งใช้การเขียนเพียงไม่กี่บรรทัดเมื่อเทียบกับการเขียนโดยใช้ภาษา C ซึ่งในปัจจุบันสามารถเขียนบน Platform Arduino ได้
วิธีการ Flash firmware
สามารถดาวน์โหลดโปรแกรม Flash ได้จาก https://github.com/nodemcu/nodemcu-flasher
ส่วนเครื่องมือที่คล้ายๆกัน ก็ได้แก่
หรือจะใช้เครื่องมืออื่นๆ ที่สามารถต่อ Serial ได้อันดับแรกมาลองติดตั้ง driver USB to TTL กันก่อน
จากนั้นเสียบสาย USB เข้ากับ Dev kit
ใช้ terminal เชื่อมต่อไปยัง COM PORT ในที่นี้ใช้ COM3 ตั้งค่า Board rate เป็น 9600 เมื่อเชื่อมต่อแล้วลองใช้คำสั่ง AT เพื่อตรวจสอบดูว่า ESP8266 ใช้ Firmware เดิมอยู่หรือไม่ หากพิมพ์ AT แล้วขึ้น OK แสดงว่าใช้ Firmware ของ ESP8266 อยู่ หากขึ้น lua syntax error หรือ แสดงรุ่นของ NodeMCU แสดงว่าใช้ Firmware ของ NodeMUC อยู่ครับ
เมื่อใช้คำสั่ง AT แล้วขึ้น OK แล้วมา Flash Firmwareของ NodeMCU กันก่อน เปิด NodeMCU Flasher ขึ้นมา
กด tab config กดปุ่มรูปเฟือง เลือก Firmware รุ่นล่าสุดที่ดาวน์โหลดมา กำหนด Access Address เป็น 0x00000 ส่วน address อื่นๆ เลือก checkbox ออก
กลับไปหน้า Operarion แล้วกดปุ่ม Flash ได้เลย รอจน Flash เสร็จเรียบร้อย
ถอดสาย USB ออกแล้วเสียบเข้าไปใหม่ ลองใช้ terminal เชื่อมต่อเข้าไปใหม่ หน้าจอจะแสดงรุ่นของ NodeMCU แสดงว่าใช้ firmware ของ NodeMCU แล้ว
แสดงว่าตอนนี้ devkit ของเราใช้งาน lua ได้แล้ว สำหรับการทำงานกับ devkit สามารถใช้ Coolterm หรือเครื่องมือ terminal อื่นๆ ที่เชื่อมต่อผ่าน serial ได้ แต่แนะนำให้ใช้ Lua Uploader หรือ NodeMCU Studio จะสะดวกมากขึ้น(ในที่นี้ใช้ ESPlorer )
มาลองโปรแกรมแรกกันก่อน HelloWorld ดังนี้
-- print Hello World text print("HelloWorld")
ภาษา Lua จะใช้ — แทน comment สำหรับท่านที่อยากศึกษาภาษา lua ก็ศึกษาเพิ่มเติมได้ที่ lua.org
มาลองตัวอย่างอื่นบ้าง สำหรับท่านที่ใช้ Arduino มาก่อนอาจคุ้นเคยกับการสั่งงานผ่าน digital pin, pwm ฯลฯ มาลองต่อวงจรกันดูครับ
จากภาพเราต่อ LED ที่ digital pin 4 หรือ D4 เขียนโค้ด lua ดังนี้
-- Blink using timer alarm -- timerId = 0 dly = 1000 -- use D4 ledPin = 4 -- set mode to output gpio.mode(ledPin,gpio.OUTPUT) ledState = 0 -- timer loop tmr.alarm( timerId, dly, 1, function() ledState = 1 - ledState; -- write state to D4 gpio.write(ledPin, ledState) end)
ลอง run ดูหลอด LED จะกระพริบ :)
ref : http://thaiopensource.org/%E0%B8%A1%E0%B8%B2%E0%B9%80%E0%B8%A5%E0%B9%88%E0%B8%99-nodemcu-devkit-%E0%B8%81%E0%B8%B1%E0%B8%99/
การบรรลุมรรคผลของมนุษย์#สามแดนโลกธาตุ#หาที่จะหยั่งเท้าลงไม่ได้เลย#การบรรลุมรรคผล#จิตมันจะเปลี่ยนไปแบบไม่กลับ#จะมีกระบวนการสัพพัง อะปะราธัง ขะมะถะ เม ภันเต อุกาสะ ขะมามิ ภันเตฯ - แปล หากข้าพระพุทธเจ้า ได้เคยประมาทพลาดพลั้งล่วงเกิน ต่อพระรัตนตรัย อันมีพระพุทธเจ้าทุกๆพระองค์ พระปัจเจกพุทธเจ้า ทุกๆพระองค์ พระธรรม และพระอริยสงฆ์ทั้งหลาย ในชาติก่อนก็ดี ชาตินี้ก็ดี ด้วยกายก็ดี ด้วยวาจาก็ดี ด้วยใจก็ดี ด้วยเจตนาก็ดี ด้วยความรู้เท่าไม่ถึงการณ์ก็ดี
ตอบลบ