ในเนื้อหาตอน 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)ดังรูป

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

เมื่อการติดตั้งเสร็จเรียบร้อยแล้ว เมื่อเริ่มการทำงานหากดาวน์โหลด 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
. $HOME/esp/esp-idf/export.sh


การติดตั้ง 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
Build และ Flash firmware
ซอร์สโค้ดตัวอย่างของ ESP RainMaker จะอยู่ใน esp-rainmaker/examples เราจะทดลองกับตัวอย่างที่ชื่อว่า switch ดังนี้
cd /esp/esp-rainmaker/examples/switch/
idf.py set-target esp32s2
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… ดังรูป


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

จากนั้นเราจะทดลองใช้คำสั่ง
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 monitor ที่หน้าต่าง Terminal จะกลายเป็น console สำหรับมอนิเตอร์ค่าจาก ESP32-S2 โดยจะแสดง QR Code เพื่อให้เราใช้แอพที่ชื่อว่า Rainmaker ในสมาร์ทโฟนสแกนเพื่อทำการตั้งค่าให้อุปกรณ์ของเราเชื่อมต่อกับเครือข่าย WiFi ของเรา (provisioning) ซึ่งเราจะพูดถึงส่วนการทดลองใช้งาน ESP Rainmaker ทั้งแพลตฟอร์มในเนื้อหาตอนที่ 3 ครับ. อดใจรอกันซักนิดนะครับ
Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 1 ทำความรู้จักกับ ESP RainMaker - Maker Asia
Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 1 ทำความรู้จักกับ ESP RainMaker - Maker Asia
Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 1 ทำความรู้จักกับ ESP RainMaker - Maker Asia
Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 3 ทดลองสร้าง Node และใช้งาน Mobile App - Maker Asia