Πίνακας περιεχομένων:

Εισαγωγή στο ESP32: 10 βήματα
Εισαγωγή στο ESP32: 10 βήματα

Βίντεο: Εισαγωγή στο ESP32: 10 βήματα

Βίντεο: Εισαγωγή στο ESP32: 10 βήματα
Βίντεο: DIY SECURITY Camera ESP32 CAM με μόλις 10 € !!! 2024, Νοέμβριος
Anonim
Image
Image
Βασικά χαρακτηριστικά
Βασικά χαρακτηριστικά

Σε αυτό το άρθρο πρόκειται να μιλήσουμε για το ESP32, το οποίο θεωρώ ότι είναι μεγαλύτερος αδελφός του ESP8266. Μου αρέσει πολύ αυτός ο μικροελεγκτής γιατί έχει WiFi. Για να έχετε μια ιδέα, πριν υπάρξει το ESP, εάν χρειάζεστε ένα Arduino για να έχετε WiFi, θα πρέπει να ξοδέψετε μεταξύ $ 200 και $ 300 για να αγοράσετε έναν προσαρμογέα Wifi. Ο προσαρμογέας για καλώδιο δικτύου δεν είναι τόσο ακριβός, αλλά για WiFi ήταν πάντα και εξακολουθεί να είναι ακριβός. Ευτυχώς όμως, η Espressif Systems ξεκίνησε το ESP και λύνει τη ζωή μας.

Μου αρέσει το ESP32 με αυτήν τη μορφή που διαθέτει θύρα USB. Αυτό το σχήμα NodeMCU είναι εύκολο να χειριστεί επειδή δεν χρειάζεται ηλεκτρονικά. Απλώς συνδέστε το καλώδιο, τροφοδοτήστε τη συσκευή και προγραμματίστε την. Λειτουργεί ακριβώς όπως ένα Arduino.

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

Βήμα 1: Βασικά χαρακτηριστικά

Τσιπ με ενσωματωμένο WiFi: στάνταρ 802.11 B / G / N, που λειτουργεί στην περιοχή από 2,4 έως 2,5 GHz

Τρόποι λειτουργίας: Πελάτης, Σημείο πρόσβασης, Σταθμός + Σημείο πρόσβασης

Μικροεπεξεργαστής διπλού πυρήνα Tensilica Xtensa 32-bit LX6

Ρυθμιζόμενο ρολόι από 80MHz έως 240MHz

Τάση λειτουργίας: 3,3 VDC

Έχει SRAM 512KB

Διαθέτει ROM 448KB

Διαθέτει εξωτερική μνήμη flash 32Mb (4 megabyte)

Το μέγιστο ρεύμα ανά ακίδα είναι 12mA (συνιστάται η χρήση 6mA)

Διαθέτει 36 GPIO

GPIO με λειτουργίες PWM / I2C και SPI

Διαθέτει Bluetooth v4.2 BR / EDR και BLE (Bluetooth Low Energy)

Βήμα 2: Σύγκριση μεταξύ ESP32, ESP8266 και Arduino R3

Σύγκριση μεταξύ ESP32, ESP8266 και Arduino R3
Σύγκριση μεταξύ ESP32, ESP8266 και Arduino R3

Βήμα 3: Τύποι ESP32

Τύποι ESP32
Τύποι ESP32

Το ESP32 γεννήθηκε με πολλά αδέλφια. Σήμερα χρησιμοποιώ το πρώτο από τα αριστερά, το Espressif, αλλά υπάρχουν διάφορες μάρκες και τύποι, συμπεριλαμβανομένης της ενσωματωμένης οθόνης Oled. Ωστόσο, όλες οι διαφορές είναι το ίδιο τσιπ: το Tensilica LX6, 2 Core.

Βήμα 4: WiFi NodeMCU-32S ESP-WROOM-32

WiFi NodeMCU-32S ESP-WROOM-32
WiFi NodeMCU-32S ESP-WROOM-32

Αυτό είναι το διάγραμμα του ESP που χρησιμοποιούμε στη συναρμολόγησή μας. Είναι ένα τσιπ που έχει πολλή έλξη και δύναμη. Είναι αρκετές καρφίτσες που επιλέγετε αν θέλουν να λειτουργούν ως ψηφιακές αναλογικές, αναλογικές ψηφιακές ή ακόμα και αν λειτουργούν ως ψηφιακές πόρτες.

Βήμα 5: Διαμόρφωση Arduino IDE (Windows)

Διαμόρφωση Arduino IDE (Windows)
Διαμόρφωση Arduino IDE (Windows)
Διαμόρφωση Arduino IDE (Windows)
Διαμόρφωση Arduino IDE (Windows)

Δείτε πώς μπορείτε να διαμορφώσετε το Arduino IDE ώστε να μπορούμε να μεταγλωττίσουμε το ESP32:

1. Κατεβάστε τα αρχεία μέσω του συνδέσμου:

2. Αποσυμπιέστε το αρχείο και αντιγράψτε το περιεχόμενο στην ακόλουθη διαδρομή:

C: / Users / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32

Σημείωση: Εάν δεν υπάρχει κατάλογος "espressif" και "esp32", απλώς δημιουργήστε τους κανονικά.

3. Ανοίξτε τον κατάλογο

C: / Users / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32 / tools

Εκτελέστε το αρχείο "get.exe".

4. Αφού τελειώσει το "get.exe", συνδέστε το ESP32, περιμένετε να εγκατασταθούν τα προγράμματα οδήγησης (ή εγκαταστήστε μη αυτόματα).

Έτοιμοι, τώρα απλώς επιλέξτε τον πίνακα ESP32 στο "εργαλεία >> πίνακα" και μεταγλωττίστε τον κωδικό σας.

Βήμα 6: Σάρωση WiFi

Ακολουθεί ένα παράδειγμα του τρόπου αναζήτησης διαθέσιμων δικτύων WiFi κοντά στο ESP-32, καθώς και η ισχύς του σήματος καθενός από αυτά. Με κάθε σάρωση, θα μάθουμε επίσης ποιο δίκτυο έχει την καλύτερη ισχύ σήματος.

Βήμα 7: Κωδικός

Αρχικά ας συμπεριλάβουμε τη βιβλιοθήκη "WiFi.h", θα είναι απαραίτητο να μας επιτρέψει να δουλέψουμε με την κάρτα δικτύου της συσκευής μας.

#include "WiFi.h"

Ακολουθούν δύο μεταβλητές που θα χρησιμοποιηθούν για την αποθήκευση του SSID (ονόματος) και της ισχύος του σήματος του δικτύου.

String networkSSID = ""; int powerSignal = -9999;

Βήμα 8: Ρύθμιση

Στη συνάρτηση setup (), θα ορίσουμε τη λειτουργία συμπεριφοράς WiFi της συσκευής μας. Σε αυτή την περίπτωση, δεδομένου ότι ο στόχος είναι η αναζήτηση διαθέσιμων δικτύων, θα διαμορφώσουμε τη συσκευή μας να λειτουργεί ως "σταθμός".

void setup () {// Initialize Serial για σύνδεση στο Serial Monitor Serial.begin (115200);

// διαμόρφωση του τρόπου λειτουργίας του WiFi ως σταθμού WiFi.mode (WIFI_STA); // WIFI_STA είναι μια σταθερά που υποδεικνύει τη λειτουργία του σταθμού

// αποσυνδέστε από το σημείο πρόσβασης εάν είναι ήδη συνδεδεμένο WiFi.disconnect (); καθυστέρηση (100)?

// Serial.println ("Η εγκατάσταση ολοκληρώθηκε");}

Βήμα 9: Βρόχος

Στη λειτουργία βρόχου (), θα αναζητήσουμε τα διαθέσιμα δίκτυα και στη συνέχεια θα εκτυπώσουμε το αρχείο καταγραφής στα δίκτυα που βρέθηκαν. Για καθένα από αυτά τα δίκτυα θα κάνουμε τη σύγκριση για να βρούμε αυτό με την υψηλότερη ισχύ σήματος.

void loop () {// Serial.println ("έναρξη σάρωσης"); // εκτελεί τη σάρωση των διαθέσιμων δικτύων

int n = WiFi.scanNetworks ();

Serial.println ("Εκτέλεση σάρωσης");

// ελέγξτε αν έχετε βρει κάποιο δίκτυο εάν (n == 0) {Serial.println ("Δεν βρέθηκε δίκτυο"); } else {networkSSID = ""; forceSignal = -9999; Serial.print (n); Serial.println ("βρέθηκαν δίκτυα / n"); για (int i = 0; i <n; ++ i) {// εκτύπωση σε σειριακή οθόνη καθένα από τα δίκτυα που βρέθηκαν Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // όνομα δικτύου (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // ισχύς σήματος Serial.print ("\ t / tCHANNEL:"); Serial.print ((int) WiFi.channel (i)); Serial.print ("\ t / tMAC:"); Serial.print (WiFi. BSSIDstr (i)); Serial.println ("\ n / n"); if (abs (WiFi. RSSI (i)) <abs (powerSignal)) {powerSignal = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("ΔΙΚΤΥΟ ΜΕ ΤΟ ΚΑΛΥΤΕΡΟ ΣΗΜΑ: Βρέθηκε: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (forceSignal); Serial.println (")"); } καθυστέρηση (10); }} Serial.println ("\ n ----------------------------------------- ---------------------------------------------- / \ n ");

// διάστημα 5 δευτερολέπτων για την εκτέλεση νέας καθυστέρησης σάρωσης (5000). }

"Εάν (abs (WiFi. RSSI (i))"

Σημειώστε ότι στην παραπάνω πρόταση χρησιμοποιούμε abs (), αυτή η συνάρτηση παίρνει την απόλυτη τιμή (δηλαδή όχι αρνητική) του αριθμού. Στην περίπτωσή μας το κάναμε αυτό για να βρούμε τη μικρότερη από τις τιμές στη σύγκριση, επειδή η ένταση του σήματος δίνεται ως αρνητικός αριθμός και όσο πιο κοντά στο μηδέν τόσο καλύτερο το σήμα.

Βήμα 10: Αρχεία

Λήψη όλων των αρχείων μου στη διεύθυνση: www.fernandok.com

Συνιστάται: