กระโดดไปยัง:
บทเรียน ESP32 1/55 - แนะนำชุดเรียนรู้ IoT ESP32 ของ SunFounder ซอฟต์แวร์และ Arduino IDE บทช่วยสอน ESP32 2/55 - ESP32 คืออะไร, บอร์ดขยายกล้อง, แกะกล่องชุด IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 3/55 - โครงการตัวต้านทาน, LED, Breadboard: สวัสดี LED - ชุดเรียนรู้ IoT ESP32 บทเรียน ESP32 4/55 - ชนิดข้อมูล การกำหนดตัวแปร Int, bool, char, Serial Monitor - ชุด IoT ESP32 บทเรียน ESP32 5/55 - การหรี่แสง LED, ควบคุมความสว่างของ LED - ชุดเรียนรู้ IoT ESP32 บทช่วยสอน ESP32 6/55 - การใช้โปรเจกต์ RGB LED 2.3 - ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 7/55 - การใช้ Array กับการเขียนโปรแกรม ESP32 Arduino - ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 Tutorial 8/55 -Walking Light 74HC595 Shift register -SunFounder's ESP32 IoT Learning kit บทเรียน ESP32 9/55 - การใช้ปุ่มกดเพื่อสลับเปิด-ปิด LED, กดเปิด, กดปิด - ชุด IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 10/55 - ตัวนับดิจิทัลโดยใช้จอแสดงผลเซเว่นเซกเมนต์ 74HC595 - ชุดเรียนรู้ IoT สำหรับ ESP32 บทเรียน ESP32 11/55 - การใช้ LCD1602 LCD2004 กับ ESP32 - ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 12/55 - โปรเจกต์แถบ RGB WS2812 4 ร่วมกับชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 13/55 - Arduino ส่งเสียงบี๊บด้วย Active Buzzer | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 14/55 - การเล่นโน้ตเพลงที่กำหนดเองโดยใช้ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 15/55 - การควบคุมความเร็วมอเตอร์ DC ด้วย ESP32 L293D | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 16/55 - ปั๊มน้ำขนาดเล็กโดยใช้ ESP32 และ L293D | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 17/55 - การควบคุมเซอร์โวมอเตอร์โดยใช้ ESP32 และโพเทนชิโอมิเตอร์ - ชุดการเรียนรู้ IoT สำหรับ ESP32 บทเรียน ESP32 18/55 - การตรวจจับการเอียงโดยใช้ ESP32 | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 19/55 - การตรวจจับสิ่งกีดขวางโดยใช้เซนเซอร์อินฟราเรด | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 20/55 - โมดูลติดตามเส้น | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 21/55 - การตรวจจับมนุษย์ด้วยเซนเซอร์ตรวจจับการเคลื่อนไหว PIR | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 22/55 - รับรู้แสงโดยใช้ LED Arduino | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 23/55 - การอ่านแรงดันไฟฟ้าของโพเทนชิโอมิเตอร์โดยใช้ ESP32 | ชุด IoT ESP32 ของ SunFounder ESP32 บทเรียน 24/55 - การวัดความชื้นในดินเพื่อการชลประทาน | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 25/55 - การวัดอุณหภูมิโดยใช้ NTC และ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 26/55 - การใช้จอยสติ๊กกับ Arduino ลงมือปฏิบัติ | ชุด IoT ESP32 ของ SunFounder บทเรียน ESP32 27/55 - การวัดระยะทางด้วยเซนเซอร์อัลตราโซนิก | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 28/55 - เซนเซอร์วัดอุณหภูมิ DHT11 พร้อมจอ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 29/55 - การอ่านการกดปุ่มรีโมทอินฟราเรดด้วย ESP32| ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 30/55 - ควบคุมเซอร์โวผ่านเว็บโดยใช้ MQTT ผ่านบริการ Adafruit IO | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 31/55 - โปรเจกต์แถบ LED พร้อมการหลบหลีกสิ่งกีดขวาง | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 32/55 - คำเตือนระยะการถอยรถด้วย LCD และออด | ชุดเรียนรู้ IoT ของ SunFounder บทเรียน ESP32 33/55 - ลูกเต๋าดิจิทัลโดยใช้ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 34/55 - การไล่เฉดสีด้วย RGB LED และปุ่มหมุน | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 35/55 - เครื่องตรวจวัดพืช ดิน อุณหภูมิ และแสง | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 36/55 - เกมทายตัวเลข | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 37/55 - การใช้แอปบลูทูธกับ ESP32 BLE | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 38/55 - การควบคุม RGB LED จากโทรศัพท์มือถือของคุณ | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 39/55 - การใช้ ESP32 เป็นเครื่องเล่นเพลงบลูทูธ | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 40/55 - การอ่านและเขียนลงการ์ด Micro SD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 41/55 - เครื่องเล่น MP3 โดยใช้การ์ด Micro SD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 42/55 - ถ่ายภาพด้วยกล้องแล้วบันทึกลง Micro SD CAM-1 | ชุด ESP32 ของ SunFounder ESP32 บทเรียน 43/55 - สถานีตรวจอากาศอินเทอร์เน็ต IoT | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 44/55 - ESP32 กล้องเว็บเซิร์ฟเวอร์สตรีมวิดีโอผ่าน Wifi CAM-2 | ชุด ESP32 ของ SunFounder บทช่วยสอน ESP32 45/55 - เซิร์ฟเวอร์สตรีมมิงแบบกำหนดเองพร้อมการควบคุม LED CAM-3 l ชุดเรียนรู้ ESP32 ของ SunFounder บทช่วยสอน ESP32 46/55 - การตรวจวัดอุณหภูมิระยะไกลโดยใช้ HiveMQ MQTT | ชุด ESP32 ของ SunFounder บทเรียน ESP32 47/55 - WS2812 CheerLights โดยใช้ MQTT ผ่านอินเทอร์เน็ต | ชุด IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 48/55 - การตรวจวัดอุณหภูมิระยะไกลและการควบคุม LED ด้วย MQTT | ชุด IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 49/55 - ควบคุมมอเตอร์ DC ผ่านอินเทอร์เน็ตโดยใช้ Adafruit IoT | ชุด ESP32 ของ SunFounder ESP32 บทเรียน 50/55 - ควบคุม RGB LED จากที่ใดก็ได้ในโลก | ชุด ESP32 ของ SunFounder ESP32 Tutorial 51/55 - Temperature and Humidity over WiFi with DHT | SunFounder's ESP32 IoT Learning Kit บทช่วยสอน ESP32 52/55 - การซิงค์ระดับโลกของ WS2812 CheerLights ผ่าน MQTT พร้อมจอ LCD | ชุด IoT ESP32 ของ SunFounder บทเรียน ESP32 53/55 - สร้างนาฬิกาอินเทอร์เน็ตบนจอ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 54/55 - ตั้งค่าสีแถบ LED WS2812 ผ่าน Wifi | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 55/55 - วิธีวัดแรงดันไฟฟ้ากระแสตรง 12V, 24V หรือ 100V | ชุดเรียนรู้ IoT ESP32 ของ SunFounder
ESP32 บทเรียน 22/55 - รับรู้แสงโดยใช้ LED Arduino | ชุดเรียนรู้ IoT ESP32 ของ SunFounder
ในบทช่วยสอนนี้ เราจะสำรวจวิธีการใช้ตัวต้านทานไวแสง (LDR) ร่วมกับไมโครคอนโทรลเลอร์ ESP32 เพื่อวัดความเข้มของแสง โดยการอ่านค่าความต้านทานของ LDR เราสามารถกระตุ้นการทำงานต่างๆ เช่น การเปิดออดเมื่อระดับแสงเกินเกณฑ์ที่กำหนด โปรเจกต์นี้จะสาธิตปฏิสัมพันธ์ระหว่างระดับแสงกับความสามารถในการอ่านค่าแอนะล็อกของ ESP32 ทำให้เราสามารถสร้างแอปพลิเคชันที่ตอบสนองตามแสงโดยรอบได้ (ในวิดีโอที่ 5:30)
อธิบายฮาร์ดแวร์
ส่วนประกอบหลักที่เราจะใช้ในโปรเจกต์นี้ประกอบด้วยไมโครคอนโทรลเลอร์ ESP32, LDR และตัวต้านทาน 10 kΩ LDR จะเปลี่ยนค่าความต้านทานตามความเข้มของแสงที่ตกกระทบพื้นผิว: แสงมากขึ้นส่งผลให้ความต้านทานลดลง ในขณะที่แสงน้อยลงส่งผลให้ความต้านทานสูงขึ้น คุณสมบัตินี้ทำให้เราสามารถวัดระดับแสงที่แปรผันได้โดยการเชื่อมต่อ LDR ในรูปแบบวงจรแบ่งแรงดันร่วมกับตัวต้านทาน
ไมโครคอนโทรลเลอร์ ESP32 มี Wi-Fi และบลูทูธในตัว ทำให้เหมาะสำหรับโปรเจกต์ IoT มีพินแอนะล็อกหลายตัวที่สามารถอ่านระดับแรงดันไฟฟ้าที่แปรผันได้ ซึ่งเราจะใช้เพื่อตรวจสอบแรงดันไฟฟ้าคร่อม LDR แรงดันไฟฟ้านี้จะถูกแปลงเป็นค่าแอนะล็อกที่ ESP32 สามารถประมวลผลและใช้เพื่อกระตุ้นการทำงานต่างๆ เช่น การเปิดออด
รายละเอียดจากดาต้าชีต
ผู้ผลิต Espressif Systems
หมายเลขชิ้นส่วน ESP32
แรงดันไฟฟ้าลอจิก/IO 3.3 V
แรงดันไฟฟ้าจ่าย 3.0 - 3.6 V
กระแสเอาต์พุต (ต่อ GPIO) สูงสุด 40 mA
คำแนะนำความถี่ PWM 1 kHz - 40 kHz
เกณฑ์ลอจิกอินพุต สูง: ขั้นต่ำ 2.0 V, ต่ำ: สูงสุด 0.8 V
แรงดันตก / RDS(on) / อิ่มตัว สูงสุด 0.3 V
ขีดจำกัดความร้อน -40 °C ถึง 125 °C
แพ็คเกจ QFN48
หมายเหตุ / รุ่นต่างๆ รองรับโปรโตคอล Wi-Fi และบลูทูธหลายรูปแบบ
ใช้ตัวต้านทาน 10 kΩ ต่ออนุกรมกับ LDR เพื่อแบ่งแรงดันไฟฟ้า
ตรวจสอบให้แน่ใจว่า ESP32 ได้รับไฟ 3.3 V เพื่อหลีกเลี่ยงความเสียหาย
เชื่อมต่อ LDR และตัวต้านทานอย่างถูกต้องเพื่อวัดความเข้มของแสง
ใช้ตัวเก็บประจุสำหรับแยกสัญญาณหากจำเป็นเพื่อทำให้แหล่งจ่ายไฟมีเสถียรภาพ
ตรวจสอบค่าแอนะล็อกที่อ่านได้เพื่อให้แน่ใจว่าอยู่ในช่วงที่คาดหวัง
คำแนะนำการเดินสายไฟ
ESP32-22_light_sensor-wiring
ในการเดินสายไฟ LDR และตัวต้านทานเข้ากับ ESP32 ให้เริ่มต้นโดยเชื่อมต่อขั้วหนึ่งของ LDR เข้ากับพินจ่ายไฟ 3.3 V บน ESP32 ขั้วอีกด้านของ LDR ควรเชื่อมต่อกับขั้วหนึ่งของตัวต้านทาน 10 kΩ จากนั้นเชื่อมต่อขั้วอีกด้านของตัวต้านทานเข้ากับกราวด์
ถัดไป เชื่อมต่อสายจัมเปอร์จากจุดเชื่อมต่อระหว่าง LDR และตัวต้านทานเข้ากับพิน 35 บน ESP32 การตั้งค่านี้สร้างวงจรแบ่งแรงดันไฟฟ้า ทำให้ ESP32 สามารถอ่านแรงดันไฟฟ้าที่แปรผันตามความเข้มของแสงที่ตกกระทบ LDR ตรวจสอบให้แน่ใจว่าการเชื่อมต่อทั้งหมดแน่นหนา และวางตำแหน่ง LDR ในจุดที่สามารถรับรู้การเปลี่ยนแปลงของแสงได้อย่างแม่นยำ
ตัวอย่างโค้ดและคำอธิบาย
ในโค้ด เราเริ่มต้นด้วยการเริ่มต้นการสื่อสารซีเรียลเพื่อตรวจสอบค่าที่อ่านได้จาก LDR ตัวระบุหลักที่นี่คือ analogValue ซึ่งเก็บค่าที่อ่านได้จากพิน 35
void setup() {
Serial.begin(115200);
}
void loop() {
int analogValue = analogRead(35);
Serial.printf("ADC analog value = %d\n",analogValue);
delay(100);
}
โค้ดส่วนนี้เริ่มต้นจอซีเรียลที่อัตราบอด 115200 และอ่านค่าแอนะล็อกจากพิน 35 อย่างต่อเนื่อง ค่าที่ได้จะถูกพิมพ์ไปยังจอซีเรียล ทำให้เราสามารถสังเกตว่าค่าเปลี่ยนแปลงอย่างไรตามระดับแสงที่แปรผัน
เมื่อความเข้มของแสงเปลี่ยนแปลง ความต้านทานของ LDR จะแปรผัน และแรงดันไฟฟ้าที่ ESP32 อ่านได้ก็จะเปลี่ยนแปลงตามไปด้วย ซึ่งสะท้อนสภาพแสงโดยรอบ (ในวิดีโอที่ 12:45)
การสาธิต / สิ่งที่คาดหวัง
เมื่อคุณรันโปรแกรมและสังเกตจอซีเรียล คุณควรเห็น ADC analog value ผันผวนตามสภาพแสงโดยรอบ เมื่อคุณบัง LDR ค่าควรเพิ่มขึ้น ซึ่งบ่งบอกถึงความต้านทานที่สูงขึ้น ในขณะที่การเปิดรับแสงจ้าควรทำให้ค่าลดลงอย่างมีนัยสำคัญ พฤติกรรมนี้สามารถใช้เพื่อกระตุ้นออดหรือการทำงานอื่นๆ ตามเกณฑ์ที่กำหนดไว้ล่วงหน้า
หากค่าที่อ่านได้ไม่เปลี่ยนแปลงตามที่คาดหวัง ให้ตรวจสอบปัญหาการเดินสายไฟ ตรวจสอบให้แน่ใจว่า LDR ไม่ลอย และยืนยันว่า ESP32 ได้รับไฟอย่างถูกต้อง สิ่งนี้จะช่วยป้องกันข้อผิดพลาดทั่วไปและทำให้การทำงานราบรื่น (ในวิดีโอที่ 15:30)
ไทม์สแตมป์ในวิดีโอ
00:00 เริ่มต้น
1:48 แนะนำ LDR
8:33 อธิบายการเดินสายไฟ
11:07 อธิบายโค้ด Arduino
13:07 การเลือกบอร์ด ESP32 และพอร์ต COM ใน Arduino IDE
14:49 สาธิตการอ่านค่า
17:24 ทำความเข้าใจค่าเวลากลางวันและกลางคืน
18:47 ค่า DAC และการอ่านแรงดันไฟฟ้า
ภาพ
ESP32-22_light_sensor
ESP32-22_light_sensor-wiring
ESP32-22_light_sensor-wiring
รหัส
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
ภาษา: C++
ดูโค้ด
void setup() {
// initialize serial communication at 115200 bits per second:
Serial.begin(115200);
}
void loop() {
// read the analog value
int analogValue = analogRead(35);
// print out the values you read:
Serial.printf("ADC analog value = %d\n",analogValue);
delay(100); // delay in between reads for clear read from serial
}
แหล่งข้อมูลและเอกสารอ้างอิง
ไฟล์📁
ไม่มีไฟล์ที่พร้อมใช้งาน