บทความ ESPino32 ตอนที่ 2 การพัฒนา ESPino32 บนแพลตฟอร์ม Arduino
ในส่วนของซอฟต์แวร์ Espressif Systems ได้จัดเตรียมทางเลือกและเครื่องมือสำหรับใช้ร่วมกับการพัฒนาอุปกรณ์ด้วยชิพ ESP8266 และ ESP32 ตามความเหมาะสมและความต้องการแต่ละแอพพลิเคชัน ตัวอย่างเช่น
ESP-SDK ชุด Software Development Kit มาตรฐานของทาง Espressif เอง ประกอบด้วยเครื่องมือในการพัฒนาและ API ในระดับที่ใช้เชื่อมต่อกับอุปกรณ์ มาพร้อม ไดรฟ์เวอร์ ไลบรารี รวมทั้งเทมเพลตและตัวอย่างที่จำเป็นสำหรับการใช้งาน รองรับการพัฒนาชิพ ESP8266 ในแบบ NonOS และแบบใช้ RTOS และรองรับการพัฒนาชิพ ESP32 ผ่านทาง ESP-IDF (Espressif IoT Development Framework) สามารถดูรายละเอียดเพิ่มเติมได้ที่ https://www.espressif.com/en/products/software/esp-sdk/overview และ https://esp-idf.readthedocs.io/en/latest
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_00_esp_sdk.jpg)
ESP HomeKit SDK สำหรับนักพัฒนาที่สนใจจะพัฒนาให้ชิพทำงานร่วมกับ Apple HomeKit ดูรายละเอียดได้ที่ https://www.espressif.com/en/products/software/esp-homekit-sdk
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_01_homekit.jpg)
ESP-AT รองรับการใช้งานชิพหรือโมดูล ESP8266 และ ESP32 ผ่านทางคำสั่ง AT Command สามารถนำไปเป็นโมดูลสื่อสารให้กับอุปกรณ์ที่ออกแบบและพัฒนาให้เชื่อมต่อ Wi-Fi และ Bluetooth ได้
ดาวน์โหลดคู่มือและคำสั่งได้ที่ https://www.espressif.com/en/products/software/esp-at/overview
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_02_ESP_AT.jpg)
ESP-MDF (Espressif Mesh Development Framework) โดยใช้ EDP-IDF เป็นพื้นฐาน เหมาะสำหรับนักพัฒนาที่ต้องการใช้ชิพ ESP32 แบบ Mesh Networking ในแอพพลิคั่นต่างๆ เช่น Smart lights Lighting networks Parking lots Smart factories Office automation Smart switch Smart socket Smart lock เป็นต้น ดูรายละเอียดเพิ่มเติมได้ที่ https://www.espressif.com/en/products/software/esp-mesh/overview และ https://github.com/espressif/esp-mdf
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_03_esp_mesh.jpg)
ESP-TOUCH ใช้งานร่วมกับ NonOS SDK และ RTOS SDK ของ ESP8266 และ ESP-IDF ของ ESP32 สำหรับการพัฒนาระบบ Smart Config กับอุปกรณ์ที่ไม่มีหน้าจอหรืออินเตอร์เฟสที่ใช้ในกำหนดค่าเชื่อมต่อเครือข่ายในการใช้งานครั้งแรก ให้สามารถทำได้ผ่านทางแอพพลิเคชันบน Android และ iOS ดูรายละเอียดได้ที่ https://www.espressif.com/en/products/software/esp-touch/overview
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_04_esp_touch_app.jpg)
ESP-NOW ใช้งานร่วมกับ NonOS SDK และ RTOS SDK ของ ESP8266 สำหรับแอพพลิเคชันที่ต้องการพัฒนาให้เชื่อมต่อไร้สาย 2.4 GHz แบบ connectionless ส่งข้อมูลขนาดเล็ก เหมาะกับงานควบคุม เช่น Smart lights Remote control devices Remote sensing เป็นต้น https://www.espressif.com/en/products/software/esp-now/overview
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_05_esp_sdk_other_platform.jpg)
นอกจากนี้ยังมีแพลตฟอร์มอื่นที่รองรับการพัฒนาชิพ ESP32 (และ/หรือ ESP8266) ตัวอย่างเช่น Mongoose OS (https://mongoose-os.com/) เป็น IoT Firmware Development Framework สามารถใช้งานได้กับไมโครคอนโทรลเลอร์หลายตระกูล ได้แก่ STM32F4 STM32F7 ESP32 ESP8266 CC3220 CC3200 โดยวางเป้าหมายกลุ่มนักพัฒนาสินค้าหรืออุปกรณ์เชื่อมต่อ (Connected products / devices) ในเชิงธุรกิจ สามารถอัพเดทเฟิร์มแวร์ของอุปกรณ์ได้แบบออนไลน์ (Over-The-Air) รองรับระบบ Cloud สำหรับธุรกิจทั้งจาก Amazon Microsoft Google IBM Samsung หรือใช้งานร่วมกับเซิร์ฟเวอร์ MQTT RESTful Websocket ที่ตั้งขึ้นเองได้
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_06_mongoose_os.jpg)
MicroPython (http://micropython.org/) พัฒนาขึ้นบนพื้นฐานของภาษา Python รุ่นที่ 3 ครอบคลุมไลบรารีพื้นฐานและปรับแต่งการทำงานให้เหมาะสมกับสภาพแวดล้อมบนไมโครคอนโทรลเลอร์ที่มีขนาดหน่วยความจำน้อยกว่าเมื่อเทียบกับคอมพิวเตอร์ ช่วยให้นักพัฒนาที่ถนัดและคุ้นเคยใช้ภาษา Python บนไมโครคอนโทรลเลอร์ได้ รองรับการพัฒนาทั้งบนชิพ ESP32 และชิพ ESP8266 ด้วยการอัพโหลดเฟิร์มแวร์พื้นฐานของ MicroPython ลงไปเพื่อรองรับการเขียนโค้ด Python
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_07_micropython.jpg)
Platform IO (https://platformio.org/) เป็น Open Source ที่รวบรวมองค์ประกอบในการพัฒนา IoT มีแพลตฟอร์มในการพัฒนาโปรแกรมบนระบบฝังตัวและคอมพิวเตอร์ที่ติดตั้งส่วนประกอบต่างๆ ในการพัฒนามาให้ครบถ้วนทั้ง Toolchain Debuggers Uploaders และ Frameworks รองรับไมโครคอนโทรลเลอร์หลายรุ่นหลายยี่ห้อรวมทั้งชิพ ESP8266 และ ESP32 มีกรอบการพัฒนาให้เลือกใช้ได้หลากหลาย รวมทั้งไลบรารี่และตัวอย่างการใช้งานจำนวนมากสามารถใช้งานได้ทุกระบบปฏิบัติการทั้ง Windows Linux และ Mac
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_08_platform_io.jpg)
Arduino (https://www.arduino.cc/) เป็น Open Source Platform ทั้งฮาร์ดแวร์และซอฟต์แวร์ที่ใช้ในการทำต้นแบบรวมไปถึงงานด้านอิเล็กทรอนิกและระบบฝังตัวบนไมโครคอนโทรลเลอร์ ด้วยความต้องการให้ผู้ที่ไม่ได้อยู่ในสายงานวิศวกรรม เช่น ครู นักเรียน นักวิทยาศาสตร์ สถาปนิก นักออกแบบ ศิลปิน เป็นต้น สามารถเข้าถึงและใช้ประโยชน์จากไมโครคอนโทรลเลอร์ได้
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_09_arduino_platform.jpg)
จุดมุ่งหมายของ Arduino คือ สร้างขึ้นมาให้เรียนรู้และใช้งานได้ง่าย สามารถสร้างต้นแบบหรือชิ้นงานได้รวดเร็ว อาศัยการเขียนโปรแกรมด้วยโครงสร้างภาษาและไวยากรณ์ที่ไม่ซับซ้อนมากจนเกินไปก็สามารถทำงานได้ และนอกจากฮาร์ดแวร์ที่ทาง Arduino ออกแบบขึ้นมาแล้ว ยังมีกลุ่มนักพัฒนาช่วยกันทำให้ฮาร์ดแวร์อื่นสามารถนำมาใช้งานกับ Arduino ได้ เพื่อให้ผู้ใช้งานเข้าถึงได้ง่ายโดยสร้าง Board Support Package (BSP) ให้นำมาติดตั้งเพิ่มเติมบน Arduino IDE แล้วก็จะสามารถเขียนโปรแกรมไมโครคอนโทรลเลอร์นั้นด้วย Arduino ได้
ปัจจุบัน Arduino เองรองรับการพัฒนาไมโครคอนโทรลเลอร์หลายรุ่นหลายตระกูล ทั้ง AVR แบบ 8-bit เช่น Arduino Uno (ATmega328p) Arduino Mega 2560 (ATmega2560) Arduino Leonardo (ATmega32U4) เป็นต้น รวมทั้ง Arduino ที่เป็น 32-bit ชิพจาก Atmel ได้แก่ Arduino M0 (SAMD21) Arduino Due (SAM3X8E) และบอร์ดตระกูล Arduino MKR ที่ใช้ชิพ SAMD21 กับโมดูลสื่อสารต่างๆ เช่น Wi-Fi Bluetooth GSM LoRa/LoRaWAN Sigfox NB-IoT เป็นต้น
ส่วน Board Support Package จากภายนอกให้รองรับไมโครคอนโทรลเลอร์หรือไมโครคอมพิวเตอร์อื่น เช่น ESP8266 ESP32 LinkIt Smart 7688 Duo STM8 STM32 เป็นต้น
การติดตั้ง Arduino IDE
1. เข้าไปที่เว็บไซต์ arduino.cc ในหัวข้อ Software > Downloads https://www.arduino.cc/en/Main/Software
2. เลือกดาวน์โหลดไฟล์ตามระบบปฏิบัติการที่ใช้ สำหรับ Windows ควรใช้ Windows 7 ขึ้นไป และแนะนำให้ใช้แบบ ZIP file for non admin install ที่แตกไฟล์แล้วใช้งานได้ทันที
*** ไม่แนะนำให้ใช้ตั้งแต่ Windows XP หรือเก่ากว่าอาจพบปัญหาเรื่องความยาวของชื่อไดเรกทอรีได้
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_10_dowload_arduino.jpg)
– สำหรับ Mac ใช้งานได้ตั้งแต่ Mac OS X 10.7 ขึ้นไป แตกไฟล์แล้วลากไฟไว้ใน Application แล้วเรียกใช้งาน
– สำหรับ Linux ให้เลือกตรงกับรุ่นที่ใช้ว่าเป็น 32-bit 64-bit สำหรับคอมพิวเตอร์ x86 / x86-64 หรือเลือก ARM หากใช้บนบอร์ด Embedded OS ที่ใช้ซีพียู ARM อย่าง Raspberry Pi แตกไฟล์แล้วใช้งานได้ทันที
* ไม่แนะนำให้ใช้ตัวติดตั้งที่เป็น Hourly Builds เนื่องจากเป็นตัว BETA อาจเปิดปัญหากับการใช้งาน
3. ดาวน์โหลดแล้วจะได้ไฟล์ arduino-1.8.5.zip-windows ขนาด 160 MB ให้แตกไฟล์เป็นไดเรกทอรี arduino-1.8.5 ขนาดประมาณ 420 MB แนะนำให้วางไว้ด้านนอกสุดของไดรฟว์หรือพาร์ติชัน ตัวอย่างเช่น C:\ arduino-1.8.5 หรือ D:\arduino-1.8.5 โดยภายในจะมีโครงสร้างดังรูป
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_11_expert_arduino.jpg)
4. เปิดโปรแกรม Arduino IDE จากไฟล์ ไฟล์ arduino.exe
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_12_arduino_program.jpg)
*** หากติดปัญหาการเปิดโปรแกรม Arduino IDE ไม่ได้ ให้ตรวจสอบว่าได้ติดตั้ง Java 2 Runtime Environment (J2RE) ไว้หรือไม่ หากยังไม่ติดตั้งสามารถดาวน์โหลดได้จาก https://java.com/en/download/
5. หากมีหน้าต่าง Windows Security Alert แสดงขึ้นมา ให้กดปุ่ม Allow access ยอมรับให้โปรแกรมใช้งานผ่านเครือข่ายได้ด้วย
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_13_windows_security.jpg)
6. หน้าต่างโปรแกรม Arduino IDE แสดงส่วนสำหรับการเขียนโค้ดโปรแกรม (Code Editor)
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_14_arduino_sketch.jpg)
การติดตั้งชุดพัฒนา ESPino32 บนแพลตฟอร์ม Arduino
การพัฒนา ESPino32 ด้วย Arduino จะใช้ชุดพัฒนา arduino-esp32 ที่ทาง Espressif Systems จัดทำขึ้นมา อยู่บนพื้นฐานของ ESP-IDF สามารถเข้าไปดูรายละเอียดได้ที่ https://github.com/espressif/arduino-esp32 โดยมีนักพัฒนาที่เชี่ยวชาญตั้งแต่การพัฒนา Arduino สำหรับ ESP8266 มาเป็นแกนหลัก ร่วมกับนักพัฒนาบอร์ด ESP32 รุ่นต่างๆ และผู้พัฒนาซอฟต์แวร์ไลบรารี่เข้าเป็น contributors กว่า 130 ชื่อผู้ใช้ ชุดพัฒนา Arduino-esp32 ปล่อยให้ดาวน์โหลดไปทดสอบและใช้งานมาอย่างต่อเนื่องโดยติดตั้งผ่านการดาวน์โหลดไฟล์ตั้งต้นและรันสคริปต์ติดตั้งคอมไพล์เลอร์เพิ่มเติม
ปัจจุบัน (ก.ค. 2018) ชุดพัฒนาได้ออก Stable Release v1.0.0 ที่สามารถติดตั้งผ่าน Board Manager ได้เพื่อความสะดวกในการใช้งานและอัพเดท มีบอร์ด ESP32 ในลิสต์กว่า 40 บอร์ด รวมถึงบอร์ด ESPino32 ที่ ThaiEasyElec ได้คอมมิทเข้าไปไว้ในชุดพัฒนาเพื่อให้ติดตั้งไปพร้อมกันได้
การติดตั้ง arduino-esp32 ผ่าน Board Manager ทำได้ดังนี้
1. เลือกเมนู File > Preferences หรือกดคีย์ลัด Ctrl + Comma
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_15_preferent_arduino.jpg)
2. ในช่อง Additional Boards Manager URLs ใส่ https://dl.espressif.com/dl/package_esp32_index.json แล้วกดปุ่ม OK เพื่อบันทึกและปิดหน้าต่าง Preferences
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_16_in_preferent_arduino.jpg)
3. เลือกเมนู Tools > Board:…. > Boards Manager
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_17_find_board_manager.jpg)
4. เมื่อหน้าต่าง Boards Manager ปรากฎขึ้นมา รอให้โปรแกรมดาวน์โหลดอัพเดทรายการของบอร์ดสักครู่ จากนั้นพิมพ์ค้นหา esp32 ลงในช่องจะแสดงรายการ esp32 by Espressif Systems ให้เลือกแล้วกดปุ่ม Install
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_18_esp32_board_manager.jpg)
5.รอสักครู่ให้โปรแกรมดาวน์โหลดและติดตั้ง packages ของ esp32
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_19_setup_esp32.jpg)
6. เมื่อติดตั้งเสร็จแล้วจะขึ้นเวอร์ชั่นที่ติดตั้งและแสดงสถานะ INSTALLED สีเขียว กดปุ่ม Close
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_20_setup_esp32_finish.jpg)
7. ในเมนู Tools > Board:… จะแสดงรายการของบอร์ด ESP32 ขึ้นมา ให้เลือกเป็น ThaiEasyElec’s ESPino32
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_21_find_esp32_board.jpg)
การติดตั้งไดรฟเวอร์ USB-to-UART บอร์ด ESPino32
บอร์ด ESPino32 ใช้ USB-to-UART ของ Silicon Labs เบอร์ CP2104 สามารถดาวน์โหลดและติดตั้งไดรฟเวอร์ได้ตามขั้นตอนดังนี้
1. ไปที่เว็บไซต์ https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_22_cp210x.jpg)
2. สำหรับ Windows 10 ให้เลือกตัว Windows 10 Universal เลือก Download VCP (2.3 MB)
สำหรับ Windows 7 / 8 / 8.1 เลือก Download VCP (5.3 MB) (Default)
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_23_download_cp210x_windows.jpg)
สำหรับ Mac OS X หรือ macOS เลือก Download VCP (832 KB)
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_24_download_cp210x_mac.jpg)
เมื่อรันติดตั้งบน macos Sierra หรือ High Sierra เรียบร้อยแล้ว ให้เข้าไปใน System Preferences > Security & Privacy แล้ว Allow ให้ไดรฟเวอร์ทำงานด้วย
สำหรับ Linux ส่วนใหญ่ในปัจจุบันที่เป็น Kernel 3.xx หรือ 4.xx ขึ้นไปจะมี Driver ติดมาอยู่แล้ว หากไม่มีสามารถดาวน์โหลด Source Code ไปคอมไพล์และติดตั้งได้ตาม Kernel ที่ใช้งาน
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_25_download_cp210x_linux.jpg)
3. เมื่อติดตั้งไดรฟเวอร์เรียบร้อยแล้วเสียบสาย micro USB เข้ากับคอมพิวเตอร์ บอร์ดจะแสดงเป็น COM Port ใน Devices Manager
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_26_device_manager.jpg)
4. ใน Arduino IDE เมนู Tools > Port เลือก Serial ports ให้ตรงกับพอร์ตที่แสดงขึ้นมา
![](https://blog.thaieasyelec.com/wp-content/uploads/2020/08/156_27_find_port.jpg)