כרטיס 30 פינים – ESP32-DevKitC-32 ESP-WROOM-32

55.00

18 במלאי

תיאור

30 פינים

ESP32-DevKitC-32 ESP-WROOM-32

סט דוגמאות  קוד בשפת סי לארדוינו לכל רוכש .

 

להלן מדריך “מאפס לאורות נדלקים ול-OLED עובד”. הוא כתוב כך שתוכל לבצע אותו שלב-אחר-שלב בלי להניח ידע קודם מעבר להתקנת תוכנות בסיסית.


1) מה צריך מראש

חומרה מינימלית

  • לוח ESP32 (נפוץ: ESP32-WROOM-32 DevKit / NodeMCU-32S / ESP32 Dev Module).
  • כבל USB-נתונים (לא “כבל טעינה בלבד”).
  • (לא חובה) LED מובנה על הלוח. אם אין—תוכל להשתמש ב-Serial Monitor בלבד.

להפעלת OLED (נפוץ)

  • OLED I2C בגודל 0.96" או 1.3" עם בקר SSD1306.
  • 4 חוטים: VCC, GND, SDA, SCL.

2) התקנת Arduino IDE והכנת הסביבה

2.1 התקנת Arduino IDE

  • מומלץ Arduino IDE 2.x (הגרסה החדשה). מתקינים כרגיל.

2.2 התקנת דרייברים (רק אם צריך)

אם המחשב לא מזהה פורט חדש כשמחברים את ה-ESP32:

  • לוחות רבים משתמשים בממיר USB-Serial מסוג CP2102 או CH340.
  • התקן דרייבר מתאים ואז נתק/חבר מחדש את הלוח.
    סימן שהכול תקין: ב-Arduino IDE יופיע פורט COM (Windows) או ‎/dev/tty… (Linux/Mac).

3) הוספת תמיכת ESP32 ל-Arduino IDE (Board Package)

  1. פתח Arduino IDE.
  2. היכנס ל-File → Preferences.
  3. בשדה Additional Boards Manager URLs הוסף את ה-URL הבא (אם יש כבר, הוסף בשורה חדשה):
    • https://espressif.github.io/arduino-esp32/package_esp32_index.json
  4. לחץ OK.
  5. היכנס ל-Tools → Board → Boards Manager.
  6. חפש esp32 והתקן את “esp32 by Espressif Systems”.
  7. בסיום—סגור/פתח מחדש את ה-IDE (מומלץ).

4) בחירת לוח, פורט והגדרות בסיסיות

  1. Tools → Board ובחר אחד מהבאים (מה שמתאים ללוח שלך):
    • אם לא בטוח: לרוב עובד ESP32 Dev Module.
  2. Tools → Port בחר את הפורט של ה-ESP32.
  3. הגדרות מומלצות להתחלה (בתפריט Tools, משתנה לפי לוח):
    • Upload Speed: 921600 או 460800 (אם יש תקלות—הורד ל-115200)
    • Flash Frequency: 80MHz
    • Partition Scheme: Default (או “Huge APP” אם פרויקטים גדולים)

5) התוכנית הראשונה: “Hello Serial” + Blink (אם יש LED)

5.1 בדיקה עם Serial Monitor

צור סקיצה חדשה והדבק:

void setup() {
  Serial.begin(115200);
  delay(300);
  Serial.println("ESP32 is alive!");
}

void loop() {
  static uint32_t last = 0;
  if (millis() - last >= 1000) {
    last = millis();
    Serial.println("Tick...");
  }
}
  1. לחץ Upload.
  2. פתח Tools → Serial Monitor.
  3. קבע מהירות (baud) ל-115200.
  4. אתה אמור לראות “Tick…” כל שנייה.

אם אתה רואה ג’יבריש—ה-baud לא נכון.

5.2 Blink (רק אם יש LED מובנה על GPIO ידוע)

בחלק מהלוחות יש LED על GPIO2 או GPIO5 או GPIO13, ואין סטנדרט מחייב.
אם אתה יודע שה-LED הוא על GPIO2 (נפוץ), נסה:

const int LED_PIN = 2;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(300);
  digitalWrite(LED_PIN, LOW);
  delay(300);
}

אם אין LED/לא נדלק—דלג, זה לא קריטי. ה-Serial הוא בדיקת “שלום עולם” אמינה.


6) חיבור OLED (I2C) בצורה נכונה

6.1 חיווט סטנדרטי

רוב תצוגות ה-OLED I2C מסומנות כך:

  • VCC → 3.3V (בחלק מהמודולים אפשר גם 5V, אבל עדיף 3.3V ל-ESP32)
  • GND → GND
  • SDA → GPIO21 (ברוב לוחות ESP32)
  • SCL → GPIO22 (ברוב לוחות ESP32)

אם אצלך הלוח שונה—עדיין אפשר לבחור פינים אחרים, אבל 21/22 הם ברירת-מחדל נפוצה.

6.2 כתובת I2C נפוצה

  • לרוב: 0x3C
  • לפעמים: 0x3D

נבדוק זאת עם סורק I2C עוד רגע.


7) התקנת ספריות ל-OLED

ב-Arduino IDE:

  1. Tools → Manage Libraries
  2. חפש והתקן:
    • Adafruit SSD1306
    • Adafruit GFX Library

ה-IDE יתקין גם תלות כמו Adafruit BusIO.


8) סורק I2C כדי לוודא שה-OLED מזוהה

העלה את הקוד הבא:

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  delay(300);

  Wire.begin(21, 22); // SDA, SCL
  Serial.println("\nI2C scan...");

  for (uint8_t addr = 1; addr < 127; addr++) {
    Wire.beginTransmission(addr);
    uint8_t err = Wire.endTransmission();
    if (err == 0) {
      Serial.print("Found device at 0x");
      if (addr < 16) Serial.print("0");
      Serial.println(addr, HEX);
    }
  }
  Serial.println("Done.");
}

void loop() {}

ב-Serial Monitor אתה אמור לראות:

  • “Found device at 0x3C” (או 0x3D)

אם לא נמצא שום דבר:

  • החלף SDA/SCL (טעות חיווט נפוצה).
  • ודא VCC ו-GND.
  • נסה Wire.begin(4, 5) רק אם אתה יודע שהלוח ממופה אחרת.
  • ודא שזה באמת OLED I2C (יש גם SPI עם יותר פינים).

9) תוכנית OLED ראשונה: טקסט + מונה

הקוד הבא מניח:

  • תצוגה 128×64
  • כתובת 0x3C
  • I2C על פינים  21/22
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1        // ברוב מודולי I2C אין פין RESET
#define OLED_ADDR 0x3C

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  Serial.begin(115200);
  delay(300);

  Wire.begin(21, 22); // SDA, SCL

  if (!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) {
    Serial.println("SSD1306 allocation failed (wrong address/size/wiring?)");
    while (true) delay(100);
  }

  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);

  display.setCursor(0, 0);
  display.println("Hello ESP32 + OLED!");
  display.display();
  delay(1000);
}

void loop() {
  static uint32_t counter = 0;

  display.clearDisplay();
  display.setCursor(0, 0);
  display.println("OLED is working.");
  display.print("Counter: ");
  display.println(counter++);

  display.print("Millis: ");
  display.println(millis());

  display.display();
  delay(200);
}

אם המסך שלך 128×32

שנה:

  • #define SCREEN_HEIGHT 32

אם הכתובת היא 0x3D

שנה:

  • #define OLED_ADDR 0x3D

10) תקלות נפוצות ופתרונות מהירים

Upload נכשל / “Timed out waiting for packet header”

  • ודא שבחרת Port נכון.
  • לחץ והחזק BOOT בזמן תחילת ה-upload (בחלק מהלוחות).
  • הורד Upload Speed ל-115200.
  • החלף כבל USB.
  •  

מסך לבן/שחור ללא טקסט

  • כתובת I2C לא נכונה (0x3C/0x3D) → השתמש בסורק I2C.
  • גודל מסך לא נכון (128×64 מול 128×32).
  • חיווט SDA/SCL הפוך.

המחשב לא מזהה את הלוח בכלל

  • דרייבר CP210x/CH340 חסר.
  • כבל לא תומך נתונים.
  • חיבור USB בעייתי/Hub לא יציב.

    בהצלחה
    יובל

 

Social Share Buttons and Icons powered by Ultimatelysocial
YouTube
YouTube
Set Youtube Channel ID