Platform IO เป็นแพ็คเกจเสริมการทำงานของ Editor ที่โด่งดังนั่นชื่อ Atom ทำให้สามารถเขียนโค้ดโปรแกรมลงบอร์ดทดลองได้หลากหลาย (Embedded Board) ทั้ง Arduino ,ESP8266, Rapberry PI จากที่เคยลองใช้ตอนเขียนโปรแกรมบน ESP8266 ประทับใจเรื่องความเร็วการคอมไพล์ และ การ flash ที่รวดเร็วกว่า Arduino มาก แต่ก้อเหมาะกับมือโปรแกรมเมอร์นะครับ และ ตอนนี้ Support ESP32 และ Node32s อีกด้วย จะรออะไรล่ะมาลองกัน
วิธีติดตั้ง Platform IO
- เปิดบราวเซอร์ เข้าไปเวปที่ http://platformio.org คลิก IDE
- คลิก [Download for Windows] เพื่อดาวน์โหลดไฟล์ platformio-atom-windows.exe
- ติดตั้งโปรแกรม โดยการดับเบิ้ลคลิก ที่ไฟล์ platformio-atom-windows.exe รอจนกระทั่งได้หน้าจอ PlatformIO IDE: Installing…
แล้วรอจน Atom เรียกแพ็คเกจ PlatformIO มาติดตั้งให้โดยอัตโนมัติ ขั้นตอนนี้ใช้เวลานานพอสมควร
- เมื่อโปรแกรมติดตั้งเสร็จแล้ว จะขึ้นหน้าจอ Atom PlatformIO IDE has been successfully installed! คลิก Reload Now เพื่อเริ่มค่าใหม่ ดังรูป 4
- เปิดโปรแกรมอีกครั้ง หน้าจอ PlatformIO Home – Atom เห็นข้อความ Welcome to PlatformIO แสดงว่าคุณได้ติดตั้งโปรแกรมเสร็จเรียบร้อยแล้ว
ติดตั้ง LLVM
Platformio ใช้ LLVM เป็น Clang เพื่อทำให้การคอมไพล์ได้รวดเร็วมากขึ้น
- ให้คุณเปิดบราวเซอร์ไปที่ http://llvm.org คลิก LLVM 3.9.0
- จากนั้นคลิก Clang for Windows (64-bit) เพื่อดาวน์โหลดไฟล์ LLVM-3.9.0-win64.exe
- ดับเบิ้ลคลิกไฟล์ LLVM-3.9.0-win64.exe ที่คุณเพิ่งดาวน์โหลดมา จะได้หน้าจอ LLVM Setup ข้อความต้อนรับสู่การติดตั้ง ให้คลิก Next >
- หน้าจอ LLVM Setup ข้อกำหนดและเงื่อนไขการใช้งาน LLVM เมื่อคุณอ่านเข้าใจแล้ว คลิก I Agree
- หน้าจอ LLVM Setup ตัวเลือกการติดตั้งให้คลิกวงกลมหน้า Add LLVM to the system PATH for all users เพื่อเพิ่มพาธของ LLVM ให้ทุกยูสเซอร์
- Do not add LLVM to the system PATH – ไม่ต้องเพิ่มพาธของ LLVM
- Add LLVM to the system PATH for all users – เพิ่มพาธให้ทุกยูสเซอร์
- Add LLVM to the system PATH for current user – เพิ่มพาธให้เฉพาะยูสเซอร์นี้
- Create LLVM Desktop Icon – สร้างไอคอน LLVM บนเดสก์ทอป
- แล้วคลิก Next >
- หน้าจอ LLVM Setup เลือกโฟลเดอร์ที่ต้องการเก็บ LLVM (หากต้องการเปลี่ยนคลิก Browse…) แล้วคลิก Next >
- หน้าจอ LLVM Setup เพื่อเลือกสร้างเมนู LLVM ในเมนูสตาร์ท ในที่นี้เลือกเป็น LLVM แล้วคลิก Install ดังรูป 12 แล้วรอจนโปรแกรมติดตั้งเสร็จ ดังรูป 13
- หน้าจอ cmd ให้กดคีย์ Enter (หรือกดคีย์ใดคีย์หนึ่งบนแป้นพิมพ์ก็ได้)
- หน้าจอ LLVM Setup ติดตั้งเสร็จเรียบร้อยแล้ว ให้คุณ Finish
ข้อแนะนำ เมื่อติดตั้งทั้ง 2 โปรแกรมอันได้แก่ Atom PlatformIO, LLVM และตั้งค่าต่างๆ เสร็จเรียบร้อยแล้ว คุณควรจะ Restart คอมพิวเตอร์ เพื่อให้คอมพิวเตอร์เริ่มค่าใหม่ได้อย่างถูกต้อง
Hello world
มาลองสร้างโปรเจคบน PlatformIO กันบ้างครับ ขั้นตอนง่ายๆนะครับ แค่ คลิก New Project เราเริ่มต้นกับ โค้ดโปรแกรมสั้นๆ เรียกขวัญและกำลังใจกันก่อนครับ แค่ 6 บรรทัด เพื่อแสดงข้อความที่อยู่ในคำสั่ง printf ข้อความในที่นี้คือ พิมพ์ Hello world ออกทางหน้าจอ Serial Monitor
<1> ที่หน้าจอ PlatformIO Home ให้คุณคลิก New Project เพื่อสร้างโครงการใหม่
(โน๊ต: คุณสามารถคลิกเมนู PlatformIO > Home Screen เพื่อมาหน้าจอ PlatformIO Home)
<2.> ในช่อง Select board: เลือกบอร์ดเป็น Espressif ESP32 Dev Module หรือ ตอนนี้ เลือกบอร์ด Ayarafun Node32s ได้เลยครับ
<3> ในช่อง Choose the directory: เลือกโฟลเดอร์เป็น C:\Users\admin\Documents\atom\helloworld
<4> เมื่อคุณเลือกบอร์ด และโฟลเดอร์ที่เก็บโค้ด ที่ต้องการเรียบร้อยแล้ว ให้คลิก Process
<5> จะได้โฟลเดอร์ helloworld ขึ้นทางด้านซ้ายมือ จากนั้นคลิกขวาที่ src แล้วคลิกซ้ายที่ New File
<6> จะมีช่อง Enter the path for the new file. ให้พิมพ์ชื่อไฟล์ src\hello_world.c แล้วกดคีย์ Enter
<7> จะได้หน้าจอ hello_world.c ให้พิมพ์โค้ดข้างล่างนี้ลงไป
<8> เมื่อคุณพิมพ์เสร็จเรียบร้อยแล้ว ให้คลิกปุ่ม Serial Monitor
<9> ในช่อง Port ให้เลือกพอร์ตที่บอร์ดของคุณเชื่อมต่อกับคอมพิวเตอร์ ในที่นี้คือ พอร์ต COM5
<10> ในช่อง Baudrate ให้เลือกที่ 115200
<11> คลิกปุ่ม Start
(โน๊ต: ปกติโปรแกรม PlatformIO จะเลือกพอร์ตกับ baudrate ให้คุณแล้วโดยอัตโนมัติ)
<12> คลิกปุ่ม Upload
<13> คลิกปุ่ม Save and build เพื่อบันทึกโค้ด และอัปโหลดโค้ดลงบอร์ด Node32s
<14 > กรุณารอจนกว่าโปรแกรมอัปโหลดเสร็จเรียบร้อย แล้วโปรแกรมจะแสดงข้อความที่อยู่ในคำสั่ง printf ออกมาทางหน้าจอ Serial Monitor ในที่นี้แสดงข้อความ Hello world ออกทางหน้าจอ Serial Monitor ดังรูป 23
การเขียนโปรแกรมบน PlatformIO แบบ Arduino
โค้ดโปรแกรมเขียนเหมือน Arduino IDE ทุกประการ แต่ต้องเพิ่ม #include “Arduino.h” ในบรรทัดแรก
- คลิกปุ่ม Initialze or Update PlatformIO Project เพื่อสร้างโครงการใหม่ จากนั้นเลือกบอร์ดและโฟลเดอร์ที่ต้องการ
- สร้างไฟล์ใหม่ชื่อ blink_wiring.cpp แล้วพิมพ์โค้ดข้างล่างนี้ (นามสกุลของไฟล์ต้องเป็น .cpp นะครับ) แล้วอัปโหลดเข้า Node32s จะเห็นว่าไฟบนบอร์ดจะกระพริบ จากนั้นลองเปลี่ยนตัวเลข delay เพื่อดูความเปลี่ยนแปลง
การเขียนโปรแกรม แบบ ESP-IDF
ข้อดีอย่างหนึ่งในการเขียนโปรแกรมบน Platform IO คือ เราสามารถทดสอบโปรเจคได้ทั้งแบบ Arduino และ ESP-IDF โดยใน ESP-IDF จะมีตัวอย่างการใช้งาน Hardware ที่เยอะ คุณสามารถเปิดไฟล์ตัวอย่างขึ้นเพื่อมาศึกษาได้นะครับ แต่โค้ดตัวอย่างนี้ยังเป็น beta อยู่ อาจต้องมีการปรับแก้โค้ดบางส่วน เพื่อให้โค้ดโปรแกรมสามารถทำงานได้ ในหัวข้อนี้จะนำไฟล์ตัวอย่าง hello world มาโค้ดโปรแกรมลง Node32s
- เปิดบราวเซอร์ไปที่ https://github.com/espressif/esp-idf/tree/master/examples คุณจะเห็นตัวอย่างโค้ด esp-idf ในที่นี้มี 12 ตัวอย่าง แต่เพื่อไม่ให้หนังสือเล่มนี้มีขนาดหนามาก ผู้เขียนจะโค้ดโปรแกรม 01_hello_world เพียงโปรแกรมเดียวเท่านั้น
- 01_hello_world แล้วคลิก main แล้วคลิก hello_world_main.c คุณจะเห็นโค้ดโปรแกรม ให้คลิกปุ่ม Raw เพื่อแสดงโค้ด จากนั้นให้คัดลอกโค้ดทั้งหมด
- ให้สร้างโปรเจ็คใหม่ สร้างไฟล์ชื่อ hello_world_main.c แล้ววางโค้ดที่คุณคัดลอกไว้ลงในไฟล์นี้ เนื่องจากยังเป็นโค้ดตัวอย่างทดลอง ให้คุณคอมเม้นต์ // บรรทัดที่ 24 เป็น //esp_restart(); ดังรูป 29 จากนั้นอัปโหลดลง Node32s จะเห็นมีข้อความ Restarting in 9 – 0 second… แล้ว cpu ก็หยุดทำงาน
ฝากไว้เป็นอีกตัวเลือกนะครับ ที่ผมประทับใจกับ Platform IO นะครับ คือการทำงานที่รวดเร็วกว่า และ UI ดูทันสมัย ดูเป็น มืออาชีพ ขึ้นอีกที่นิดหนึ่ง เดี่ยวเจอกัน ในรอบหน้านะครับ จะหาอะไรสนุกๆมา update