23 สิงหาคม, 2558

Flashing NodeMCU firmware on Mac OS X

เรื่องของเรื่องคือได้ยินชื่อเสียงของ NodeMCU มานาน เลยสั่งมาลองเล่นบ้าง แต่ไม่เคยมีประสบการณ์กับการเล่นกับ IoT มาก่อน ค่อนข้างจะมั่วอยู่มากเหมือนกัน 

ปัญหาที่เจอคือแฟลชแล้ว ไม่มี lua prompt ขึ้นมา แต่ใช้ Arduino IDE ต่อเข้าแล้ว upload script (ที่ไม่ใช่ lua) แล้วดันรันได้ งมไปงมมาเลยได้วิธีมาแชร์นี้ล่ะ

ตัวที่สั่งมา หน้าตาเป็นอย่างนี้


ที่เคยอ่านๆ มาคือ Windows ก็จะมีเครื่องมือช่วยในการแฟลชง่ายๆ เลย 
ในแมคก็มีเหมือนกันแต่ใช้ผ่าน command line แทน 
แต่ก่อนจะแฟลช ต้องเตรียมเครื่องมือก่อน ดังนี้
  • ติดตั้ง CP2102 USB to UART bridge เหมือนเป็น driver เวลาเสียบเข้าเครื่องแล้วจะมองเห็นเป็น device ชนิดนึง โหลดได้ ที่นี่
  • ESPTool เป็น command line tool สำหรับแฟลช firmware ลง esp8266 วิธีติดตั้ง ใช้คำสั่งดังนี้ใน terminal
    • git clone https://github.com/themadinventor/esptool.git
    • cd esptool
    • sudo python setup.py install
  • nodemcu-firmware โหลดตัวล่าสุดมาเลยก็ได้ (ในขณะนี้คือ 0.9.6-dev ) สมมติว่าไฟล์ชื่อ nodemcu_float_0.9.6-dev_20150704.bin
เมื่อเตรียมพร้อมแล้ว มาเริ่มแฟลชกัน โดยวิธีการมีดังนี้
  • เสียบสาย micro usb เข้ากับ esp8266 แล้วเช็คดูว่ามองเห็น device รึเปล่า แบบในรูป
  •  เช็คว่าเมื่อเสียบแล้วได้ device ชื่ออะไร อย่างที่ใช้อยู่จะเป็น device อยู่ที่ /dev/tty.SLAB_USBtoUART
  •  ถ้าได้ device ขึ้นมาแล้ว สามารถใช้คำสั่งนี้ใน terminal ได้เลย
    • esptool.py -b 115200 -p /dev/tty.SLAB_USBtoUART write_flash --flash_mode dio 0x00000 nodemcu_float_0.9.6-dev_20150704.bin (spec baud rate ของตัวนี้เขียนไว้ที่ 9600 เท่าที่ลองคือสำหรับตอนที่ใช้โปรแกรมอย่าง minicom, ESPlorer ต่อเข้าไป แต่เวลาแฟลชใช้ buad rate นี้ได้ ลองแล้ว เร็วด้วยนะ)
      ขึ้นแบบนี้ถือว่าถูก
    • แล้วก็รอจนเสร็จ ก็จะสามารถใช้งาน NodeMCU พร้อมกับเขียนสคริปต์โดยใช้ภาษา lua ได้ มี lua prompt ขึ้นมาให้เสร็จสรรพ
REF: