โลโก้ลาฟวินการเริ่มต้นใช้งานพื้นฐานของ ESP32
ชุด

เนื้อหา ซ่อน

รายการบรรจุภัณฑ์

ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รายการบรรจุภัณฑ์

บทนำ ESP32

ใหม่สำหรับ ESP32 เริ่มที่นี่! ESP32 คือไมโครคอนโทรลเลอร์ System on a Chip (SoC) ราคาประหยัดและใช้พลังงานต่ำที่พัฒนาโดย Espressif ซึ่งมีคุณสมบัติไร้สาย Wi-Fi และ Bluetooth และโปรเซสเซอร์แบบดูอัลคอร์ หากคุณคุ้นเคยกับ ESP8266 ESP32 คือตัวต่อจาก ESPXNUMX ซึ่งเต็มไปด้วยคุณสมบัติใหม่มากมายชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การแนะนำ ESP32ข้อมูลจำเพาะของ ESP32
หากคุณต้องการข้อมูลทางเทคนิคและเฉพาะเจาะจงมากขึ้น คุณสามารถดูข้อมูลจำเพาะโดยละเอียดของ ESP32 ต่อไปนี้ได้ (แหล่งที่มา: http://esp32.net/)—เพื่อดูรายละเอียดเพิ่มเติม ตรวจสอบแผ่นข้อมูล):

  • การเชื่อมต่อไร้สาย WiFi: อัตราข้อมูล 150.0 Mbps พร้อม HT40
  • บลูทูธ: BLE (บลูทูธพลังงานต่ำ) และบลูทูธแบบคลาสสิก
  • หน่วยประมวลผล: ไมโครโปรเซสเซอร์ Tensilica Xtensa Dual-Core 32-bit LX6 ทำงานที่ความถี่ 160 หรือ 240 MHz
  • หน่วยความจำ:
  • ROM: 448 KB (สำหรับการบูตและฟังก์ชั่นหลัก)
  • SRAM: 520 KB (สำหรับข้อมูลและคำแนะนำ)
  • RTC fas SRAM: 8 KB (สำหรับจัดเก็บข้อมูลและ CPU หลักระหว่างการบูต RTC จากโหมดพักลึก)
  • SRAM RTC ที่ช้า: 8KB (สำหรับการเข้าถึงโคโปรเซสเซอร์ระหว่างโหมดพักลึก) eFuse: 1 Kbit (ซึ่ง 256 บิตใช้สำหรับระบบ (ที่อยู่ MAC และการกำหนดค่าชิป) และ 768 บิตที่เหลือถูกสงวนไว้สำหรับแอปพลิเคชันของลูกค้า รวมถึงการเข้ารหัสแฟลชและ ID ชิป)

แฟลชฝัง: แฟลชเชื่อมต่อภายในผ่าน IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 และ SD_DATA_1 บน ESP32-D2WD และ ESP32-PICO-D4

  • 0 MiB (ชิป ESP32-D0WDQ6, ESP32-D0WD และ ESP32-S0WD)
  • 2 MiB (ชิป ESP32-D2WD)
  • 4 MiB (โมดูล ESP32-PICO-D4 SiP)

พลังงานต่ำ: ช่วยให้คุณยังคงใช้การแปลง ADC ได้ เช่นampเล ในระหว่างการนอนหลับลึก
อินพุต/เอาต์พุตอุปกรณ์ต่อพ่วง:

  • อินเทอร์เฟซต่อพ่วงพร้อม DMA ซึ่งรวมถึงการสัมผัสแบบ capacitive
  • ADC (ตัวแปลงอนาล็อกเป็นดิจิตอล)
  • DAC (ตัวแปลงสัญญาณดิจิตอลเป็นแอนะล็อก)
  • I²C (วงจรรวมระหว่างกัน)
  • UART (ตัวรับ/ตัวส่งสัญญาณแบบอะซิงโครนัสสากล)
  • SPI (อินเทอร์เฟซอุปกรณ์ต่อพ่วงแบบอนุกรม)
  • I²S (เสียงอินทิเกรตอินเตอร์ชิป)
  • RMII (อินเทอร์เฟซอิสระจากสื่อที่ลดลง)
  • PWM (การปรับความกว้างของพัลส์)

ความปลอดภัย: ตัวเร่งความเร็วฮาร์ดแวร์สำหรับ AES และ SSL/TLS

บอร์ดพัฒนา ESP32

ESP32 หมายถึงชิป ESP32 เปล่า อย่างไรก็ตาม คำว่า "ESP32" ยังใช้เพื่ออ้างถึงบอร์ดพัฒนา ESP32 อีกด้วย การใช้ชิปเปล่า ESP32 ไม่ใช่เรื่องง่ายหรือใช้งานได้จริง โดยเฉพาะอย่างยิ่งเมื่อต้องเรียนรู้ ทดสอบ และผลิตต้นแบบ ส่วนใหญ่แล้ว คุณจะต้องการใช้บอร์ดพัฒนา ESP32
เราจะใช้บอร์ด ESP32 DEVKIT V1 เป็นข้อมูลอ้างอิง รูปภาพด้านล่างแสดงบอร์ด ESP32 DEVKIT V1 เวอร์ชันที่มีพิน GPIO 30 พินชุดเริ่มต้นพื้นฐาน ESP32 ของ LAFVIN - บอร์ดพัฒนา ESP32ข้อมูลจำเพาะ – ESP32 DEVKIT V1
ตารางต่อไปนี้แสดงสรุปคุณลักษณะและข้อมูลจำเพาะของบอร์ด ESP32 DEVKIT V1 DOIT:

จำนวนแกน 2 (ดูอัลคอร์)
ไวไฟ 2.4 GHz สูงสุด 150 Mbits/s
บลูทูธ BLE (Bluetooth Low Energy) และ Bluetooth รุ่นเก่า
สถาปัตยกรรม 32 บิต
ความถี่สัญญาณนาฬิกา สูงสุดถึง 240 เมกะเฮิรตซ์
แรม 512 กิโลไบต์
หมุด 30(ขึ้นอยู่กับรุ่น)
อุปกรณ์ต่อพ่วง หน้าจอสัมผัสแบบ Capacitive, ADC (ตัวแปลงอนาล็อกเป็นดิจิตอล), DAC (ตัวแปลงดิจิตอลเป็นอนาล็อก), 12C (วงจรรวมแบบอินเตอร์), UART (ตัวรับ/ตัวส่งแบบอะซิงโครนัสสากล), CAN 2.0 (เครือข่ายพื้นที่ควบคุม), SPI (อินเทอร์เฟซอุปกรณ์ต่อพ่วงแบบอนุกรม), 12S (อินทิเกรตอินเตอร์ไอซี)
เสียง), RMII (อินเทอร์เฟซอิสระจากสื่อที่ลดลง), PWM (การปรับความกว้างของพัลส์) และอื่นๆ
ปุ่มในตัว ปุ่ม RESET และ BOOT
ไฟ LED ในตัว ไฟ LED สีน้ำเงินในตัวเชื่อมต่อกับ GPIO2 ไฟ LED สีแดงในตัวที่แสดงว่ามีไฟอยู่ในบอร์ด
USB เป็น UART
สะพาน
ซีพี2102

ชุดเริ่มต้นพื้นฐาน ESP32 ของ LAFVIN - ESP32 DEVKITมาพร้อมกับอินเทอร์เฟซ microUSB ที่คุณสามารถใช้เพื่อเชื่อมต่อบอร์ดกับคอมพิวเตอร์ของคุณเพื่ออัพโหลดโค้ดหรือจ่ายไฟ
ชิปนี้ใช้ชิป CP2102 (USB to UART) เพื่อสื่อสารกับคอมพิวเตอร์ของคุณผ่านพอร์ต COM โดยใช้อินเทอร์เฟซแบบอนุกรม ชิปยอดนิยมอีกตัวหนึ่งคือ CH340 ตรวจสอบว่าชิปแปลง USB เป็น UART บนบอร์ดของคุณคืออะไร เพราะคุณจะต้องติดตั้งไดรเวอร์ที่จำเป็นเพื่อให้คอมพิวเตอร์ของคุณสามารถสื่อสารกับบอร์ดได้ (ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ในคู่มือนี้)
บอร์ดนี้ยังมาพร้อมกับปุ่ม RESET (อาจติดป้ายว่า EN) เพื่อรีสตาร์ทบอร์ดและปุ่ม BOOT เพื่อนำบอร์ดเข้าสู่โหมดแฟลช (มีให้เพื่อรับรหัส) โปรดทราบว่าบอร์ดบางตัวอาจไม่มีปุ่ม BOOT
นอกจากนี้ยังมาพร้อมกับไฟ LED สีน้ำเงินในตัวที่เชื่อมต่อภายในกับ GPIO 2 ไฟ LED นี้มีประโยชน์ในการดีบักเพื่อให้ได้ผลลัพธ์ทางกายภาพที่มองเห็นได้ นอกจากนี้ยังมีไฟ LED สีแดงที่สว่างขึ้นเมื่อคุณจ่ายไฟให้กับบอร์ดชุดเริ่มต้นพื้นฐาน ESP32 ของ LAFVIN - บอร์ดพินเอาต์ ESP32
อุปกรณ์ต่อพ่วง ESP32 ประกอบด้วย:

  • ช่องแปลงอนาล็อกเป็นดิจิตอล (ADC) 18 ช่อง
  • อินเทอร์เฟซ SPI 3 ตัว
  • 3 UART อินเทอร์เฟซ
  • อินเทอร์เฟซ I2C 2 ตัว
  • ช่องเอาท์พุต PWM 16 ช่อง
  • ตัวแปลงดิจิตอลเป็นแอนะล็อก (DAC) 2 ตัว
  • อินเทอร์เฟซ I2S 2 ตัว
  • GPIO การตรวจจับแบบ Capacitive จำนวน 10 ตัว

ฟีเจอร์ ADC (ตัวแปลงแอนะล็อกเป็นดิจิทัล) และ DAC (ตัวแปลงดิจิทัลเป็นแอนะล็อก) ได้รับมอบหมายให้กับพินคงที่เฉพาะ อย่างไรก็ตาม คุณสามารถตัดสินใจได้ว่าพินใดเป็น UART, I2C, SPI, PWM เป็นต้น – คุณเพียงแค่ต้องกำหนดพินเหล่านี้ในโค้ด ซึ่งทำได้ด้วยฟีเจอร์มัลติเพล็กซ์ของชิป ESP32
แม้ว่าคุณจะสามารถกำหนดคุณสมบัติของพินบนซอฟต์แวร์ได้ แต่ก็มีพินที่ได้รับการกำหนดไว้ตามค่าเริ่มต้นดังที่แสดงในรูปต่อไปนี้ชุดเริ่มต้นพื้นฐาน ESP32 ของ LAFVIN - พินเอาต์ ESP32นอกจากนี้ ยังมีพินที่มีคุณสมบัติเฉพาะที่ทำให้พินเหล่านี้เหมาะสมหรือไม่เหมาะกับโครงการใดโครงการหนึ่ง ตารางต่อไปนี้แสดงพินที่เหมาะที่สุดสำหรับใช้เป็นอินพุตและเอาต์พุต และพินใดที่คุณจำเป็นต้องระมัดระวัง
พินที่เน้นเป็นสีเขียวสามารถใช้งานได้ พินที่เน้นเป็นสีเหลืองสามารถใช้งานได้ แต่คุณต้องใส่ใจเพราะพินเหล่านี้อาจทำงานผิดปกติโดยเฉพาะอย่างยิ่งเมื่อบูตเครื่อง ไม่แนะนำให้ใช้พินที่เน้นเป็นสีแดงเป็นอินพุตหรือเอาต์พุต

จีพี ไอโอ ป้อนข้อมูล เอาท์พุต หมายเหตุ
0 ดึงขึ้นมา OK ส่งสัญญาณ PWM ขณะบู๊ต ต้องเป็นระดับต่ำเพื่อเข้าสู่โหมดกระพริบ
1 พิน TX OK ดีบักเอาท์พุตตอนบูต
2 OK OK เชื่อมต่อกับ LED บนบอร์ด จะต้องปล่อยให้ลอยหรือ LOW เพื่อเข้าสู่โหมดกระพริบ
3 OK พิน RX สูงที่บูต
4 OK OK
5 OK OK ส่งสัญญาณ PWM ที่ขายึดบูต
12 OK OK บูตล้มเหลวหากดึงสูง หมุดรัด
13 OK OK
14 OK OK ส่งสัญญาณ PWM ขณะบูต
15 OK OK ส่งสัญญาณ PWM ที่ขายึดบูต
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK อินพุตเท่านั้น
35 OK อินพุตเท่านั้น
36 OK อินพุตเท่านั้น
39 OK อินพุตเท่านั้น

อ่านต่อเพื่อดูรายละเอียดและการวิเคราะห์แบบเจาะลึกเพิ่มเติมเกี่ยวกับ ESP32 GPIO และฟังก์ชันต่างๆ ของมัน
อินพุตเฉพาะพิน
GPIO 34 ถึง 39 เป็น GPI – พินอินพุตเท่านั้น พินเหล่านี้ไม่มีตัวต้านทานแบบดึงขึ้นหรือดึงลงภายใน ไม่สามารถใช้พินเหล่านี้เป็นเอาต์พุตได้ ดังนั้นให้ใช้พินเหล่านี้เป็นอินพุตเท่านั้น:

  • GPIO34
  • GPIO35
  • GPIO36
  • GPIO39

SPI flash รวมอยู่ใน ESP-WROOM-32
GPIO 6 ถึง GPIO 11 จะปรากฏในบอร์ดพัฒนา ESP32 บางบอร์ด อย่างไรก็ตาม พินเหล่านี้เชื่อมต่อกับแฟลช SPI ในตัวบนชิป ESP-WROOM-32 และไม่แนะนำให้ใช้ในวัตถุประสงค์อื่น ดังนั้น อย่าใช้พินเหล่านี้ในโครงการของคุณ:

  • GPIO 6 (SCK/CLK)
  • GPIO7 (SDO/SD0) อินเทอร์เฟซผู้ใช้
  • จีพีโอ8 (SDI/SD1)
  • GPIO9 (SHD/SD2) อินเทอร์เฟซ
  • GPIO10 (SWP/SD3) อินเตอร์เฟซ
  • GPIO 11 (CSC/CMD)

GPIO แบบสัมผัสแบบ Capacitive
ESP32 มีเซ็นเซอร์สัมผัสแบบ capacitive ภายใน 10 ตัว เซ็นเซอร์เหล่านี้สามารถตรวจจับการเปลี่ยนแปลงในสิ่งของที่มีประจุไฟฟ้า เช่น ผิวหนังของมนุษย์ ดังนั้น จึงสามารถตรวจจับการเปลี่ยนแปลงที่เกิดจากการสัมผัสกับ GPIO ด้วยนิ้วได้ พินเหล่านี้สามารถรวมเข้ากับแผง capacitive ได้อย่างง่ายดายและแทนที่ปุ่มกลไกได้ พินสัมผัสแบบ capacitive ยังสามารถใช้เพื่อปลุก ESP32 จากโหมดพักลึกได้อีกด้วย เซ็นเซอร์สัมผัสภายในเหล่านี้เชื่อมต่อกับ GPIO เหล่านี้:

  • T0 (จีพีโอ 4)
  • T1 (จีพีโอ 0)
  • T2 (จีพีโอ 2)
  • T3 (จีพีโอ 15)
  • T4 (จีพีโอ 13)
  • T5 (จีพีโอ 12)
  • T6 (จีพีโอ 14)
  • T7 (จีพีโอ 27)
  • T8 (จีพีโอ 33)
  • T9 (จีพีโอ 32)

ตัวแปลงอนาล็อกเป็นดิจิตอล (ADC)
ESP32 มีช่องอินพุต ADC 18 x 12 บิต (ในขณะที่ ESP8266 มีเพียง 1 x 10 บิต ADC) เหล่านี้คือ GPIO ที่สามารถใช้เป็น ADC และช่องที่เกี่ยวข้อง:

  • ADC1_CH0 (จีพีโอ 36)
  • ADC1_CH1 (จีพีโอ 37)
  • ADC1_CH2 (จีพีโอ 38)
  • ADC1_CH3 (จีพีโอ 39)
  • ADC1_CH4 (จีพีโอ 32)
  • ADC1_CH5 (จีพีโอ 33)
  • ADC1_CH6 (จีพีโอ 34)
  • ADC1_CH7 (จีพีโอ 35)
  • ADC2_CH0 (จีพีโอ 4)
  • ADC2_CH1 (จีพีโอ 0)
  • ADC2_CH2 (จีพีโอ 2)
  • ADC2_CH3 (จีพีโอ 15)
  • ADC2_CH4 (จีพีโอ 13)
  • ADC2_CH5 (จีพีโอ 12)
  • ADC2_CH6 (จีพีโอ 14)
  • ADC2_CH7 (จีพีโอ 27)
  • ADC2_CH8 (จีพีโอ 25)
  • ADC2_CH9 (จีพีโอ 26)

บันทึก: ไม่สามารถใช้พิน ADC2 ได้เมื่อใช้ Wi-Fi ดังนั้นหากคุณใช้ Wi-Fi และประสบปัญหาในการรับค่าจาก GPIO ของ ADC2 คุณอาจลองใช้ GPIO ของ ADC1 แทน ซึ่งน่าจะช่วยแก้ปัญหาของคุณได้
ช่องอินพุต ADC มีความละเอียด 12 บิต ซึ่งหมายความว่าคุณสามารถรับค่าการอ่านแอนะล็อกได้ตั้งแต่ 0 ถึง 4095 โดยที่ 0 เท่ากับ 0V และ 4095 เท่ากับ 3.3V นอกจากนี้ คุณยังสามารถตั้งค่าความละเอียดของช่องสัญญาณในโค้ดและช่วง ADC ได้อีกด้วย
พิน ESP32 ADC ไม่มีพฤติกรรมเชิงเส้น คุณอาจไม่สามารถแยกแยะระหว่าง 0 และ 0.1V หรือระหว่าง 3.2 และ 3.3V ได้ คุณต้องคำนึงถึงสิ่งนี้เมื่อใช้พิน ADC คุณจะได้รับพฤติกรรมที่คล้ายกับที่แสดงในรูปต่อไปนี้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - พฤติกรรมตัวแปลงดิจิตอลเป็นแอนะล็อก (DAC)
ESP2 มีช่อง DAC 8 x 32 บิตเพื่อแปลงสัญญาณดิจิทัลเป็นสัญญาณอนาล็อกtagสัญญาณเอาท์พุต เหล่านี้คือช่อง DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

GPIO ของ RTC
ESP32 รองรับ RTC GPIO GPIO ที่ส่งไปยังระบบย่อยพลังงานต่ำ RTC สามารถใช้งานได้เมื่อ ESP32 อยู่ในโหมดพักลึก GPIO RTC เหล่านี้สามารถใช้เพื่อปลุก ESP32 จากโหมดพักลึกเมื่อโหมดพักต่ำพิเศษ
โคโปรเซสเซอร์พลังงาน (ULP) กำลังทำงาน GPIO ต่อไปนี้สามารถใช้เป็นแหล่งปลุกระบบภายนอกได้

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

พีดับบลิวเอ็ม
ตัวควบคุม ESP32 LED PWM มีช่องสัญญาณอิสระ 16 ช่องที่สามารถกำหนดค่าให้สร้างสัญญาณ PWM ที่มีคุณสมบัติต่างกันได้ พินทั้งหมดที่สามารถทำหน้าที่เป็นเอาต์พุตสามารถใช้เป็นพิน PWM ได้ (GPIO 34 ถึง 39 ไม่สามารถสร้าง PWM ได้)
ในการตั้งค่าสัญญาณ PWM คุณจำเป็นต้องกำหนดพารามิเตอร์เหล่านี้ในโค้ด:

  • ความถี่ของสัญญาณ;
  • รอบการทำงาน;
  • ช่องสัญญาณ PWM;
  • GPIO ที่คุณต้องการส่งสัญญาณออก

ไอทูซี
ESP32 มีช่อง I2C สองช่อง และสามารถตั้งค่าพินใดๆ ให้เป็น SDA หรือ SCL ได้ เมื่อใช้ ESP32 กับ Arduino IDE พิน I2C เริ่มต้นจะเป็นดังนี้:

  • จีพีไอโอ 21 (SDA)
  • จีพีไอโอ 22 (SCL)

หากต้องการใช้พินอื่นเมื่อใช้ไลบรารีสาย คุณเพียงแค่โทร:
Wire.begin(SDA, SCL);
เอสพีไอ
โดยค่าเริ่มต้นการแมปพินสำหรับ SPI คือ:

เอสพีไอ MOSI มิโซะ ซีแอลเค CS
วีเอสพีไอ GPIO23 GPIO19 GPIO18 GPIO5
เอชเอสพีไอ GPIO13 GPIO12 GPIO14 GPIO15

ขัดจังหวะ
GPIO ทั้งหมดสามารถกำหนดค่าให้เป็นการขัดจังหวะได้
หมุดรัด
ชิป ESP32 มีพินรัดดังต่อไปนี้:

  • GPIO 0 (ต้องเป็น LOW เพื่อเข้าสู่โหมดบูต)
  • GPIO 2 (ต้องลอยหรือต่ำในระหว่างการบูต)
  • GPIO4
  • GPIO 5 (ต้องเป็น HIGH ในระหว่างการบูต)
  • GPIO 12 (ต้องเป็นระดับต่ำในระหว่างการบูต)
  • GPIO 15 (ต้องเป็น HIGH ในระหว่างการบูต)

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

  • GPIO1
  • GPIO3
  • GPIO5
  • GPIO 6 ถึง GPIO 11 (เชื่อมต่อกับหน่วยความจำแฟลช SPI แบบบูรณาการ ESP32 – ไม่แนะนำให้ใช้)
  • GPIO14
  • GPIO15

เปิดใช้งาน (EN)
พินเปิดใช้งาน (EN) คือพินเปิดใช้งานของตัวควบคุมแรงดันไฟ 3.3V พินนี้ถูกดึงขึ้น ดังนั้นให้เชื่อมต่อกับกราวด์เพื่อปิดการใช้งานตัวควบคุมแรงดันไฟ 3.3V ซึ่งหมายความว่าคุณสามารถใช้พินนี้ที่เชื่อมต่อกับปุ่มกดเพื่อรีสตาร์ท ESP32 ของคุณได้ เช่นampเล.
กระแส GPIO ที่ดึง
กระแสสูงสุดที่แน่นอนที่ถูกดึงต่อ GPIO คือ 40mA ตามส่วน “เงื่อนไขการทำงานที่แนะนำ” ในแผ่นข้อมูล ESP32
เซ็นเซอร์เอฟเฟกต์ฮอลล์ในตัว ESP32
ESP32 ยังมีเซ็นเซอร์เอฟเฟกต์ฮอลล์ในตัวที่ตรวจจับการเปลี่ยนแปลงของสนามแม่เหล็กในบริเวณโดยรอบ
บอร์ด Arduino IDE รุ่น ESP32
มีโปรแกรมเสริมสำหรับ Arduino IDE ที่ช่วยให้คุณเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE และภาษาการเขียนโปรแกรม ในบทช่วยสอนนี้ เราจะแสดงวิธีการติดตั้งบอร์ด ESP32 ใน Arduino IDE ไม่ว่าคุณจะใช้ Windows, Mac OS X หรือ Linux
ข้อกำหนดเบื้องต้น: ติดตั้ง Arduino IDE แล้ว
ก่อนเริ่มขั้นตอนการติดตั้งนี้ คุณต้องติดตั้ง Arduino IDE บนคอมพิวเตอร์ของคุณก่อน Arduino IDE มีสองเวอร์ชันที่คุณสามารถติดตั้งได้ ได้แก่ เวอร์ชัน 1 และเวอร์ชัน 2
คุณสามารถดาวน์โหลดและติดตั้ง Arduino IDE ได้โดยคลิกลิงก์ต่อไปนี้: arduino.cc/en/หลัก/ซอฟต์แวร์
เราแนะนำ Arduino IDE เวอร์ชันใด ในขณะนี้มีบางเวอร์ชัน plugins สำหรับ ESP32 (เช่น SPIFFS Fileปลั๊กอินอัพโหลดระบบ) ที่ยังไม่รองรับบน Arduino 2 ดังนั้น หากคุณต้องการใช้ปลั๊กอิน SPIFFS ในอนาคต เราขอแนะนำให้ติดตั้งเวอร์ชันเก่า 1.8.X คุณเพียงแค่เลื่อนลงในหน้าซอฟต์แวร์ Arduino เพื่อค้นหา
การติดตั้ง ESP32 Add-on ใน Arduino IDE
หากต้องการติดตั้งบอร์ด ESP32 ใน Arduino IDE ของคุณ ให้ทำตามคำแนะนำต่อไปนี้:

  1. ใน Arduino IDE ของคุณ ไปที่ File> การตั้งค่าชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การตั้งค่า
  2. กรอกรายละเอียดต่อไปนี้ลงใน “ผู้จัดการคณะกรรมการเพิ่มเติม URLฟิลด์ s:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
จากนั้นคลิกปุ่ม “ตกลง”:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ปุ่ม "ตกลง"บันทึก: หากคุณมีบอร์ด ESP8266 แล้ว URL, คุณสามารถแยก URLs มีเครื่องหมายจุลภาคดังนี้:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
เปิดตัวจัดการบอร์ด ไปที่เครื่องมือ > บอร์ด > ตัวจัดการบอร์ด...ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Espressifค้นหา ESP32 และกดปุ่มติดตั้งสำหรับ “ESP32 โดย Espressif Systems“:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Espressifเท่านี้ก็ติดตั้งได้ภายในไม่กี่วินาทีชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ติดตั้งแล้ว

อัพโหลดโค้ดทดสอบ

เสียบบอร์ด ESP32 เข้ากับคอมพิวเตอร์ของคุณ เปิด Arduino IDE ของคุณ แล้วทำตามขั้นตอนเหล่านี้:

  1. เลือกบอร์ดของคุณในเครื่องมือ > เมนูบอร์ด (ในกรณีของฉันคือโมดูล ESP32 DEV)ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - เครื่องมือบอร์ด
  2. เลือกพอร์ต (หากคุณไม่เห็นพอร์ต COM ใน Arduino IDE ของคุณ คุณจำเป็นต้องติดตั้งไดรเวอร์ CP210x USB to UART Bridge VCP):ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - สะพาน UART
  3. เปิดตัวอย่างต่อไปนี้ampเลออันเดอร์ File > อดีตampเลส > ไวไฟ
    (ESP32) > การสแกน WiFiชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - WiFiScanชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - WiFiScan 1
  4. สเก็ตช์ใหม่จะเปิดขึ้นใน Arduino IDE ของคุณ:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Arduino IDE
  5. กดปุ่มอัปโหลดใน Arduino IDE รอสักครู่ขณะที่โค้ดกำลังคอมไพล์และอัปโหลดไปยังบอร์ดของคุณชุดเริ่มต้นพื้นฐาน ESP32 ของ LAFVIN - บอร์ด
  6. หากทุกอย่างเป็นไปตามที่คาดหวัง คุณควรเห็นข้อความ “อัปโหลดเสร็จสิ้น”LAFVIN ESP32 Basic Starter Kit - อัปโหลดเสร็จสิ้นแล้ว
  7. เปิด Arduino IDE Serial Monitor ที่อัตราบอดเรท 115200:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จอภาพ
  8. กดปุ่มเปิดใช้งานออนบอร์ด ESP32 แล้วคุณควรจะเห็นเครือข่ายที่พร้อมใช้งานใกล้กับ ESP32 ของคุณ:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ปุ่มเปิดใช้งาน

การแก้ไขปัญหา

หากคุณพยายามอัปโหลดสเก็ตช์ใหม่ไปยัง ESP32 ของคุณ และคุณได้รับข้อความแสดงข้อผิดพลาดนี้ “เกิดข้อผิดพลาดร้ายแรง: ไม่สามารถเชื่อมต่อกับ ESP32 ได้: หมดเวลา... กำลังเชื่อมต่อ...“ หมายความว่า ESP32 ของคุณไม่ได้อยู่ในโหมดแฟลช/อัปโหลด
เมื่อเลือกชื่อบอร์ดและ COM ที่ถูกต้องแล้ว ให้ทำตามขั้นตอนเหล่านี้:
กดปุ่ม “BOOT” บนบอร์ด ESP32 ของคุณค้างไว้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - “BOOT”

  • กดปุ่ม “อัปโหลด” ใน Arduino IDE เพื่ออัปโหลดสเก็ตช์ของคุณ:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ICON 6
  • หลังจากที่คุณเห็นข้อความ “กำลังเชื่อมต่อ…” ใน Arduino IDE ให้ปล่อยนิ้วออกจากปุ่ม “BOOT”:LAFVIN ESP32 Basic Starter Kit - “อัปโหลดเสร็จแล้ว
  • หลังจากนั้นคุณควรเห็นข้อความ “อัปโหลดเสร็จสิ้น”
    เท่านี้ ESP32 ของคุณควรรันสเก็ตช์ใหม่ได้แล้ว กดปุ่ม “เปิดใช้งาน” เพื่อรีสตาร์ท ESP32 และรันสเก็ตช์ที่อัปโหลดใหม่
    คุณจะต้องทำซ้ำลำดับปุ่มนี้ทุกครั้งที่คุณต้องการอัปโหลดภาพร่างใหม่

โครงการ 1 ESP32 อินพุตเอาต์พุต

ในคู่มือการเริ่มต้นนี้ คุณจะได้เรียนรู้วิธีอ่านอินพุตดิจิทัล เช่น สวิตช์ปุ่ม และควบคุมเอาต์พุตดิจิทัล เช่น LED โดยใช้ ESP32 ร่วมกับ Arduino IDE
ข้อกำหนดเบื้องต้น
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริมของบอร์ด ESP32 ก่อนดำเนินการต่อ:

  • การติดตั้ง ESP32 Add-on ใน Arduino IDE

ESP32 ควบคุมเอาท์พุตดิจิตอล
ขั้นแรก คุณต้องตั้งค่า GPIO ที่ต้องการควบคุมเป็นเอาต์พุต ใช้ฟังก์ชัน pinMode() ดังต่อไปนี้:
pinMode(GPIO, OUTPUT);
หากต้องการควบคุมเอาต์พุตดิจิทัล คุณเพียงแค่ใช้ฟังก์ชัน digitalWrite() ซึ่งยอมรับ GPIO (ตัวเลข int) ที่คุณอ้างถึง และสถานะ HIGH หรือ LOW เป็นอาร์กิวเมนต์
digitalWrite(GPIO, สถานะ);
GPIO ทั้งหมดสามารถใช้เป็นเอาท์พุตได้ ยกเว้น GPIO 6 ถึง 11 (เชื่อมต่อกับแฟลช SPI ในตัว) และ GPIO 34, 35, 36 และ 39 (อินพุต GPIO เท่านั้น)
เรียนรู้เพิ่มเติมเกี่ยวกับ ESP32 GPIO: คู่มืออ้างอิง ESP32 GPIO
ESP32 อ่านอินพุตดิจิทัล
ขั้นแรก ให้ตั้งค่า GPIO ที่คุณต้องการอ่านเป็น INPUT โดยใช้ฟังก์ชัน pinMode() ดังต่อไปนี้:
pinMode(GPIO, INPUT);
หากต้องการอ่านอินพุตดิจิทัล เช่น ปุ่ม คุณจะใช้ฟังก์ชัน digitalRead() ซึ่งยอมรับ GPIO (ตัวเลข int) ที่คุณอ้างถึงเป็นอาร์กิวเมนต์
การอ่านแบบดิจิตอล(GPIO)
สามารถใช้ GPIO ของ ESP32 ทั้งหมดเป็นอินพุตได้ ยกเว้น GPIO 6 ถึง 11 (เชื่อมต่อกับแฟลช SPI แบบบูรณาการ)
เรียนรู้เพิ่มเติมเกี่ยวกับ ESP32 GPIO: คู่มืออ้างอิง ESP32 GPIO
โครงการอดีตample
เพื่อแสดงวิธีใช้ข้อมูลอินพุตและเอาต์พุตดิจิทัล เราจะสร้างโปรเจ็กต์ง่ายๆ เช่นampด้วยปุ่มกดและหลอด LED เราจะอ่านสถานะของปุ่มกดและเปิดหลอด LED ตามลำดับตามที่แสดงในรูปภาพต่อไปนี้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - โครงการ Example

ชิ้นส่วนที่ต้องใช้
นี่คือรายการชิ้นส่วนที่คุณต้องใช้เพื่อสร้างวงจร:

  • ชุดพัฒนา ESP32 รุ่น V1
  • แอลอีดี 5 มม
  • ตัวต้านทาน 220 โอห์ม
  • ปุ่มกด
  • ตัวต้านทาน 10k โอห์ม
  • แผงวงจร
  • สายจั๊มเปอร์

แผนผัง
ก่อนจะดำเนินการต่อ คุณต้องประกอบวงจรด้วย LED และปุ่มกด
เราจะเชื่อมต่อ LED เข้ากับ GPIO 5 และปุ่มกดเข้ากับ GPIO 4.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผังรหัส
เปิดโค้ด Project_1_ESP32_Inputs_Outputs.ino ใน Arduino IDEชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัสชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 1โค้ดทำงานอย่างไร
ในสองบรรทัดถัดไป คุณสร้างตัวแปรเพื่อกำหนดพิน:

ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Code Worksปุ่มเชื่อมต่อกับ GPIO 4 และ LED เชื่อมต่อกับ GPIO 5 เมื่อใช้ Arduino IDE กับ ESP32 4 จะสอดคล้องกับ GPIO 4 และ 5 จะสอดคล้องกับ GPIO 5
จากนั้นคุณสร้างตัวแปรเพื่อเก็บสถานะของปุ่ม โดยค่าเริ่มต้นจะเป็น 0 (ไม่ใช่เมื่อกดปุ่ม)
int buttonState = 0;
ในการตั้งค่า () คุณเริ่มต้นปุ่มเป็นอินพุต และ LED เป็นเอาต์พุต
เพื่อให้บรรลุเป้าหมายนี้ คุณใช้ฟังก์ชัน pinMode() ที่ยอมรับพินที่คุณอ้างถึง และโหมด: INPUT หรือ OUTPUT
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
ใน loop() คือที่ที่คุณอ่านสถานะของปุ่มและตั้งค่า LED ให้เหมาะสม
ในบรรทัดถัดไป คุณอ่านสถานะปุ่มและบันทึกในตัวแปร buttonState
อย่างที่เราได้เห็นก่อนหน้านี้ คุณใช้ฟังก์ชัน digitalRead()
buttonState = digitalRead(ปุ่มPin);
คำสั่ง if ต่อไปนี้จะตรวจสอบว่าปุ่มมีสถานะเป็น HIGH หรือไม่ หากเป็นเช่นนั้น คำสั่งจะเปิด LED โดยใช้ฟังก์ชัน digitalWrite() ที่ยอมรับ ledPin เป็นอาร์กิวเมนต์ และสถานะ HIGH
ถ้า (buttonState == HIGH)ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Code Works 1หากปุ่มอยู่ในสถานะไม่สูง ให้ตั้งค่า LED ให้ปิด เพียงตั้งค่า LOW เป็นอาร์กิวเมนต์ที่สองในฟังก์ชัน digitalWrite()ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - digitalWriteการอัปโหลดรหัส
ก่อนที่จะคลิกปุ่มอัปโหลด ไปที่เครื่องมือ > บอร์ด และเลือกบอร์ด: บอร์ด DOIT ESP32 DEVKIT V1
ไปที่เครื่องมือ > พอร์ต และเลือกพอร์ต COM ที่ ESP32 เชื่อมต่ออยู่ จากนั้นกดปุ่มอัปโหลดและรอจนกว่าข้อความ "อัปโหลดเสร็จเรียบร้อยแล้ว" จะปรากฎขึ้นชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ICON 7หมายเหตุ: หากคุณเห็นจุดจำนวนมาก (กำลังเชื่อมต่อ…__…__) บนหน้าต่างการดีบักและข้อความ “ไม่สามารถเชื่อมต่อกับ ESP32 ได้: หมดเวลาในการรอส่วนหัวของแพ็กเก็ต” นั่นหมายความว่าคุณต้องกดปุ่ม BOOT บนบอร์ด ESP32 หลังจากจุดเหล่านี้
เริ่มปรากฏการแก้ไขปัญหา

สาธิต

หลังจากอัปโหลดโค้ดแล้ว ให้ทดสอบวงจรของคุณ ไฟ LED ควรจะสว่างขึ้นเมื่อคุณกดปุ่ม:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การสาธิตและปิดเมื่อคุณปล่อยมัน:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การเปิดตัว

โครงการ 2 อินพุตอะนาล็อก ESP32

โปรเจ็กต์นี้แสดงวิธีการอ่านอินพุตแอนะล็อกด้วย ESP32 โดยใช้ Arduino IDE
การอ่านค่าอะนาล็อกมีประโยชน์ในการอ่านค่าจากตัวต้านทานแบบแปรผัน เช่น โพเทนชิออมิเตอร์หรือเซนเซอร์อะนาล็อก
อินพุตอะนาล็อก (ADC)
การอ่านค่าแอนะล็อกด้วย ESP32 หมายความว่าคุณสามารถวัดปริมาณที่แตกต่างกันได้tagระดับ e ระหว่าง 0 V และ 3.3 V
ฉบับที่tagจากนั้นค่าที่วัดได้จะถูกกำหนดเป็นค่าระหว่าง 0 ถึง 4095 โดยที่ 0 V สอดคล้องกับ 0 และ 3.3 V สอดคล้องกับ 4095 ปริมาตรใดๆtage ระหว่าง 0 V และ 3.3 V จะได้รับค่าที่สอดคล้องกันระหว่างนั้นชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - อินพุตอนาล็อกADC ไม่เป็นเชิงเส้น
ในทางอุดมคติ คุณคาดหวังพฤติกรรมเชิงเส้นเมื่อใช้พิน ESP32 ADC
อย่างไรก็ตาม สิ่งนั้นจะไม่เกิดขึ้น สิ่งที่คุณจะได้รับคือพฤติกรรมดังที่แสดงไว้ในแผนภูมิต่อไปนี้:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แบบไม่เชิงเส้นพฤติกรรมนี้หมายความว่า ESP32 ของคุณไม่สามารถแยกความแตกต่างระหว่าง 3.3 V จาก 3.2 V ได้
คุณจะได้รับค่าเดียวกันสำหรับทั้งสองเล่มtagเอส: 4095.
สิ่งเดียวกันนี้เกิดขึ้นกับปริมาณเสียงที่ต่ำมากtagค่า e: สำหรับ 0 V และ 0.1 V คุณจะได้ค่าเดียวกันคือ 0 คุณต้องคำนึงถึงสิ่งนี้เมื่อใช้พิน ESP32 ADC
ฟังก์ชัน analogRead()
การอ่านอินพุตแอนะล็อกด้วย ESP32 โดยใช้ Arduino IDE นั้นง่ายพอๆ กับการใช้ฟังก์ชัน analogRead() โดยจะยอมรับ GPIO ที่คุณต้องการอ่านเป็นอาร์กิวเมนต์:
analogRead(GPIO)
มีเพียง 15 รายการในบอร์ด DEVKIT V1 (เวอร์ชันที่มี 30 GPIO)
หยิบพินเอาต์บอร์ด ESP32 ของคุณขึ้นมาและค้นหาพิน ADC พินเหล่านี้จะถูกเน้นด้วยขอบสีแดงในภาพด้านล่างชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ขอบพินอินพุตแอนะล็อกเหล่านี้มีความละเอียด 12 บิต ซึ่งหมายความว่าเมื่อคุณอ่านอินพุตแอนะล็อก ช่วงของพินอาจแตกต่างกันไปตั้งแต่ 0 ถึง 4095
หมายเหตุ: ไม่สามารถใช้พิน ADC2 ได้เมื่อใช้ Wi-Fi ดังนั้น หากคุณกำลังใช้ Wi-Fi และประสบปัญหาในการรับค่าจาก GPIO ของ ADC2 คุณอาจลองใช้ GPIO ของ ADC1 แทน ซึ่งน่าจะช่วยแก้ปัญหาของคุณได้
เพื่อดูว่าทุกอย่างเชื่อมโยงกันอย่างไร เราจะสร้างตัวอย่างง่ายๆampเพื่ออ่านค่าอะนาล็อกจากโพเทนชิออมิเตอร์
ชิ้นส่วนที่ต้องใช้
สำหรับอดีตนี้ampคุณต้องการชิ้นส่วนต่อไปนี้:

  • บอร์ด ESP32 DEVKIT V1
  • ทรานดิวเซอร์วัดตําแหน่งเชิงเส้น
  • แผงวงจร
  • สายจั๊มเปอร์

แผนผัง
เชื่อมต่อโพเทนชิออมิเตอร์กับ ESP32 ของคุณ พินตรงกลางของโพเทนชิออมิเตอร์ควรเชื่อมต่อกับ GPIO 4 คุณสามารถใช้แผนผังต่อไปนี้เป็นข้อมูลอ้างอิงได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผังรหัส
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริม ESP32 แล้วก่อนที่จะดำเนินการต่อ: (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปที่ขั้นตอนถัดไปได้)
การติดตั้ง ESP32 Add-on ใน Arduino IDE
เปิดโค้ด Project_2_ESP32_Inputs_Outputs.ino ใน Arduino IDEชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 2โค้ดนี้เพียงแค่จะอ่านค่าจากโพเทนชิออมิเตอร์และพิมพ์ค่าเหล่านั้นลงใน Serial Monitor
ในโค้ด คุณเริ่มต้นด้วยการกำหนด GPIO ที่โพเทนชิออมิเตอร์เชื่อมต่ออยู่ ในกรณีนี้ampเล, GPIO 4.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - exampleในการตั้งค่า () ให้เริ่มต้นการสื่อสารแบบอนุกรมที่อัตราบอดเรท 115200ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - exampเล 1ใน loop() ให้ใช้ฟังก์ชัน analogRead() เพื่ออ่านอินพุตอะนาล็อกจาก potPinชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - exampเล 2สุดท้ายให้พิมพ์ค่าที่อ่านจากโพเทนชิออมิเตอร์ในมอนิเตอร์แบบอนุกรมชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - exampเล 3อัปโหลดโค้ดที่ให้มาลงใน ESP32 ของคุณ ตรวจสอบให้แน่ใจว่าคุณได้เลือกบอร์ดและพอร์ต COM ที่ถูกต้องในเมนูเครื่องมือ
ทดสอบอดีตample
หลังจากอัปโหลดโค้ดและกดปุ่มรีเซ็ต ESP32 แล้ว ให้เปิด Serial Monitor ที่อัตราบอดเรท 115200 หมุนโพเทนชิออมิเตอร์และดูค่าที่เปลี่ยนแปลงค่าสูงสุดที่คุณจะได้รับคือ 4095 และค่าต่ำสุดคือ 0LAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - มูลค่าสูงสุด

การห่อหุ้ม

ในบทความนี้ คุณจะได้เรียนรู้วิธีอ่านอินพุตแอนะล็อกโดยใช้ ESP32 กับ Arduino IDE โดยสรุป:

  • บอร์ด ESP32 DEVKIT V1 DOIT (เวอร์ชัน 30 พิน) มีพิน ADC 15 พินที่คุณใช้อ่านอินพุตแอนะล็อกได้
  • พินเหล่านี้มีความละเอียด 12 บิต ซึ่งหมายความว่าคุณสามารถรับค่าตั้งแต่ 0 ถึง 4095 ได้
  • หากต้องการอ่านค่าใน Arduino IDE คุณเพียงใช้ฟังก์ชัน analogRead()
  • พิน ESP32 ADC ไม่มีพฤติกรรมเชิงเส้น คุณอาจไม่สามารถแยกแยะระหว่าง 0 และ 0.1V หรือระหว่าง 3.2 และ 3.3V ได้ คุณต้องคำนึงถึงสิ่งนี้เมื่อใช้พิน ADC

โครงการ 3 ESP32 PWM (เอาต์พุตอะนาล็อก)

ในบทช่วยสอนนี้ เราจะแสดงวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE ตัวอย่างเช่นampเราจะสร้างวงจรง่ายๆ ที่หรี่แสง LED โดยใช้ตัวควบคุม LED PWM ของ ESP32ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - เอาต์พุตอะนาล็อกตัวควบคุม LED PWM ของ ESP32
ESP32 มีตัวควบคุม LED PWM พร้อมช่องอิสระ 16 ช่อง ที่สามารถกำหนดค่าให้สร้างสัญญาณ PWM ที่มีคุณสมบัติแตกต่างกันได้
นี่คือขั้นตอนที่คุณต้องปฏิบัติตามเพื่อหรี่แสง LED ด้วย PWM โดยใช้ Arduino IDE:

  1. ขั้นแรก คุณต้องเลือกช่องสัญญาณ PWM ซึ่งมีทั้งหมด 16 ช่องสัญญาณตั้งแต่ 0 ถึง 15
  2. จากนั้นคุณต้องตั้งค่าความถี่สัญญาณ PWM สำหรับ LED ความถี่ 5000 Hz ถือว่าใช้ได้
  3. คุณต้องตั้งค่าความละเอียดของรอบหน้าที่ของสัญญาณด้วย โดยความละเอียดมีตั้งแต่ 1 ถึง 16 บิต เราจะใช้ความละเอียด 8 บิต ซึ่งหมายความว่าคุณสามารถควบคุมความสว่างของ LED ได้โดยใช้ค่าตั้งแต่ 0 ถึง 255
  4.  ขั้นต่อไป คุณต้องระบุว่าสัญญาณจะปรากฏบน GPIO หรือ GPIO ใด โดยให้ใช้ฟังก์ชันต่อไปนี้:
    ledcAttachPin(GPIO, ช่องสัญญาณ)
    ฟังก์ชันนี้รับอาร์กิวเมนต์ 2 ตัว อาร์กิวเมนต์ตัวแรกคือ GPIO ที่จะส่งสัญญาณ และตัวที่สองคือช่องสัญญาณที่จะสร้างสัญญาณ
  5. สุดท้ายนี้ หากต้องการควบคุมความสว่างของ LED โดยใช้ PWM ให้ใช้ฟังก์ชันต่อไปนี้:

ledcWrite(ช่องทาง, รอบการทำงาน)
ฟังก์ชันนี้ยอมรับช่องสัญญาณที่สร้างสัญญาณ PWM และรอบหน้าที่เป็นอาร์กิวเมนต์
ชิ้นส่วนที่ต้องใช้
หากต้องการทำตามบทช่วยสอนนี้ คุณต้องมีชิ้นส่วนเหล่านี้:

  • บอร์ด ESP32 DEVKIT V1
  • LED 5M
  • ตัวต้านทาน 220 โอห์ม
  •  แผงวงจร
  • สายจั๊มเปอร์

แผนผัง
เชื่อมต่อ LED เข้ากับ ESP32 ของคุณตามแผนผังต่อไปนี้ LED ควรเชื่อมต่อกับ GPIO 4.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผังบันทึก: คุณสามารถใช้พินใดก็ได้ตามต้องการ ตราบใดที่พินนั้นสามารถทำหน้าที่เป็นเอาต์พุตได้ พินทั้งหมดที่สามารถทำหน้าที่เป็นเอาต์พุตได้นั้นสามารถใช้เป็นพิน PWM ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ GPIO ของ ESP32 โปรดอ่าน: การอ้างอิงพินของ ESP32: พิน GPIO ใดที่คุณควรใช้งาน?
รหัส
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริม ESP32 แล้วก่อนที่จะดำเนินการต่อ: (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปที่ขั้นตอนถัดไปได้)
การติดตั้ง ESP32 Add-on ใน Arduino IDE
เปิดโค้ด Project_3_ESP32_PWM.ino ใน Arduino IDEชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 3ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 4เริ่มต้นด้วยการกำหนดพินที่จะต่อ LED ในกรณีนี้ LED จะต่อกับ GPIO 4ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 5จากนั้นคุณตั้งค่าคุณสมบัติสัญญาณ PWM คุณกำหนดความถี่ที่ 5000 เฮิรตซ์ เลือกช่องสัญญาณ 0 เพื่อสร้างสัญญาณ และตั้งค่าความละเอียดเป็น 8 บิต คุณสามารถเลือกคุณสมบัติอื่นๆ ที่แตกต่างไปจากนี้เพื่อสร้างสัญญาณ PWM ที่แตกต่างกันชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 6ในการตั้งค่า () คุณต้องกำหนดค่า LED PWM ด้วยคุณสมบัติที่คุณได้กำหนดไว้ก่อนหน้านี้โดยใช้ฟังก์ชัน ledcSetup() ที่ยอมรับ ledChannel ความถี่ และความละเอียดเป็นอาร์กิวเมนต์ ดังต่อไปนี้:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 8ขั้นตอนต่อไป คุณต้องเลือก GPIO ที่จะรับสัญญาณ จากนั้นใช้ฟังก์ชัน ledcAttachPin() ที่ยอมรับ GPIO ที่คุณต้องการรับสัญญาณและช่องสัญญาณที่สร้างสัญญาณเป็นอาร์กิวเมนต์ ในตัวอย่างนี้ampเราจะได้สัญญาณใน ledPin GPIO ที่สอดคล้องกับ GPIO 4 ช่องสัญญาณที่สร้างสัญญาณคือ ledChannel ที่สอดคล้องกับช่องสัญญาณ 0ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 9ในลูป คุณจะเปลี่ยนรอบหน้าที่ระหว่าง 0 ถึง 255 เพื่อเพิ่มความสว่างของ LEDชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ความสว่างจากนั้นปรับค่าระหว่าง 255 ถึง 0 เพื่อลดความสว่างLAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - ความสว่าง 1หากต้องการตั้งค่าความสว่างของ LED คุณเพียงแค่ต้องใช้ฟังก์ชัน ledcWrite() ซึ่งยอมรับช่องสัญญาณที่สร้างสัญญาณและรอบหน้าที่เป็นอาร์กิวเมนต์LAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - ความสว่าง 2เนื่องจากเราใช้ความละเอียด 8 บิต รอบการทำงานจึงถูกควบคุมโดยใช้ค่าตั้งแต่ 0 ถึง 255 โปรดทราบว่าในฟังก์ชัน ledcWrite() เราใช้ช่องสัญญาณที่สร้างสัญญาณ ไม่ใช่ GPIO

ทดสอบอดีตample

อัปโหลดโค้ดไปยัง ESP32 ของคุณ ตรวจสอบให้แน่ใจว่าคุณเลือกบอร์ดและพอร์ต COM ที่ถูกต้องแล้ว ดูวงจรของคุณ คุณควรมี LED หรี่แสงที่เพิ่มและลดความสว่างชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ทดสอบ Example

โครงการ 4 เซ็นเซอร์ตรวจจับความเคลื่อนไหว ESP32 PIR

โปรเจ็กต์นี้แสดงวิธีการตรวจจับการเคลื่อนไหวด้วย ESP32 โดยใช้เซ็นเซอร์ตรวจจับการเคลื่อนไหว PIR บัซเซอร์จะส่งเสียงเตือนเมื่อตรวจพบการเคลื่อนไหว และหยุดเสียงเตือนเมื่อไม่ตรวจพบการเคลื่อนไหวเป็นเวลาที่กำหนดไว้ล่วงหน้า (เช่น 4 วินาที)
เซ็นเซอร์ตรวจจับความเคลื่อนไหว HC-SR501 ทำงานอย่างไร
.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การทำงานของเซ็นเซอร์ตรวจจับการเคลื่อนไหวหลักการทำงานของเซ็นเซอร์ HC-SR501 ขึ้นอยู่กับการเปลี่ยนแปลงของรังสีอินฟราเรดบนวัตถุที่เคลื่อนที่ หากต้องการตรวจจับด้วยเซ็นเซอร์ HC-SR501 วัตถุจะต้องเป็นไปตามข้อกำหนดสองประการ:

  • วัตถุกำลังแผ่รังสีอินฟราเรด
  • วัตถุกำลังเคลื่อนที่หรือสั่น

ดังนั้น:
ถ้าวัตถุปล่อยรังสีอินฟราเรดออกมาแต่ไม่ได้เคลื่อนที่ (เช่น บุคคลยืนนิ่งโดยไม่เคลื่อนที่) เซ็นเซอร์จะตรวจจับรังสีอินฟราเรดไม่ได้
ถ้าวัตถุกำลังเคลื่อนที่แต่ไม่ปล่อยรังสีอินฟราเรดออกมา (เช่น หุ่นยนต์หรือยานพาหนะ) เซ็นเซอร์จะไม่ตรวจจับได้
แนะนำตัวจับเวลา
ในอดีตที่ผ่านมาampเราจะแนะนำตัวจับเวลาด้วย เราต้องการให้ LED ติดสว่างเป็นเวลาหลายวินาทีหลังจากตรวจพบการเคลื่อนไหว แทนที่จะใช้ฟังก์ชัน delay() ที่บล็อกโค้ดของคุณและไม่อนุญาตให้คุณทำอย่างอื่นเป็นเวลาหลายวินาที เราควรใช้ตัวจับเวลาชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แนะนำตัวจับเวลาฟังก์ชั่น delay()
คุณควรคุ้นเคยกับฟังก์ชัน delay() เนื่องจากฟังก์ชันนี้ใช้กันอย่างแพร่หลาย ฟังก์ชันนี้ใช้งานง่ายมาก โดยรับค่าตัวเลข int เพียงตัวเดียวเป็นอาร์กิวเมนต์
ตัวเลขนี้แสดงเวลาเป็นมิลลิวินาทีที่โปรแกรมต้องรอจนกว่าจะย้ายไปยังบรรทัดโค้ดถัดไปชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัสเมื่อคุณทำการ delay(1000) โปรแกรมของคุณจะหยุดที่บรรทัดนั้นเป็นเวลา 1 วินาที
delay() คือฟังก์ชันการบล็อก ฟังก์ชันการบล็อกจะป้องกันไม่ให้โปรแกรมดำเนินการใดๆ จนกว่างานนั้นๆ จะเสร็จสิ้น หากคุณต้องการให้ทำงานหลายงานพร้อมกัน คุณไม่สามารถใช้ delay() ได้
สำหรับโครงการส่วนใหญ่ คุณควรหลีกเลี่ยงการใช้ความล่าช้าและใช้ตัวจับเวลาแทน
ฟังก์ชัน millis()
การใช้ฟังก์ชันที่เรียกว่า millis() ช่วยให้คุณสามารถส่งคืนจำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่ที่โปรแกรมเริ่มทำงานครั้งแรกได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - เริ่มโปรแกรมครั้งแรกฟังก์ชันนั้นมีประโยชน์อย่างไร เพราะเมื่อใช้คณิตศาสตร์ คุณสามารถตรวจสอบได้อย่างง่ายดายว่าเวลาผ่านไปนานแค่ไหนแล้วโดยที่ไม่ต้องบล็อกโค้ดของคุณ
ชิ้นส่วนที่ต้องใช้
หากต้องการทำตามบทช่วยสอนนี้ คุณต้องมีส่วนต่างๆ ต่อไปนี้

  • บอร์ด ESP32 DEVKIT V1
  • เซ็นเซอร์ตรวจจับการเคลื่อนไหว PIR (HC-SR501)
  • ใช้งาน Buzzer
  • สายจั๊มเปอร์
  • แผงวงจร

แผนผังชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผัง 1บันทึก: การทำงานเล่มtagHC-SR501 มีแรงดันไฟ 5V ใช้พิน Vin เพื่อจ่ายไฟให้
รหัส
ก่อนดำเนินการตามบทช่วยสอนนี้ คุณควรติดตั้งส่วนเสริม ESP32 ลงใน Arduino IDE ก่อน ปฏิบัติตามบทช่วยสอนต่อไปนี้เพื่อติดตั้ง ESP32 บน Arduino IDE หากคุณยังไม่ได้ทำ (หากคุณทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปยังขั้นตอนถัดไปได้)
การติดตั้ง ESP32 Add-on ใน Arduino IDE
เปิดโค้ด Project_4_ESP32_PIR_Motion_Sensor.ino ใน Arduino IDE
สาธิต
อัปโหลดโค้ดไปยังบอร์ด ESP32 ของคุณ ตรวจสอบให้แน่ใจว่าคุณเลือกบอร์ดและพอร์ต COM ที่ถูกต้อง ขั้นตอนการอัปโหลดโค้ดอ้างอิง
เปิด Serial Monitor ที่อัตราบอดเรท 115200ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การสาธิต 1ขยับมือของคุณไปข้างหน้าเซ็นเซอร์ PIR เสียงสัญญาณเตือนควรดังขึ้น และข้อความจะพิมพ์บน Serial Monitor ว่า “ตรวจพบการเคลื่อนไหว! สัญญาณเตือนเสียง”
หลังจากผ่านไป 4 วินาที เสียงบัซเซอร์ควรจะดับลงชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - บัซเซอร์

โครงการ 5 สวิตช์ ESP32 Web เซิฟเวอร์

ในโครงการนี้คุณจะสร้างแบบสแตนด์อโลน web เซิร์ฟเวอร์ที่มี ESP32 ซึ่งควบคุมเอาท์พุต (LED สองดวง) โดยใช้สภาพแวดล้อมการเขียนโปรแกรม Arduino IDE web เซิร์ฟเวอร์ตอบสนองต่ออุปกรณ์เคลื่อนที่และสามารถเข้าถึงได้จากอุปกรณ์ใดๆ ก็ได้โดยใช้เบราว์เซอร์บนเครือข่ายท้องถิ่น เราจะแสดงวิธีสร้าง web เซิร์ฟเวอร์และวิธีการทำงานของโค้ดทีละขั้นตอน
สิ้นสุดโครงการview
ก่อนจะเข้าไปสู่โครงการโดยตรง สิ่งสำคัญคือต้องสรุปให้ชัดเจนว่าเรา web เซิร์ฟเวอร์จะทำเพื่อให้ง่ายต่อการทำตามขั้นตอนในภายหลัง

  • การ web เซิร์ฟเวอร์ที่คุณจะสร้างการควบคุม LED สองดวงที่เชื่อมต่อกับ ESP32 GPIO 26 และ GPIO 27
  • คุณสามารถเข้าถึง ESP32 ได้ web เซิร์ฟเวอร์โดยการพิมพ์ที่อยู่ IP ของ ESP32 บนเบราว์เซอร์ในเครือข่ายท้องถิ่น
  • โดยการคลิกปุ่มบนของคุณ web เซิร์ฟเวอร์คุณสามารถเปลี่ยนสถานะของแต่ละ LED ได้ทันที

ชิ้นส่วนที่ต้องใช้
สำหรับบทช่วยสอนนี้ คุณจะต้องมีชิ้นส่วนต่อไปนี้:

  • บอร์ด ESP32 DEVKIT V1
  • ไฟ LED 2x 5มม.
  • ตัวต้านทาน 2x200 โอห์ม
  • แผงวงจร
  • สายจั๊มเปอร์

แผนผัง
เริ่มต้นด้วยการสร้างวงจร เชื่อมต่อ LED สองดวงเข้ากับ ESP32 ตามที่แสดงในแผนผังต่อไปนี้ โดย LED ดวงหนึ่งเชื่อมต่อกับ GPIO 26 และอีกดวงหนึ่งเชื่อมต่อกับ GPIO 27
บันทึก: เรากำลังใช้บอร์ด ESP32 DEVKIT DOIT ที่มีพิน 36 พิน ก่อนที่จะประกอบวงจร ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบพินเอาต์ของบอร์ดที่คุณกำลังใช้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผังรหัส
ที่นี่เราให้โค้ดที่สร้าง ESP32 web เซิฟเวอร์ เปิดโค้ด Project_5_ESP32_Switch _Web_Server.ino ใน Arduino IDE แต่ไม่ต้องอัปโหลด คุณต้องทำการเปลี่ยนแปลงบางอย่างเพื่อให้มันใช้งานได้
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริม ESP32 แล้วก่อนที่จะดำเนินการต่อ: (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปที่ขั้นตอนถัดไปได้)
การติดตั้ง ESP32 Add-on ใน Arduino IDE
การตั้งค่าข้อมูลรับรองเครือข่ายของคุณ
คุณต้องแก้ไขบรรทัดต่อไปนี้ด้วยข้อมูลประจำตัวเครือข่ายของคุณ: SSID และรหัสผ่าน รหัสได้รับการแสดงความคิดเห็นไว้อย่างดีเกี่ยวกับจุดที่คุณควรทำการเปลี่ยนแปลงชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ข้อมูลรับรองเครือข่ายการอัปโหลดรหัส
ตอนนี้คุณสามารถอัปโหลดรหัสและและ web เซิร์ฟเวอร์จะทำงานได้ทันที.
ทำตามขั้นตอนต่อไปเพื่ออัปโหลดโค้ดไปยัง ESP32:

  1. เสียบบอร์ด ESP32 เข้ากับคอมพิวเตอร์ของคุณ
  2. ใน Arduino IDE ให้เลือกบอร์ดของคุณในเครื่องมือ > บอร์ด (ในกรณีของเรา เราใช้บอร์ด ESP32 DEVKIT DOIT)ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การอัปโหลดโค้ด
  3. เลือกพอร์ต COM ในเครื่องมือ > พอร์ตชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - เครื่องมือพอร์ต
  4. กดปุ่มอัปโหลดใน Arduino IDE และรอสองสามวินาทีขณะที่โค้ดคอมไพล์และอัปโหลดไปยังบอร์ดของคุณชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ICON 7
  5. รอจนกว่าข้อความ “อัปโหลดเสร็จสิ้น”LAFVIN ESP32 Basic Starter Kit - อัปโหลดเสร็จเรียบร้อยแล้ว 1

การค้นหาที่อยู่ IP ของ ESP
หลังจากอัปโหลดโค้ดแล้ว ให้เปิด Serial Monitor ที่อัตราบอดเรท 115200ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ที่อยู่ IP ของ ESPกดปุ่ม ESP32 EN (รีเซ็ต) ESP32 จะเชื่อมต่อกับ Wi-Fi และส่งออกที่อยู่ IP ของ ESP บน Serial Monitor คัดลอกที่อยู่ IP นั้น เนื่องจากคุณจำเป็นต้องใช้ที่อยู่ IP นั้นในการเข้าถึง ESP32 web เซิร์ฟเวอร์ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - web เซิร์ฟเวอร์การเข้าถึง Web เซิฟเวอร์
เพื่อเข้าถึง web เซิร์ฟเวอร์ เปิดเบราว์เซอร์ของคุณ วางที่อยู่ IP ของ ESP32 และคุณจะเห็นหน้าต่อไปนี้
บันทึก: เบราว์เซอร์และ ESP32 ของคุณควรเชื่อมต่อกับ LAN เดียวกันLAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - การเข้าถึง Web เซิฟเวอร์หากคุณดูที่ Serial Monitor คุณจะเห็นว่ามีอะไรเกิดขึ้นเบื้องหลัง ESP จะได้รับคำขอ HTTP จากไคลเอนต์ใหม่ (ในกรณีนี้คือเบราว์เซอร์ของคุณ)ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - คำขอ HTTPคุณสามารถดูข้อมูลอื่น ๆ เกี่ยวกับคำขอ HTTP ได้อีกด้วย
สาธิต
ตอนนี้คุณสามารถทดสอบได้ว่า web เซิร์ฟเวอร์ทำงานอย่างถูกต้อง คลิกปุ่มเพื่อควบคุมไฟ LEDชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - พื้นหลังในเวลาเดียวกัน คุณสามารถดู Serial Monitor เพื่อดูว่ามีอะไรเกิดขึ้นเบื้องหลัง เช่นampเมื่อคุณคลิกปุ่มเพื่อเปิด GPIO 26 ESP32 จะได้รับคำขอใน /26/on URL.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - URLเมื่อ ESP32 ได้รับคำขอดังกล่าว ไฟ LED ที่ติดอยู่กับ GPIO 26 จะเปิดขึ้นและอัปเดตสถานะบน web หน้าหนังสือ.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - web หน้าหนังสือปุ่มสำหรับ GPIO 27 ทำงานในลักษณะเดียวกัน ทดสอบว่าใช้งานได้ปกติหรือไม่ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ทำงานอย่างถูกต้อง

โค้ดทำงานอย่างไร

ในส่วนนี้เราจะมาดูโค้ดโดยละเอียดเพื่อดูว่ามันทำงานอย่างไร
สิ่งแรกที่คุณต้องทำคือรวมไลบรารี WiFiชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ไลบรารี WiFiดังที่ได้กล่าวไว้ก่อนหน้านี้ คุณต้องใส่ ssid และรหัสผ่านของคุณในบรรทัดต่อไปนี้ภายในเครื่องหมายคำพูดคู่ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - เครื่องหมายคำพูดคู่จากนั้นคุณตั้งค่าของคุณ web เซิร์ฟเวอร์ไปที่พอร์ต 80ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - web เซิร์ฟเวอร์บรรทัดต่อไปนี้จะสร้างตัวแปรเพื่อจัดเก็บส่วนหัวของคำขอ HTTP:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - HTTPrequestขั้นต่อไป คุณจะสร้างตัวแปรเสริมเพื่อจัดเก็บสถานะปัจจุบันของเอาต์พุตของคุณ หากคุณต้องการเพิ่มเอาต์พุตเพิ่มเติมและบันทึกสถานะ คุณจะต้องสร้างตัวแปรเพิ่มเติมชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ตัวแปรคุณต้องกำหนด GPIO ให้กับเอาต์พุตแต่ละรายการด้วย ในที่นี้ เราใช้ GPIO 26 และ GPIO 27 คุณสามารถใช้ GPIO อื่นๆ ที่เหมาะสมได้LAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - อื่นๆ ที่เหมาะสมการตั้งค่า()
ตอนนี้มาดูการตั้งค่ากันก่อน ขั้นแรก เราจะเริ่มการสื่อสารแบบอนุกรมที่อัตราบอดเรท 115200 เพื่อจุดประสงค์ในการแก้จุดบกพร่องชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - วัตถุประสงค์คุณยังกำหนด GPIO ของคุณเป็น OUTPUT และตั้งค่าเป็น LOWชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - GPIO เป็นเอาต์พุตบรรทัดต่อไปนี้จะเริ่มการเชื่อมต่อ Wi-Fi ด้วย WiFi.begin(ssid, password) รอให้การเชื่อมต่อสำเร็จ และพิมพ์ที่อยู่ IP ของ ESP ใน Serial Monitorชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ซีเรียลชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ซีเรียล 1ลูป()
ในลูป () เราเขียนโปรแกรมสิ่งที่จะเกิดขึ้นเมื่อไคลเอนต์ใหม่สร้างการเชื่อมต่อกับ web เซิร์ฟเวอร์
ESP32 จะคอยฟังไคลเอนต์ที่เข้ามาอยู่เสมอโดยมีบรรทัดต่อไปนี้:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ลูปเมื่อได้รับคำขอจากไคลเอนต์ เราจะบันทึกข้อมูลขาเข้า ลูป while ที่ตามมาจะทำงานต่อไปตราบเท่าที่ไคลเอนต์ยังคงเชื่อมต่ออยู่ เราไม่แนะนำให้เปลี่ยนแปลงส่วนต่อไปนี้ของโค้ด เว้นแต่คุณจะรู้แน่ชัดว่ากำลังทำอะไรอยู่ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ถูกต้องชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - 1 ชิ้นพอดีชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - 2 ชิ้นพอดีส่วนถัดไปของคำสั่ง if และ else จะตรวจสอบว่ามีการกดปุ่มใดใน web หน้าและควบคุมผลลัพธ์ให้เหมาะสม ดังที่เราเห็นก่อนหน้านี้ เราส่งคำขอไปยังหน้าอื่น URLขึ้นอยู่กับปุ่มที่กดชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - กดปุ่มชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - กดปุ่ม 1เช่นampหากคุณกดปุ่ม GPIO 26 ON, ESP32 จะได้รับคำขอที่ /26/ON URL (เราสามารถดูข้อมูลดังกล่าวได้จากส่วนหัว HTTP บน Serial Monitor) ดังนั้นเราสามารถตรวจสอบว่าส่วนหัวมีนิพจน์ GET /26/on หรือไม่ หากมี ให้เปลี่ยนตัวแปร output26state เป็น ON และ ESP32 จะเปิดไฟ LED
วิธีการนี้ใช้ได้กับปุ่มอื่นๆ เช่นกัน ดังนั้น หากคุณต้องการเพิ่มเอาต์พุตเพิ่มเติม คุณควรแก้ไขส่วนนี้ของโค้ดเพื่อรวมเอาต์พุตเหล่านี้เข้าไปด้วย
การแสดง HTML web หน้าหนังสือ
สิ่งต่อไปที่คุณต้องทำคือการสร้าง web ESP32 จะส่งการตอบกลับไปยังเบราว์เซอร์ของคุณด้วยโค้ด HTML เพื่อสร้าง web หน้าหนังสือ.
การ web หน้าจะถูกส่งไปยังไคลเอนต์โดยใช้การแสดง client.println() นี้ คุณควรป้อนสิ่งที่คุณต้องการส่งไปยังไคลเอนต์เป็นอาร์กิวเมนต์
สิ่งแรกที่เราควรส่งคือบรรทัดถัดไป ซึ่งบ่งบอกว่าเรากำลังส่ง HTMLชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ส่ง HTMLจากนั้นบรรทัดต่อไปนี้จะทำให้ web หน้าตอบสนองในทุก ๆ web เบราว์เซอร์ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - web เบราว์เซอร์และสิ่งต่อไปนี้ใช้เพื่อป้องกันการร้องขอบน favicon – คุณไม่จำเป็นต้องกังวลเกี่ยวกับบรรทัดนี้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - client.println

การจัดแต่งทรง Web หน้าหนังสือ

ถัดไปเรามีข้อความ CSS เพื่อกำหนดรูปแบบปุ่มและ web ลักษณะของหน้า
เราเลือกแบบอักษร Helvetica กำหนดเนื้อหาที่จะแสดงเป็นบล็อกและจัดตำแหน่งไว้ตรงกลางชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การจัดแต่งทรง Web หน้าหนังสือเรากำหนดสไตล์ปุ่มด้วยสี #4CAF50 ไม่มีขอบ ข้อความเป็นสีขาว และมีขนาดช่องว่าง 16px 40px นอกจากนี้ เรายังตั้งค่าการตกแต่งข้อความเป็นไม่มี กำหนดขนาดตัวอักษร ระยะขอบ และเคอร์เซอร์เป็นตัวชี้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ตัวชี้นอกจากนี้ เรายังกำหนดสไตล์สำหรับปุ่มที่สองด้วย โดยมีคุณสมบัติทั้งหมดของปุ่มที่เราได้กำหนดไว้ก่อนหน้านี้ แต่จะมีสีที่แตกต่างกัน ซึ่งจะเป็นสไตล์สำหรับปุ่มปิดชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - client.println 1

การตั้งค่า Web หน้าแรก หัวเรื่อง
ในบรรทัดถัดไปคุณสามารถกำหนดหัวข้อแรกของคุณได้ web หน้าที่นี่เรามี “ESP32 Web เซิร์ฟเวอร์” แต่คุณสามารถเปลี่ยนข้อความนี้เป็นสิ่งที่คุณต้องการได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Web หัวข้อหน้าการแสดงปุ่มและสถานะที่สอดคล้องกัน
จากนั้นคุณเขียนย่อหน้าเพื่อแสดงสถานะปัจจุบันของ GPIO 26 ดังที่คุณเห็น เราใช้ตัวแปร output26State เพื่อให้สถานะอัปเดตทันทีเมื่อตัวแปรนี้เปลี่ยนแปลงชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การเปลี่ยนแปลงตัวแปรจากนั้นเราแสดงปุ่มเปิดหรือปิดขึ้นอยู่กับสถานะปัจจุบันของ GPIO หากสถานะปัจจุบันของ GPIO ปิดอยู่ เราจะแสดงปุ่มเปิด หากไม่ใช่ เราจะแสดงปุ่มปิดLAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - แสดงปุ่มปิดเราใช้ขั้นตอนเดียวกันสำหรับ GPIO 27
การปิดการเชื่อมต่อ
ในที่สุดเมื่อการตอบสนองสิ้นสุดลง เราจะล้างตัวแปรส่วนหัว และหยุดการเชื่อมต่อกับไคลเอนต์ด้วย client.stop()ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การปิดการเชื่อมต่อ

การห่อหุ้ม

ในบทช่วยสอนนี้เราจะแสดงให้คุณเห็นวิธีการสร้าง web เซิร์ฟเวอร์ที่มี ESP32 เราได้แสดงตัวอย่างง่ายๆ ให้คุณดูampที่ควบคุม LED สองดวง แต่แนวคิดคือการแทนที่ LED เหล่านั้นด้วยรีเลย์หรือเอาต์พุตอื่นใดที่คุณต้องการควบคุม

โปรเจ็กต์ 6 RGB LED Web เซิฟเวอร์

ในโครงการนี้ เราจะแสดงวิธีการควบคุม LED RGB จากระยะไกลด้วยบอร์ด ESP32 โดยใช้ web เซิร์ฟเวอร์พร้อมตัวเลือกสี
สิ้นสุดโครงการview
ก่อนที่จะเริ่มต้น มาดูวิธีการทำงานของโครงการนี้กันก่อน:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จบโครงการแล้วview

  • ESP32 เป็นเครื่องมือ web เซิร์ฟเวอร์จะแสดงตัวเลือกสี
  • เมื่อคุณเลือกสี เบราว์เซอร์ของคุณจะส่งคำขอไปยัง URL ซึ่งประกอบด้วยพารามิเตอร์ R, G และ B ของสีที่เลือก
  • ESP32 ของคุณได้รับคำขอและแบ่งค่าสำหรับพารามิเตอร์สีแต่ละสี
  • จากนั้นจะส่งสัญญาณ PWM ที่มีค่าสอดคล้องกับ GPIO ที่กำลังควบคุม RGB LED

LED RGB ทำงานอย่างไร?
ใน LED RGB แบบแคโทดทั่วไป LED ทั้งสามดวงจะแชร์การเชื่อมต่อเชิงลบ (แคโทด) ซึ่งรวมอยู่ในชุดทั้งหมดเป็น LED RGB แบบแคโทดทั่วไปชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ไฟ LED RGB ใช้งานได้จะสร้างสีสันต่างๆได้อย่างไร?
ด้วย LED RGB คุณสามารถสร้างแสงสีแดง เขียว และน้ำเงินได้ และโดยการกำหนดค่าความเข้มของ LED แต่ละดวง คุณสามารถสร้างสีอื่นๆ ได้เช่นกัน
เช่นampหากต้องการผลิตแสงสีน้ำเงินล้วนๆ คุณต้องตั้งค่า LED สีน้ำเงินให้มีความเข้มสูงสุด และ LED สีเขียวและสีแดงให้มีความเข้มต่ำสุด สำหรับแสงสีขาว คุณต้องตั้งค่า LED ทั้งสามดวงให้มีความเข้มสูงสุด
การผสมสี
หากต้องการสร้างสีอื่น คุณสามารถผสมสีทั้งสามสีด้วยความเข้มข้นที่แตกต่างกันได้ หากต้องการปรับความเข้มข้นของ LED แต่ละดวง คุณสามารถใช้สัญญาณ PWM
เนื่องจาก LED อยู่ใกล้กันมาก ดวงตาของเราจึงมองเห็นผลลัพธ์จากการผสมสีแทนที่จะมองเห็นสามสีแยกกัน
หากต้องการทราบแนวทางในการผสมสี ให้ดูแผนภูมิต่อไปนี้
นี่เป็นแผนภูมิการผสมสีที่ง่ายที่สุด แต่ช่วยให้คุณเข้าใจถึงวิธีการทำงานและวิธีสร้างสีต่างๆชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - มีหลายสีชิ้นส่วนที่ต้องใช้
สำหรับโครงการนี้คุณต้องมีชิ้นส่วนดังต่อไปนี้:

  • บอร์ด ESP32 DEVKIT V1
  • ไฟ LED RGB
  • ตัวต้านทาน 3x 220 โอห์ม
  • สายจั๊มเปอร์
  • แผงวงจร

แผนผังชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผังรหัส
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริม ESP32 แล้วก่อนที่จะดำเนินการต่อ: (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปที่ขั้นตอนถัดไปได้)

  • การติดตั้ง ESP32 Add-on ใน Arduino IDE

หลังจากประกอบวงจรเสร็จแล้วให้เปิดโค้ด
โครงการ_6_RGB_LED_Web_Server.ino ใน Arduino IDE
ก่อนที่จะอัพโหลดรหัส อย่าลืมใส่ข้อมูลประจำตัวเครือข่ายของคุณเพื่อให้ ESP สามารถเชื่อมต่อกับเครือข่ายท้องถิ่นของคุณได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - เครือข่ายท้องถิ่นโค้ดทำงานอย่างไร
สเก็ตช์ ESP32 ใช้ไลบรารี WiFi.hชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ไลบรารี WiFi.hบรรทัดต่อไปนี้กำหนดตัวแปรสตริงเพื่อเก็บพารามิเตอร์ R, G และ B จากคำขอชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - สตริงสีแดงสตริงตัวแปรทั้งสี่ตัวถัดไปใช้สำหรับถอดรหัสคำขอ HTTP ในภายหลังชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - คำขอ HTTPสร้างตัวแปรสามตัวสำหรับ GPIO ที่จะควบคุมพารามิเตอร์ R, G และ B ในกรณีนี้ เราจะใช้ GPIO 13, GPIO 12 และ GPIO 14LAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - GPIO ต้องมีGPIO เหล่านี้จำเป็นต้องส่งสัญญาณ PWM ดังนั้นเราต้องกำหนดค่าคุณสมบัติ PWM ก่อน ตั้งความถี่สัญญาณ PWM เป็น 5000 Hz จากนั้นเชื่อมโยงช่องสัญญาณ PWM สำหรับแต่ละสีชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แต่ละสีและสุดท้ายให้ตั้งค่าความละเอียดของช่อง PWM เป็น 8 บิตชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ช่องสัญญาณ PWMในการตั้งค่า () กำหนดคุณสมบัติ PWM ให้กับช่องสัญญาณ PWMชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ช่องสัญญาณ PWMแนบช่อง PWM เข้ากับ GPIO ที่สอดคล้องกันชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - GPIO ที่เกี่ยวข้องส่วนโค้ดต่อไปนี้จะแสดงตัวเลือกสีในของคุณ web หน้าและทำการร้องขอตามสีที่คุณเลือกLAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - เลือกแล้วชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - client.printlnชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - client.println 1เมื่อคุณเลือกสีคุณจะได้รับคำขอตามรูปแบบต่อไปนี้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รูปแบบดังต่อไปนี้

ดังนั้น เราจำเป็นต้องแยกสตริงนี้เพื่อรับพารามิเตอร์ R, G และ B พารามิเตอร์จะถูกบันทึกในตัวแปร redString, greenString และ blueString และสามารถมีค่าระหว่าง 0 ถึง 255 ได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ส่วนหัวชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ส่วนหัว 1ในการควบคุมแถบด้วย ESP32 ให้ใช้ฟังก์ชัน ledcWrite() เพื่อสร้างสัญญาณ PWM ด้วยค่าที่ถอดรหัสจาก HTTP ขอ.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - คำขอ HTTP 1บันทึก: เรียนรู้เพิ่มเติมเกี่ยวกับ PWM ด้วย ESP32: โปรเจ็กต์ 3 ESP32 PWM (เอาต์พุตแอนะล็อก)
ในการควบคุมแถบด้วย ESP8266 เราเพียงแค่ต้องใช้
ฟังก์ชัน analogWrite() เพื่อสร้างสัญญาณ PWM ด้วยค่าที่ถอดรหัสจากคำขอ HTPP
analogWrite(redPin, redString.toInt())
analogWrite(greenPin, greenString.toInt())
การเขียนแบบอะนาล็อก(bluePin, blueString.toInt())
เนื่องจากเราได้รับค่าในตัวแปรสตริง เราจึงต้องแปลงค่าเหล่านี้เป็นจำนวนเต็มโดยใช้เมธอด toInt()
สาธิต
หลังจากใส่ข้อมูลรับรองเครือข่ายของคุณแล้ว เลือกบอร์ดและพอร์ต COM ที่ถูกต้อง และอัปโหลดโค้ดไปยัง ESP32 ของคุณ ขั้นตอนการอัปโหลดโค้ดอ้างอิง
หลังจากอัพโหลดแล้ว ให้เปิด Serial Monitor ที่อัตราบอดเรท 115200 และกดปุ่มเปิดใช้งาน/รีเซ็ต ESP คุณควรได้รับที่อยู่ IP ของบอร์ดชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - LAN เดียวกันเปิดเบราว์เซอร์และป้อนที่อยู่ IP ของ ESP จากนั้นใช้ตัวเลือกสีเพื่อเลือกสีสำหรับ LED RGB
จากนั้นคุณต้องกดปุ่ม “เปลี่ยนสี” เพื่อให้สีมีผลชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - RGB LEDหากต้องการปิดไฟ LED RGB ให้เลือกสีดำ
สีที่เข้มที่สุด (อยู่ที่ด้านบนของตัวเลือกสี) คือสีที่จะให้ผลลัพธ์ที่ดีกว่าชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ผลลัพธ์ที่ดีกว่า

โครงการ 7 รีเลย์ ESP32 Web เซิฟเวอร์

การใช้รีเลย์ร่วมกับ ESP32 เป็นวิธีที่ดีเยี่ยมในการควบคุมเครื่องใช้ไฟฟ้าภายในบ้านแบบ AC จากระยะไกล บทช่วยสอนนี้จะอธิบายวิธีการควบคุมโมดูลรีเลย์ด้วย ESP32
เราจะมาดูว่าโมดูลรีเลย์ทำงานอย่างไร วิธีเชื่อมต่อรีเลย์กับ ESP32 และสร้าง web เซิร์ฟเวอร์เพื่อควบคุมรีเลย์จากระยะไกล
แนะนำรีเลย์
รีเลย์เป็นสวิตช์ที่ทำงานด้วยไฟฟ้า เช่นเดียวกับสวิตช์อื่นๆ รีเลย์สามารถเปิดหรือปิดได้ ปล่อยให้กระแสไฟฟ้าไหลผ่านหรือไม่ไหลก็ได้ รีเลย์สามารถควบคุมได้ด้วยแรงดันไฟฟ้าต่ำtagเช่น 3.3V ที่จัดทำโดย GPIO ของ ESP32 และช่วยให้เราสามารถควบคุมระดับเสียงสูงได้tagเช่น 12V, 24V หรือไฟหลักtage (230V ในยุโรปและ 120V ในสหรัฐอเมริกา)ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แนะนำรีเลย์ด้านซ้ายมีช่องเสียบ 3 ช่อง จำนวน 2 ชุด เพื่อเชื่อมต่อกระแสไฟแรงดันสูงtages และพินทางด้านขวา (ระดับเสียงต่ำtage) เชื่อมต่อกับ ESP32 GPIO
เล่มหลักtage การเชื่อมต่อชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Mains Voltage การเชื่อมต่อโมดูลรีเลย์ที่แสดงในภาพก่อนหน้ามีขั้วต่อ 2 ตัว โดยแต่ละขั้วต่อมี 3 ซ็อกเก็ต ได้แก่ ทั่วไป (COM), ปกติปิด (NC) และปกติเปิด (NO)

  • COM: เชื่อมต่อกระแสไฟที่คุณต้องการควบคุม (ไฟหลัก)tagจ).
  • NC (ปกติปิด): การกำหนดค่าปกติปิดจะใช้เมื่อคุณต้องการปิดรีเลย์ตามค่าเริ่มต้น พิน NC และ COM จะเชื่อมต่อกัน ซึ่งหมายความว่ากระแสไฟฟ้าจะไหล เว้นแต่คุณจะส่งสัญญาณจาก ESP32 ไปยังโมดูลรีเลย์เพื่อเปิดวงจรและหยุดการไหลของกระแสไฟฟ้า
  • NO (ปกติเปิด): การกำหนดค่าปกติเปิดจะทำงานในทางกลับกัน: ไม่มีการเชื่อมต่อระหว่างพิน NO และ COM ดังนั้นวงจรจึงขาด เว้นแต่คุณจะส่งสัญญาณจาก ESP32 เพื่อปิดวงจร

พินควบคุมชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - พินควบคุมระดับเสียงต่ำtagด้าน e มีพิน 1 พินและพิน 1 พิน ชุดแรกประกอบด้วย VCC และ GND เพื่อจ่ายไฟให้โมดูล และอินพุต 2 (IN2) และอินพุต XNUMX (INXNUMX) เพื่อควบคุมรีเลย์ด้านล่างและด้านบนตามลำดับ
หากโมดูลรีเลย์ของคุณมีเพียงช่องเดียว คุณจะมีพิน IN เพียงอันเดียว หากคุณมีสี่ช่อง คุณจะมีพิน IN สี่อัน เป็นต้น
สัญญาณที่คุณส่งไปยังพิน IN จะกำหนดว่ารีเลย์จะทำงานหรือไม่ รีเลย์จะทำงานเมื่อแรงดันไฟฟ้าอินพุตลดลงต่ำกว่า 2V ซึ่งหมายความว่าคุณจะมีสถานการณ์ต่อไปนี้:

  • การกำหนดค่าแบบปิดปกติ (NC):
  • สัญญาณสูง – กระแสไฟไหล
  • สัญญาณต่ำ – กระแสไฟไม่ไหล
  • การกำหนดค่าแบบเปิดปกติ (NO):
  • สัญญาณสูง – กระแสไฟไม่ไหล
  • สัญญาณต่ำ – กระแสไฟไหล

คุณควรใช้การกำหนดค่าแบบปิดปกติเมื่อกระแสไฟฟ้าไหลเป็นส่วนใหญ่ และคุณต้องการหยุดเพียงเป็นครั้งคราวเท่านั้น
ใช้การกำหนดค่าแบบเปิดตามปกติเมื่อคุณต้องการให้กระแสไฟฟ้าไหลเป็นครั้งคราว (เช่นampเล เปิดอัลamp เป็นครั้งคราว).
การเลือกแหล่งจ่ายไฟชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การเลือกแหล่งจ่ายไฟชุดพินที่สองประกอบด้วยพิน GND, VCC และ JD-VCC
พิน JD-VCC จ่ายไฟให้กับแม่เหล็กไฟฟ้าของรีเลย์ สังเกตว่าโมดูลมีฝาจัมเปอร์ที่เชื่อมต่อพิน VCC และ JD-VCC พินที่แสดงที่นี่เป็นสีเหลือง แต่พินของคุณอาจเป็นสีอื่น
เมื่อใส่ฝาครอบจัมเปอร์แล้ว พิน VCC และ JD-VCC จะเชื่อมต่อกัน นั่นหมายความว่าแม่เหล็กไฟฟ้าของรีเลย์ได้รับพลังงานโดยตรงจากพินจ่ายไฟ ESP32 ดังนั้นโมดูลรีเลย์และวงจร ESP32 จึงไม่ได้แยกจากกันทางกายภาพ
หากไม่มีฝาครอบจัมเปอร์ คุณต้องจัดหาแหล่งจ่ายไฟอิสระเพื่อจ่ายไฟให้กับแม่เหล็กไฟฟ้าของรีเลย์ผ่านพิน JD-VCC การกำหนดค่าดังกล่าวจะแยกรีเลย์ออกจาก ESP32 โดยใช้ตัวต่อออปโตในตัวของโมดูล ซึ่งจะป้องกันไม่ให้ ESP32 เสียหายในกรณีที่เกิดไฟกระชาก
แผนผังชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผังคำเตือน: การใช้ปริมาณสูงtagแหล่งจ่ายไฟฟ้าอาจทำให้เกิดบาดเจ็บสาหัสได้
ดังนั้นจึงใช้ LED ขนาด 5 มม. แทนปริมาณไฟสูงtagหลอดไฟอีในการทดลอง หากคุณไม่คุ้นเคยกับปริมาณไฟหลักtage ถามใครสักคนที่จะมาช่วยคุณได้ ขณะตั้งโปรแกรม ESP หรือเดินสายวงจรของคุณ ให้แน่ใจว่าทุกอย่างถูกตัดการเชื่อมต่อจากไฟหลักtage.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - หลักtageการติดตั้งไลบรารีสำหรับ ESP32
เพื่อสร้างสิ่งนี้ web เซิฟเวอร์เราใช้ ESPAsyncWebไลบรารีเซิร์ฟเวอร์และไลบรารี AsyncTCP
การติดตั้ง ESPAsyncWebห้องสมุดเซิร์ฟเวอร์
ทำตามขั้นตอนต่อไปเพื่อติดตั้ง เอสปาซิงค์Webเซิฟเวอร์ ห้องสมุด:

  1. คลิกที่นี่เพื่อดาวน์โหลด ESPAsyncWebไลบรารีเซิร์ฟเวอร์ คุณควรมี
    โฟลเดอร์ .zip ในโฟลเดอร์ดาวน์โหลดของคุณ
  2. แตกโฟลเดอร์ .zip แล้วคุณจะได้รับ ESPAsyncWebโฟลเดอร์เซิร์ฟเวอร์มาสเตอร์
  3. เปลี่ยนชื่อโฟลเดอร์ของคุณจาก ESPAsyncWebเซิร์ฟเวอร์มาสเตอร์ถึง ESPAsyncWebเซิฟเวอร์
  4. ย้าย ESPAsyncWebโฟลเดอร์เซิร์ฟเวอร์ไปยังโฟลเดอร์ไลบรารีการติดตั้ง Arduino IDE ของคุณ

อีกวิธีหนึ่ง ใน Arduino IDE ของคุณ คุณสามารถไปที่ Sketch > Include
ห้องสมุด > เพิ่มห้องสมุด .ZIP… และเลือกห้องสมุดที่คุณเพิ่งดาวน์โหลด
การติดตั้งไลบรารี AsyncTCP สำหรับ ESP32
การ เอสปาซิงค์Webเซิฟเวอร์ ห้องสมุดต้องการ อะซิงค์TCP ห้องสมุดเพื่อการทำงาน ติดตาม
ขั้นตอนถัดไปในการติดตั้งไลบรารีดังกล่าว:

  1. คลิกที่นี่เพื่อดาวน์โหลดไลบรารี AsyncTCP คุณควรมีโฟลเดอร์ .zip ในโฟลเดอร์ดาวน์โหลดของคุณ
  2. แตกโฟลเดอร์ .zip แล้วคุณจะได้โฟลเดอร์ AsyncTCP-master
    1. เปลี่ยนชื่อโฟลเดอร์ของคุณจาก AsyncTCP-master เป็น AsyncTCP
    3. ย้ายโฟลเดอร์ AsyncTCP ไปยังโฟลเดอร์ไลบรารีการติดตั้ง Arduino IDE ของคุณ
    4. สุดท้าย เปิด Arduino IDE ของคุณอีกครั้ง

อีกวิธีหนึ่ง ใน Arduino IDE ของคุณ คุณสามารถไปที่ Sketch > Include
ห้องสมุด > เพิ่มห้องสมุด .ZIP… และเลือกห้องสมุดที่คุณเพิ่งดาวน์โหลด
รหัส
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริม ESP32 แล้วก่อนที่จะดำเนินการต่อ: (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปที่ขั้นตอนถัดไปได้)
การติดตั้ง ESP32 Add-on ใน Arduino IDE
หลังจากติดตั้งไลบรารีที่จำเป็นแล้ว ให้เปิดโค้ด Project_7_ESP32_Relay_Web_Server.ino ใน Arduino IDE
ก่อนที่จะอัพโหลดรหัส อย่าลืมใส่ข้อมูลประจำตัวเครือข่ายของคุณเพื่อให้ ESP สามารถเชื่อมต่อกับเครือข่ายท้องถิ่นของคุณได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - เครือข่ายท้องถิ่นสาธิต
หลังจากทำการเปลี่ยนแปลงที่จำเป็นแล้ว ให้อัปโหลดโค้ดไปยัง ESP32 ของคุณ ขั้นตอนการอัปโหลดโค้ดอ้างอิง
เปิด Serial Monitor ที่อัตราบอดเรท 115200 และกดปุ่ม ESP32 EN เพื่อรับที่อยู่ IP จากนั้นเปิดเบราว์เซอร์ในเครือข่ายท้องถิ่นของคุณและพิมพ์ที่อยู่ IP ของ ESP32 เพื่อเข้าถึง web เซิร์ฟเวอร์
เปิด Serial Monitor ที่อัตราบอดเรท 115200 และกดปุ่ม ESP32 EN เพื่อรับที่อยู่ IP จากนั้นเปิดเบราว์เซอร์ในเครือข่ายท้องถิ่นของคุณและพิมพ์ที่อยู่ IP ของ ESP32 เพื่อเข้าถึง web เซิร์ฟเวอร์ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - web เซิร์ฟเวอร์บันทึก: เบราว์เซอร์และ ESP32 ของคุณควรเชื่อมต่อกับ LAN เดียวกัน
คุณควรได้รับสิ่งที่เป็นดังต่อไปนี้โดยมีปุ่มสองปุ่มตามจำนวนรีเลย์ที่คุณกำหนดไว้ในโค้ดของคุณชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 สำหรับสมาร์ทโฟนตอนนี้คุณสามารถใช้ปุ่มเพื่อควบคุมรีเลย์ของคุณโดยใช้สมาร์ทโฟนของคุณได้LAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - สมาร์ทโฟน 1

โครงการ_8_การซิงโครไนซ์สถานะเอาต์พุต_ Web_เซิร์ฟเวอร์

โปรเจ็กต์นี้แสดงวิธีการควบคุมเอาท์พุต ESP32 หรือ ESP8266 โดยใช้ web เซิร์ฟเวอร์และปุ่มทางกายภาพพร้อมกัน สถานะเอาต์พุตจะได้รับการอัปเดตบน web หน้าไม่ว่าจะเปลี่ยนแปลงผ่านปุ่มทางกายภาพหรือ web เซิร์ฟเวอร์
สิ้นสุดโครงการview
มาดูกันอย่างรวดเร็วว่าโครงการนี้ทำงานอย่างไรชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จบโครงการแล้วviewESP32 หรือ ESP8266 เป็นโฮสต์ web เซิร์ฟเวอร์ที่ให้คุณสามารถควบคุมสถานะเอาท์พุตได้

  • สถานะเอาท์พุตปัจจุบันจะแสดงบน web เซิร์ฟเวอร์;
  • ESP ยังเชื่อมต่อกับปุ่มกดทางกายภาพที่ควบคุมเอาต์พุตเดียวกันอีกด้วย
  • หากคุณเปลี่ยนสถานะเอาต์พุตโดยใช้ปุ่ม puhs ทางกายภาพ สถานะปัจจุบันจะได้รับการอัปเดตบน web เซิร์ฟเวอร์

โดยสรุป โปรเจ็กต์นี้ช่วยให้คุณสามารถควบคุมเอาต์พุตเดียวกันได้โดยใช้ web เซิร์ฟเวอร์และปุ่มกดพร้อมกัน เมื่อใดก็ตามที่สถานะเอาต์พุตเปลี่ยนแปลง web เซิร์ฟเวอร์ได้รับการอัปเดตแล้ว
ชิ้นส่วนที่ต้องใช้
นี่คือรายการชิ้นส่วนที่คุณต้องใช้เพื่อสร้างวงจร:

  • บอร์ด ESP32 DEVKIT V1
  • แอลอีดี 5 มม
  • ตัวต้านทาน 220 โอห์ม
  • ปุ่มกด
  • ตัวต้านทาน 10k โอห์ม
  • แผงวงจร
  • สายจั๊มเปอร์

แผนผังชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผัง 1การติดตั้งไลบรารีสำหรับ ESP32
เพื่อสร้างสิ่งนี้ web เซิฟเวอร์เราใช้ ESPAsyncWebไลบรารีเซิร์ฟเวอร์และไลบรารี AsyncTCP (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปยังขั้นตอนถัดไปได้)
การติดตั้ง ESPAsyncWebห้องสมุดเซิร์ฟเวอร์
ทำตามขั้นตอนต่อไปเพื่อติดตั้ง ESPAsyncWebไลบรารีเซิร์ฟเวอร์:

  1. คลิกที่นี่เพื่อดาวน์โหลด ESPAsyncWebไลบรารีเซิร์ฟเวอร์ คุณควรมี
    โฟลเดอร์ .zip ในโฟลเดอร์ดาวน์โหลดของคุณ
  2. แตกโฟลเดอร์ .zip แล้วคุณจะได้รับ ESPAsyncWebโฟลเดอร์เซิร์ฟเวอร์มาสเตอร์
  3. เปลี่ยนชื่อโฟลเดอร์ของคุณจาก ESPAsyncWebเซิร์ฟเวอร์มาสเตอร์ถึง ESPAsyncWebเซิฟเวอร์
  4. ย้าย ESPAsyncWebโฟลเดอร์เซิร์ฟเวอร์ไปยังโฟลเดอร์ไลบรารีการติดตั้ง Arduino IDE ของคุณ
    อีกวิธีหนึ่ง ใน Arduino IDE ของคุณ คุณสามารถไปที่ Sketch > Include
    ห้องสมุด > เพิ่มห้องสมุด .ZIP… และเลือกห้องสมุดที่คุณเพิ่งดาวน์โหลด

การติดตั้งไลบรารี AsyncTCP สำหรับ ESP32
เอสปาซิงค์Webไลบรารีเซิร์ฟเวอร์จำเป็นต้องใช้ไลบรารี AsyncTCP จึงจะใช้งานได้ ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้งไลบรารีดังกล่าว:

  1. คลิกที่นี่เพื่อดาวน์โหลดไลบรารี AsyncTCP คุณควรมีโฟลเดอร์ .zip ในโฟลเดอร์ดาวน์โหลดของคุณ
  2. แตกโฟลเดอร์ .zip แล้วคุณจะได้โฟลเดอร์ AsyncTCP-master
  3. เปลี่ยนชื่อโฟลเดอร์ของคุณจาก AsyncTCP-master เป็น AsyncTCP
  4. ย้ายโฟลเดอร์ AsyncTCP ไปยังโฟลเดอร์ไลบรารีการติดตั้ง Arduino IDE ของคุณ
  5. สุดท้ายให้เปิด Arduino IDE ของคุณอีกครั้ง
    อีกวิธีหนึ่ง ใน Arduino IDE ของคุณ คุณสามารถไปที่ Sketch > Include
    ห้องสมุด > เพิ่มห้องสมุด .ZIP… และเลือกห้องสมุดที่คุณเพิ่งดาวน์โหลด

รหัส
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริม ESP32 แล้วก่อนที่จะดำเนินการต่อ: (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปที่ขั้นตอนถัดไปได้)
การติดตั้ง ESP32 Add-on ใน Arduino IDE
หลังจากติดตั้งไลบรารีที่จำเป็นแล้ว ให้เปิดโค้ด
โครงการ_8_การซิงโครไนซ์สถานะเอาต์พุต_Web_Server.ino ใน Arduino IDE
ก่อนที่จะอัพโหลดรหัส อย่าลืมใส่ข้อมูลประจำตัวเครือข่ายของคุณเพื่อให้ ESP สามารถเชื่อมต่อกับเครือข่ายท้องถิ่นของคุณได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส

โค้ดทำงานอย่างไร

สถานะปุ่มและสถานะเอาต์พุต
ตัวแปร ledState จะเก็บสถานะเอาต์พุตของ LED โดยค่าเริ่มต้น เมื่อ web เซิร์ฟเวอร์เริ่มทำงานแล้ว ระดับต่ำชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Code Works

buttonState และ lastButtonState ใช้เพื่อตรวจจับว่ามีการกดปุ่มหรือไม่LAFVIN ESP32 Basic Starter Kit - ถูกกดแล้วปุ่ม (web เซิร์ฟเวอร์)
เราไม่ได้รวม HTML ไว้เพื่อสร้างปุ่มบนตัวแปร index_html
นั่นเป็นเพราะเราอยากที่จะสามารถเปลี่ยนแปลงมันได้ขึ้นอยู่กับสถานะ LED ในปัจจุบันที่สามารถเปลี่ยนได้ด้วยปุ่มกดเช่นกัน
ดังนั้นเราจึงสร้างตัวแทนสำหรับปุ่ม %BUTTONPLACEHOLDER% ที่จะถูกแทนที่ด้วยข้อความ HTML เพื่อสร้างปุ่มในภายหลังในโค้ด (ซึ่งจะดำเนินการในฟังก์ชัน processor())LAFVIN ESP32 Basic Starter Kit - ถูกกด 1โปรเซสเซอร์()
ฟังก์ชัน processor() จะแทนที่ตัวแทนใดๆ ในข้อความ HTML ด้วยค่าจริง ขั้นแรก ฟังก์ชันจะตรวจสอบว่าข้อความ HTML มีข้อมูลใดๆ หรือไม่
ตัวแทน %BUTTONPLACEHOLDER%ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - โปรเซสเซอร์จากนั้นเรียกใช้ฟังก์ชัน outputState() ที่ส่งคืนสถานะเอาต์พุตปัจจุบัน เราบันทึกไว้ในตัวแปร outputStateValueชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - outputStateจากนั้นนำค่าดังกล่าวมาใช้สร้างข้อความ HTML เพื่อแสดงปุ่มที่มีสถานะที่ถูกต้องดังนี้:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 4คำขอ HTTP GET เพื่อเปลี่ยนสถานะเอาต์พุต (JavaScript)
เมื่อคุณกดปุ่ม ฟังก์ชันtoggleCheckbox() จะถูกเรียก ฟังก์ชันนี้จะส่งคำขอไปยังที่อื่น URLเพื่อเปิดหรือปิดไฟ LEDชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - JavaScriptหากต้องการเปิดไฟ LED ให้ทำการร้องขอที่ /update?state=1 URL:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - element.checkedมิฉะนั้นจะส่งคำขอไปที่ /update?state=0 URL.
คำขอ HTTP GET เพื่ออัปเดตสถานะ (JavaScript)
เพื่อให้สถานะเอาท์พุตได้รับการอัปเดตบน web เซิร์ฟเวอร์ เราเรียกใช้ฟังก์ชันต่อไปนี้เพื่อสร้างคำขอใหม่ใน /state URL ทุกวินาทีชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - อัปเดตสถานะชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - อัปเดตสถานะ 1จัดการคำขอ
จากนั้นเราต้องจัดการสิ่งที่เกิดขึ้นเมื่อ ESP32 หรือ ESP8266 ได้รับคำขอจากสิ่งเหล่านั้น URLs.
เมื่อได้รับคำขอบนราก /URLเราจะส่งหน้า HTML และโปรเซสเซอร์ไปด้วยชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จัดการคำขอชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จัดการคำขอ 1บรรทัดต่อไปนี้จะตรวจสอบว่าคุณได้รับคำขอใน /update?state=1 หรือ /update?state=0 URL และเปลี่ยน ledState ให้เหมาะสมชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ledStateชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - inputParamเมื่อได้รับคำร้องจาก /state URL, เราจะส่งสถานะเอาท์พุตปัจจุบัน:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - สถานะเอาท์พุตลูป()
ในลูป () เราจะดีบาวน์ปุ่มกดและเปิดหรือปิด LED ขึ้นอยู่กับค่าของ ledState ตัวแปร.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ลูป 1สาธิต
อัปโหลดโค้ดไปยังบอร์ด ESP32 ของคุณ ขั้นตอนการอ้างอิงโค้ดอัปโหลด
จากนั้นเปิด Serial Monitor ที่อัตราบอดเรท 115200 กดปุ่ม EN/RST บนบอร์ดเพื่อรับที่อยู่ IPชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การสาธิตเปิดเบราว์เซอร์บนเครือข่ายท้องถิ่นของคุณ และพิมพ์ที่อยู่ IP ของ ESP คุณควรจะสามารถเข้าถึงได้ web เซิร์ฟเวอร์ดังแสดงด้านล่างนี้
บันทึก: เบราว์เซอร์และ ESP32 ของคุณควรเชื่อมต่อกับ LAN เดียวกันLAFVIN ESP32 ชุดเริ่มต้นพื้นฐาน - เบราว์เซอร์คุณสามารถสลับปุ่มบน web เซิร์ฟเวอร์เพื่อเปิดไฟ LEDชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - web เซิร์ฟเวอร์ 1คุณสามารถควบคุม LED เดียวกันนี้ด้วยปุ่มกดทางกายภาพได้เช่นกัน สถานะของ LED จะได้รับการอัปเดตโดยอัตโนมัติอยู่เสมอ web เซิร์ฟเวอร์

โครงการ 9 ESP32 DHT11 Web เซิฟเวอร์

ในโครงการนี้ คุณจะได้เรียนรู้วิธีสร้าง ESP32 แบบอะซิงโครนัส web เซิร์ฟเวอร์ที่มี DHT11 ที่แสดงอุณหภูมิและความชื้นโดยใช้ Arduino IDE
ข้อกำหนดเบื้องต้น
การ web เซิร์ฟเวอร์เราจะสร้างการอัปเดตการอ่านโดยอัตโนมัติโดยไม่ต้องรีเฟรช web หน้าหนังสือ.
ด้วยโครงการนี้คุณจะได้เรียนรู้:

  • วิธีการอ่านอุณหภูมิและความชื้นจากเซ็นเซอร์ DHT;
  • สร้างแบบอะซิงโครนัส web เซิร์ฟเวอร์ที่ใช้ เอสปาซิงค์Webห้องสมุดเซิร์ฟเวอร์;
  • อัปเดตการอ่านค่าเซนเซอร์โดยอัตโนมัติโดยไม่ต้องรีเฟรช web หน้าหนังสือ.

อะซิงโครนัส Web เซิฟเวอร์
เพื่อสร้าง web เซิร์ฟเวอร์เราจะใช้ เอสปาซิงค์Webห้องสมุดเซิร์ฟเวอร์ ที่ให้วิธีง่ายๆ ในการสร้างแบบอะซิงโครนัส web เซิร์ฟเวอร์ การสร้างระบบอะซิงโครนัส web เซิร์ฟเวอร์มีแอดวานซ์หลายตัวtagตามที่ระบุไว้ในหน้า GitHub ของไลบรารี เช่น:

  • “จัดการการเชื่อมต่อมากกว่า 1 รายการในเวลาเดียวกัน”
  • “เมื่อคุณส่งการตอบกลับ คุณจะพร้อมจัดการการเชื่อมต่ออื่นๆ ทันที ในขณะที่เซิร์ฟเวอร์กำลังดูแลการส่งการตอบกลับในเบื้องหลัง”
  • “เครื่องประมวลผลเทมเพลตที่เรียบง่ายสำหรับจัดการเทมเพลต”

ชิ้นส่วนที่ต้องใช้
เพื่อให้บทช่วยสอนนี้เสร็จสมบูรณ์ คุณต้องมีชิ้นส่วนต่อไปนี้:

  • บอร์ดพัฒนา ESP32
  • โมดูล DHT11
  • แผงวงจร
  • สายจั๊มเปอร์

แผนผังชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผัง 2การติดตั้งห้องสมุด
คุณจะต้องติดตั้งไลบรารีสองสามแห่งสำหรับโครงการนี้:

การติดตั้งไลบรารีเซนเซอร์ DHT
หากต้องการอ่านจากเซ็นเซอร์ DHT โดยใช้ Arduino IDE คุณจำเป็นต้องติดตั้ง ห้องสมุดเซ็นเซอร์ DHTทำตามขั้นตอนต่อไปเพื่อติดตั้งไลบรารี

  1. คลิกที่นี่เพื่อดาวน์โหลดไลบรารีเซ็นเซอร์ DHT คุณควรมีโฟลเดอร์ .zip ในโฟลเดอร์ดาวน์โหลดของคุณ
  2. แตกโฟลเดอร์ .zip แล้วคุณจะได้โฟลเดอร์ DHT-sensor-library-master
  3. เปลี่ยนชื่อโฟลเดอร์ของคุณจาก DHT-sensor-library-master เป็น DHT_sensor
  4. ย้ายโฟลเดอร์ DHT_sensor ไปยังโฟลเดอร์ไลบรารีการติดตั้ง Arduino IDE ของคุณ
  5. สุดท้ายให้เปิด Arduino IDE ของคุณอีกครั้ง

การติดตั้งไดรเวอร์เซนเซอร์ Adafruit Unified
คุณยังต้องติดตั้ง ไลบรารีไดรเวอร์เซนเซอร์รวม Adafruit เพื่อทำงานกับเซ็นเซอร์ DHT ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้งไลบรารี

  1. คลิกที่นี่เพื่อดาวน์โหลดไลบรารี Adafruit Unified Sensor คุณควรมีโฟลเดอร์ .zip ในโฟลเดอร์ดาวน์โหลดของคุณ
  2. แตกโฟลเดอร์ .zip แล้วคุณจะได้โฟลเดอร์ Adafruit_sensor-master
  3. เปลี่ยนชื่อโฟลเดอร์ของคุณจาก Adafruit_sensor-master เป็น Adafruit_sensor
  4. ย้ายโฟลเดอร์ Adafruit_sensor ไปยังโฟลเดอร์ไลบรารีการติดตั้ง Arduino IDE ของคุณ
  5. สุดท้ายให้เปิด Arduino IDE ของคุณอีกครั้ง

การติดตั้ง ESPAsyncWebห้องสมุดเซิร์ฟเวอร์

ทำตามขั้นตอนต่อไปเพื่อติดตั้ง เอสปาซิงค์Webเซิฟเวอร์ ห้องสมุด:

  1. คลิกที่นี่เพื่อดาวน์โหลด ESPAsyncWebไลบรารีเซิร์ฟเวอร์ คุณควรมี
    โฟลเดอร์ .zip ในโฟลเดอร์ดาวน์โหลดของคุณ
  2. แตกโฟลเดอร์ .zip แล้วคุณควร
    รับ ESPAsyncWebโฟลเดอร์เซิร์ฟเวอร์มาสเตอร์
  3. เปลี่ยนชื่อโฟลเดอร์ของคุณจาก ESPAsyncWebเซิร์ฟเวอร์มาสเตอร์ถึง ESPAsyncWebเซิฟเวอร์
  4. ย้าย ESPAsyncWebโฟลเดอร์เซิร์ฟเวอร์ไปยังโฟลเดอร์ไลบรารีการติดตั้ง Arduino IDE ของคุณ

การติดตั้งไลบรารี Async TCP สำหรับ ESP32
การ เอสปาซิงค์Webเซิฟเวอร์ ห้องสมุดต้องการ อะซิงค์TCP ไลบรารีจะทำงานได้ ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้งไลบรารีดังกล่าว:

  1. คลิกที่นี่เพื่อดาวน์โหลดไลบรารี AsyncTCP คุณควรมีโฟลเดอร์ .zip ในโฟลเดอร์ดาวน์โหลดของคุณ
  2. แตกโฟลเดอร์ .zip แล้วคุณจะได้โฟลเดอร์ AsyncTCP-master
  3. เปลี่ยนชื่อโฟลเดอร์ของคุณจาก AsyncTCP-master เป็น AsyncTCP
  4. ย้ายโฟลเดอร์ AsyncTCP ไปยังโฟลเดอร์ไลบรารีการติดตั้ง Arduino IDE ของคุณ
  5. สุดท้ายให้เปิด Arduino IDE ของคุณอีกครั้ง

รหัส
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริม ESP32 แล้วก่อนที่จะดำเนินการต่อ: (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปที่ขั้นตอนถัดไปได้)
การติดตั้ง ESP32 Add-on ใน Arduino IDE
หลังจากติดตั้งไลบรารีที่จำเป็นแล้ว ให้เปิดโค้ด
โครงการ_9_ESP32_DHT11_Web_Server.ino ใน Arduino IDE
ก่อนที่จะอัพโหลดรหัส อย่าลืมใส่ข้อมูลประจำตัวเครือข่ายของคุณเพื่อให้ ESP สามารถเชื่อมต่อกับเครือข่ายท้องถิ่นของคุณได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัสโค้ดทำงานอย่างไร
ในย่อหน้าต่อไปนี้ เราจะอธิบายวิธีการทำงานของโค้ด อ่านต่อไปหากคุณต้องการเรียนรู้เพิ่มเติมหรือข้ามไปที่ส่วนการสาธิตเพื่อดูผลลัพธ์สุดท้าย
การนำเข้าไลบรารี
ขั้นแรก ให้ทำการอิมพอร์ตไลบรารีที่จำเป็น WiFi, ESPAsyncWebต้องใช้เซิร์ฟเวอร์และ ESPAsyncTCP เพื่อสร้าง web เซิร์ฟเวอร์ ต้องใช้ไลบรารี Adafruit_Sensor และ DHT เพื่ออ่านจากเซ็นเซอร์ DHT11 หรือ DHT22LAFVIN ESP32 Basic Starter Kit - การนำเข้าไลบรารีชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - โค้ดทำงานอย่างไรคำจำกัดความของตัวแปร
กำหนด GPIO ที่พินข้อมูล DHT เชื่อมต่ออยู่ ในกรณีนี้ จะเชื่อมต่อกับ GPIO 4ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - คำจำกัดความของตัวแปรจากนั้นเลือกประเภทเซนเซอร์ DHT ที่คุณใช้ ในตัวอย่างนี้ampเรากำลังใช้ DHT22 หากคุณใช้เซนเซอร์ประเภทอื่น คุณเพียงแค่ยกเลิกการแสดงความคิดเห็นและแสดงความคิดเห็นเซนเซอร์ประเภทอื่นชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - คำจำกัดความตัวแปร 1

สร้างอินสแตนซ์ของวัตถุ DHT ด้วยประเภทและพินที่เราได้กำหนดไว้ก่อนหน้านี้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - คำจำกัดความตัวแปร 2สร้างแบบอะซิงค์Webวัตถุเซิร์ฟเวอร์อยู่บนพอร์ต 80ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - คำจำกัดความตัวแปร 3อ่านฟังก์ชั่นอุณหภูมิและความชื้น
เราได้สร้างฟังก์ชันสองอย่างขึ้นมา: หนึ่งเพื่ออ่านอุณหภูมิ เราได้สร้างฟังก์ชันสองอย่างขึ้นมา: หนึ่งเพื่ออ่านอุณหภูมิ (readDHTTemperature()) และอีกหนึ่งเพื่ออ่านความชื้น (readDHTHumidity())ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - readDHTHumidityชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การอ่านค่าเซ็นเซอร์การรับค่าการอ่านจากเซ็นเซอร์นั้นง่ายพอๆ กับการใช้เมธอด readTemperature() และ readHumidity() กับอ็อบเจ็กต์ dhtชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - วัตถุเรายังมีเงื่อนไขที่ส่งคืนเครื่องหมายขีดสองอัน (–) ในกรณีที่เซ็นเซอร์ไม่สามารถรับค่าการอ่านได้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การอ่านค่าค่าที่อ่านได้จะถูกส่งกลับเป็นประเภทสตริง หากต้องการแปลงค่า float เป็นสตริง ให้ใช้ฟังก์ชัน String()ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - สายโดยค่าเริ่มต้น เราจะอ่านอุณหภูมิเป็นองศาเซลเซียส หากต้องการทราบอุณหภูมิเป็นองศาฟาเรนไฮต์ ให้ใส่คำอธิบายอุณหภูมิเป็นองศาเซลเซียสและยกเลิกคำอธิบายอุณหภูมิเป็นองศาฟาเรนไฮต์ เพื่อให้ได้ข้อมูลดังต่อไปนี้:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ฟาเรนไฮต์ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ฟาเรนไฮต์ 1อัพโหลดโค้ด
ตอนนี้ อัปโหลดโค้ดไปยัง ESP32 ของคุณ ตรวจสอบให้แน่ใจว่าคุณเลือกบอร์ดและพอร์ต COM ที่ถูกต้อง ขั้นตอนการอัปโหลดโค้ดอ้างอิง
หลังจากอัพโหลดแล้ว ให้เปิด Serial Monitor ที่อัตราบอดเรท 115200 กดปุ่มรีเซ็ต ESP32 ที่อยู่ IP ของ ESP32 ควรพิมพ์ใน Serial เฝ้าสังเกต.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - อัปโหลดรหัสสาธิต
เปิดเบราว์เซอร์และพิมพ์ที่อยู่ IP ของ ESP32 web เซิร์ฟเวอร์ควรแสดงค่าการอ่านเซนเซอร์ล่าสุด
บันทึก: เบราว์เซอร์และ ESP32 ของคุณควรเชื่อมต่อกับ LAN เดียวกัน
โปรดทราบว่าการอ่านอุณหภูมิและความชื้นจะได้รับการอัปเดตโดยอัตโนมัติโดยไม่จำเป็นต้องรีเฟรช web หน้าหนังสือ.ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - การสาธิต 1

โครงการ_10_ESP32_OLED_Display

โปรเจ็กต์นี้จะแสดงวิธีใช้จอแสดงผล OLED SSD0.96 ขนาด 1306 นิ้วกับ ESP32 โดยใช้ Arduino IDE
ขอแนะนำจอแสดงผล OLED ขนาด 0.96 นิ้ว
การ จอแสดงผล OLED ที่เราจะใช้ในบทช่วยสอนนี้คือรุ่น SSD1306 ซึ่งเป็นจอแสดงผลสีเดียวขนาด 0.96 นิ้ว พร้อมด้วยความละเอียด 128×64 พิกเซล ดังแสดงในรูปต่อไปนี้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จอแสดงผล OLEDจอแสดงผล OLED ไม่ต้องการไฟแบ็คไลท์ ซึ่งทำให้มีความคมชัดดีมากในสภาพแวดล้อมที่มืด นอกจากนี้ พิกเซลของจอแสดงผลจะใช้พลังงานเฉพาะเมื่อเปิดอยู่เท่านั้น ดังนั้นจอแสดงผล OLED จึงใช้พลังงานน้อยกว่าเมื่อเทียบกับจอแสดงผลอื่นๆ
เนื่องจากจอแสดงผล OLED ใช้โปรโตคอลการสื่อสาร I2C การเดินสายจึงง่ายมาก คุณสามารถใช้ตารางต่อไปนี้เป็นข้อมูลอ้างอิงได้

พิน OLED ESP32
วิน 3.3โวลต์
ก.ย.ด. ก.ย.ด.
เอส ซี แอล GPIO22
เอสดีเอ GPIO21

แผนผังชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - แผนผังการติดตั้งไลบรารี SSD1306 OLED – ESP32
มีไลบรารีหลายแห่งที่ใช้ควบคุมหน้าจอ OLED ด้วย ESP32
ในบทช่วยสอนนี้เราจะใช้ไลบรารี Adafruit สองรายการ: ไลบรารี Adafruit_SSD1306 และ ไลบรารี่ Adafruit_GFX.
ทำตามขั้นตอนต่อไปเพื่อติดตั้งไลบรารีเหล่านี้

  1. เปิด Arduino IDE ของคุณแล้วไปที่ Sketch > Include Library > Manage Libraries ตัวจัดการไลบรารีควรเปิดขึ้นมา
  2. พิมพ์ “SSD1306” ในกล่องค้นหาและติดตั้งไลบรารี SSD1306 จาก Adafruitชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - OLEDLibrary–
  3. หลังจากติดตั้งไลบรารี SSD1306 จาก Adafruit แล้ว พิมพ์ “GFX” ในกล่องค้นหาและติดตั้งไลบรารีชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ห้องสมุด
  4. หลังจากติดตั้งไลบรารีแล้วให้รีสตาร์ท Arduino IDE ของคุณ

รหัส
หลังจากติดตั้งไลบรารีที่จำเป็นแล้ว ให้เปิดไฟล์ Project_10_ESP32_OLED_Display.ino ในโค้ด Arduino IDE
เราจะเขียนโปรแกรม ESP32 โดยใช้ Arduino IDE ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งส่วนเสริม ESP32 แล้วก่อนที่จะดำเนินการต่อ: (หากคุณได้ทำขั้นตอนนี้แล้ว คุณสามารถข้ามไปที่ขั้นตอนถัดไปได้)
การติดตั้ง ESP32 Add-on ใน Arduino IDEชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 1ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 2ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 3โค้ดทำงานอย่างไร
การนำเข้าไลบรารี
ขั้นแรก คุณต้องนำเข้าไลบรารีที่จำเป็น ไลบรารี Wire ที่ใช้ I2C และไลบรารี Adafruit ที่ใช้เขียนลงในจอแสดงผล: Adafruit_GFX และ Adafruit_SSD1306ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Code Works 1ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Code Works 2เริ่มต้นการใช้งานจอแสดงผล OLED
จากนั้นคุณกำหนดความกว้างและความสูง OLED ของคุณ ในตัวอย่างนี้ampเราใช้จอแสดงผล OLED ขนาด 128×64 หากคุณใช้ขนาดอื่น คุณสามารถเปลี่ยนแปลงได้ในตัวแปร SCREEN_WIDTH และ SCREEN_HEIGHTชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จอแสดงผล OLEDจากนั้น เริ่มต้นวัตถุการแสดงผลด้วยความกว้างและความสูงตามที่กำหนดไว้ก่อนหน้านี้ด้วยโปรโตคอลการสื่อสาร I2C (&Wire)ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - โปรโตคอลการสื่อสารพารามิเตอร์ (-1) หมายถึงจอแสดงผล OLED ของคุณไม่มีพิน RESET หากจอแสดงผล OLED ของคุณมีพิน RESET ควรเชื่อมต่อกับ GPIO ในกรณีนั้น คุณควรส่งหมายเลข GPIO เป็นพารามิเตอร์
ในการตั้งค่า () ให้เริ่มต้นการทำงานของ Serial Monitor ที่อัตราบอด 115200 เพื่อจุดประสงค์ในการดีบักชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - วัตถุประสงค์เริ่มต้นจอแสดงผล OLED ด้วยวิธีการ begin() ดังต่อไปนี้:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - display.beginชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Serial.printlnนอกจากนี้ ตัวอย่างนี้ยังพิมพ์ข้อความบน Serial Monitor ในกรณีที่เราไม่สามารถเชื่อมต่อกับจอแสดงผลได้

ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - Serial.println 1หากคุณใช้จอแสดงผล OLED อื่น คุณอาจต้องเปลี่ยนที่อยู่ OLED ในกรณีของเรา ที่อยู่คือ 0x3Cชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ที่อยู่หลังจากเริ่มการทำงานจอแสดงผลแล้ว ให้เพิ่มการหน่วงเวลาสองวินาที เพื่อให้ OLED มีเวลาเพียงพอในการเริ่มการทำงานก่อนที่จะเขียนข้อความ:ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ดีเลย์จอแสดงผลชัดเจน ตั้งค่าขนาดตัวอักษร สี และเขียนข้อความได้
หลังจากเริ่มการแสดงผลแล้ว ให้ล้างบัฟเฟอร์การแสดงผลโดยใช้เมธอด clearDisplay():ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จอแสดงผล

ก่อนที่จะเขียนข้อความ คุณต้องตั้งค่าขนาดตัวอักษร สี และตำแหน่งที่จะแสดงผลข้อความบน OLED
ตั้งค่าขนาดตัวอักษรโดยใช้เมธอด setTextSize():ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จอแสดงผล 1ตั้งค่าสีตัวอักษรด้วยวิธี setTextColor():
WHITE กำหนดอักษรสีขาวและพื้นหลังสีดำ
กำหนดตำแหน่งที่ข้อความเริ่มต้นโดยใช้เมธอด setCursor(x,y) ในกรณีนี้ เราจะตั้งค่าให้ข้อความเริ่มต้นที่พิกัด (0,0) ซึ่งอยู่ที่มุมซ้ายบนชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - setTextColor 1สุดท้ายคุณสามารถส่งข้อความไปที่จอแสดงผลโดยใช้เมธอด println() ดังต่อไปนี้ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - รหัส 5จากนั้นคุณจะต้องเรียกใช้เมธอด display() เพื่อแสดงข้อความบนหน้าจอจริงชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - จอแสดงผล

ไลบรารี Adafruit OLED นำเสนอวิธีการที่เป็นประโยชน์สำหรับการเลื่อนข้อความได้อย่างง่ายดาย

  • startscrollright(0x00, 0x0F): เลื่อนข้อความจากซ้ายไปขวา
  • startscrollleft(0x00, 0x0F): เลื่อนข้อความจากขวาไปซ้าย
  • startscrolldiagright(0x00, 0x07): เลื่อนข้อความจากมุมล่างซ้ายไปยังมุมบนขวา startscrolldiagleft(0x00, 0x07): เลื่อนข้อความจากมุมล่างขวาไปยังมุมบนซ้าย

อัพโหลดโค้ด
ตอนนี้อัปโหลดโค้ดไปยัง ESP32 ของคุณ ขั้นตอนอ้างอิงโค้ดอัปโหลด
หลังจากอัพโหลดโค้ดแล้ว OLED จะแสดงข้อความเลื่อนชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 - ข้อความเลื่อนได้โลโก้ลาฟวิน

เอกสาร / แหล่งข้อมูล

ชุดเริ่มต้นพื้นฐาน LAFVIN ESP32 [พีดีเอฟ] คู่มือการใช้งาน
ชุดเริ่มต้นพื้นฐาน ESP32, ESP32, ชุดเริ่มต้นพื้นฐาน, ชุดเริ่มต้น

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *