มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 2 ติดตั้ง ESP-IDF และ ESP RainMaker Agent SDK

ในเนื้อหาตอน 1 ที่ผ่านมาเราได้ทำความรู้จักกับแนวคิดและการทำงานของแพลตฟอร์ม ESP Rain Maker กันไปแล้วซึ่งในตอนที่ 2 นี้เราจะมาเตรียมความพร้อมในการพัฒนาเฟิร์มแวร์บน ESp32-S2 กันโดยเราจะต้องทำการติดตั้ง ESP-IDF และตามด้วย ESP RainMaker Agent SDK กัน โดยทางผมจะทำการสาธิตการติดตั้งบน Unbuntu ซึ่งทำงานอยู่บน VirtualBox นะครับ โดยเริ่มแรกสำหรับใครที่ยังไม่มี Virtualbox ติดตั้งในเครื่อง เราก็ไปทำการดาวน์โหลด Virtualbox กันก่อนได้ ที่นี่
และจากนั้นก็ทำการสร้าง Virtual Machine ใหม่กันโดยเข้าไปที่เมนูไอคอน NEW ทางด้านบน. ทำการตั้งค่าเพื่อติดตั้ง Ubuntu 64bit โดยเลือก Type: Linux และ Version Ubuntu(64-bit)ดังรูป

ทำการเลือกปรเภทของ OS ที่จะสร้างการติดตั้ง

หน้าถัดไปจะเป็นการเลือก RAM ให้กับ Virtual image ที่เราจะสร้างขึ้นใคร RAM เยอะก็แบ่งมาซักให้ VM ซัก 4GB ก็จะเร็วพอที่จะใช้งานได้ในระดับที่ไม่ขัดใจแล้วครับ จากนั้นหน้าถัดไปเป็นการเลือกฮาร์ดไดรฟ์สำหรับติดตั้ง ในขั้นตอนนี้ผมแนะนำให้ไปดาวน์โหลด VM Image ที่ติดตั้งเรียบร้อยแล้วจากทางเว็บไซต์ [osboxes] โดยปัจจุบัน Ubuntu จะอัพเดตถึงเวอร์ชั่น 20 แล้ว เราจะได้ไฟล์ .vdi มาก็สามารถเลือกไฟล์นี้ได้เลยดังรูป

เลือกติดตั้งโดยใช้ VM Image

เมื่อการติดตั้งเสร็จเรียบร้อยแล้ว เมื่อเริ่มการทำงานหากดาวน์โหลด VMI จากทาง osboxes.org มา password ในการใช้ loginเข้าสู่ระบบคือ  “osboxes.org” เมื่อ login เข้ามายังหน้าเดสก์ทอปได้แล้วก็แนะนำให้เปลี่ยนรหัสผ่านให้เรียบร้อยด้วยคำสั่ง “sudo passwd” บน terminal จะเป็นวิธีที่เร็วที่สุด ถึงตอนนี้เราก็พร้อมที่จะติดตั้ง ESP-IDF กันแล้วครับ

 

การติดตั้ง ESP-IDF

ก่อนที่จะเราจะติดตั้ง ESP-IDF ได้นั้นเราจะต้องทำการติดตั้ง package ที่จำเป็นต้องมีให้เรียบร้อยก่อนโดยเปิดหน้า terminal ขึ้นมาทำการติดตั้งดังนี้

sudo apt-get install git wget libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev
 
แสดงการตรวจสอบแพคเกจที่จะติดตั้ง

ขั้นตอนต่อไปคือการดาวน์โหลดไฟล์ของ ESP-IDF ลงมายังเครื่องคอมพิวเตอร์ของเรา โดยก่อนที่จะทำการเตรียม git clone นั้นเราจะทำการสร้าง directory ที่ชื่อ esp ให้อยู่ภายใต้ home directory ของเราก่อนเพื่อใช้ในการเก็บไฟล์ที่ดาวน์โหลดลงมาด้วยคำสั่ง

mkdir ~/esp

หรือหากเราจะทำการเก็บไว้ที่อื่นก็สามารถเลือกที่อื่นได้เพียงตั้งค่า PATH ชี้ไปให้ถูกก็พอแต่เนื่องจากตัวอย่างการติดตั้งของ espressif แนะนำให้ใช้เป็น ~/esp เราก็ปฎิบัติตามคำแนะนำตอนที่คัดลอกคำสั่งจะได้ไม่ต้องมาคอยแก้ค่า PATH ทุกครั้ง จากนั้นทำการ git clone ไฟล์จาก repository ของ espressif

cd ~/esp
git clone -b v4.0 –recursive https://github.com/espressif/esp-idf.git

ขั้นตอนถัดมาคือการติดตั้งเครื่องมือต่างๆที่จำเป็นต้องใช้ ซึ่งทำได้ผ่านการเรียก bash file มาติดตั้งดังนี้

cd ~/esp/esp-idf
./install.sh
ในขั้นตอนการติดตั้งที่ผ่านมานั้นเป็นเพียงการติดตั้งเครื่องมือที่จำเป็นต้องใช้ แต่ยังไม่ได้มีการตั้งค่าตัวแปร PATH environment ที่จะให้สามารถเรียกใช้งานชุดเครื่องมือที่ติดตั้งลงไปได้โดยไม่ต้องคอยระบุ path ทุกครั้ง เราจะสามารถทำการตั้งค่าตัวแปร PATH environment ได้ดังนี้
 
. $HOME/esp/esp-idf/export.sh
โดยค่านี้ต้องทำการตั้งใหม่ทุกครั้งที่เปิดหน้าต่าง Terminal ใหม่ขึ้นมาโดยเราสามารถเข้าไปเพิ่มบรรทัดในไฟล์ .profile ได้ดังรูป โดยเมื่อตั้งค่าในไฟล์แล้วขอให้ logout แล้ว login เข้ามาใหม่ก็จะสามารถใช้งานได้
การเพิ่มบรรทัดการตั้งค่า PATH environment
การตรวจสอบค่า PATH ของเครื่องมือที่ถูกเพิ่มเข้าไปของ ESP-IDF

การติดตั้ง ESP RainMaker  Agent SDK

 

หลังจากเราได้ติดตั้ง ESP-IDF เสร็จสิ้นแล้วเราจะทำการติดตั้ง ESP RainMaker Agent SDK กันด้วยการ git clone มาจาก repository ของ Espressif ดังนี้

cd ~/esp
git clone https://github.com/espressif/esp-rainmaker.git
 
 เสร็จแล้วครับการติดตั้ง ESP RainMaker Agent SDK มีแค่นี้แหละ เพราะตัว ESP RainMaker นั้นทำงานอยูบน ESP-IDF อยู่แล้วส่วนที่เพิ่มมามีแค่ส่วนของโค้ดในส่วนของ RainMaker Agent , ตัวอย่าง และ CLI ของ RainMaker เท่านั้น ดังนั้นขึ้นตอนต่อไปคือเราจะทดลอง build และ flash firmware กันดูครับ

Build และ Flash firmware

 

ซอร์สโค้ดตัวอย่างของ ESP RainMaker จะอยู่ใน esp-rainmaker/examples เราจะทดลองกับตัวอย่างที่ชื่อว่า switch ดังนี้

cd /esp/esp-rainmaker/examples/switch/
idf.py set-target esp32s2
idf.py build
แสดงสถานะการทำงานจากคำสั่ง idf.py build

หากพบว่าการ build สำเร็จโดยไม่มีการแจ้ง error ใดๆ เราก็สามารถที่จะทดลองทำการ flash เฟิร์มแวร์ลงไปยังบอร์ดทดลองที่ใช้ชิป ESp32-S2 ของเราได้ แต่เรื่องจากเราใช้ Virtualbox ดังนั้นเราต้องทำการตั้งค่าในส่วนของโปรแกรม Virtualbox และทำการติดตั้ง driver ของ USB2Serial บนตัวระบบปฎิบัติการที่เป็นโฮสต์ของเราให้เรียบร้อยด้วย ในบทความนี้ผู้เขียนได้ใช้บอร์ด gravitech cucumberRS ที่ใช้ชิป USB2Serial ของ FTDI เราจะต้องไปทำการติดตั้ง VCP driver จากเว็บไซต์ของFTDI เอง  https://www.ftdichip.com/Drivers/VCP.htm หลังจากติดตั้งสำเร็จแล้วเราจะทำการตั้งค่า USB Devices Filter โดยเข้าไปที่เมนู Devices -> USB -> USB Settings… ดังรูป

การเข้าไปยัง USB Setting
ทำการเลือก Add USB Filter

หลังจากทำการตั้งค่าเรียบร้อยแล้ว เราจะตรวจสอบได้ว่า Ubuntu เจออุปกรณ์ของเราแล้วหรือไม่ด้วยการพิมพ์คำสั่ง 

 lsusb
จะพบผลลัพธ์ว่ามีอุปกรณ์ดังกล่าวเพิ่มขึ้นมา
คำสั่ง lsusb ให้ผลลัพธ์ว่าพบอุปกรณ์ USB2Serial

จากนั้นเราจะทดลองใช้คำสั่ง 

idf.py flash_erase

จะพบ error แจ้งเรื่อง. permission ให้เราทำการ add user ตัวเองเข้าไปอยู่ยังกลุ่ม dialout ด้วยคำสั่ง

sudo usermod -a -G dialout $USER

ทำการ logout แล้ว login มาทดสอบอีกครั้งจะพบว่าสามารถสั่งลบข้อมูลในแฟลชของ ESP ได้ จากนั้นเราจะทดลอง upload เฟิร์มแวร์ขึ้นไปยังชิป ESP32-S2. ด้วยคำสั่ง

idf.py flash
idf.py monitor
ผลลัพธ์การทำงานด้วยคำสั่ง idf.py flash
แสดง QR Code สำหรับการ provisioning

เมื่อเราสั่ง idf.py monitor ที่หน้าต่าง Terminal จะกลายเป็น console สำหรับมอนิเตอร์ค่าจาก ESP32-S2 โดยจะแสดง QR Code เพื่อให้เราใช้แอพที่ชื่อว่า Rainmaker ในสมาร์ทโฟนสแกนเพื่อทำการตั้งค่าให้อุปกรณ์ของเราเชื่อมต่อกับเครือข่าย WiFi ของเรา (provisioning) ซึ่งเราจะพูดถึงส่วนการทดลองใช้งาน ESP Rainmaker ทั้งแพลตฟอร์มในเนื้อหาตอนที่ 3 ครับ. อดใจรอกันซักนิดนะครับ

[เนื้อหาตอนที่ 1 : อธิบายแนวคิดและองค์ประกอบ ESP RainMaker]
[เนื้อหาตอนที่ 3 : ทดลองสร้างโหนดและใช้งานแอพ ESP Rainmaker]

4 thoughts on “มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 2 ติดตั้ง ESP-IDF และ ESP RainMaker Agent SDK”

  1. Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 1 ทำความรู้จักกับ ESP RainMaker - Maker Asia

  2. Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 1 ทำความรู้จักกับ ESP RainMaker - Maker Asia

  3. Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 1 ทำความรู้จักกับ ESP RainMaker - Maker Asia

  4. Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 3 ทดลองสร้าง Node และใช้งาน Mobile App - Maker Asia

Leave a Comment

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

Scroll to Top