ESP32 ทำอะไรได้บ้าง?
ESP32 เป็นไมโครคอนโทรลเลอร์ขนาดเล็กแต่ทรงพลัง ที่ได้รับความนิยมอย่างมากในวงการ IoT (Internet of Things) และการพัฒนาอุปกรณ์อิเล็กทรอนิกส์ต่างๆ เนื่องจากมีราคาไม่แพง มีฟังก์ชันครบครัน และใช้งานง่าย ทำให้สามารถนำไปประยุกต์ใช้ได้หลากหลายรูปแบบ ดังนี้
การใช้งานทั่วไปของ ESP32
สมาร์ทโฮม: ควบคุมหลอดไฟ, พัดลม, ปั๊มน้ำ, เซ็นเซอร์ต่างๆ ผ่านแอปพลิเคชันบนสมาร์ทโฟน
อุปกรณ์สวมใส่: นาฬิกาอัจฉริยะ, สายรัดข้อมือวัดสุขภาพ
เซ็นเซอร์วัดค่าต่างๆ: วัดอุณหภูมิ, ความชื้น, แสง, การเคลื่อนไหว
ระบบควบคุมมอเตอร์: ควบคุมมอเตอร์ DC, เซอร์โวมอเตอร์, สเต็ปเปอร์มอเตอร์
ระบบรักษาความปลอดภัย: ระบบแจ้งเตือน, กล้องวงจรปิด
โครงการ DIY: สร้างอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ตามความคิดสร้างสรรค์
จุดเด่นของ ESP32 ที่ทำให้ใช้งานได้หลากหลาย
Wi-Fi และ Bluetooth ในตัว: ทำให้สามารถเชื่อมต่อกับอุปกรณ์อื่นๆ ได้ง่าย
2 Core Processor: เพิ่มประสิทธิภาพในการทำงาน
GPIO Pins จำนวนมาก: สามารถเชื่อมต่อกับอุปกรณ์ภายนอกได้หลากหลาย
รองรับภาษาโปรแกรมหลากหลาย: Arduino IDE, MicroPython, ESP-IDF
ราคาประหยัด: ทำให้สามารถเข้าถึงได้ง่าย
ตัวอย่างโครงการที่ใช้ ESP32
สวนอัจฉริยะ: ควบคุมระบบรดน้ำ, วัดค่าความชื้นในดิน, เปิด-ปิดไฟในโรงเรือน
ระบบควบคุมแสงสว่างอัตโนมัติ: เปิด-ปิดไฟตามระดับแสง
เครื่องวัดคุณภาพอากาศ: วัดค่า PM2.5, CO2, อุณหภูมิ, ความชื้น
หุ่นยนต์: ควบคุมการเคลื่อนไหวของหุ่นยนต์, หลีกเลี่ยงสิ่งกีดขวาง
IoT Gateway: เชื่อมต่ออุปกรณ์ต่างๆ เข้ากับอินเทอร์เน็ต
สิ่งที่คุณจะต้องรู้ก่อนเริ่มใช้งาน ESP32
พื้นฐานการเขียนโปรแกรม: Arduino IDE เป็นตัวเลือกที่นิยมสำหรับผู้เริ่มต้น
วงจรอิเล็กทรอนิกส์พื้นฐาน: เพื่อทำความเข้าใจการต่อวงจรต่างๆ
ภาษาอังกฤษ: เนื่องจากเอกสารและตัวอย่างส่วนใหญ่เป็นภาษาอังกฤษ
Feature ESP32 ESP8266
Processor Dual-core Tensilica Xtensa LX6 Single-core Tensilica Xtensa LX6
Clock Speed 160MHz - 240MHz 80MHz
Memory 512KB SRAM, 4MB flash 64KB SRAM, 1MB flash
Wi-Fi 802.11b/g/n 802.11b/g/n
Bluetooth Bluetooth 4.2 No Bluetooth
GPIO Pins 40 16
Analog-to-DigitalConverter
ADC Channels 16 1
DAC Channels 2 No DAC
Power Consumption 10mA (active), 10µA (sleep) 20mA (active), 10µA (sleep)
Price Slightly higher Lower
วัดอุณหภูมิ: เซ็นเซอร์วัดอุณหภูมิจะให้ค่าแรงดันไฟฟ้าที่เปลี่ยนแปลงตามอุณหภูมิ ซึ่งจะถูกส่งเข้าไปยัง ADC Channel
เพื่อแปลงเป็นค่าดิจิทัล แล้วนำไปคำนวณหาค่าอุณหภูมิที่แท้จริง
วัดแสง: เซ็นเซอร์วัดแสงจะให้ค่าแรงดันไฟฟ้าที่เปลี่ยนแปลงตามความเข้มของแสง ซึ่งจะถูกส่งเข้าไปยัง ADC Channel
เพื่อแปลงเป็นค่าดิจิทัล แล้วนำไปใช้ในการควบคุมความสว่างของหลอดไฟ
วัดค่า pH: เซ็นเซอร์วัดค่า pH จะให้ค่าแรงดันไฟฟ้าที่เปลี่ยนแปลงตามค่า pH ซึ่งจะถูกส่งเข้าไปยัง ADC Channel
เพื่อแปลงเป็นค่าดิจิทัล แล้วนำไปแสดงผลบนหน้าจอ
DAC Channels (Digital-to-Analog Converter Channels)
DAC ย่อมาจาก Digital-to-Analog Converter ซึ่งเป็นวงจรที่ทำหน้าที่แปลงสัญญาณดิจิทัล (ค่าตัวเลข)
ให้เป็นสัญญาณอนาล็อก
DAC Channels หมายถึงช่องทางที่ใช้ในการส่งสัญญาณอนาล็อกออกไป โดยค่าดิจิทัลที่ส่งเข้าไปจะถูกแปลง
เป็นแรงดันไฟฟ้าที่สอดคล้องกัน
ตัวอย่างการใช้งาน:
ควบคุมมอเตอร์: โดยการส่งค่าดิจิทัลที่บ่งบอกความเร็วหรือทิศทางของมอเตอร์เข้าไปยัง DAC Channel
เพื่อควบคุมความเร็วและทิศทางของมอเตอร์
สร้างสัญญาณเสียง: โดยการส่งค่าดิจิทัลที่เป็นตัวแทนของคลื่นเสียงเข้าไปยัง DAC Channel เพื่อสร้างเสียงที่ต้องการ
ควบคุมความสว่างของ LED: โดยการส่งค่าดิจิทัลที่บ่งบอกระดับความสว่างเข้าไปยัง DAC Channel
เพื่อควบคุมความสว่างของ LED
1.การติดตั้ง ESP32 ใน Arduino IDE
ทำตามขั้นตอนได้ดังนี้:
Arduino IDE ไปที่ File > Preferences จากนั้นในช่อง "Additional Board Manager URLs"
ให้เพิ่ม URL ของ ESP32:
https://dl.espressif.com/dl/package_esp32_index.json,
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
ติดตั้ง ESP32 Board: ไปที่ Tools > Board > Boards Manager
ค้นหา “ESP32” และติดตั้งแพ็คเกจ ESP32 โดย Espressif Systems
เลือกบอร์ด ESP32: ไปที่ Tools > Board และเลือกบอร์ด ESP32 ที่คุณใช้งาน
เชื่อมต่อและอัปโหลดโค้ด: เชื่อมต่อบอร์ด ESP32 กับคอมพิวเตอร์ จากนั้นคุณสามารถเขียนและอัปโหลดโค้ดได้ตามปกติ
Esp32 s2 dev module
2.Open a Blink basic project in Arduino IDE
File>Examples>01.Basics>Blink.
3.การแก้ไข error
A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)!
The chip needs to be in download mode.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
Failed uploading: uploading error: exit status 2
ให้กดปุ่ม Boot ค้างไว้ตอน upload code ถ้าอัพโหลดผ่าน แนวทางแก้ไข มีสองวิธี
คือ
https://randomnerdtutorials.com/solved-failed-to-connect-to-esp32-timed-out-waiting-for-packet-header/
ถ้าไม่ผ่าน ให้ลองเปลี่ยนโหมด
โดยกดปุ่ม Boot ค้าง แล้วกดปุ่ม EN ปล่อมปุ่ม EN และปล่อยปุ่ม Boot ตามลำดับ
/// Blink code
#define LED_BUILTIN 2
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(2000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(2000); // wait for a second
}
///////////////
Reference:
https://randomnerdtutorials.com/solved-failed-to-connect-to-esp32-timed-out-waiting-for-packet-header/
Tags:
ESP32,Arduio IDE,NodeMCU,handleRoot,HTML,AsyncWebServer server(80),
Web server,handleClient,server send,server on,WiFi.begin ,WiFi.h
ความคิดเห็น
แสดงความคิดเห็น