Λογότυπο LAFVINESP32 Basic Starter
Εργαλειοθήκη

Λίστα συσκευασίας

LAFVIN ESP32 Basic Starter Kit - PackingList

ESP32 Εισαγωγή

Νέος στο ESP32; Ξεκινήστε εδώ! Το ESP32 είναι μια σειρά μικροελεγκτών χαμηλού κόστους και χαμηλής κατανάλωσης System on a Chip (SoC) που αναπτύχθηκε από την Espressif που περιλαμβάνει ασύρματες δυνατότητες Wi-Fi και Bluetooth και επεξεργαστή διπλού πυρήνα. Εάν είστε εξοικειωμένοι με το ESP8266, το ESP32 είναι ο διάδοχός του, γεμάτο με πολλές νέες δυνατότητες.LAFVIN ESP32 Basic Starter Kit - ESP32 ΕισαγωγήΠροδιαγραφές ESP32
Εάν θέλετε να γίνετε λίγο πιο τεχνικοί και συγκεκριμένοι, μπορείτε να ρίξετε μια ματιά στις παρακάτω λεπτομερείς προδιαγραφές του ESP32 (πηγή: http://esp32.net/)—για περισσότερες λεπτομέρειες, ελέγξτε το φύλλο δεδομένων):

  • Ασύρματη συνδεσιμότητα WiFi: Ρυθμός δεδομένων 150.0 Mbps με HT40
  • Bluetooth: BLE (Bluetooth Low Energy) και Bluetooth Classic
  • Επεξεργαστής: Μικροεπεξεργαστής Tensilica Xtensa Dual-Core 32-bit LX6, που λειτουργεί στα 160 ή 240 MHz
  • Μνήμη:
  • ROM: 448 KB (για εκκίνηση και βασικές λειτουργίες)
  • SRAM: 520 KB (για δεδομένα και οδηγίες)
  • RTC fas SRAM: 8 KB (για αποθήκευση δεδομένων και κύρια CPU κατά την εκκίνηση RTC από τη λειτουργία βαθιάς αναστολής)
  • RTC αργή SRAM: 8 KB (για πρόσβαση με συν-επεξεργαστή κατά τη λειτουργία βαθιάς αναστολής λειτουργίας) eFuse: 1 Kbit (εκ των οποίων 256 bit χρησιμοποιούνται για το σύστημα (διεύθυνση MAC και διαμόρφωση τσιπ) και τα υπόλοιπα 768 bit δεσμεύονται για εφαρμογές πελατών, συμπεριλαμβανομένων Flash-Κρυπτογράφηση και Chip-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, π.χample, κατά τον βαθύ ύπνο.
Περιφερειακή Είσοδος/Έξοδος:

  • περιφερειακή διασύνδεση με DMA που περιλαμβάνει χωρητική αφή
  • ADC (Μετατροπέας αναλογικού σε ψηφιακό)
  • DAC (μετατροπέας ψηφιακού σε αναλογικό)
  • I²C (Inter-Integrated Circuit)
  • UART (Καθολικός ασύγχρονος δέκτης/πομπός)
  • SPI (σειριακή περιφερειακή διεπαφή)
  • I²S (Integrated Interchip Sound)
  • RMII (Μειωμένη διεπαφή ανεξάρτητη από τα μέσα)
  • PWM (Διαμόρφωση πλάτους παλμού)

Ασφάλεια: επιταχυντές υλικού για AES και SSL/TLS

Πίνακες ανάπτυξης ESP32

Το ESP32 αναφέρεται στο γυμνό τσιπ ESP32. Ωστόσο, ο όρος "ESP32" χρησιμοποιείται επίσης για να αναφέρεται σε πλακέτες ανάπτυξης ESP32. Η χρήση γυμνών τσιπ ESP32 δεν είναι εύκολη ή πρακτική, ειδικά κατά την εκμάθηση, τη δοκιμή και τη δημιουργία πρωτοτύπων. Τις περισσότερες φορές, θα θέλετε να χρησιμοποιήσετε μια πλακέτα ανάπτυξης ESP32.
Θα χρησιμοποιήσουμε την πλακέτα ESP32 DEVKIT V1 ως αναφορά. Η παρακάτω εικόνα δείχνει την πλακέτα ESP32 DEVKIT V1, έκδοση με 30 ακίδες GPIO.LAFVIN ESP32 Basic Starter Kit - ESP32 Development BoardsΠροδιαγραφές – ESP32 DEVKIT V1
Ο παρακάτω πίνακας δείχνει μια περίληψη των χαρακτηριστικών και των προδιαγραφών της πλακέτας ESP32 DEVKIT V1 DOIT:

Αριθμός πυρήνων 2 (διπύρηνος)
Wi-Fi 2.4 GHz έως 150 Mbit/s
Bluetooth BLE (Bluetooth Low Energy) και παλαιού τύπου Bluetooth
Αρχιτεκτονική 32 bit
Συχνότητα ρολογιού Έως 240 MHz
ΕΜΒΟΛΟ 512 KB
Καρφίτσες 30 (ανάλογα με το μοντέλο)
Περιφερειακά Capacitive touch, ADC (μετατροπέας αναλογικού σε ψηφιακό), DAC (μετατροπέας ψηφιακού σε αναλογικό), 12C (Inter-Integrated Circuit), UART (καθολικός ασύγχρονος δέκτης/πομπός), CAN 2.0 (Netwokr Περιοχής Ελεγκτή), SPI (Σειριακή περιφερειακή διεπαφή) , 12S (Integrated Inter-IC
Ήχος), RMII (Μειωμένη διεπαφή ανεξάρτητη από τα μέσα), PWM (διαμόρφωση πλάτους παλμού) και άλλα.
Ενσωματωμένα κουμπιά Κουμπιά RESET και BOOT
Ενσωματωμένα LED ενσωματωμένο μπλε LED συνδεδεμένο στο GPIO2. ενσωματωμένο κόκκινο LED που δείχνει ότι η πλακέτα τροφοδοτείται
USB σε UART
γέφυρα
CP2102

LAFVIN ESP32 Basic Starter Kit - ESP32 DEVKITΈρχεται με μια διεπαφή microUSB που μπορείτε να χρησιμοποιήσετε για να συνδέσετε την πλακέτα στον υπολογιστή σας για να ανεβάσετε κώδικα ή να χρησιμοποιήσετε τροφοδοσία.
Χρησιμοποιεί το τσιπ CP2102 (USB σε UART) για να επικοινωνεί με τον υπολογιστή σας μέσω μιας θύρας COM χρησιμοποιώντας μια σειριακή διεπαφή. Ένα άλλο δημοφιλές τσιπ είναι το CH340. Ελέγξτε τι είναι ο μετατροπέας τσιπ USB σε UART στην πλακέτα σας, επειδή θα χρειαστεί να εγκαταστήσετε τα απαιτούμενα προγράμματα οδήγησης, ώστε ο υπολογιστής σας να μπορεί να επικοινωνεί με την πλακέτα (περισσότερες πληροφορίες σχετικά αργότερα σε αυτόν τον οδηγό).
Αυτή η πλακέτα διαθέτει επίσης ένα κουμπί RESET (μπορεί να φέρει την ένδειξη EN) για επανεκκίνηση της πλακέτας και ένα κουμπί BOOT για να τεθεί η πλακέτα σε λειτουργία αναβοσβήνει (διατίθεται για λήψη κωδικού). Σημειώστε ότι ορισμένες πλακέτες ενδέχεται να μην έχουν κουμπί BOOT.
Έρχεται επίσης με ένα ενσωματωμένο μπλε LED που είναι εσωτερικά συνδεδεμένο στο GPIO 2. Αυτό το LED είναι χρήσιμο για εντοπισμό σφαλμάτων για να δώσει κάποιο είδος οπτικής φυσικής εξόδου. Υπάρχει επίσης ένα κόκκινο LED που ανάβει όταν παρέχετε ρεύμα στην πλακέτα.LAFVIN ESP32 Basic Starter Kit -boardESP32 Pinout
Τα περιφερειακά ESP32 περιλαμβάνουν:

  • 18 κανάλια μετατροπέα αναλογικού σε ψηφιακό (ADC).
  • 3 διεπαφές SPI
  • 3 διεπαφές UART
  • 2 διεπαφές I2C
  • 16 κανάλια εξόδου PWM
  • 2 μετατροπείς ψηφιακού σε αναλογικό (DAC)
  • 2 διεπαφές I2S
  • 10 GPIO χωρητικής ανίχνευσης

Οι δυνατότητες ADC (μετατροπέας αναλογικού σε ψηφιακό) και DAC (μετατροπέας ψηφιακού σε αναλογικό) αντιστοιχίζονται σε συγκεκριμένες στατικές ακίδες. Ωστόσο, μπορείτε να αποφασίσετε ποιες ακίδες είναι UART, I2C, SPI, PWM κ.λπ. – απλά πρέπει να τις αντιστοιχίσετε στον κωδικό. Αυτό είναι δυνατό λόγω της δυνατότητας πολυπλεξίας του τσιπ ESP32.
Παρόλο που μπορείτε να ορίσετε τις ιδιότητες των ακίδων στο λογισμικό, υπάρχουν καρφίτσες που έχουν εκχωρηθεί από προεπιλογή όπως φαίνεται στην παρακάτω εικόναLAFVIN ESP32 Basic Starter Kit - ESP32 PinoutΕπιπλέον, υπάρχουν καρφίτσες με συγκεκριμένα χαρακτηριστικά που τα καθιστούν κατάλληλα ή όχι για ένα συγκεκριμένο έργο. Ο παρακάτω πίνακας δείχνει ποιες ακίδες είναι καλύτερο να χρησιμοποιηθούν ως είσοδοι, έξοδοι και ποιες πρέπει να είστε προσεκτικοί.
Οι πινέζες που επισημαίνονται με πράσινο είναι ΟΚ για χρήση. Αυτά που επισημαίνονται με κίτρινο χρώμα είναι εντάξει για χρήση, αλλά πρέπει να δώσετε προσοχή γιατί μπορεί να έχουν μια απροσδόκητη συμπεριφορά κυρίως κατά την εκκίνηση. Οι ακίδες που επισημαίνονται με κόκκινο δεν συνιστάται να χρησιμοποιούνται ως είσοδοι ή έξοδοι.

GP IO Εισαγωγή Παραγωγή Σημειώσεις
0 τράβηξε επάνω OK εξάγει σήμα PWM κατά την εκκίνηση, πρέπει να είναι LOW για να μπει σε λειτουργία αναβοσβήνει
1 TX pin 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 μόνο εισαγωγή

Συνεχίστε την ανάγνωση για μια πιο λεπτομερή και σε βάθος ανάλυση των GPIO του ESP32 και των λειτουργιών του.
Εισαγάγετε μόνο καρφίτσες
Τα GPIO 34 έως 39 είναι GPI - μόνο ακίδες εισόδου. Αυτές οι ακίδες δεν έχουν εσωτερικές αντιστάσεις έλξης ή έλξης. Δεν μπορούν να χρησιμοποιηθούν ως έξοδοι, επομένως χρησιμοποιήστε αυτές τις ακίδες μόνο ως εισόδους:

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

SPI flash ενσωματωμένο στο ESP-WROOM-32
Τα GPIO 6 έως GPIO 11 εκτίθενται σε ορισμένες πλακέτες ανάπτυξης ESP32. Ωστόσο, αυτές οι ακίδες συνδέονται με το ενσωματωμένο φλας SPI στο τσιπ ESP-WROOM-32 και δεν συνιστώνται για άλλες χρήσεις. Επομένως, μην χρησιμοποιείτε αυτές τις καρφίτσες στα έργα σας:

  • GPIO 6 (SCK/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

Χωρητικά GPIO αφής
Το ESP32 διαθέτει 10 εσωτερικούς χωρητικούς αισθητήρες αφής. Αυτά μπορούν να αισθανθούν διακυμάνσεις σε οτιδήποτε έχει ηλεκτρικό φορτίο, όπως το ανθρώπινο δέρμα. Έτσι, μπορούν να ανιχνεύουν παραλλαγές που προκαλούνται όταν αγγίζετε τα GPIO με ένα δάχτυλο. Αυτές οι ακίδες μπορούν εύκολα να ενσωματωθούν σε χωρητικά μαξιλαράκια και να αντικαταστήσουν τα μηχανικά κουμπιά. Οι χωρητικές ακίδες αφής μπορούν επίσης να χρησιμοποιηθούν για την αφύπνιση του ESP32 από βαθύ ύπνο. Αυτοί οι εσωτερικοί αισθητήρες αφής συνδέονται με αυτά τα GPIO:

  • T0 (GPIO 4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO 15)
  • T4 (GPIO 13)
  • T5 (GPIO 12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

Αναλογικός σε ψηφιακός μετατροπέας (ADC)
Το ESP32 έχει κανάλια εισόδου ADC 18 x 12 bit (ενώ το ESP8266 έχει μόνο 1x 10 bit ADC). Αυτά είναι τα GPIO που μπορούν να χρησιμοποιηθούν ως ADC και αντίστοιχα κανάλια:

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

Σημείωμα: Οι ακίδες ADC2 δεν μπορούν να χρησιμοποιηθούν όταν χρησιμοποιείται Wi-Fi. Επομένως, εάν χρησιμοποιείτε Wi-Fi και αντιμετωπίζετε πρόβλημα με τη λήψη της τιμής από ένα ADC2 GPIO, μπορείτε να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε ένα ADC1 GPIO. Αυτό θα πρέπει να λύσει το πρόβλημά σας.
Τα κανάλια εισόδου ADC έχουν ανάλυση 12 bit. Αυτό σημαίνει ότι μπορείτε να λάβετε αναλογικές μετρήσεις από 0 έως 4095, στις οποίες το 0 αντιστοιχεί σε 0V και 4095 έως 3.3V. Μπορείτε επίσης να ορίσετε την ανάλυση των καναλιών σας στον κώδικα και την περιοχή ADC.
Οι ακίδες ADC ESP32 δεν έχουν γραμμική συμπεριφορά. Πιθανότατα δεν θα μπορείτε να διακρίνετε μεταξύ 0 και 0.1 V ή μεταξύ 3.2 και 3.3 V. Πρέπει να το έχετε υπόψη σας όταν χρησιμοποιείτε τις ακίδες ADC. Θα έχετε μια συμπεριφορά παρόμοια με αυτή που φαίνεται στο παρακάτω σχήμα.LAFVIN ESP32 Basic Starter Kit - συμπεριφοράΜετατροπέας ψηφιακού σε αναλογικό (DAC)
Υπάρχουν κανάλια DAC 2 x 8 bit στο ESP32 για μετατροπή ψηφιακών σημάτων σε αναλογική έντασηtage έξοδοι σήματος. Αυτά είναι τα κανάλια DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO
Υπάρχει υποστήριξη RTC GPIO στο ESP32. Τα GPIO που δρομολογούνται στο υποσύστημα χαμηλής κατανάλωσης RTC μπορούν να χρησιμοποιηθούν όταν το ESP32 βρίσκεται σε βαθύ ύπνο. Αυτά τα RTC GPIO μπορούν να χρησιμοποιηθούν για την αφύπνιση του ESP32 από βαθύ ύπνο όταν το Ultra Low
Ο συν-επεξεργαστής Power (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)

PWM
Ο ελεγκτής PWM LED ESP32 έχει 16 ανεξάρτητα κανάλια που μπορούν να ρυθμιστούν ώστε να παράγουν σήματα PWM με διαφορετικές ιδιότητες. Όλες οι ακίδες που μπορούν να λειτουργήσουν ως έξοδοι μπορούν να χρησιμοποιηθούν ως ακίδες PWM (τα GPIO 34 έως 39 δεν μπορούν να δημιουργήσουν PWM).
Για να ορίσετε ένα σήμα PWM, πρέπει να ορίσετε αυτές τις παραμέτρους στον κώδικα:

  • Συχνότητα σήματος.
  • Κύκλος εργασίας;
  • Κανάλι PWM;
  • GPIO όπου θέλετε να εξάγετε το σήμα.

I2C
Το ESP32 έχει δύο κανάλια I2C και κάθε pin μπορεί να οριστεί ως SDA ή SCL. Όταν χρησιμοποιείτε το ESP32 με το Arduino IDE, οι προεπιλεγμένες ακίδες I2C είναι:

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

Εάν θέλετε να χρησιμοποιήσετε άλλες ακίδες όταν χρησιμοποιείτε τη βιβλιοθήκη καλωδίων, πρέπει απλώς να καλέσετε:
Wire.begin(SDA, SCL);
SPI
Από προεπιλογή, η αντιστοίχιση pin για το SPI είναι:

SPI MOSI ΜΙΣΟ CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

Διακοπές
Όλα τα GPIO μπορούν να διαμορφωθούν ως διακοπές.
Καρφίτσες ιμάντων
Το τσιπ ESP32 έχει τις ακόλουθες καρφίτσες:

  • GPIO 0 (πρέπει να είναι LOW για να μπείτε σε λειτουργία εκκίνησης)
  • GPIO 2 (πρέπει να είναι αιωρούμενο ή LOW κατά την εκκίνηση)
  • GPIO 4
  • GPIO 5 (πρέπει να είναι HIGH κατά την εκκίνηση)
  • GPIO 12 (πρέπει να είναι ΧΑΜΗΛΟ κατά την εκκίνηση)
  • GPIO 15 (πρέπει να είναι HIGH κατά την εκκίνηση)

Αυτά χρησιμοποιούνται για τη θέση του ESP32 σε λειτουργία bootloader ή flashing. Στις περισσότερες πλακέτες ανάπτυξης με ενσωματωμένο USB/Serial, δεν χρειάζεται να ανησυχείτε για την κατάσταση αυτών των ακίδων. Η πλακέτα τοποθετεί τις ακίδες στη σωστή κατάσταση για αναβοσβήνει ή λειτουργία εκκίνησης. Περισσότερες πληροφορίες σχετικά με την επιλογή λειτουργίας εκκίνησης ESP32 μπορείτε να βρείτε εδώ.
Ωστόσο, εάν έχετε περιφερειακά συνδεδεμένα σε αυτές τις ακίδες, μπορεί να έχετε πρόβλημα να προσπαθήσετε να ανεβάσετε νέο κώδικα, να αναβοσβήσετε το ESP32 με νέο υλικολογισμικό ή να επαναφέρετε την πλακέτα. Εάν έχετε κάποια περιφερειακά συνδεδεμένα στις ακίδες στερέωσης και αντιμετωπίζετε προβλήματα με τη μεταφόρτωση του κώδικα ή το αναβοσβήσιμο του ESP32, μπορεί να οφείλεται στο ότι αυτά τα περιφερειακά εμποδίζουν το ESP32 να εισέλθει στη σωστή λειτουργία. Διαβάστε την τεκμηρίωση της επιλογής λειτουργίας εκκίνησης για να σας καθοδηγήσει στη σωστή κατεύθυνση. Μετά την επαναφορά, το φλας ή την εκκίνηση, αυτές οι ακίδες λειτουργούν όπως αναμένεται.
Καρφίτσες HIGH στο Boot
Ορισμένα GPIO αλλάζουν την κατάστασή τους σε HIGH ή εξάγουν σήματα PWM κατά την εκκίνηση ή την επαναφορά.
Αυτό σημαίνει ότι εάν έχετε συνδεδεμένες εξόδους σε αυτά τα GPIO, ενδέχεται να λάβετε απροσδόκητα αποτελέσματα κατά την επαναφορά ή την εκκίνηση του ESP32.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 έως GPIO 11 (συνδεδεμένο με την ενσωματωμένη μνήμη flash SPI ESP32 – δεν συνιστάται η χρήση).
  • GPIO 14
  • GPIO 15

Ενεργοποίηση (EN)
Το Enable (EN) είναι η ακίδα ενεργοποίησης του ρυθμιστή 3.3 V. Είναι τραβηγμένο προς τα πάνω, οπότε συνδέστε το στη γείωση για να απενεργοποιήσετε τον ρυθμιστή 3.3 V. Αυτό σημαίνει ότι μπορείτε να χρησιμοποιήσετε αυτήν την καρφίτσα συνδεδεμένη με ένα κουμπί για να επανεκκινήσετε το ESP32 σας, π.χample.
Το ρεύμα GPIO σύρθηκε
Το απόλυτο μέγιστο ρεύμα που αντλείται ανά GPIO είναι 40 mA σύμφωνα με την ενότητα "Συνιστώμενες συνθήκες λειτουργίας" στο φύλλο δεδομένων ESP32.
Ενσωματωμένος αισθητήρας εφέ Hall ESP32
Το ESP32 διαθέτει επίσης έναν ενσωματωμένο αισθητήρα εφέ αίθουσας που ανιχνεύει αλλαγές στο μαγνητικό πεδίο στο περιβάλλον του
ESP32 Arduino IDE
Υπάρχει ένα πρόσθετο για το 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/Main/Software
Ποια έκδοση Arduino IDE προτείνουμε; Αυτή τη στιγμή υπάρχουν μερικά plugins για το ESP32 (όπως το SPIFFS FileSystem Uploader Plugin) που δεν υποστηρίζονται ακόμη στο Arduino 2. Επομένως, εάν σκοπεύετε να χρησιμοποιήσετε την προσθήκη SPIFFS στο μέλλον, συνιστούμε να εγκαταστήσετε την παλαιού τύπου έκδοση 1.8.X. Απλώς πρέπει να κάνετε κύλιση προς τα κάτω στη σελίδα λογισμικού Arduino για να το βρείτε.
Εγκατάσταση πρόσθετου ESP32 στο Arduino IDE
Για να εγκαταστήσετε την πλακέτα ESP32 στο Arduino IDE, ακολουθήστε τις παρακάτω οδηγίες:

  1. Στο Arduino IDE, μεταβείτε στο File> ΠροτιμήσειςLAFVIN ESP32 Basic Starter Kit - Προτιμήσεις
  2. Εισαγάγετε τα ακόλουθα στο «Πρόσθετος Διευθυντής Διοικητικού Συμβουλίου URLπεδίο s”:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Στη συνέχεια, κάντε κλικ στο κουμπί "OK":LAFVIN ESP32 Basic Starter Kit - Κουμπί "OK".Σημείωμα: εάν έχετε ήδη τις πλακέτες 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
Ανοίξτε το Boards Manager. Μεταβείτε στα Εργαλεία > Πίνακας > Διαχειριστής πινάκων…LAFVIN ESP32 Basic Starter Kit - EspressifΑναζήτηση για ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 Basic Starter Kit - EspressifΑυτό είναι όλο. Θα πρέπει να εγκατασταθεί μετά από λίγα δευτερόλεπτα.LAFVIN ESP32 Basic Starter Kit - εγκατεστημένο

Μεταφορτώστε τον κωδικό δοκιμής

Συνδέστε την πλακέτα ESP32 στον υπολογιστή σας. Με ανοιχτό το Arduino IDE, ακολουθήστε τα παρακάτω βήματα:

  1. Επιλέξτε την πλακέτα σας στο μενού Εργαλεία > Πίνακας (στην περίπτωσή μου είναι η μονάδα DEV ESP32)LAFVIN ESP32 Basic Starter Kit - Tools Board
  2. Επιλέξτε τη Θύρα (αν δεν βλέπετε τη Θύρα COM στο Arduino IDE, πρέπει να εγκαταστήσετε τα προγράμματα οδήγησης CP210x USB σε UART Bridge VCP):LAFVIN ESP32 Basic Starter Kit - UART Bridge
  3. Ανοίξτε το παρακάτω π.χample under File > Π.χamples > WiFi
    (ESP32) > WiFiScanLAFVIN ESP32 Basic Starter Kit - WiFiScanLAFVIN ESP32 Basic Starter Kit - WiFiScan 1
  4. Ανοίγει ένα νέο σκίτσο στο Arduino IDE σας:LAFVIN ESP32 Basic Starter Kit - Arduino IDE
  5. Πατήστε το κουμπί Upload στο Arduino IDE. Περιμένετε μερικά δευτερόλεπτα μέχρι να μεταγλωττιστεί και να ανέβει ο κώδικας στον πίνακα σας.LAFVIN ESP32 Basic Starter Kit - πλακέτα
  6. Εάν όλα πήγαν όπως αναμενόταν, θα πρέπει να δείτε την ένδειξη "Ολοκληρώθηκε η μεταφόρτωση". μήνυμα.LAFVIN ESP32 Basic Starter Kit - Ολοκληρώθηκε η μεταφόρτωση
  7. Ανοίξτε τη σειριακή οθόνη Arduino IDE με ρυθμό baud 115200:LAFVIN ESP32 Basic Starter Kit - Monitor
  8. Πατήστε το ενσωματωμένο κουμπί ESP32 Enable και θα δείτε τα διαθέσιμα δίκτυα κοντά στο ESP32 σας:LAFVIN ESP32 Basic Starter Kit - Κουμπί ενεργοποίησης

Αντιμετώπιση προβλημάτων

Εάν προσπαθήσετε να ανεβάσετε ένα νέο σκίτσο στο ESP32 σας και λάβετε αυτό το μήνυμα λάθους "Παρουσιάστηκε μοιραίο σφάλμα: Απέτυχε η σύνδεση στο ESP32: Λήγει το χρονικό όριο... Σύνδεση...". Σημαίνει ότι το ESP32 σας δεν βρίσκεται σε λειτουργία αναβοσβήνει/ανεβάζοντας.
Έχοντας επιλέξει το σωστό όνομα πλακέτας και COM por, ακολουθήστε τα εξής βήματα:
Κρατήστε πατημένο το κουμπί «BOOT» στην πλακέτα ESP32LAFVIN ESP32 Basic Starter Kit - “BOOT”

  • Πατήστε το κουμπί "Μεταφόρτωση" στο Arduino IDE για να ανεβάσετε το σκίτσο σας:LAFVIN ESP32 Basic Starter Kit - ICON 6
  • Αφού δείτε το «Σύνδεση…». μήνυμα στο Arduino IDE σας, αφήστε το δάχτυλο από το κουμπί "BOOT":LAFVIN ESP32 Basic Starter Kit - «Ολοκληρώθηκε η μεταφόρτωση
  • Μετά από αυτό, θα πρέπει να δείτε το μήνυμα "Ολοκληρώθηκε η μεταφόρτωση".
    Αυτό είναι όλο. Το ESP32 θα πρέπει να έχει το νέο σκίτσο σε λειτουργία. Πατήστε το κουμπί "ENABLE" για να επανεκκινήσετε το ESP32 και να εκτελέσετε το νέο σκίτσο που ανεβάσατε.
    Θα πρέπει επίσης να επαναλαμβάνετε αυτή τη σειρά κουμπιών κάθε φορά που θέλετε να ανεβάσετε ένα νέο σκίτσο.

Έργο 1 ESP32 Είσοδοι Έξοδοι

Σε αυτόν τον οδηγό εκκίνησης θα μάθετε πώς να διαβάζετε ψηφιακές εισόδους όπως διακόπτη κουμπιού και να ελέγχετε τις ψηφιακές εξόδους όπως ένα LED χρησιμοποιώντας το ESP32 με Arduino IDE.
Προαπαιτούμενα
Θα προγραμματίσουμε το ESP32 χρησιμοποιώντας το Arduino IDE. Επομένως, βεβαιωθείτε ότι έχετε εγκαταστήσει το πρόσθετο των πλακών ESP32 πριν συνεχίσετε:

  • Εγκατάσταση πρόσθετου ESP32 στο Arduino IDE

Ψηφιακές έξοδοι ελέγχου ESP32
Αρχικά, πρέπει να ορίσετε το GPIO που θέλετε να ελέγξετε ως OUTPUT. Χρησιμοποιήστε τη συνάρτηση pinMode() ως εξής:
pinMode(GPIO, OUTPUT);
Για να ελέγξετε μια ψηφιακή έξοδο, χρειάζεται απλώς να χρησιμοποιήσετε τη συνάρτηση digitalWrite(), η οποία δέχεται ως ορίσματα, το GPIO (αριθμός int) στο οποίο αναφέρεστε και την κατάσταση, είτε HIGH είτε LOW.
digitalWrite (GPIO, STATE);
Όλα τα GPIO μπορούν να χρησιμοποιηθούν ως έξοδοι εκτός από τα GPIO 6 έως 11 (συνδεδεμένα με το ενσωματωμένο φλας SPI) και τα GPIO 34, 35, 36 και 39 (εισαγωγή μόνο GPIO).
Μάθετε περισσότερα για τα ESP32 GPIO: ESP32 GPIO Reference Guide
Ψηφιακές εισόδους ανάγνωσης ESP32
Αρχικά, ορίστε το GPIO που θέλετε να διαβάσετε ως INPUT, χρησιμοποιώντας τη συνάρτηση pinMode() ως εξής:
pinMode(GPIO, INPUT);
Για να διαβάσετε μια ψηφιακή είσοδο, όπως ένα κουμπί, χρησιμοποιείτε τη συνάρτηση digitalRead(), η οποία δέχεται ως όρισμα το GPIO (αριθμός int) στο οποίο αναφέρεστε.
digitalRead(GPIO);
Όλα τα GPIO ESP32 μπορούν να χρησιμοποιηθούν ως είσοδοι, εκτός από τα GPIO 6 έως 11 (συνδεδεμένα με το ενσωματωμένο φλας SPI).
Μάθετε περισσότερα για τα ESP32 GPIO: ESP32 GPIO Reference Guide
Έργο Example
Για να σας δείξουμε πώς να χρησιμοποιείτε ψηφιακές εισόδους και ψηφιακές εξόδους, θα δημιουργήσουμε ένα απλό έργο π.χampμε ένα κουμπί και ένα LED. Θα διαβάσουμε την κατάσταση του κουμπιού και θα ανάψουμε το LED ανάλογα όπως φαίνεται στο παρακάτω σχήμα.LAFVIN ESP32 Basic Starter Kit - Project Example

Απαιτούμενα εξαρτήματα
Ακολουθεί μια λίστα με τα εξαρτήματα που χρειάζεστε για να φτιάξετε το κύκλωμα:

  • ESP32 DEVKIT V1
  • LED 5 mm
  • Αντίσταση 220 Ohm
  • Κουμπί
  • Αντίσταση 10k Ohm
  • Breadboard
  • Καλώδια βραχυκυκλωτήρα

Σχηματικό Διάγραμμα
Πριν προχωρήσετε, πρέπει να συναρμολογήσετε ένα κύκλωμα με ένα LED και ένα κουμπί.
Θα συνδέσουμε το LED στο GPIO 5 και το κουμπί στο GPIO 4.LAFVIN ESP32 Basic Starter Kit - Σχηματικό διάγραμμαΚώδικας
Ανοίξτε τον κωδικό Project_1_ESP32_Inputs_Outputs.ino στο arduino IDELAFVIN ESP32 Basic Starter Kit - ΚωδLAFVIN ESP32 Basic Starter Kit - Κωδικός 1Πώς λειτουργεί ο Κώδικας
Στις ακόλουθες δύο γραμμές, δημιουργείτε μεταβλητές για να εκχωρήσετε καρφίτσες:

LAFVIN ESP32 Basic Starter Kit - Code WorksΤο κουμπί είναι συνδεδεμένο στο GPIO 4 και το LED είναι συνδεδεμένο στο GPIO 5. Όταν χρησιμοποιείτε το Arduino IDE με το ESP32, το 4 αντιστοιχεί στο GPIO 4 και το 5 αντιστοιχεί στο GPIO 5.
Στη συνέχεια, δημιουργείτε μια μεταβλητή για να κρατήσετε την κατάσταση του κουμπιού. Από προεπιλογή, είναι 0 (δεν πατιέται).
int buttonState = 0;
Στο setup(), αρχικοποιείτε το κουμπί ως INPUT και το LED ως OUTPUT.
Για αυτό, χρησιμοποιείτε τη συνάρτηση pinMode() που δέχεται την καρφίτσα στην οποία αναφέρεστε και τη λειτουργία: INPUT ή OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Στο loop() είναι όπου διαβάζετε την κατάσταση του κουμπιού και ρυθμίζετε ανάλογα το LED.
Στην επόμενη γραμμή, διαβάζετε την κατάσταση του κουμπιού και την αποθηκεύετε στη μεταβλητή buttonState.
Όπως είδαμε προηγουμένως, χρησιμοποιείτε τη συνάρτηση digitalRead().
buttonState = digitalRead(buttonPin);
Η ακόλουθη δήλωση if, ελέγχει εάν η κατάσταση του κουμπιού είναι ΥΨΗΛΗ. Εάν είναι, ανάβει το LED χρησιμοποιώντας τη συνάρτηση digitalWrite() που δέχεται ως όρισμα το ledPin και την κατάσταση HIGH.
εάν (buttonState == HIGH)LAFVIN ESP32 Basic Starter Kit - Code Works 1Εάν η κατάσταση του κουμπιού δεν είναι ΥΨΗΛΗ, απενεργοποιείτε το LED. Απλώς ορίστε το LOW ως δεύτερο όρισμα στη συνάρτηση digitalWrite().LAFVIN ESP32 Basic Starter Kit - digitalWriteΑνέβασμα του Κώδικα
Πριν κάνετε κλικ στο κουμπί αποστολής, μεταβείτε στα Εργαλεία > Πίνακας και επιλέξτε την πλακέτα :DOIT ESP32 DEVKIT V1.
Μεταβείτε στα Εργαλεία > Θύρα και επιλέξτε τη θύρα COM στην οποία είναι συνδεδεμένο το ESP32. Στη συνέχεια, πατήστε το κουμπί μεταφόρτωσης και περιμένετε για το μήνυμα "Ολοκληρώθηκε η μεταφόρτωση".LAFVIN ESP32 Basic Starter Kit - ICON 7Σημείωση: Εάν δείτε πολλές κουκκίδες (σύνδεση…__…__) στο παράθυρο εντοπισμού σφαλμάτων και το μήνυμα "Αποτυχία σύνδεσης στο ESP32: Λήξη χρόνου αναμονής για κεφαλίδα πακέτου", αυτό σημαίνει ότι πρέπει να πατήσετε το ESP32 on-board BOOT κουμπί μετά τις τελείες
αρχίστε να εμφανίζονται.Αντιμετώπιση προβλημάτων

Επίδειξη

Αφού ανεβάσετε τον κωδικό, δοκιμάστε το κύκλωμά σας. Το LED σας θα πρέπει να ανάβει όταν πατάτε το κουμπί:LAFVIN ESP32 Basic Starter Kit - ΕπίδειξηΚαι απενεργοποιήστε όταν το αφήσετε:LAFVIN ESP32 Basic Starter Kit - σειρά

Project 2 Αναλογικές είσοδοι ESP32

Αυτό το έργο δείχνει πώς να διαβάζετε αναλογικές εισόδους με το ESP32 χρησιμοποιώντας το Arduino IDE.
Η αναλογική ανάγνωση είναι χρήσιμη για την ανάγνωση τιμών από μεταβλητές αντιστάσεις όπως ποτενσιόμετρα ή αναλογικούς αισθητήρες.
Αναλογικές είσοδοι (ADC)
Η ανάγνωση μιας αναλογικής τιμής με το ESP32 σημαίνει ότι μπορείτε να μετρήσετε μεταβαλλόμενο όγκοtagεπίπεδα e μεταξύ 0 V και 3.3 V.
Ο τόμοςtagΤο e που μετράται εκχωρείται στη συνέχεια σε μια τιμή μεταξύ 0 και 4095, στην οποία το 0 V αντιστοιχεί σε 0 και το 3.3 V αντιστοιχεί σε 4095. Οποιαδήποτε voltage μεταξύ 0 V και 3.3 V θα δοθεί η αντίστοιχη τιμή στο ενδιάμεσο.LAFVIN ESP32 Basic Starter Kit - Αναλογικές ΕίσοδοιΤο ADC είναι μη γραμμικό
Στην ιδανική περίπτωση, θα περιμένατε μια γραμμική συμπεριφορά όταν χρησιμοποιείτε τους ακροδέκτες ADC ESP32.
Ωστόσο, αυτό δεν συμβαίνει. Αυτό που θα λάβετε είναι μια συμπεριφορά όπως φαίνεται στο παρακάτω διάγραμμα:LAFVIN ESP32 Basic Starter Kit - Μη γραμμικόΑυτή η συμπεριφορά σημαίνει ότι το ESP32 δεν μπορεί να διακρίνει τα 3.3 V από τα 3.2 V.
Θα λάβετε την ίδια τιμή και για τους δύο τόμουςtages: 4095.
Το ίδιο συμβαίνει και για πολύ χαμηλό όγκοtagΤιμές e: για 0 ​​V και 0.1 V θα λάβετε την ίδια τιμή: 0. Πρέπει να το έχετε υπόψη όταν χρησιμοποιείτε τους ακροδέκτες ADC ESP32.
Λειτουργία analogRead().
Η ανάγνωση μιας αναλογικής εισόδου με το ESP32 χρησιμοποιώντας το Arduino IDE είναι τόσο απλή όσο η χρήση της συνάρτησης analogRead(). Δέχεται ως όρισμα το GPIO που θέλετε να διαβάσετε:
analogRead(GPIO);
Μόνο 15 είναι διαθέσιμα στον πίνακα DEVKIT V1 (έκδοση με 30 GPIO).
Πιάστε το pinout της πλακέτας ESP32 και εντοπίστε τις ακίδες ADC. Αυτά επισημαίνονται με κόκκινο περίγραμμα στο παρακάτω σχήμα.LAFVIN ESP32 Basic Starter Kit - περίγραμμαΑυτές οι αναλογικές ακίδες εισόδου έχουν ανάλυση 12 bit. Αυτό σημαίνει ότι όταν διαβάζετε μια αναλογική είσοδο, το εύρος της μπορεί να κυμαίνεται από 0 έως 4095.
Σημείωση: Οι ακίδες ADC2 δεν μπορούν να χρησιμοποιηθούν όταν χρησιμοποιείται Wi-Fi. Επομένως, εάν χρησιμοποιείτε Wi-Fi και αντιμετωπίζετε πρόβλημα με τη λήψη της τιμής από ένα ADC2 GPIO, μπορείτε να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε ένα ADC1 GPIO αντ' αυτού, αυτό θα πρέπει να λύσει το πρόβλημά σας.
Για να δούμε πώς δένουν όλα μαζί, θα κάνουμε έναν απλό πρώηνample για να διαβάσετε μια αναλογική τιμή από ένα ποτενσιόμετρο.
Απαιτούμενα εξαρτήματα
Για αυτό το πρώηνample, χρειάζεστε τα ακόλουθα εξαρτήματα:

  • Πλακέτα ESP32 DEVKIT V1
  • Ποτενσιόμετρο
  • Breadboard
  • Καλώδια βραχυκυκλωτήρα

Σχηματικό
Συνδέστε ένα ποτενσιόμετρο στο ESP32 σας. Η μεσαία ακίδα του ποτενσιόμετρου πρέπει να συνδεθεί στο GPIO 4. Μπορείτε να χρησιμοποιήσετε το παρακάτω σχηματικό διάγραμμα ως αναφορά.LAFVIN ESP32 Basic Starter Kit - ΣχηματικόΚώδικας
Θα προγραμματίσουμε το ESP32 χρησιμοποιώντας το Arduino IDE, επομένως βεβαιωθείτε ότι έχετε εγκαταστήσει το πρόσθετο ESP32 πριν συνεχίσετε: (Εάν έχετε κάνει ήδη αυτό το βήμα, μπορείτε να μεταβείτε στο επόμενο βήμα.)
Εγκατάσταση πρόσθετου ESP32 στο Arduino IDE
Ανοίξτε τον κωδικό Project_2_ESP32_Inputs_Outputs.ino στο arduino IDELAFVIN ESP32 Basic Starter Kit - Κωδικός 2Αυτός ο κωδικός απλώς διαβάζει τις τιμές από το ποτενσιόμετρο και εκτυπώνει αυτές τις τιμές στη Σειριακή οθόνη.
Στον κώδικα, ξεκινάτε ορίζοντας το GPIO στο οποίο είναι συνδεδεμένο το ποτενσιόμετρο. Σε αυτό το πρώηνample, GPIO 4.LAFVIN ESP32 Basic Starter Kit - π.χampleΣτο setup(), αρχικοποιήστε μια σειριακή επικοινωνία με ρυθμό baud 115200.LAFVIN ESP32 Basic Starter Kit - π.χample 1Στο loop(), χρησιμοποιήστε τη συνάρτηση analogRead() για να διαβάσετε την αναλογική είσοδο από το potPin.LAFVIN ESP32 Basic Starter Kit - π.χample 2Τέλος, εκτυπώστε τις τιμές που διαβάζονται από το ποτενσιόμετρο στη σειριακή οθόνη.LAFVIN ESP32 Basic Starter Kit - π.χample 3Ανεβάστε τον κωδικό που παρέχεται στο ESP32 σας. Βεβαιωθείτε ότι έχετε επιλέξει τη σωστή πλακέτα και τη σωστή θύρα COM στο μενού Εργαλεία.
Δοκιμάζοντας το Example
Αφού ανεβάσετε τον κωδικό και πατήσετε το κουμπί επαναφοράς ESP32, ανοίξτε τη σειριακή οθόνη με ρυθμό baud 115200. Περιστρέψτε το ποτενσιόμετρο και δείτε τις τιμές να αλλάζουν.Η μέγιστη τιμή που θα λάβετε είναι 4095 και η ελάχιστη τιμή είναι 0.LAFVIN ESP32 Basic Starter Kit -μέγιστη τιμή

Αναδίπλωση

Σε αυτό το άρθρο μάθατε πώς να διαβάζετε αναλογικές εισόδους χρησιμοποιώντας το ESP32 με το Arduino IDE. Συνοπτικά:

  • Η πλακέτα ESP32 DEVKIT V1 DOIT (έκδοση με 30 ακίδες) έχει 15 ακίδες ADC που μπορείτε να χρησιμοποιήσετε για να διαβάσετε αναλογικές εισόδους.
  • Αυτές οι ακίδες έχουν ανάλυση 12 bit, που σημαίνει ότι μπορείτε να λάβετε τιμές από 0 έως 4095.
  • Για να διαβάσετε μια τιμή στο Arduino IDE, απλά χρησιμοποιείτε τη συνάρτηση analogRead().
  • Οι ακίδες ADC ESP32 δεν έχουν γραμμική συμπεριφορά. Πιθανότατα δεν θα μπορείτε να διακρίνετε μεταξύ 0 και 0.1 V ή μεταξύ 3.2 και 3.3 V. Πρέπει να το έχετε υπόψη σας όταν χρησιμοποιείτε τις ακίδες ADC.

Project 3 ESP32 PWM (Αναλογική Έξοδος)

Σε αυτό το σεμινάριο θα σας δείξουμε πώς να δημιουργείτε σήματα PWM με το ESP32 χρησιμοποιώντας το Arduino IDE. Ως πρώηνampΘα κατασκευάσουμε ένα απλό κύκλωμα που μειώνει τη φωτεινότητα ενός LED χρησιμοποιώντας τον ελεγκτή LED PWM του ESP32.LAFVIN ESP32 Basic Starter Kit - AnalogOutputΕλεγκτής PWM LED ESP32
Το ESP32 διαθέτει έναν ελεγκτή LED PWM με 16 ανεξάρτητα κανάλια που μπορούν να ρυθμιστούν ώστε να παράγουν σήματα PWM με διαφορετικές ιδιότητες.
Ακολουθούν τα βήματα που θα πρέπει να ακολουθήσετε για να μειώσετε τη φωτεινότητα ενός LED με PWM χρησιμοποιώντας το Arduino IDE:

  1. Πρώτα, πρέπει να επιλέξετε ένα κανάλι PWM. Υπάρχουν 16 κανάλια από το 0 έως το 15.
  2. Στη συνέχεια, πρέπει να ρυθμίσετε τη συχνότητα σήματος PWM. Για ένα LED, μια συχνότητα 5000 Hz είναι καλή για χρήση.
  3. Πρέπει επίσης να ορίσετε την ανάλυση του κύκλου λειτουργίας του σήματος: έχετε αναλύσεις από 1 έως 16 bit. Θα χρησιμοποιήσουμε ανάλυση 8 bit, που σημαίνει ότι μπορείτε να ελέγξετε τη φωτεινότητα των LED χρησιμοποιώντας μια τιμή από 0 έως 255.
  4.  Στη συνέχεια, πρέπει να καθορίσετε σε ποια GPIO ή GPIO θα εμφανίζεται το σήμα. Για αυτό θα χρησιμοποιήσετε την παρακάτω λειτουργία:
    ledcAttachPin (GPIO, κανάλι)
    Αυτή η συνάρτηση δέχεται δύο ορίσματα. Το πρώτο είναι το GPIO που θα εξάγει το σήμα και το δεύτερο είναι το κανάλι που θα παράγει το σήμα.
  5. Τέλος, για να ελέγξετε τη φωτεινότητα των LED χρησιμοποιώντας PWM, χρησιμοποιείτε την ακόλουθη λειτουργία:

ledcWrite (κανάλι, dutycycle)
Αυτή η συνάρτηση δέχεται ως ορίσματα το κανάλι που παράγει το σήμα PWM και τον κύκλο λειτουργίας.
Απαιτούμενα εξαρτήματα
Για να ακολουθήσετε αυτό το σεμινάριο χρειάζεστε αυτά τα μέρη:

  • Πλακέτα ESP32 DEVKIT V1
  • 5mm LED
  • Αντίσταση 220 Ohm
  •  Breadboard
  • Καλώδια βραχυκυκλωτήρα

Σχηματικό
Συνδέστε ένα LED στο ESP32 όπως στο παρακάτω σχηματικό διάγραμμα. Το LED θα πρέπει να είναι συνδεδεμένο στο GPIO 4.LAFVIN ESP32 Basic Starter Kit - ΣχηματικόΣημείωμα: μπορείτε να χρησιμοποιήσετε όποιο pin θέλετε, αρκεί να μπορεί να λειτουργήσει ως έξοδος. Όλες οι ακίδες που μπορούν να λειτουργήσουν ως έξοδοι μπορούν να χρησιμοποιηθούν ως ακίδες PWM. Για περισσότερες πληροφορίες σχετικά με τα ESP32 GPIO, διαβάστε: ESP32 Pinout Αναφορά: Ποιες ακίδες GPIO πρέπει να χρησιμοποιήσετε;
Κώδικας
Θα προγραμματίσουμε το ESP32 χρησιμοποιώντας το Arduino IDE, επομένως βεβαιωθείτε ότι έχετε εγκαταστήσει το πρόσθετο ESP32 πριν συνεχίσετε: (Εάν έχετε κάνει ήδη αυτό το βήμα, μπορείτε να μεταβείτε στο επόμενο βήμα.)
Εγκατάσταση πρόσθετου ESP32 στο Arduino IDE
Ανοίξτε τον κωδικό Project_3_ESP32_PWM.ino στο arduino IDELAFVIN ESP32 Basic Starter Kit - Κωδικός 3LAFVIN ESP32 Basic Starter Kit - Κωδικός 4Ξεκινάτε ορίζοντας την ακίδα στην οποία είναι συνδεδεμένη η λυχνία LED. Σε αυτήν την περίπτωση το LED είναι συνδεδεμένο στο GPIO 4.LAFVIN ESP32 Basic Starter Kit - Κωδικός 5Στη συνέχεια, ορίζετε τις ιδιότητες σήματος PWM. Ορίζετε μια συχνότητα 5000 Hz, επιλέγετε το κανάλι 0 για να δημιουργήσετε το σήμα και ορίζετε ανάλυση 8 bit. Μπορείτε να επιλέξετε άλλες ιδιότητες, διαφορετικές από αυτές, για να δημιουργήσετε διαφορετικά σήματα PWM.LAFVIN ESP32 Basic Starter Kit - Κωδικός 6Στο setup(), πρέπει να διαμορφώσετε το LED PWM με τις ιδιότητες που έχετε ορίσει νωρίτερα, χρησιμοποιώντας τη συνάρτηση ledcSetup() που δέχεται ως ορίσματα, το ledChannel, τη συχνότητα και την ανάλυση, ως εξής:LAFVIN ESP32 Basic Starter Kit - Κωδικός 8Στη συνέχεια, πρέπει να επιλέξετε το GPIO από το οποίο θα λάβετε το σήμα. Για αυτό χρησιμοποιήστε τη συνάρτηση ledcAttachPin() που δέχεται ως ορίσματα το GPIO όπου θέλετε να λάβετε το σήμα και το κανάλι που παράγει το σήμα. Σε αυτό το πρώηνample, θα λάβουμε το σήμα στο ledPin GPIO, που αντιστοιχεί στο GPIO 4. Το κανάλι που δημιουργεί το σήμα είναι το ledChannel, που αντιστοιχεί στο κανάλι 0.LAFVIN ESP32 Basic Starter Kit - Κωδικός 9Στον βρόχο, θα μεταβάλλετε τον κύκλο λειτουργίας μεταξύ 0 και 255 για να αυξήσετε τη φωτεινότητα των LED.LAFVIN ESP32 Basic Starter Kit - φωτεινότηταΚαι μετά, μεταξύ 255 και 0 για μείωση της φωτεινότητας.LAFVIN ESP32 Basic Starter Kit - φωτεινότητα 1Για να ρυθμίσετε τη φωτεινότητα του LED, πρέπει απλώς να χρησιμοποιήσετε τη συνάρτηση ledcWrite() που δέχεται ως ορίσματα το κανάλι που παράγει το σήμα και τον κύκλο λειτουργίας.LAFVIN ESP32 Basic Starter Kit - φωτεινότητα 2Καθώς χρησιμοποιούμε ανάλυση 8 bit, ο κύκλος λειτουργίας θα ελέγχεται χρησιμοποιώντας μια τιμή από 0 έως 255. Σημειώστε ότι στη συνάρτηση ledcWrite() χρησιμοποιούμε το κανάλι που παράγει το σήμα και όχι το GPIO.

Δοκιμάζοντας το Example

Ανεβάστε τον κωδικό στο ESP32 σας. Βεβαιωθείτε ότι έχετε επιλέξει τη σωστή πλακέτα και τη σωστή θύρα COM. Κοιτάξτε το κύκλωμά σας. Θα πρέπει να έχετε ένα dimmer LED που αυξάνει και μειώνει τη φωτεινότητα.LAFVIN ESP32 Basic Starter Kit - Δοκιμή του Example

Project 4 ESP32 PIR Motion Sensor

Αυτό το έργο δείχνει πώς να ανιχνεύσετε κίνηση με το ESP32 χρησιμοποιώντας έναν αισθητήρα κίνησης PIR. Ο βομβητής θα ηχήσει ξυπνητήρι όταν ανιχνευτεί κίνηση και θα σταματήσει τον συναγερμό όταν δεν ανιχνευτεί κίνηση για προκαθορισμένο χρόνο (όπως 4 δευτερόλεπτα)
Πώς λειτουργεί ο αισθητήρας κίνησης HC-SR501
.LAFVIN ESP32 Basic Starter Kit - Motion Sensor WorksΗ αρχή λειτουργίας του αισθητήρα HC-SR501 βασίζεται στην αλλαγή της υπέρυθρης ακτινοβολίας στο κινούμενο αντικείμενο. Για να ανιχνευθεί από τον αισθητήρα HC-SR501, το αντικείμενο πρέπει να πληροί δύο απαιτήσεις:

  • Το αντικείμενο εκπέμπει με τον υπέρυθρο τρόπο.
  • Το αντικείμενο κινείται ή τρέμει

Ετσι:
Αν ένα αντικείμενο εκπέμπει την υπέρυθρη ακτίνα αλλά δεν κινείται (π.χ. ένα άτομο στέκεται ακίνητο χωρίς να κινείται), δεν ανιχνεύεται από τον αισθητήρα.
Αν ένα αντικείμενο κινείται αλλά ΔΕΝ εκπέμπει την υπέρυθρη ακτίνα (π.χ. ρομπότ ή όχημα), ΔΕΝ ανιχνεύεται από τον αισθητήρα.
Παρουσιάζοντας τα χρονόμετρα
Σε αυτό το πρώηνampΘα παρουσιάσουμε επίσης χρονόμετρα. Θέλουμε το LED να παραμένει αναμμένο για προκαθορισμένο αριθμό δευτερολέπτων μετά την ανίχνευση κίνησης. Αντί να χρησιμοποιήσουμε μια συνάρτηση delay() που μπλοκάρει τον κώδικά σας και δεν σας επιτρέπει να κάνετε οτιδήποτε άλλο για καθορισμένο αριθμό δευτερολέπτων, θα πρέπει να χρησιμοποιήσουμε ένα χρονόμετρο.LAFVIN ESP32 Basic Starter Kit - Παρουσιάζοντας τους χρονοδιακόπτεςΗ συνάρτηση delay().
Θα πρέπει να είστε εξοικειωμένοι με τη συνάρτηση delay() καθώς χρησιμοποιείται ευρέως. Αυτή η λειτουργία είναι αρκετά απλή στη χρήση. Δέχεται έναν ενιαίο αριθμό int ως όρισμα.
Αυτός ο αριθμός αντιπροσωπεύει το χρόνο σε χιλιοστά του δευτερολέπτου που πρέπει να περιμένει το πρόγραμμα μέχρι να προχωρήσει στην επόμενη γραμμή κώδικα.LAFVIN ESP32 Basic Starter Kit - κωδικόςΌταν κάνετε delay(1000) το πρόγραμμά σας σταματά σε αυτή τη γραμμή για 1 δευτερόλεπτο.
Η καθυστέρηση() είναι μια συνάρτηση αποκλεισμού. Οι λειτουργίες αποκλεισμού εμποδίζουν ένα πρόγραμμα να κάνει οτιδήποτε άλλο μέχρι να ολοκληρωθεί η συγκεκριμένη εργασία. Εάν χρειάζεστε πολλές εργασίες να εκτελούνται ταυτόχρονα, δεν μπορείτε να χρησιμοποιήσετε το delay().
Για τα περισσότερα έργα, θα πρέπει να αποφεύγετε τη χρήση καθυστερήσεων και να χρησιμοποιείτε χρονοδιακόπτες.
Η συνάρτηση millis().
Χρησιμοποιώντας μια συνάρτηση που ονομάζεται millis() μπορείτε να επιστρέψετε τον αριθμό των χιλιοστών του δευτερολέπτου που έχουν περάσει από την πρώτη έναρξη του προγράμματος.LAFVIN ESP32 Basic Starter Kit - το πρόγραμμα ξεκίνησε για πρώτη φοράΓιατί είναι χρήσιμη αυτή η λειτουργία; Επειδή χρησιμοποιώντας κάποια μαθηματικά, μπορείτε εύκολα να επαληθεύσετε πόσος χρόνος έχει περάσει χωρίς να μπλοκάρετε τον κωδικό σας.
Απαιτούμενα εξαρτήματα
Για να ακολουθήσετε αυτό το σεμινάριο χρειάζεστε τα ακόλουθα μέρη

  • Πλακέτα ESP32 DEVKIT V1
  • Αισθητήρας κίνησης PIR (HC-SR501)
  • Ενεργός βομβητής
  • Καλώδια βραχυκυκλωτήρα
  • Breadboard

ΣχηματικόLAFVIN ESP32 Basic Starter Kit - Σχηματικό 1Σημείωμα: Ο εργασιακός τόμοςtagΤο e του HC-SR501 είναι 5V. Χρησιμοποιήστε την καρφίτσα Vin για να την τροφοδοτήσετε.
Κώδικας
Πριν συνεχίσετε με αυτό το σεμινάριο, θα πρέπει να έχετε εγκαταστήσει το πρόσθετο ESP32 στο Arduino IDE σας. Ακολουθήστε έναν από τους παρακάτω οδηγούς για να εγκαταστήσετε το ESP32 στο Arduino IDE, εάν δεν το έχετε κάνει ήδη. (Εάν έχετε κάνει ήδη αυτό το βήμα, μπορείτε να μεταβείτε στο επόμενο βήμα.)
Εγκατάσταση πρόσθετου ESP32 στο Arduino IDE
Ανοίξτε τον κωδικό Project_4_ESP32_PIR_Motion_Sensor.ino στο arduino IDE.
Επίδειξη
Ανεβάστε τον κωδικό στην πλακέτα ESP32. Βεβαιωθείτε ότι έχετε επιλέξει τη σωστή πλακέτα και τη σωστή θύρα COM. Βήματα αναφοράς κώδικα μεταφόρτωσης.
Ανοίξτε τη σειριακή οθόνη με ρυθμό baud 115200.LAFVIN ESP32 Basic Starter Kit - Επίδειξη 1Μετακινήστε το χέρι σας μπροστά από τον αισθητήρα PIR. Ο βομβητής θα πρέπει να ανάψει και το μήνυμα εκτυπώνεται στη Σειριακή οθόνη λέγοντας "Εντοπίστηκε κίνηση! Συναγερμός βομβητή".
Μετά από 4 δευτερόλεπτα ο βομβητής θα πρέπει να σβήσει.LAFVIN ESP32 Basic Starter Kit - buzzer

Project 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 5mm
  • 2 x 200 Ohm αντίσταση
  • Breadboard
  • Καλώδια βραχυκυκλωτήρα

Σχηματικό
Ξεκινήστε χτίζοντας το κύκλωμα. Συνδέστε δύο LED στο ESP32 όπως φαίνεται στο παρακάτω σχηματικό διάγραμμα – το ένα LED είναι συνδεδεμένο στο GPIO 26 και το άλλο στο GPIO 27.
Σημείωμα: Χρησιμοποιούμε την πλακέτα ESP32 DEVKIT DOIT με 36 ακίδες. Πριν συναρμολογήσετε το κύκλωμα, βεβαιωθείτε ότι έχετε ελέγξει το pinout για την πλακέτα που χρησιμοποιείτε.LAFVIN ESP32 Basic Starter Kit - ΣχηματικόΚώδικας
Εδώ παρέχουμε τον κωδικό που δημιουργεί το ESP32 web υπηρέτης. Ανοίξτε τον κωδικό Project_5_ESP32_Switch _Web_Server.ino στο arduino IDE, αλλά μην το ανεβάσετε ακόμα. Πρέπει να κάνετε κάποιες αλλαγές για να λειτουργήσει για εσάς.
Θα προγραμματίσουμε το ESP32 χρησιμοποιώντας το Arduino IDE, επομένως βεβαιωθείτε ότι έχετε εγκαταστήσει το πρόσθετο ESP32 πριν συνεχίσετε: (Εάν έχετε κάνει ήδη αυτό το βήμα, μπορείτε να μεταβείτε στο επόμενο βήμα.)
Εγκατάσταση πρόσθετου ESP32 στο Arduino IDE
Ρύθμιση των διαπιστευτηρίων του δικτύου σας
Πρέπει να τροποποιήσετε τις ακόλουθες γραμμές με τα διαπιστευτήρια του δικτύου σας: SSID και κωδικό πρόσβασης. Ο κώδικας είναι καλά σχολιασμένος σχετικά με το πού πρέπει να κάνετε τις αλλαγές.LAFVIN ESP32 Basic Starter Kit - Διαπιστευτήρια ΔικτύουΑνέβασμα του Κώδικα
Τώρα, μπορείτε να ανεβάσετε τον κώδικα και και το web ο διακομιστής θα λειτουργήσει αμέσως.
Ακολουθήστε τα επόμενα βήματα για να ανεβάσετε κώδικα στο ESP32:

  1. Συνδέστε την πλακέτα ESP32 στον υπολογιστή σας.
  2. Στο Arduino IDE επιλέξτε την πλακέτα σας στο Εργαλεία > Πίνακας (στην περίπτωσή μας χρησιμοποιούμε την πλακέτα ESP32 DEVKIT DOIT).LAFVIN ESP32 Basic Starter Kit - Μεταφόρτωση του Κώδικα
  3. Επιλέξτε τη θύρα COM στα Εργαλεία > Θύρα.LAFVIN ESP32 Basic Starter Kit - Θύρα εργαλείων
  4. Πατήστε το κουμπί Μεταφόρτωση στο Arduino IDE και περιμένετε μερικά δευτερόλεπτα μέχρι ο κώδικας να μεταγλωττιστεί και να ανέβει στον πίνακα σας.LAFVIN ESP32 Basic Starter Kit - ICON 7
  5. Περιμένετε για το μήνυμα "Ολοκληρώθηκε η μεταφόρτωση".LAFVIN ESP32 Basic Starter Kit - Ολοκληρώθηκε η μεταφόρτωση 1

Εύρεση της διεύθυνσης IP ESP
Αφού ανεβάσετε τον κωδικό, ανοίξτε τη Σειριακή οθόνη με ρυθμό baud 115200.LAFVIN ESP32 Basic Starter Kit - Διεύθυνση IP ESPΠατήστε το κουμπί ESP32 EN (επαναφορά). Το ESP32 συνδέεται σε Wi-Fi και εξάγει τη διεύθυνση IP του ESP στη σειριακή οθόνη. Αντιγράψτε αυτήν τη διεύθυνση IP, γιατί τη χρειάζεστε για πρόσβαση στο ESP32 web υπηρέτης.LAFVIN ESP32 Basic Starter Kit - web υπηρέτηςΠρόσβαση στο Web Υπηρέτης
Για πρόσβαση στο web διακομιστή, ανοίξτε το πρόγραμμα περιήγησής σας, επικολλήστε τη διεύθυνση IP του ESP32 και θα δείτε την παρακάτω σελίδα.
Σημείωμα: Το πρόγραμμα περιήγησής σας και το ESP32 θα πρέπει να είναι συνδεδεμένα στο ίδιο LAN.LAFVIN ESP32 Basic Starter Kit - Πρόσβαση στο Web ΥπηρέτηςΑν ρίξετε μια ματιά στη Σειριακή οθόνη, μπορείτε να δείτε τι συμβαίνει στο παρασκήνιο. Το ESP λαμβάνει ένα αίτημα HTTP από έναν νέο πελάτη (σε αυτήν την περίπτωση, το πρόγραμμα περιήγησής σας).LAFVIN ESP32 Basic Starter Kit - Αίτημα HTTPΜπορείτε επίσης να δείτε άλλες πληροφορίες σχετικά με το αίτημα HTTP.
Επίδειξη
Τώρα μπορείτε να δοκιμάσετε αν σας web ο διακομιστής λειτουργεί σωστά. Κάντε κλικ στα κουμπιά για να ελέγξετε τα LED.LAFVIN ESP32 Basic Starter Kit - φόντοΤαυτόχρονα, μπορείτε να ρίξετε μια ματιά στη Σειριακή οθόνη για να δείτε τι συμβαίνει στο παρασκήνιο. Για π.χample, όταν κάνετε κλικ στο κουμπί για να ενεργοποιήσετε το GPIO 26, το ESP32 λαμβάνει ένα αίτημα στο /26/on URL.LAFVIN ESP32 Basic Starter Kit - URLΌταν το ESP32 λάβει αυτό το αίτημα, ανάβει το LED που είναι συνδεδεμένο στο GPIO 26 και ενημερώνει την κατάστασή του στο web σελίδα.LAFVIN ESP32 Basic Starter Kit - web σελίδαΤο κουμπί για το GPIO 27 λειτουργεί με παρόμοιο τρόπο. Ελέγξτε ότι λειτουργεί σωστά.LAFVIN ESP32 Basic Starter Kit - λειτουργεί σωστά

Πώς λειτουργεί ο Κώδικας

Σε αυτή την ενότητα θα ρίξουμε μια πιο προσεκτική ματιά στον κώδικα για να δούμε πώς λειτουργεί.
Το πρώτο πράγμα που πρέπει να κάνετε είναι να συμπεριλάβετε τη βιβλιοθήκη WiFi.LAFVIN ESP32 Basic Starter Kit - Βιβλιοθήκη WiFiΌπως αναφέρθηκε προηγουμένως, πρέπει να εισαγάγετε το ssid και τον κωδικό πρόσβασής σας στις ακόλουθες γραμμές μέσα στα διπλά εισαγωγικά.LAFVIN ESP32 Basic Starter Kit - διπλά εισαγωγικάΣτη συνέχεια, ορίζετε το δικό σας web διακομιστή στη θύρα 80.LAFVIN ESP32 Basic Starter Kit - web υπηρέτηςΗ ακόλουθη γραμμή δημιουργεί μια μεταβλητή για την αποθήκευση της κεφαλίδας του αιτήματος HTTP:LAFVIN ESP32 Basic Starter Kit - Αίτημα HTTPΣτη συνέχεια, δημιουργείτε βοηθητικές μεταβλητές για να αποθηκεύσετε την τρέχουσα κατάσταση των εξόδων σας. Εάν θέλετε να προσθέσετε περισσότερες εξόδους και να αποθηκεύσετε την κατάστασή του, πρέπει να δημιουργήσετε περισσότερες μεταβλητές.LAFVIN ESP32 Basic Starter Kit - μεταβλητέςΠρέπει επίσης να αντιστοιχίσετε ένα GPIO σε κάθε έξοδο σας. Εδώ χρησιμοποιούμε το GPIO 26 και το GPIO 27. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο κατάλληλο GPIO.LAFVIN ESP32 Basic Starter Kit - άλλο κατάλληλοεγκατάσταση ()
Τώρα, ας πάμε στο setup(). Αρχικά, ξεκινάμε μια σειριακή επικοινωνία με ρυθμό baud 115200 για σκοπούς εντοπισμού σφαλμάτων.LAFVIN ESP32 Basic Starter Kit - σκοποίΟρίζετε επίσης τα GPIO σας ως OUTPUT και τα ορίζετε σε LOW.LAFVIN ESP32 Basic Starter Kit - GPIO ως OUTPUTΟι ακόλουθες γραμμές ξεκινούν τη σύνδεση Wi-Fi με το WiFi.begin (ssid, κωδικός πρόσβασης), περιμένετε για μια επιτυχημένη σύνδεση και εκτυπώστε τη διεύθυνση IP του ESP στη Σειριακή οθόνη.LAFVIN ESP32 Basic Starter Kit - SerialLAFVIN ESP32 Basic Starter Kit - Σειρά 1βρόχος()
Στο loop() προγραμματίζουμε τι συμβαίνει όταν ένας νέος πελάτης δημιουργεί μια σύνδεση με το web υπηρέτης.
Το ESP32 ακούει πάντα τους εισερχόμενους πελάτες με την ακόλουθη γραμμή:LAFVIN ESP32 Basic Starter Kit - loopΌταν ληφθεί ένα αίτημα από έναν πελάτη, θα αποθηκεύσουμε τα εισερχόμενα δεδομένα. Ο βρόχος while που ακολουθεί θα λειτουργεί όσο ο πελάτης παραμένει συνδεδεμένος. Δεν συνιστούμε να αλλάξετε το ακόλουθο μέρος του κώδικα, εκτός εάν γνωρίζετε ακριβώς τι κάνετε.LAFVIN ESP32 Basic Starter Kit - ακριβώςLAFVIN ESP32 Basic Starter Kit - ακριβώς 1LAFVIN ESP32 Basic Starter Kit - ακριβώς 2Η επόμενη ενότητα των δηλώσεων if και else ελέγχει ποιο κουμπί πατήθηκε στο δικό σας web σελίδα και ελέγχει τις εξόδους ανάλογα. Όπως είδαμε προηγουμένως, κάνουμε ένα αίτημα για διαφορετικά URLs ανάλογα με το πατημένο κουμπί.LAFVIN ESP32 Basic Starter Kit - πατημένο το κουμπίLAFVIN ESP32 Basic Starter Kit - πατημένο το κουμπί 1Για π.χample, αν έχετε πατήσει το κουμπί GPIO 26 ON, το ESP32 λαμβάνει ένα αίτημα στο /26/ON URL (μπορούμε να δούμε ότι αυτές οι πληροφορίες στην κεφαλίδα HTTP στη σειριακή οθόνη). Έτσι, μπορούμε να ελέγξουμε αν η κεφαλίδα περιέχει την έκφραση GET /26/on. Εάν περιέχει, αλλάζουμε τη μεταβλητή output26state σε ON και το ESP32 ανάβει το LED.
Αυτό λειτουργεί παρόμοια για τα άλλα κουμπιά. Επομένως, εάν θέλετε να προσθέσετε περισσότερες εξόδους, θα πρέπει να τροποποιήσετε αυτό το τμήμα του κώδικα για να τις συμπεριλάβετε.
Εμφάνιση του HTML web σελίδα
Το επόμενο πράγμα που πρέπει να κάνετε, είναι να δημιουργήσετε το web σελίδα. Το ESP32 θα στείλει μια απάντηση στο πρόγραμμα περιήγησής σας με κάποιο κώδικα HTML για τη δημιουργία του web σελίδα.
Ο web Η σελίδα αποστέλλεται στον πελάτη χρησιμοποιώντας αυτήν την έκφραση client.println(). Θα πρέπει να εισαγάγετε αυτό που θέλετε να στείλετε στον πελάτη ως όρισμα.
Το πρώτο πράγμα που πρέπει να στείλουμε είναι πάντα η ακόλουθη γραμμή, που δείχνει ότι στέλνουμε HTML.LAFVIN ESP32 Basic Starter Kit - αποστολή HTMLΣτη συνέχεια, η ακόλουθη γραμμή κάνει το web σελίδα ανταποκρίνεται σε οποιαδήποτε web πρόγραμμα περιήγησης.LAFVIN ESP32 Basic Starter Kit - web πρόγραμμα περιήγησηςΚαι τα ακόλουθα χρησιμοποιούνται για την αποτροπή αιτημάτων στο favicon. – Δεν χρειάζεται να ανησυχείτε για αυτή τη γραμμή.LAFVIN ESP32 Basic Starter Kit - client.println

Styling το Web Σελίδα

Στη συνέχεια, έχουμε κάποιο κείμενο CSS για το στυλ των κουμπιών και του web εμφάνιση σελίδας.
Επιλέγουμε τη γραμματοσειρά Helvetica, ορίζουμε το περιεχόμενο που θα εμφανίζεται ως μπλοκ και το στοιχίζουμε στο κέντρο.LAFVIN ESP32 Basic Starter Kit - Στυλ Web ΣελίδαΔιαμορφώνουμε τα κουμπιά μας με το χρώμα #4CAF50, χωρίς περίγραμμα, κείμενο σε λευκό χρώμα και με αυτήν την επένδυση: 16px 40px. Ορίζουμε επίσης τη διακόσμηση κειμένου σε κανένα, ορίζουμε το μέγεθος της γραμματοσειράς, το περιθώριο και τον κέρσορα σε έναν δείκτη.LAFVIN ESP32 Basic Starter Kit - δείκτηςΟρίζουμε επίσης το στυλ για ένα δεύτερο κουμπί, με όλες τις ιδιότητες του κουμπιού που ορίσαμε νωρίτερα, αλλά με διαφορετικό χρώμα. Αυτό θα είναι το στυλ για το κουμπί απενεργοποίησης.LAFVIN ESP32 Basic Starter Kit - client.println 1

Ρύθμιση του Web Πρώτη επικεφαλίδα σελίδας
Στην επόμενη γραμμή μπορείτε να ορίσετε την πρώτη επικεφαλίδα σας web σελίδα. Εδώ έχουμε το “ESP32 Web Διακομιστής», αλλά μπορείτε να αλλάξετε αυτό το κείμενο σε ό,τι θέλετε.LAFVIN ESP32 Basic Starter Kit - Web Επικεφαλίδα σελίδαςΕμφάνιση των κουμπιών και της αντίστοιχης κατάστασης
Στη συνέχεια, γράφετε μια παράγραφο για να εμφανίσετε την τρέχουσα κατάσταση του GPIO 26. Όπως μπορείτε να δείτε, χρησιμοποιούμε τη μεταβλητή output26State, έτσι ώστε η κατάσταση να ενημερώνεται αμέσως όταν αλλάζει αυτή η μεταβλητή.LAFVIN ESP32 Basic Starter Kit - μεταβλητές αλλαγέςΣτη συνέχεια, εμφανίζουμε το κουμπί ενεργοποίησης ή απενεργοποίησης, ανάλογα με την τρέχουσα κατάσταση του GPIO. Εάν η τρέχουσα κατάσταση του GPIO είναι απενεργοποιημένη, εμφανίζουμε το κουμπί ON, εάν όχι, εμφανίζουμε το κουμπί OFF.LAFVIN ESP32 Basic Starter Kit - εμφανίστε το κουμπί OFFΧρησιμοποιούμε την ίδια διαδικασία για το GPIO 27.
Κλείσιμο της σύνδεσης
Τέλος, όταν τελειώσει η απάντηση, διαγράφουμε τη μεταβλητή κεφαλίδας και διακόπτουμε τη σύνδεση με τον πελάτη με τον client.stop().LAFVIN ESP32 Basic Starter Kit - Κλείσιμο της σύνδεσης

Αναδίπλωση

Σε αυτό το σεμινάριο σας δείξαμε πώς να δημιουργήσετε ένα web διακομιστή με το ESP32. Σας δείξαμε έναν απλό πρώηνample που ελέγχει δύο LED, αλλά η ιδέα είναι να αντικαταστήσετε αυτά τα LED με ένα ρελέ ή οποιαδήποτε άλλη έξοδο θέλετε να ελέγξετε.

Project 6 RGB LED Web Υπηρέτης

Σε αυτό το έργο θα σας δείξουμε πώς να ελέγχετε εξ αποστάσεως ένα RGB LED με μια πλακέτα ESP32 χρησιμοποιώντας ένα web διακομιστή με επιλογή χρώματος.
Έργο τελείωσεview
Πριν ξεκινήσουμε, ας δούμε πώς λειτουργεί αυτό το έργο:LAFVIN ESP32 Basic Starter Kit - Project Overview

  • Το ESP32 web ο διακομιστής εμφανίζει έναν επιλογέα χρώματος.
  • Όταν επιλέγετε ένα χρώμα, το πρόγραμμα περιήγησής σας κάνει ένα αίτημα σε ένα URL που περιέχει τις παραμέτρους R, G και B του επιλεγμένου χρώματος.
  • Το ESP32 λαμβάνει το αίτημα και διαχωρίζει την τιμή για κάθε παράμετρο χρώματος.
  • Στη συνέχεια, στέλνει ένα σήμα PWM με την αντίστοιχη τιμή στα GPIO που ελέγχουν το LED RGB.

Πώς λειτουργούν τα RGB LED;
Σε ένα LED RGB κοινής καθόδου, και τα τρία LED μοιράζονται μια αρνητική σύνδεση (κάθοδος). Όλα που περιλαμβάνονται στο κιτ είναι RGB κοινής καθόδου.LAFVIN ESP32 Basic Starter Kit - Τα LED RGB λειτουργούνΠώς να δημιουργήσετε διαφορετικά χρώματα;
Με ένα RGB LED μπορείτε, φυσικά, να παράγετε κόκκινο, πράσινο και μπλε φως και ρυθμίζοντας την ένταση κάθε LED, μπορείτε να παράγετε και άλλα χρώματα.
Για π.χampΓια να παράγετε καθαρά μπλε φως, θα ρυθμίσετε το μπλε LED στην υψηλότερη ένταση και το πράσινο και το κόκκινο LED στη χαμηλότερη ένταση. Για λευκό φως, θα ρυθμίσετε και τα τρία LED στην υψηλότερη ένταση.
Ανάμειξη χρωμάτων
Για να δημιουργήσετε άλλα χρώματα, μπορείτε να συνδυάσετε τα τρία χρώματα σε διαφορετικές εντάσεις. Για να ρυθμίσετε την ένταση κάθε LED μπορείτε να χρησιμοποιήσετε ένα σήμα PWM.
Επειδή τα LED είναι πολύ κοντά το ένα στο άλλο, τα μάτια μας βλέπουν το αποτέλεσμα του συνδυασμού των χρωμάτων, παρά τα τρία χρώματα ξεχωριστά.
Για να έχετε μια ιδέα για το πώς να συνδυάσετε τα χρώματα, ρίξτε μια ματιά στον παρακάτω πίνακα.
Αυτό είναι το απλούστερο διάγραμμα ανάμειξης χρωμάτων, αλλά σας δίνει μια ιδέα πώς λειτουργεί και πώς να παράγετε διαφορετικά χρώματα.LAFVIN ESP32 Basic Starter Kit - διαφορετικά χρώματαΑπαιτούμενα εξαρτήματα
Για αυτό το έργο χρειάζεστε τα ακόλουθα μέρη:

  • Πλακέτα ESP32 DEVKIT V1
  • RGB LED
  • 3 x 220 ohm αντιστάσεις
  • Καλώδια βραχυκυκλωτήρα
  • Breadboard

ΣχηματικόLAFVIN ESP32 Basic Starter Kit - ΣχηματικόΚώδικας
Θα προγραμματίσουμε το ESP32 χρησιμοποιώντας το Arduino IDE, επομένως βεβαιωθείτε ότι έχετε εγκαταστήσει το πρόσθετο ESP32 πριν συνεχίσετε: (Εάν έχετε κάνει ήδη αυτό το βήμα, μπορείτε να μεταβείτε στο επόμενο βήμα.)

  • Εγκατάσταση πρόσθετου ESP32 στο Arduino IDE

Αφού συναρμολογήσετε το κύκλωμα, ανοίξτε τον κωδικό
Project_6_RGB_LED_Web_Server.ino στο arduino IDE.
Πριν ανεβάσετε τον κωδικό, μην ξεχάσετε να εισαγάγετε τα διαπιστευτήρια του δικτύου σας, ώστε το ESP να συνδεθεί στο τοπικό σας δίκτυο.LAFVIN ESP32 Basic Starter Kit - τοπικό δίκτυοΠώς λειτουργεί ο κώδικας
Το σκίτσο ESP32 χρησιμοποιεί τη βιβλιοθήκη WiFi.h.LAFVIN ESP32 Basic Starter Kit - Βιβλιοθήκη WiFi.hΟι ακόλουθες γραμμές ορίζουν μεταβλητές συμβολοσειράς για να συγκρατούν τις παραμέτρους R, G και B από το αίτημα.LAFVIN ESP32 Basic Starter Kit - String redStringΟι επόμενες τέσσερις μεταβλητές χρησιμοποιούνται για την αποκωδικοποίηση του αιτήματος HTTP αργότερα.LAFVIN ESP32 Basic Starter Kit - Αίτημα HTTPΔημιουργήστε τρεις μεταβλητές για τα GPIO που θα ελέγχουν τις παραμέτρους της λωρίδας R, G και B. Σε αυτήν την περίπτωση χρησιμοποιούμε GPIO 13, GPIO 12 και GPIO 14.LAFVIN ESP32 Basic Starter Kit - χρειάζονται GPIOΑυτά τα GPIO πρέπει να εξάγουν σήματα PWM, επομένως πρέπει πρώτα να διαμορφώσουμε τις ιδιότητες PWM. Ρυθμίστε τη συχνότητα σήματος PWM στα 5000 Hz. Στη συνέχεια, συσχετίστε ένα κανάλι PWM για κάθε χρώμαLAFVIN ESP32 Basic Starter Kit - κάθε χρώμαΚαι τέλος, ορίστε την ανάλυση των καναλιών PWM σε 8-bitLAFVIN ESP32 Basic Starter Kit - Κανάλια PWMΣτο setup(), εκχωρήστε τις ιδιότητες PWM στα κανάλια PWMLAFVIN ESP32 Basic Starter Kit - Κανάλια PWMΣυνδέστε τα κανάλια PWM στα αντίστοιχα GPIOLAFVIN ESP32 Basic Starter Kit - αντίστοιχα GPIOΗ παρακάτω ενότητα κώδικα εμφανίζει τον επιλογέα χρώματος στο δικό σας web σελίδα και κάνει ένα αίτημα με βάση το χρώμα που έχετε επιλέξει.LAFVIN ESP32 Basic Starter Kit - επιλεγμένοLAFVIN ESP32 Basic Starter Kit - client.printlnLAFVIN ESP32 Basic Starter Kit - client.println 1Όταν επιλέγετε ένα χρώμα, λαμβάνετε ένα αίτημα με την ακόλουθη μορφή.LAFVIN ESP32 Basic Starter Kit - παρακάτω μορφή

Επομένως, πρέπει να χωρίσουμε αυτή τη συμβολοσειρά για να λάβουμε τις παραμέτρους R, G και B. Οι παράμετροι αποθηκεύονται σε μεταβλητές redString, greenString και blueString και μπορούν να έχουν τιμές μεταξύ 0 και 255.LAFVIN ESP32 Basic Starter Kit - headerLAFVIN ESP32 Basic Starter Kit - header 1Για να ελέγξετε τη λωρίδα με το ESP32, χρησιμοποιήστε τη συνάρτηση ledcWrite() για να δημιουργήσετε σήματα PWM με τις τιμές που αποκωδικοποιούνται από το HTTP αίτηση.LAFVIN ESP32 Basic Starter Kit - Αίτημα HTTP 1Σημείωμα: μάθετε περισσότερα για το PWM με ESP32: Project 3 ESP32 PWM (Αναλογική Έξοδος)
Για να ελέγξουμε την ταινία με το ESP8266, πρέπει απλώς να χρησιμοποιήσουμε
η συνάρτηση analogWrite() για τη δημιουργία σημάτων PWM με τις τιμές που αποκωδικοποιούνται από το αίτημα HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Επειδή λαμβάνουμε τις τιμές σε μια μεταβλητή συμβολοσειράς, πρέπει να τις μετατρέψουμε σε ακέραιους χρησιμοποιώντας τη μέθοδο toInt().
Επίδειξη
Αφού εισαγάγετε τα διαπιστευτήρια του δικτύου σας, επιλέξτε τη σωστή πλακέτα και τη θύρα COM και μεταφορτώστε τον κωδικό στο ESP32. Βήματα αναφοράς κώδικα μεταφόρτωσης.
Μετά τη μεταφόρτωση, ανοίξτε τη σειριακή οθόνη με ρυθμό baud 115200 και πατήστε το κουμπί ESP Enable/Reset. Θα πρέπει να λάβετε τη διεύθυνση IP του πίνακα.LAFVIN ESP32 Basic Starter Kit - ίδιο LANΑνοίξτε το πρόγραμμα περιήγησής σας και εισαγάγετε τη διεύθυνση IP του ESP. Τώρα, χρησιμοποιήστε τον επιλογέα χρώματος για να επιλέξετε ένα χρώμα για το LED RGB.
Στη συνέχεια, πρέπει να πατήσετε το κουμπί "Αλλαγή χρώματος" για να εφαρμοστεί το χρώμα.LAFVIN ESP32 Basic Starter Kit - RGB LEDΓια να απενεργοποιήσετε το RGB LED, επιλέξτε το μαύρο χρώμα.
Τα πιο δυνατά χρώματα (στην κορυφή της επιλογής χρώματος), είναι αυτά που θα παράγουν καλύτερα αποτελέσματα.LAFVIN ESP32 Basic Starter Kit - καλύτερα αποτελέσματα

Project 7 ESP32 Ρελέ Web Υπηρέτης

Η χρήση ενός ρελέ με το ESP32 είναι ένας πολύ καλός τρόπος για να ελέγχετε τις οικιακές συσκευές AC από απόσταση. Αυτό το σεμινάριο εξηγεί πώς να ελέγξετε μια μονάδα ρελέ με το ESP32.
Θα ρίξουμε μια ματιά στο πώς λειτουργεί μια μονάδα ρελέ, πώς να συνδέσετε το ρελέ στο ESP32 και να δημιουργήσετε ένα web διακομιστή για τον απομακρυσμένο έλεγχο ενός ρελέ.
Παρουσιάζοντας τα ρελέ
Το ρελέ είναι ένας διακόπτης που λειτουργεί ηλεκτρικά και όπως κάθε άλλος διακόπτης, μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί, αφήνοντας το ρεύμα να περάσει ή όχι. Μπορεί να ελεγχθεί με χαμηλό όγκοtages, όπως τα 3.3V που παρέχονται από τα GPIO ESP32 και μας επιτρέπουν να ελέγχουμε υψηλή έντασηtagόπως 12V, 24V ή τάση δικτύουtage (230V στην Ευρώπη και 120V στις ΗΠΑ).LAFVIN ESP32 Basic Starter Kit - Παρουσιάζοντας τα ρελέΣτην αριστερή πλευρά, υπάρχουν δύο σετ από τρεις υποδοχές για σύνδεση υψηλής έντασηςtages, και οι ακίδες στη δεξιά πλευρά (χαμηλού όγκουtagε) συνδεθείτε στα GPIO του ESP32.
Mains Voltagε ΣυνδέσειςLAFVIN ESP32 Basic Starter Kit - Mains Voltagε ΣυνδέσειςΗ μονάδα ρελέ που φαίνεται στην προηγούμενη φωτογραφία έχει δύο υποδοχές, η καθεμία με τρεις υποδοχές: κοινές (COM), Κανονικά κλειστές (NC) και Κανονικά ανοιχτές (NO).

  • COM: συνδέστε το ρεύμα που θέλετε να ελέγξετε (ενός δικτύου voltagμι).
  • NC (Normally Closed): η κανονικά κλειστή διαμόρφωση χρησιμοποιείται όταν θέλετε το ρελέ να είναι κλειστό από προεπιλογή. Οι ακίδες NC είναι συνδεδεμένες, που σημαίνει ότι το ρεύμα ρέει εκτός και αν στείλετε ένα σήμα από το ESP32 στη μονάδα ρελέ για να ανοίξει το κύκλωμα και να σταματήσει η ροή του ρεύματος.
  • NO (Normally Open): η κανονικά ανοιχτή διαμόρφωση λειτουργεί αντίστροφα: δεν υπάρχει σύνδεση μεταξύ των ακροδεκτών NO και COM, επομένως το κύκλωμα έχει σπάσει εκτός εάν στείλετε ένα σήμα από το ESP32 για να κλείσει το κύκλωμα.

Καρφίτσες ελέγχουLAFVIN ESP32 Basic Starter Kit - Καρφίτσες ελέγχουΤο low-voltagΗ πλευρά e έχει ένα σετ τεσσάρων ακίδων και ένα σετ τριών ακίδων. Το πρώτο σετ αποτελείται από VCC και GND για την τροφοδοσία της μονάδας και την είσοδο 1 (IN1) και την είσοδο 2 (IN2) για τον έλεγχο του κάτω και του επάνω ρελέ, αντίστοιχα.
Εάν η μονάδα ρελέ σας έχει μόνο ένα κανάλι, θα έχετε μόνο έναν ακροδέκτη IN. Εάν έχετε τέσσερα κανάλια, θα έχετε τέσσερις ακίδες IN και ούτω καθεξής.
Το σήμα που στέλνετε στις ακίδες IN, καθορίζει εάν το ρελέ είναι ενεργό ή όχι. Το ρελέ ενεργοποιείται όταν η είσοδος πέσει κάτω από περίπου 2 V. Αυτό σημαίνει ότι θα έχετε τα ακόλουθα σενάρια:

  • Κανονικά κλειστή διαμόρφωση (NC):
  • ΥΨΗΛΟ σήμα - ρέει ρεύμα
  • Σήμα LOW - το ρεύμα δεν ρέει
  • Κανονικά ανοιχτή διαμόρφωση (ΟΧΙ):
  • Σήμα ΥΨΗΛΟ - δεν ρέει ρεύμα
  • Σήμα LOW – ρεύμα σε ροή

Θα πρέπει να χρησιμοποιείτε μια κανονικά κλειστή διαμόρφωση όταν το ρεύμα θα πρέπει να ρέει τις περισσότερες φορές και θέλετε να το σταματήσετε μόνο περιστασιακά.
Χρησιμοποιήστε μια κανονικά ανοιχτή διαμόρφωση όταν θέλετε το ρεύμα να ρέει περιστασιακά (π.χample, ενεργοποιήστε το alamp ενίοτε).
Επιλογή τροφοδοτικούLAFVIN ESP32 Basic Starter Kit - Επιλογή τροφοδοτικούΤο δεύτερο σετ ακίδων αποτελείται από ακίδες GND, VCC και JD-VCC.
Ο πείρος JD-VCC τροφοδοτεί τον ηλεκτρομαγνήτη του ρελέ. Σημειώστε ότι η μονάδα έχει ένα κάλυμμα βραχυκυκλωτήρα που συνδέει τις ακίδες VCC και JD-VCC. αυτό που φαίνεται εδώ είναι κίτρινο, αλλά το δικό σας μπορεί να έχει διαφορετικό χρώμα.
Με το καπάκι του βραχυκυκλωτήρα επάνω, οι ακίδες VCC και JD-VCC συνδέονται. Αυτό σημαίνει ότι ο ηλεκτρομαγνήτης του ρελέ τροφοδοτείται απευθείας από τον ακροδέκτη τροφοδοσίας ESP32, επομένως η μονάδα ρελέ και τα κυκλώματα ESP32 δεν είναι φυσικά απομονωμένα μεταξύ τους.
Χωρίς το καπάκι του βραχυκυκλωτήρα, πρέπει να παρέχετε μια ανεξάρτητη πηγή τροφοδοσίας για την τροφοδοσία του ηλεκτρομαγνήτη του ρελέ μέσω της ακίδας JD-VCC. Αυτή η διαμόρφωση απομονώνει φυσικά τα ρελέ από το ESP32 με τον ενσωματωμένο οπτικό συζευκτήρα της μονάδας, ο οποίος αποτρέπει τη ζημιά στο ESP32 σε περίπτωση ηλεκτρικών αιχμών.
ΣχηματικόLAFVIN ESP32 Basic Starter Kit - ΣχηματικόΠροειδοποίηση: Χρήση υψηλού όγκουtagΤα τροφοδοτικά ενδέχεται να προκαλέσουν σοβαρό τραυματισμό.
Ως εκ τούτου, χρησιμοποιούνται LED 5 mm αντί για υψηλή παροχήtage λαμπτήρες στο πείραμα. Εάν δεν είστε εξοικειωμένοι με το mains voltagρωτήστε κάποιον που είναι να σας βοηθήσει. Κατά τον προγραμματισμό του ESP ή την καλωδίωση του κυκλώματός σας, βεβαιωθείτε ότι όλα είναι αποσυνδεδεμένα από το δίκτυο voltage.LAFVIN ESP32 Basic Starter Kit - mains voltageΕγκατάσταση της βιβλιοθήκης για ESP32
Για να το φτιάξεις αυτό web διακομιστή, χρησιμοποιούμε το ESPAsyncWebΒιβλιοθήκη διακομιστή και βιβλιοθήκη AsyncTCP.
Εγκατάσταση του ESPAsyncWebΒιβλιοθήκη διακομιστή
Ακολουθήστε τα επόμενα βήματα για να εγκαταστήσετε το ESPAsyncWebΥπηρέτης βιβλιοθήκη:

  1. Κάντε κλικ εδώ για να κατεβάσετε το ESPAsyncWebΒιβλιοθήκη διακομιστή. Θα έπρεπε να έχετε
    έναν φάκελο .zip στο φάκελο "Λήψεις".
  2. Αποσυμπιέστε το φάκελο .zip και θα πρέπει να λάβετε το ESPAsyncWebΚύριος φάκελος διακομιστή
  3. Μετονομάστε το φάκελό σας από ESPAsyncWebServer-master στο ESPAsyncWebΥπηρέτης
  4. Μετακινήστε το ESPAsyncWebΦάκελος διακομιστή στον φάκελο βιβλιοθηκών εγκατάστασης Arduino IDE

Εναλλακτικά, στο Arduino IDE, μπορείτε να μεταβείτε στο Sketch > Include
Βιβλιοθήκη > Προσθήκη βιβλιοθήκης .ZIP… και επιλέξτε τη βιβλιοθήκη που μόλις κατεβάσατε.
Εγκατάσταση της βιβλιοθήκης AsyncTCP για ESP32
Ο ESPAsyncWebΥπηρέτης η βιβλιοθήκη απαιτεί το AsyncTCP βιβλιοθήκη στη δουλειά. Ακολουθώ
τα επόμενα βήματα για την εγκατάσταση αυτής της βιβλιοθήκης:

  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 στο Arduino IDE
Αφού εγκαταστήσετε τις απαιτούμενες βιβλιοθήκες, ανοίξτε τον κωδικό Project_7_ESP32_Relay_Web_Server.ino στο arduino IDE.
Πριν ανεβάσετε τον κωδικό, μην ξεχάσετε να εισαγάγετε τα διαπιστευτήρια του δικτύου σας, ώστε το ESP να συνδεθεί στο τοπικό σας δίκτυο.LAFVIN ESP32 Basic Starter Kit - τοπικό δίκτυοΕπίδειξη
Αφού κάνετε τις απαραίτητες αλλαγές, μεταφορτώστε τον κωδικό στο ESP32. Βήματα αναφοράς κώδικα μεταφόρτωσης.
Ανοίξτε τη σειριακή οθόνη με ρυθμό baud 115200 και πατήστε το κουμπί ESP32 EN για να λάβετε τη διεύθυνση IP της. Στη συνέχεια, ανοίξτε ένα πρόγραμμα περιήγησης στο τοπικό σας δίκτυο και πληκτρολογήστε τη διεύθυνση IP ESP32 για να αποκτήσετε πρόσβαση στο web υπηρέτης.
Ανοίξτε τη σειριακή οθόνη με ρυθμό baud 115200 και πατήστε το κουμπί ESP32 EN για να λάβετε τη διεύθυνση IP της. Στη συνέχεια, ανοίξτε ένα πρόγραμμα περιήγησης στο τοπικό σας δίκτυο και πληκτρολογήστε τη διεύθυνση IP ESP32 για να αποκτήσετε πρόσβαση στο web υπηρέτης.LAFVIN ESP32 Basic Starter Kit - web υπηρέτηςΣημείωμα: Το πρόγραμμα περιήγησής σας και το ESP32 θα πρέπει να είναι συνδεδεμένα στο ίδιο LAN.
Θα πρέπει να λάβετε κάτι ως εξής με δύο κουμπιά όπως ο αριθμός των ρελέ που έχετε ορίσει στον κώδικά σας.LAFVIN ESP32 Basic Starter Kit - smartphoneΤώρα, μπορείτε να χρησιμοποιήσετε τα κουμπιά για να ελέγξετε τα ρελέ σας χρησιμοποιώντας το smartphone σας.LAFVIN ESP32 Basic Starter Kit - smartphone 1

Project_8_Output_State_Synchronization_ Web_Υπηρέτης

Αυτό το έργο δείχνει πώς να ελέγχετε τις εξόδους ESP32 ή ESP8266 χρησιμοποιώντας α web διακομιστή και ένα φυσικό κουμπί ταυτόχρονα. Η κατάσταση εξόδου ενημερώνεται στο web σελίδα είτε έχει αλλάξει μέσω φυσικού κουμπιού είτε web υπηρέτης.
Έργο τελείωσεview
Ας ρίξουμε μια γρήγορη ματιά στο πώς λειτουργεί το έργο.LAFVIN ESP32 Basic Starter Kit - Project OverviewΤο ESP32 ή το ESP8266 φιλοξενεί α web διακομιστή που σας επιτρέπει να ελέγχετε την κατάσταση μιας εξόδου.

  • Η τρέχουσα κατάσταση εξόδου εμφανίζεται στο web υπηρέτης;
  • Το ESP συνδέεται επίσης με ένα φυσικό κουμπί που ελέγχει την ίδια έξοδο.
  • Εάν αλλάξετε την κατάσταση εξόδου χρησιμοποιώντας το φυσικό κουμπί puhs, η τρέχουσα κατάστασή του ενημερώνεται επίσης στο web υπηρέτης.

Συνοπτικά, αυτό το έργο σας επιτρέπει να ελέγχετε την ίδια έξοδο χρησιμοποιώντας a web διακομιστή και ένα κουμπί ταυτόχρονα. Κάθε φορά που αλλάζει η κατάσταση εξόδου, το web ο διακομιστής ενημερώνεται.
Απαιτούμενα εξαρτήματα
Ακολουθεί μια λίστα με τα εξαρτήματα που χρειάζεστε για να φτιάξετε το κύκλωμα:

  • Πλακέτα ESP32 DEVKIT V1
  • LED 5 mm
  • Αντίσταση 220 Ohm
  • Κουμπί
  • Αντίσταση 10k Ohm
  • Breadboard
  • Καλώδια βραχυκυκλωτήρα

ΣχηματικόLAFVIN ESP32 Basic Starter Kit - Σχηματικό 1Εγκατάσταση της βιβλιοθήκης για ESP32
Για να το φτιάξεις αυτό web διακομιστή, χρησιμοποιούμε το ESPAsyncWebΒιβλιοθήκη διακομιστή και βιβλιοθήκη AsyncTCP. (Εάν έχετε κάνει ήδη αυτό το βήμα, μπορείτε να μεταβείτε στο επόμενο βήμα.)
Εγκατάσταση του ESPAsyncWebΒιβλιοθήκη διακομιστή
Ακολουθήστε τα επόμενα βήματα για να εγκαταστήσετε το ESPAsyncWebΒιβλιοθήκη διακομιστή:

  1. Κάντε κλικ εδώ για να κατεβάσετε το ESPAsyncWebΒιβλιοθήκη διακομιστή. Θα έπρεπε να έχετε
    έναν φάκελο .zip στο φάκελο "Λήψεις".
  2. Αποσυμπιέστε το φάκελο .zip και θα πρέπει να λάβετε το ESPAsyncWebΚύριος φάκελος διακομιστή
  3. Μετονομάστε το φάκελό σας από ESPAsyncWebServer-master στο ESPAsyncWebΥπηρέτης
  4. Μετακινήστε το ESPAsyncWebΦάκελος διακομιστή στον φάκελο βιβλιοθηκών εγκατάστασης Arduino IDE
    Εναλλακτικά, στο Arduino IDE, μπορείτε να μεταβείτε στο Sketch > Include
    Βιβλιοθήκη > Προσθήκη βιβλιοθήκης .ZIP… και επιλέξτε τη βιβλιοθήκη που μόλις κατεβάσατε.

Εγκατάσταση της βιβλιοθήκης AsyncTCP για ESP32
Το ESPAsyncWebΗ βιβλιοθήκη διακομιστή απαιτεί τη λειτουργία της βιβλιοθήκης 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 στο Arduino IDE
Αφού εγκαταστήσετε τις απαιτούμενες βιβλιοθήκες, ανοίξτε τον κωδικό
Project_8_Output_State_Synchronization_Web_Server.ino στο arduino IDE.
Πριν ανεβάσετε τον κωδικό, μην ξεχάσετε να εισαγάγετε τα διαπιστευτήρια του δικτύου σας, ώστε το ESP να συνδεθεί στο τοπικό σας δίκτυο.LAFVIN ESP32 Basic Starter Kit - Κωδ

Πώς λειτουργεί ο Κώδικας

Κατάσταση κουμπιού και κατάσταση εξόδου
Η μεταβλητή ledState διατηρεί την κατάσταση εξόδου LED. Για προεπιλογή, όταν το web ο διακομιστής ξεκινά, είναι ΧΑΜΗΛΟ.LAFVIN ESP32 Basic Starter Kit - Code Works

Τα buttonState και lastButtonState χρησιμοποιούνται για να ανιχνεύσουν εάν το κουμπί πατήθηκε ή όχι.LAFVIN ESP32 Basic Starter Kit - πατήθηκεΚουμπί (web υπηρέτης)
Δεν συμπεριλάβαμε το HTML για να δημιουργήσουμε το κουμπί στη μεταβλητή index_html.
Αυτό συμβαίνει επειδή θέλουμε να μπορούμε να το αλλάξουμε ανάλογα με την τρέχουσα κατάσταση LED που μπορεί επίσης να αλλάξει με το κουμπί.
Έτσι, δημιουργήσαμε ένα σύμβολο κράτησης θέσης για το κουμπί %BUTTONPLACEHOLDER% που θα αντικατασταθεί με κείμενο HTML για να δημιουργήσουμε το κουμπί αργότερα στον κώδικα (αυτό γίνεται στη συνάρτηση επεξεργαστή()).LAFVIN ESP32 Basic Starter Kit - πατήθηκε 1επεξεργαστής ()
Η συνάρτηση processor() αντικαθιστά τυχόν σύμβολα θέσης στο κείμενο HTML με πραγματικές τιμές. Αρχικά, ελέγχει εάν τα κείμενα HTML περιέχουν κάποια
placeholders %BUTTONPLACEHOLDER%.LAFVIN ESP32 Basic Starter Kit - επεξεργαστήςΣτη συνέχεια, καλέστε τη συνάρτηση theoutputState() που επιστρέφει την τρέχουσα κατάσταση εξόδου. Το αποθηκεύουμε στη μεταβλητή outputStateValue.LAFVIN ESP32 Basic Starter Kit - outputStateΜετά από αυτό, χρησιμοποιήστε αυτήν την τιμή για να δημιουργήσετε το κείμενο HTML για να εμφανίσετε το κουμπί με τη σωστή κατάσταση:LAFVIN ESP32 Basic Starter Kit - κωδικός 4Αίτημα HTTP GET για αλλαγή κατάστασης εξόδου (JavaScript)
Όταν πατάτε το κουμπί, καλείται η λειτουργία thetoggleCheckbox(). Αυτή η λειτουργία θα κάνει ένα αίτημα σε διαφορετικά URLs για να ανάψετε ή να απενεργοποιήσετε το LED.LAFVIN ESP32 Basic Starter Kit - JavaScriptΓια να ενεργοποιήσετε το LED, κάνει ένα αίτημα στο /update?state=1 URL:LAFVIN ESP32 Basic Starter Kit - element.checkedΔιαφορετικά, κάνει ένα αίτημα στο /update?state=0 URL.
HTTP GET Αίτημα για ενημέρωση κατάστασης (JavaScript)
Για να διατηρείται ενημερωμένη η κατάσταση εξόδου στο web διακομιστή, καλούμε την ακόλουθη συνάρτηση που κάνει ένα νέο αίτημα στο /state URL κάθε δευτερόλεπτο.LAFVIN ESP32 Basic Starter Kit - Κατάσταση ενημέρωσηςLAFVIN ESP32 Basic Starter Kit - Κατάσταση ενημέρωσης 1Χειρισμός αιτημάτων
Στη συνέχεια, πρέπει να χειριστούμε τι συμβαίνει όταν το ESP32 ή το ESP8266 λαμβάνει αιτήματα για αυτά URLs.
Όταν λαμβάνεται ένα αίτημα στο root /URL, στέλνουμε τη σελίδα HTML καθώς και τον επεξεργαστή.LAFVIN ESP32 Basic Starter Kit - Χειριστείτε αιτήματαLAFVIN ESP32 Basic Starter Kit - Χειριστείτε αιτήματα 1Οι ακόλουθες γραμμές ελέγχουν εάν λάβατε ένα αίτημα στο /update?state=1 ή /update?state=0 URL και αλλάζει ανάλογα το ledState.LAFVIN ESP32 Basic Starter Kit - ledStateLAFVIN ESP32 Basic Starter Kit - inputParamΌταν λαμβάνεται ένα αίτημα στο /state URL, στέλνουμε την τρέχουσα κατάσταση εξόδου:LAFVIN ESP32 Basic Starter Kit - κατάσταση εξόδουβρόχος()
Στο loop(), αναπηδάμε το κουμπί και ενεργοποιούμε ή απενεργοποιούμε το LED ανάλογα με την τιμή του ledState μεταβλητός.LAFVIN ESP32 Basic Starter Kit - βρόχος 1Επίδειξη
Μεταφορτώστε τον κωδικό στην πλακέτα ESP32. Μεταφορτώστε τα βήματα αναφοράς κώδικα.
Στη συνέχεια, ανοίξτε τη σειριακή οθόνη με ρυθμό baud 115200. Πατήστε το ενσωματωμένο κουμπί EN/RST για να λάβετε τη διεύθυνση IP.LAFVIN ESP32 Basic Starter Kit - ΕπίδειξηΑνοίξτε ένα πρόγραμμα περιήγησης στο τοπικό σας δίκτυο και πληκτρολογήστε τη διεύθυνση IP του ESP. Θα πρέπει να έχετε πρόσβαση στο web διακομιστή όπως φαίνεται παρακάτω.
Σημείωμα: Το πρόγραμμα περιήγησής σας και το ESP32 θα πρέπει να είναι συνδεδεμένα στο ίδιο LAN.LAFVIN ESP32 Basic Starter Kit - πρόγραμμα περιήγησηςΜπορείτε να αλλάξετε το κουμπί στο web διακομιστή για να ανάψει το LED.LAFVIN ESP32 Basic Starter Kit - web διακομιστής 1Μπορείτε επίσης να ελέγξετε το ίδιο LED με το φυσικό κουμπί. Η κατάστασή του θα ενημερώνεται πάντα αυτόματα στο web υπηρέτης.

Έργο 9 ESP32 DHT11 Web Υπηρέτης

Σε αυτό το έργο, θα μάθετε πώς να δημιουργείτε ένα ασύγχρονο ESP32 web διακομιστή με το DHT11 που εμφανίζει τη θερμοκρασία και την υγρασία χρησιμοποιώντας το Arduino IDE.
Προαπαιτούμενα
Ο web ο διακομιστής που θα δημιουργήσουμε ενημερώνει τις ενδείξεις αυτόματα χωρίς να χρειάζεται να ανανεωθεί web σελίδα.
Με αυτό το έργο θα μάθετε:

  • Πώς να διαβάσετε τη θερμοκρασία και την υγρασία από τους αισθητήρες DHT.
  • Κατασκευάστε ένα ασύγχρονο web διακομιστή χρησιμοποιώντας το ESPAsyncWebΒιβλιοθήκη διακομιστή;
  • Ενημερώστε τις ενδείξεις του αισθητήρα αυτόματα χωρίς να χρειάζεται ανανέωση web σελίδα.

Ασύγχρονη Web Υπηρέτης
Για την κατασκευή του web διακομιστή που θα χρησιμοποιήσουμε τον ESPAsyncWebΒιβλιοθήκη διακομιστή που παρέχει έναν εύκολο τρόπο δημιουργίας ασύγχρονου web υπηρέτης. Χτίζοντας ένα ασύγχρονο web ο διακομιστής έχει πολλά advantagόπως αναφέρεται στη σελίδα της βιβλιοθήκης GitHub, όπως:

  • «Χειριστείτε περισσότερες από μία συνδέσεις ταυτόχρονα».
  • "Όταν στέλνετε την απάντηση, είστε αμέσως έτοιμοι να χειριστείτε άλλες συνδέσεις ενώ ο διακομιστής φροντίζει να στείλει την απάντηση στο παρασκήνιο".
  • "Απλή μηχανή επεξεργασίας προτύπων για χειρισμό προτύπων".

Απαιτούμενα εξαρτήματα
Για να ολοκληρώσετε αυτό το σεμινάριο χρειάζεστε τα ακόλουθα μέρη:

  • Πλακέτα ανάπτυξης ESP32
  • Μονάδα DHT11
  • Breadboard
  • Καλώδια βραχυκυκλωτήρα

ΣχηματικόLAFVIN ESP32 Basic Starter Kit - Σχηματικό 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 σας

Εγκατάσταση του προγράμματος οδήγησης Unified Sensor Adafruit
Πρέπει επίσης να εγκαταστήσετε το Βιβλιοθήκη Adafruit Unified Sensor Driver για εργασία με τον αισθητήρα 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Βιβλιοθήκη διακομιστή

Ακολουθήστε τα επόμενα βήματα για να εγκαταστήσετε το ESPAsyncWebΥπηρέτης βιβλιοθήκη:

  1. Κάντε κλικ εδώ για να κατεβάσετε το ESPAsyncWebΒιβλιοθήκη διακομιστή. Θα έπρεπε να έχετε
    έναν φάκελο .zip στο φάκελο "Λήψεις".
  2. Αποσυμπιέστε το φάκελο .zip και πρέπει
    λάβετε ESPAsyncWebΚύριος φάκελος διακομιστή
  3. Μετονομάστε το φάκελό σας από ESPAsyncWebServer-master στο ESPAsyncWebΥπηρέτης
  4. Μετακινήστε το ESPAsyncWebΦάκελος διακομιστή στον φάκελο βιβλιοθηκών εγκατάστασης Arduino IDE

Εγκατάσταση της βιβλιοθήκης Async TCP για ESP32
Ο ESPAsyncWebΥπηρέτης η βιβλιοθήκη απαιτεί το AsyncTCP βιβλιοθήκη στη δουλειά. Ακολουθήστε τα ακόλουθα βήματα για να εγκαταστήσετε αυτήν τη βιβλιοθήκη:

  1. Κάντε κλικ εδώ για λήψη της βιβλιοθήκης AsyncTCP. Θα πρέπει να έχετε έναν φάκελο .zip στο φάκελο "Λήψεις".
  2. Αποσυμπιέστε το φάκελο .zip και θα λάβετε τον φάκελο AsyncTCP-master
  3. Μετονομάστε το φάκελό σας από AsyncTCP-master σε AsyncTCP
  4. Μετακινήστε το φάκελο AsyncTCP στον φάκελο των βιβλιοθηκών εγκατάστασης του Arduino IDE
  5. Τέλος, ανοίξτε ξανά το Arduino IDE σας

Κώδικας
Θα προγραμματίσουμε το ESP32 χρησιμοποιώντας το Arduino IDE, επομένως βεβαιωθείτε ότι έχετε εγκαταστήσει το πρόσθετο ESP32 πριν συνεχίσετε: (Εάν έχετε κάνει ήδη αυτό το βήμα, μπορείτε να μεταβείτε στο επόμενο βήμα.)
Εγκατάσταση πρόσθετου ESP32 στο Arduino IDE
Αφού εγκαταστήσετε τις απαιτούμενες βιβλιοθήκες, ανοίξτε τον κωδικό
Project_9_ESP32_DHT11_Web_Server.ino στο arduino IDE.
Πριν ανεβάσετε τον κωδικό, μην ξεχάσετε να εισαγάγετε τα διαπιστευτήρια του δικτύου σας, ώστε το ESP να συνδεθεί στο τοπικό σας δίκτυο.LAFVIN ESP32 Basic Starter Kit - ΚωδΠώς λειτουργεί ο Κώδικας
Στις επόμενες παραγράφους θα εξηγήσουμε πώς λειτουργεί ο κώδικας. Συνεχίστε να διαβάζετε εάν θέλετε να μάθετε περισσότερα ή μεταβείτε στην ενότητα Επίδειξη για να δείτε το τελικό αποτέλεσμα.
Εισαγωγή βιβλιοθηκών
Πρώτα, εισαγάγετε τις απαιτούμενες βιβλιοθήκες. Το WiFi, ESPAsyncWebΟ διακομιστής και το ESPAsyncTCP χρειάζονται για τη δημιουργία του web υπηρέτης. Οι βιβλιοθήκες Adafruit_Sensor και DHT χρειάζονται για ανάγνωση από τους αισθητήρες DHT11 ή DHT22.LAFVIN ESP32 Basic Starter Kit - Εισαγωγή βιβλιοθηκώνLAFVIN ESP32 Basic Starter Kit - Πώς λειτουργεί ο ΚώδικαςΟρισμός μεταβλητών
Καθορίστε το GPIO στο οποίο είναι συνδεδεμένη η ακίδα δεδομένων DHT. Σε αυτήν την περίπτωση, είναι συνδεδεμένο στο GPIO 4.LAFVIN ESP32 Basic Starter Kit - Ορισμός μεταβλητώνΣτη συνέχεια, επιλέξτε τον τύπο αισθητήρα DHT που χρησιμοποιείτε. Στην πρώην μαςample, χρησιμοποιούμε το DHT22. Εάν χρησιμοποιείτε άλλο τύπο, απλά πρέπει να αφαιρέσετε το σχόλιο του αισθητήρα σας και να σχολιάσετε όλους τους άλλους.LAFVIN ESP32 Basic Starter Kit - Ορισμός μεταβλητών 1

Δημιουργήστε ένα αντικείμενο DHT με τον τύπο και την καρφίτσα που ορίσαμε νωρίτερα.LAFVIN ESP32 Basic Starter Kit - Ορισμός μεταβλητών 2Δημιουργήστε ένα AsyncWebΑντικείμενο διακομιστή στη θύρα 80.LAFVIN ESP32 Basic Starter Kit - Ορισμός μεταβλητών 3Διαβάστε τις Λειτουργίες θερμοκρασίας και υγρασίας
Δημιουργήσαμε δύο συναρτήσεις: μία για την ανάγνωση της θερμοκρασίας Δημιουργήσαμε δύο συναρτήσεις: μία για την ανάγνωση της θερμοκρασίας (readDHTTemperature()) και την άλλη για την ανάγνωση της υγρασίας (readDHTHumidity()).LAFVIN ESP32 Basic Starter Kit - readDHTHumidityLAFVIN ESP32 Basic Starter Kit - μετρήσεις αισθητήραΗ λήψη μετρήσεων αισθητήρα είναι τόσο απλή όσο η χρήση Η λήψη μετρήσεων αισθητήρα είναι τόσο απλή όσο η χρήση των μεθόδων readTemperature() και readHumidity() στο αντικείμενο dht.LAFVIN ESP32 Basic Starter Kit - αντικείμενοΈχουμε επίσης μια συνθήκη που επιστρέφει δύο παύλες (–) σε περίπτωση που ο αισθητήρας δεν καταφέρει να λάβει τις ενδείξεις.LAFVIN ESP32 Basic Starter Kit - ενδείξειςΟι ενδείξεις επιστρέφονται ως τύπος συμβολοσειράς. Για να μετατρέψετε ένα float σε συμβολοσειρά, χρησιμοποιήστε τη συνάρτηση String().LAFVIN ESP32 Basic Starter Kit - StringΑπό προεπιλογή, διαβάζουμε τη θερμοκρασία σε βαθμούς Κελσίου. Για να λάβετε τη θερμοκρασία σε βαθμούς Φαρενάιτ, σχολιάστε τη θερμοκρασία σε βαθμούς Κελσίου και αφαιρέστε τη θερμοκρασία σε Φαρενάιτ, ώστε να έχετε τα εξής:LAFVIN ESP32 Basic Starter Kit - FahrenheitLAFVIN ESP32 Basic Starter Kit - Fahrenheit 1Ανεβάστε τον Κώδικα
Τώρα, ανεβάστε τον κωδικό στο ESP32 σας. Βεβαιωθείτε ότι έχετε επιλέξει τη σωστή πλακέτα και τη σωστή θύρα COM. Βήματα αναφοράς κώδικα μεταφόρτωσης.
Μετά τη μεταφόρτωση, ανοίξτε τη σειριακή οθόνη με ρυθμό baud 115200. Πατήστε το κουμπί επαναφοράς ESP32. Η διεύθυνση IP του ESP32 θα πρέπει να εκτυπωθεί στη σειρά ελεγκτής εκπομπών.LAFVIN ESP32 Basic Starter Kit - Μεταφορτώστε τον ΚώδικαΕπίδειξη
Ανοίξτε ένα πρόγραμμα περιήγησης και πληκτρολογήστε τη διεύθυνση IP του ESP32. Σας web ο διακομιστής θα πρέπει να εμφανίζει τις πιο πρόσφατες μετρήσεις του αισθητήρα.
Σημείωμα: Το πρόγραμμα περιήγησής σας και το ESP32 θα πρέπει να είναι συνδεδεμένα στο ίδιο LAN.
Σημειώστε ότι οι ενδείξεις θερμοκρασίας και υγρασίας ενημερώνονται αυτόματα χωρίς να χρειάζεται ανανέωση web σελίδα.LAFVIN ESP32 Basic Starter Kit - Επίδειξη 1

Project_10_ESP32_OLED_Display

Αυτό το έργο δείχνει πώς να χρησιμοποιήσετε την οθόνη OLED SSD0.96 1306 ιντσών με ESP32 χρησιμοποιώντας Arduino IDE.
Παρουσιάζουμε την οθόνη OLED 0.96 ιντσών
Ο Οθόνη OLED που θα χρησιμοποιήσουμε σε αυτό το σεμινάριο είναι το μοντέλο SSD1306: μια μονόχρωμη οθόνη 0.96 ιντσών με 128×64 pixels όπως φαίνεται στην παρακάτω εικόνα.LAFVIN ESP32 Basic Starter Kit - OLED DisplayΗ οθόνη OLED δεν απαιτεί οπίσθιο φωτισμό, με αποτέλεσμα μια πολύ ωραία αντίθεση σε σκοτεινά περιβάλλοντα. Επιπλέον, τα pixel του καταναλώνουν ενέργεια μόνο όταν είναι ενεργοποιημένα, επομένως η οθόνη OLED καταναλώνει λιγότερη ενέργεια σε σύγκριση με άλλες οθόνες.
Επειδή η οθόνη OLED χρησιμοποιεί πρωτόκολλο επικοινωνίας I2C, η καλωδίωση είναι πολύ απλή. Μπορείτε να χρησιμοποιήσετε τον παρακάτω πίνακα ως αναφορά.

OLED Pin ESP32
Vin 3.3V
GND GND
SCL GPIO 22
SDA GPIO 21

ΣχηματικόLAFVIN ESP32 Basic Starter Kit - ΣχηματικόΕγκατάσταση SSD1306 OLED Library – ESP32
Υπάρχουν πολλές διαθέσιμες βιβλιοθήκες για τον έλεγχο της οθόνης OLED με το ESP32.
Σε αυτό το σεμινάριο θα χρησιμοποιήσουμε δύο βιβλιοθήκες Adafruit: βιβλιοθήκη Adafruit_SSD1306 και Βιβλιοθήκη Adafruit_GFX.
Ακολουθήστε τα επόμενα βήματα για να εγκαταστήσετε αυτές τις βιβλιοθήκες.

  1. Ανοίξτε το Arduino IDE και μεταβείτε στο Sketch > Include Library > Manage Libraries. Ο διαχειριστής βιβλιοθήκης πρέπει να ανοίξει.
  2. Πληκτρολογήστε "SSD1306" στο πλαίσιο αναζήτησης και εγκαταστήστε τη βιβλιοθήκη SSD1306 από το Adafruit.LAFVIN ESP32 Basic Starter Kit - OLEDLibrary–
  3. Αφού εγκαταστήσετε τη βιβλιοθήκη SSD1306 από το Adafruit, πληκτρολογήστε "GFX" στο πλαίσιο αναζήτησης και εγκαταστήστε τη βιβλιοθήκη.LAFVIN ESP32 Basic Starter Kit - βιβλιοθήκη
  4. Αφού εγκαταστήσετε τις βιβλιοθήκες, επανεκκινήστε το Arduino IDE.

Κώδικας
Αφού εγκαταστήσετε τις απαιτούμενες βιβλιοθήκες, ανοίξτε το Project_10_ESP32_OLED_Display.ino στο arduino IDE. κώδικας
Θα προγραμματίσουμε το ESP32 χρησιμοποιώντας το Arduino IDE, επομένως βεβαιωθείτε ότι έχετε εγκαταστήσει το πρόσθετο ESP32 πριν συνεχίσετε: (Εάν έχετε κάνει ήδη αυτό το βήμα, μπορείτε να μεταβείτε στο επόμενο βήμα.)
Εγκατάσταση πρόσθετου ESP32 στο Arduino IDELAFVIN ESP32 Basic Starter Kit - Κωδικός 1LAFVIN ESP32 Basic Starter Kit - Κωδικός 2LAFVIN ESP32 Basic Starter Kit - Κωδικός 3Πώς λειτουργεί ο Κώδικας
Εισαγωγή βιβλιοθηκών
Πρώτα, πρέπει να εισαγάγετε τις απαραίτητες βιβλιοθήκες. Η βιβλιοθήκη Wire για χρήση του I2C και οι βιβλιοθήκες Adafruit για εγγραφή στην οθόνη: Adafruit_GFX και Adafruit_SSD1306.LAFVIN ESP32 Basic Starter Kit - Code Works 1LAFVIN ESP32 Basic Starter Kit - Code Works 2Εκκινήστε την οθόνη OLED
Στη συνέχεια, ορίζετε το πλάτος και το ύψος της OLED σας. Σε αυτό το πρώηνampΓια παράδειγμα, χρησιμοποιούμε μια οθόνη OLED 128×64. Εάν χρησιμοποιείτε άλλα μεγέθη, μπορείτε να το αλλάξετε στις μεταβλητές SCREEN_WIDTH και SCREEN_HEIGHT.LAFVIN ESP32 Basic Starter Kit - Οθόνη OLEDΣτη συνέχεια, αρχικοποιήστε ένα αντικείμενο οθόνης με το πλάτος και το ύψος που καθορίστηκαν νωρίτερα με το πρωτόκολλο επικοινωνίας I2C (&Wire).LAFVIN ESP32 Basic Starter Kit - πρωτόκολλο επικοινωνίαςΗ παράμετρος (-1) σημαίνει ότι η οθόνη OLED σας δεν έχει pin RESET. Εάν η οθόνη OLED σας έχει καρφίτσα RESET, θα πρέπει να συνδεθεί σε ένα GPIO. Σε αυτήν την περίπτωση, θα πρέπει να μεταβιβάσετε τον αριθμό GPIO ως παράμετρο.
Στο setup(), αρχικοποιήστε τη σειριακή οθόνη με ρυθμό baud 115200 για σκοπούς εντοπισμού σφαλμάτων.LAFVIN ESP32 Basic Starter Kit - σκοποίΕκκινήστε την οθόνη OLED με τη μέθοδο start() ως εξής:LAFVIN ESP32 Basic Starter Kit - display.beginLAFVIN ESP32 Basic Starter Kit - Serial.printlnΑυτό το απόσπασμα εκτυπώνει επίσης ένα μήνυμα στη σειριακή οθόνη, σε περίπτωση που δεν μπορούμε να συνδεθούμε στην οθόνη.

LAFVIN ESP32 Basic Starter Kit - Serial.println 1Σε περίπτωση που χρησιμοποιείτε διαφορετική οθόνη OLED, ίσως χρειαστεί να αλλάξετε τη διεύθυνση OLED. Στην περίπτωσή μας, η διεύθυνση είναι 0x3C.LAFVIN ESP32 Basic Starter Kit - διεύθυνσηΜετά την προετοιμασία της οθόνης, προσθέστε μια καθυστέρηση δύο δευτερολέπτων, έτσι ώστε η OLED να έχει αρκετό χρόνο για να προετοιμαστεί πριν γράψει κείμενο:LAFVIN ESP32 Basic Starter Kit - καθυστέρησηΚαθαρίστε την οθόνη, ορίστε μέγεθος γραμματοσειράς, χρώμα και γράψτε κείμενο
Μετά την προετοιμασία της οθόνης, διαγράψτε το buffer της οθόνης με τη μέθοδο clearDisplay():LAFVIN ESP32 Basic Starter Kit - οθόνη

Πριν γράψετε κείμενο, πρέπει να ορίσετε το μέγεθος του κειμένου, το χρώμα και τη θέση που θα εμφανίζεται το κείμενο στο OLED.
Ορίστε το μέγεθος της γραμματοσειράς χρησιμοποιώντας τη μέθοδο setTextSize():LAFVIN ESP32 Basic Starter Kit - οθόνη 1Ορίστε το χρώμα της γραμματοσειράς με τη μέθοδο setTextColor():
Το WHITE ορίζει τη λευκή γραμματοσειρά και το μαύρο φόντο.
Καθορίστε τη θέση όπου ξεκινά το κείμενο χρησιμοποιώντας τη μέθοδο setCursor(x,y). Σε αυτήν την περίπτωση, ρυθμίζουμε το κείμενο να ξεκινά από τις συντεταγμένες (0,0) – στην επάνω αριστερή γωνία.LAFVIN ESP32 Basic Starter Kit - setTextColor 1Τέλος, μπορείτε να στείλετε το κείμενο στην οθόνη χρησιμοποιώντας τη μέθοδο println(), ως εξήςLAFVIN ESP32 Basic Starter Kit - κωδικός 5Στη συνέχεια, πρέπει να καλέσετε τη μέθοδο display() για να εμφανίσετε πραγματικά το κείμενο στην οθόνη.LAFVIN ESP32 Basic Starter Kit - οθόνη

Η βιβλιοθήκη Adafruit OLED παρέχει χρήσιμες μεθόδους για εύκολη κύλιση κειμένου.

  • startscrollright(0x00, 0x0F): κύλιση κειμένου από αριστερά προς τα δεξιά
  • startscrollleft(0x00, 0x0F): κύλιση κειμένου από δεξιά προς τα αριστερά
  • startscrolldiagright(0x00, 0x07): κύλιση κειμένου από την κάτω αριστερή γωνία στην επάνω δεξιά γωνία startscrolldiagleft(0x00, 0x07): κύλιση κειμένου από την κάτω δεξιά γωνία στην επάνω αριστερή γωνία

Ανεβάστε τον Κώδικα
Τώρα, ανεβάστε τον κωδικό στο ESP32. Βήματα αναφοράς κωδικού μεταφόρτωσης.
Μετά τη μεταφόρτωση του κώδικα, το OLED θα εμφανίσει κυλιόμενο κείμενο.LAFVIN ESP32 Basic Starter Kit - κυλιόμενο κείμενοΛογότυπο LAFVIN

Έγγραφα / Πόροι

LAFVIN ESP32 Basic Starter Kit [pdf] Εγχειρίδιο οδηγιών
ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit

Αναφορές

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευτεί. Τα υποχρεωτικά πεδία επισημαίνονται *