ข้ามไปที่เนื้อหาหลัก

ESP32 #1: รู้จัก ไมโครคอนโทรลเลอร์ ESP32


ESP32 เป็นชิปไมโครคอนโทรลเลอร์ที่มาพร้อม WiFi มาตรฐาน 802.11 b/g/n และบลูทูธเวอร์ชั่น 4.2 เป็นรุ่นต่อยอดความสำเร็จของ ESP8266 โดยในรุ่นนี้ได้ออกมาแก้ไขข้อเสียของ ESP8266 ทั้งหมด



โดย CPU ใช้สถาปัตยกรรม Tensilica LX6 จำนวน 2 คอร์ สัญญาณนาฬิกา 240MHz สามารถแยกการทำงานระหว่างโปรแกรมจัดการ WiFi และแอพพลิเคชั่นออกจากกันได้ ทำให้มีสเถียรภาพเพิ่มขึ้นมาก มีแรม 520KB มาในตัว  นอกจากนี้ยังมี GPIO เพิ่มขึ้นมาก และมีช่อง ADC เพิ่มขึ้นเป็น 12 ช่อง จากเดิม ESP8266 มีเพียงช่องเดียว ใช้แรงดันไฟฟ้า 3.3V ในโหมด Sleep ใช้กระแสไฟฟ้าเพียง 2.5uA ผลิตโดยบริษัท Espressif จากประเทศจีน โดยตัวไอซี ESP32 มีสเปคโดยละเอียด ดังนี้


  • ซีพียูใช้สถาปัตยกรรม Tensilica LX6 แบบ 2 แกนสมอง สัญญาณนาฬิกา 240MHz
  • มีแรมในตัว 512KB
  • รองรับการเชื่อมต่อรอมภายนอกสูงสุด 16MB
  • มาพร้อมกับ WiFi มาตรฐาน 802.11 b/g/n รองรับการใช้งานทั้งในโหมด Station softAP และ Wi-Fi direct
  • มีบลูทูธในตัว รองรับการใช้งานในโหมด 2.0 และโหมด 4.0 BLE
  • ใช้แรงดันไฟฟ้าในการทำงาน 2.6V ถึง 3V
  • ทำงานได้ที่อุณหภูมิ -40◦C ถึง 125◦C
  • นอกจากนี้ ESP32 ยังมีเซ็นเซอร์ต่าง ๆ มาในตัวด้วย ดังนี้

  • วงจรกรองสัญญาณรบกวนในวงจรขยายสัญญาณ
  • เซ็นเซอร์แม่เหล็ก
  • เซ็นเซอร์สัมผัส (Capacitive touch) รองรับ 10 ช่อง
  • รองรับการเชื่อมต่อคลิสตอล 32.768kHz สำหรับใช้กับส่วนวงจรนับเวลาโดยเฉพาะ
  • ขาใช้งานต่าง ๆ ของ ESP32 รองรับการเชื่อมต่อบัสต่าง ๆ ดังนี้

  • มี GPIO จำนวน 32 ช่อง
  • รองรับ UART จำนวน 3 ช่อง
  • รองรับ SPI จำนวน 3 ช่อง
  • รองรับ I2C จำนวน 2 ช่อง
  • รองรับ ADC จำนวน 12 ช่อง
  • รองรับ DAC จำนวน 2 ช่อง
  • รองรับ I2S จำนวน 2 ช่อง
  • รองรับ PWM / Timer ทุกช่อง
  • รองรับการเชื่อมต่อกับ SD-Card


นอกจากนี้ ESP32 ยังรองรับฟังก์ชั่นเกี่ยวกับความปลอดภัยต่าง ๆ ดังนี้


  • รองรับการเข้ารหัส WiFi แบบ WEP และ WPA/WPA2 PSK/Enterprise
  • มีวงจรเข้ารหัส AES / SHA2 / Elliptical Curve Cryptography / RSA-4096 ในตัว


ในด้านประสิทธิ์ภาพการใช้งาน ตัว ESP32 สามารถทำงานได้ดี โดย

รับ – ส่ง ข้อมูลได้ความเร็วสูงสุดที่ 150Mbps เมื่อเชื่อมต่อแบบ 11n HT40 ได้ความเร็วสูงสุด 72Mbps เมื่อเชื่อมต่อแบบ 11n HT20 ได้ความเร็วสูงสุดที่ 54Mbps เมื่อเชื่อมต่อแบบ 11g และได้ความเร็วสูงสุดที่ 11Mbps เมื่อเชื่อมต่อแบบ 11b

เมื่อใช้การเชื่อมต่อผ่านโปรโตคอล UDP จะสามารถรับ – ส่งข้อมูลได้ที่ความเร็ว 135Mbps
ในโหมด Sleep ใช้กระแสไฟฟ้าเพียง 2.5uA

ด้วยเหตุนี้ ESP32 จึงเหมาะสำหรับนำมาใช้งานมาก ด้วยเหตุผลทางด้านราคา และประสิทธิ์ภาพที่ได้


บอร์ดพัฒนา ESP32

หลังจากชิปไอซี ESP32 เปิดตัวได้ไม่นาน ก็มีผู้ผลิตหลายรายที่ให้การตอบรับโดยการผลิตบอร์ดพัฒนา ESP32 ออกมา ช่วยให้ ESP32 สามารถนำมาพัฒนาได้ง่ายมากขึ้น ในแต่ละบอร์ดก็จะมีความแตกต่างกันในเรื่องของฟิเจอร์ ที่เพิ่มเติม  เรื่องขนาด และรุ่นของโมดูล ESP32 ที่เลือกใช้ ทำให้บอร์ดพัฒนา ESP32 เกิดขึ้นมาใหม่เสมอ


DevKitC ESP32

บอร์ดพัฒนา ESP32 ที่ผลิตโดยบริษัท Espressif ที่เป็นผู้ผลิตชิปไอซี ESP32 (ผู้ผลิตไอซี ผลิตโมดูล และผลิตบอร์ดพัฒนาเอง) เป็นบอร์ดพัฒนา ESP32 บอร์ดแรก ทำให้ตำแหน่งขาต่าง ๆ ของ DevKitC ESP32 ถูกใช้เป็นมาตรฐาน ของบอร์ดพัฒนา ESP32 ของบริษัท อื่นๆ อีกด้วย

บอร์ดพัฒนา DevKitC ESP32 มีอยู่ด้วยกัน 2 รุ่น คือ

V1 - บอร์ดสีฟ้า เป็นรุ่นแรก
V2 - เปลี่ยนสีของแผ่นวงจรพิมพ์เป็นสีดำ



บอร์ด DevKitC ESP32  ใช้โมดูลรุ่น ESP-WROOM-32 ที่บริษัท Espressif เป็นผู้ผลิตขึ้นเอง และใช้ชิปไอซีแปลง USB เป็น UART เบอร์ CP2102 จาก Silicon Labs สามารถเข้าโหมดอัพโหลดโปรแกรมแบบอัตโนมัติโดยใช้วงจรแบบ nodemcu มีรอม 4MB (หรือ 32Mbit) ใช้ไอซีเรกกูเลเตอร์แบบ LDO เบอร์ AMS1117-3.3 รองรับแรงดันเข้าสูงสุด 7V และจ่ายกระแสได้สูงสุด 700mA

ใช้พลังงานไฟฟ้าและสื่อสารผ่านพอร์ต MicroUSB มีขาต่อใช้งานทั้งหมด 38 ขา เรียงขาแบบเดียวกับบนโมดูล ESP-WROOM-32 เมื่อนำไปเสียบลงโพรโต้บอร์ด จะเหลือช่องให้ใช้งานเพียงด้านเดียว 1 ช่อง


การใช้งานขาต่างๆ ของ DevKitC ESP32




Arduino core for ESP32 WiFi chip


Espressif ได้พัฒนาชุดไลบารี่และคอมไพล์เลอร์สำหรับ Arduino ในชื่อ Arduino core for ESP32 WiFi chip การพัฒนา Arduino core for ESP32 WiFi chip จะทำไปควบคู่กับการพัฒนา ESP-DF โดยที่ ESP-IDF จะเป็นแกนหลัก เมื่อมีการเพิ่มฟิวเจอร์ใหม่ ๆ ให้ ESP-IDF แล้ว จึงจะมีการเพิ่มใน Arduino core for ESP32 WiFi chip


LuaNode

เป็นชื่อของชุดพัฒนา ESP32 ที่นำ Rumtime ของภาษา ภาษา Lua (pronounced 'LOO-ah' หรือออกเสียงว่า 'ลัว' หรือ 'ลูอ่า' ในภาษาโปรตุเกส) มาลงใน ESP32 ทำให้ ESP32 ใช้ภาษา Lua ได้ พัฒนาโดยบริษัท DOIT ที่ทำบอร์ดพัฒนา ESP32 ในชื่อ DOIT ESP32 Development Board มีขาต่อใช้งานทั้งหมด 30 ขา โดยความสามารถของ LuaNode คือรองรับคำสั่งที่ใช้บน Lua จริง ๆ แทบทุกคำสั่ง และรองรับการควบคุม WiFi เต็มรูปแบบ


การเลือกใช้งาน

บทความ โปรเจคหุ่นยนต์ ของ โรบอทสยาม นั้นจะใช้ Arduino core for ESP32 WiFi chip กับ บอร์ด DevKitC ESP32 มีขาต่อใช้งานทั้งหมด 38 ขา หรือ บอร์ด ที่มีตำแหน่งขาต่าง ๆ  อ้างอิงจาก DevKitC ESP32 ในการการพัฒนาเป็นหลัก





ลิงค์สินค้า : DevKitC V2 ESP32 Development Board WiFi + Bluetooth

ลิงค์ การติดตั้ง :  Arduino core for ESP32 WiFi chip

โพสต์ยอดนิยมจากบล็อกนี้

การใช้งาน IR Infrared Obstacle Avoidance Sensor Module

โมดูลเซ็นเซอร์แสงสำหรับตรวจจับวัตถุกีดขวาง   IR Infrared Obstacle Avoidance Sensor Module โมดูลเซ็นเซอร์แสงสำหรับตรวจจับวัตถุกีดขวาง    IR Infrared Obstacle Avoidance Sensor Module โดยโมดูลนี้ จะมีตัวรับและตัวส่ง infrared ในตัว ตัวสัญญาณ(สีขาว) infrared จะส่งสัญญาณออกมา และเมื่อมีวัตถุมาบัง คลื่นสัญญาณ infrared  ที่ถูกสั่งออกมาจะสะท้องกลับไปเข้าตัวรับสัญญาณ (สีดำ) สามารถนำมาใช้ตรวจจับวัตถุที่อยู่ตรงหน้าได้ และสามารถปรับความไว ระยะการตรวจจับ ใกล้หรือไกลได้ ภายตัวเซ็นเซอร์แบบนี้จะมีตัวส่ง Emitter และ ตัวรับ Receiver ติดตั้งภายในตัวเดียวกัน ทำให้ไม่จำเป็นต้องเดินสายไฟทั้งสองฝั่ง เหมือนแบบ Opposed Mode ทำให้การติดตั้งใช้งานได้ง่ายกว่า แต่อย่างไรก็ตามจำเป็นต้องติดตั้งตัวแผ่นสะท้อนหรือ Reflector ไว้ตรงข้ามกับตัวเซ็นเซอร์เอง โดยโฟโต้เซ็นเซอร์แบบที่ใช้แผ่นสะท้อนแบบนี้จะเหมาะสำหรับชิ้นงานที่มีลักษณะทึบแสงไม่เป็นมันวาว เนื่องจากอาจทำให้ตัวเซ็นเซอร์เข้าใจผิดว่าเป็นตัวแผ่นสะท้อน และ ทำให้ทำงานผิดพลาดได้ เซ็นเซอร์แบบนี้จะมีช่วงในการทำงาน หรือ ระยะในการตรวจจับจะได้ใกล้กว่าแบบ O

การติดตั้ง Library ของ DHT Sensor DHT11 , DHT21 , DHT22

การติดตั้ง Library ของ DHT Sensor ไลบรารี DHT ใช้สำหรับในการให้เซ็นเซอร์ DHT  อ่านอุณหภูมิและความชื้นด้วย  Arduino หรือ ESP8266 ได้ คลิกที่นี่เพื่อดาวน์โหลดไลบรารี ของเซ็นเซอร์ DHT https://github.com/adafruit/DHT-sensor-library เปิดโปรแกรม Arduino IDE  ไปที่ Skecth -> Include Library -> Add .ZIP Library... ไปที่ ไลบรารี DHT-sensor-library ที่เรา ดาวน์โหลด มา ตรวจสอบที่ Skecth -> Include Library  จะพบ ไลบรารี DHT sensor library เพิ่มเข้ามาใน Arduino IDE ของเรา ไปที่ Skecth -> Include Library -> Manage Libraries... ไปที่ช่องค้นหา พิมพ์ DHT -> Enter (เพื่อค้นหา DHT sensor library ) เมื่อพบ DHT sensor library แล้ว ให้คลิก More info คลิกที่ Select Vers.. ในตัวอย่าง เลือก Version 1.2.3 คลิก Install คลิก Close เพิ่ม #include <DHT.h> ไปที่ส่วนบนสุดของโค้ด #include <DHT.h> void setup() {   // put your setup code here, to run once: } void loop() {   // put your main

ESP32 #2: การติดตั้ง Arduino core for ESP32 WiFi chip

ในบทความนี้จะเป็นการแนะนำการติดตั้งโปรแกรม Arduino IDE ตั้งแต่ต้น ไปจนถึงการติดตั้งชุดพัฒนา Arduino core for ESP32 WiFi chip และ การตรวจสอบว่าติดตั้งสำเร็จหรือไม่ “Arduino” แต่เดิมเป็นแพลตฟอร์มที่ใช้ในการพัฒนาเฟิร์มแวร์ให้กับบอร์ด Arudino เท่านั้น แต่ภายหลังกลุ่มผู้พัฒนาโปรแกรม Arduino IDE ได้เริ่มรองรับการติดตั้งชุดพัฒนาเฟิร์มแวร์ให้กับบอร์ดอื่น ๆ ด้วย ทำให้บอร์ดอื่น ๆ ที่รองรับการเขียนโปรแกรมด้วยภาษา C/C++ สามารถเข้ามาใช้โปรแกรม Arduino IDE ในการพัฒนาได้ นอกจากข้อดีของโปรแกรม Arduino IDE แล้ว ชุดไลบารี่ต่าง ๆ ที่ทำมารองรับกับแพลตฟอร์ม Arduino ก็จะสามารถนำมาใช้งานกับบอร์ดอื่น ๆ ได้ด้วย การจะใช้ Arduino core for ESP32 กับ Arduino IDE ได้นั้น มีขั้นตอนดังนี้ คือ 1. ติดตั้งโปรแกรม Arduino (IDE) ลิงค์ดาวโหลด Arduino (IDE)  https://www.arduino.cc/en/Main/Software 2. ติดตั้ง แพลตฟอร์ม ESP32 ในการเริ่มต้นเราจะต้องอัปเดตผู้จัดการบอร์ดด้วย URL ที่กำหนดเอง เปิด Arduino IDE และไปที่ File > Preferences คัดลอก URL ด้านล่างลงใน Additional Board Manager URLs: แล้ว คลิก