תוכן עניינים:

מבוא ל- ESP32: 10 שלבים
מבוא ל- ESP32: 10 שלבים

וִידֵאוֹ: מבוא ל- ESP32: 10 שלבים

וִידֵאוֹ: מבוא ל- ESP32: 10 שלבים
וִידֵאוֹ: ESP32 Tutorial 5 - LED Fade, control brightness of an LED -ESP32 IoT Learnig kit 2024, יולי
Anonim
Image
Image
תכונות עיקריות
תכונות עיקריות

במאמר זה נדבר על ESP32, שלדעתי הוא אח מבוגר של ESP8266. אני מאוד אוהב את המיקרו -בקר הזה כי יש לו WiFi. רק כדי שיהיה לך רעיון, לפני ש- ESP קיים, אם היית צריך Arduino כדי שיהיה לך WiFi, תצטרך להוציא בין 200 $ ל -300 $ כדי לקנות מתאם Wifi. המתאם לכבל הרשת לא כל כך יקר, אבל עבור WiFi הוא תמיד היה ועדיין יקר. אך למרבה המזל, Espressif Systems השיקה ESP והיא פותרת את חיינו.

אני אוהב ESP32 עם פורמט זה שיש לו יציאת USB. ערכת NodeMCU זו קלה לתפעול מכיוון שהיא אינה זקוקה לאלקטרוניקה. פשוט חבר את הכבל, הפעל את המכשיר ותכנת אותו. זה עובד בדיוק כמו ארדואינו.

בכל מקרה, היום נדבר על ההיבטים הכלליים של 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

יש לו זיכרון פלאש חיצוני של 32Mb (4 מגה בייט)

הזרם המרבי לפין הוא 12mA (מומלץ להשתמש ב- 6mA)

יש לו 36 GPIOs

GPIOs עם פונקציות 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

צומת WiFiMCU-32S ESP-WROOM-32
צומת WiFiMCU-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: / משתמשים / [YOUR_USER_NAME] / מסמכים / Arduino / hardware / espressif / esp32

הערה: אם אין מדריך "espressif" ו- "esp32", פשוט צור אותם כרגיל.

3. פתח את הספרייה

C: / משתמשים / [YOUR_USER_NAME] / מסמכים / Arduino / hardware / espressif / esp32 / tools

הפעל את הקובץ "get.exe".

4. לאחר סיום "get.exe", חבר את ה- ESP32, המתן להתקנת מנהלי ההתקן (או התקנה ידנית).

מוכן, עכשיו פשוט בחר את לוח ESP32 ב"כלים >> לוח "וירכז את הקוד שלך.

שלב 6: סריקת WiFi

להלן דוגמה כיצד לחפש רשתות WiFi זמינות ליד ה- ESP-32, כמו גם את עוצמת האות של כל אחת מהן. בכל סריקה נגלה גם לאיזו רשת יש את עוצמת האות הטובה ביותר.

שלב 7: קוד

ראשית נכלול את הספרייה "WiFi.h", יהיה צורך לאפשר לנו לעבוד עם כרטיס הרשת של המכשיר שלנו.

#כלול "WiFi.h"

להלן שני משתנים שישמשו לאחסון ה- SSID של הרשת (שם) ועוצמת האות.

String stringSSID = ""; int strengthSignal = -9999;

שלב 8: התקנה

בפונקציית ההתקנה (), נגדיר את מצב התנהגות ה- WiFi של המכשיר שלנו. במקרה זה, מכיוון שהמטרה היא לחפש רשתות זמינות, אנו נקבע את התצורה של המכשיר שלנו לעבודה כ"תחנה ".

הגדרת void () {// אתחל את Serial כדי להיכנס ל- Serial Monitor Serial.begin (115200);

// הגדרת אופן הפעולה של WiFi כמצב WiFi.mode (WIFI_STA); // WIFI_STA הוא קבוע המציין את מצב התחנה

// נתק מנקודת הגישה אם הוא כבר מחובר WiFi.disconnect (); עיכוב (100);

// Serial.println ("ההתקנה בוצעה");}

שלב 9: לולאה

בפונקציית הלולאה (), נחפש את הרשתות הזמינות ולאחר מכן נדפיס את היומן ברשתות שנמצאו. עבור כל אחת מהרשתות הללו נבצע את ההשוואה כדי למצוא את הרשת בעלת עוצמת האות הגבוהה ביותר.

לולאת void () {// Serial.println ("התחלת סריקה"); // מבצע סריקה של רשתות זמינות

int n = WiFi.scanNetworks ();

Serial.println ("סריקה בוצעה");

// בדוק אם מצאת רשת כלשהי אם (n == 0) {Serial.println ("לא נמצאה רשת"); } אחר {networkSSID = ""; strengthSignal = -9999; Serial.print (n); Serial.println ("רשתות נמצאו / n"); for (int i = 0; i <n; ++ i) {// הדפס על צג טורי כל אחת מהרשתות שנמצאו Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // שם רשת (ssid) Serial.print ("סיגנל:"); 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 (strengthSignal)) {strengthSignal = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("רשת עם האות הטוב ביותר: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (strengthSignal); Serial.println (")"); } עיכוב (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// מרווח של 5 שניות לביצוע עיכוב סריקה חדש (5000); }

"אם (abs (WiFi. RSSI (i))"

שים לב שבמשפט לעיל אנו משתמשים ב- abs (), פונקציה זו לוקחת את הערך המוחלט (כלומר לא שלילי) של המספר. במקרה שלנו עשינו זאת כדי למצוא את הערכים הקטנים ביותר בהשוואה, מכיוון שעוצמת האות ניתנת כמספר שלילי וככל שקרוב לאפס כך האות טוב יותר.

שלב 10: קבצים

הורד את כל הקבצים שלי ב: www.fernandok.com

מוּמלָץ: