avatar
thiti.dev
วงแหวนเว็บ
Search
Contact
Donate
เริ่มต้น PlatformIO
24 May 2020
PlatformIO C++ Arduino Microcontroller IoT

สวัสดีครับ บทความนี้ผมจะมาเรียนรู้กันนะครับว่า PlatformIO คืออะไร, การ Install เพื่อใช้งานกับ Visual Studio Code (VSCode) รวมไปถึงการสร้าง Project และใช้งานเบื้องต้น

PlatformIO คืออะไร

โดยปกติเวลาที่เราจะใช้งาน Arduino ง่ายที่สุดเราจะใช้งานผ่าน Arduino IDE ใช้มั้ยครับ แต่รู้มั้ยครับยังมีทางเลือกอื่นๆให้เราเลือกใช้นอกจาก Arduino IDE อีก นั้นก็คือ PlatformIO ซึ่งหลังจากที่ได้ลองใช้งานแล้วคือ มันดีมากๆ มันดีอย่างไงไปดูกันครับ

PlatformIO เป็น Open source software สําหรับพัฒนา Embedded หรือพัฒนา IoT ได้ในแบบ Cross-platform หมายความว่า PlatformIO จะช่วยให้เราสามารถพัฒนาโปรแกรมสําหรับ Embedded ตระกูล ใดๆก็ได้ เช่น Arduino, ESP8266, EMBED ฯลฯ

สําหรับ PlatformIO มีสองแบบให้เลือกใช้งานตามความถนันคือ หรือจะใช้งานร่วมกันก็ได้

  • PlatformIO CLI: การใช้งานแบบ Command Line
  • PlatformIO IDE: การใช้งานผ่าน IDE ต่างๆ เช่น VSCode, Atom TextEditor

สําหรับในบทความนี้จะใช้ platformIO ใน VSCode ครับ

Install PlatformIO เพื่อใช้งานกับ VSCode

ก่อนติดตั้ง PlatformIO IDE จะต้อง Download และ Install VSCode (Visual Studio Code) ให้เรียบร้อยก่อนครับ

ต่อมาจะเป็นวิธีติดตั้ง PlatformIO Extension สําหรับ VSCode (Visual Studio Code) ตามขั้นตอนดังนี้

  1. เปิด VSCode Extension Manager ขึ้นมา
  2. ค้นหา Official PlatformIO IDE extension
  3. กด Install PlatformIO IDE.

Image

Getting Started PlatformIO

ในบทความนี้เราจะทดลองสร้าง Project ตัวอย่างเล็กๆคือ "Blink" (โปรแกรมไฟกระพริบ) ครับ

Step1: Create Project and Coding

  1. Click ที่ "PlatformIO Home" ตรง PlatformIO Toolbar
  2. Click ที่ "New Project"

Image

  1. ใส่ชื่อ Project ที่ต้องการ
  2. เลือก Board Embedded ที่ต้องการ สําหรับบทความนี้ ผมเลือกเป็น ESP8266
  3. เลือก Framework เป็น Arduino
  4. Click Finish

Image

  1. ให้แก้ไขไฟล์ "src/main.cpp ซึ่งไฟล์นี้จะเป็น File เริ่มต้นที่เราจะเขียนโปรแกรมสั่งงาน Embedded ครับ สําหรับบทความนี้จะใส่ Code สําหรับโปรแกรม "Blink" (โปรแกรมไฟกระพริบ)
/**
 * Blink
 *
 * Turns on an LED on for one second,
 * then off for one second, repeatedly.
 */
#include "Arduino.h"

// Set LED_BUILTIN if it is not defined by Arduino framework
// #define LED_BUILTIN 13

void setup()
{
  // initialize LED digital pin as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
  // turn the LED on (HIGH is the voltage level)
  digitalWrite(LED_BUILTIN, HIGH);

  // wait for a second
  delay(1000);

  // turn the LED off by making the voltage LOW
  digitalWrite(LED_BUILTIN, LOW);

   // wait for a second
  delay(1000);
}

ประมาณนี้ครับ

Image

Step2: Build and Upload

  1. Build Project โดยกดที่เครื่องหมายถูก ด้านล่างหรือใช้ hotkey "ctrl+alt+b" ก็ได้ครับ
  2. Upload ลง Embedded board โดยกดที่เครื่องหมาย "ลูกศร" ด้านล่างหรือใช้ hotkey "ctrl+alt+u" ก็ได้ครับ

Image

เสร็จเรียบร้อยครับ กับการใช้งาน PlatformIO

Bonus!! แถมท้ายนะครับ

PlatformIO Toolbar เป็น toolbar อยู่ด้านล่างของ VSCode ช่วยให้เราใช้งาน PlatformIO ได้งายดายครับ

Image

ความหมายแต่ละปุ่มตามนี้ครับ

  1. PlatformIO Home
  2. PlatformIO: Build
  3. PlatformIO: Upload
  4. PIO Remote
  5. PlatformIO: Clean
  6. PIO Unit Testing
  7. Run a task… (See “Task Runner” below)
  8. Serial Port Monitor
  9. PIO Terminal

ที่มาของข้อมูล platformio.org/