ה- ESP32-CAM הוא בקר מיקרו עוצמתי בעלות נמוכה עם מודול מצלמה מובנה, המסוגל לתפוס תמונות ולהזרמת וידאו חי. על ידי מינוף יכולות העיבוד שלה ושילוב ספריות או מסגרות חיצוניות של למידת מכונות, באפשרותך לאפשר איתור אובייקטים ישירות ב- ESP32-CAM. מדריך זה ינחה אתכם באמצעות הגדרת איתור אובייקטים בסיסיים עם ה- ESP32-CAM באמצעות דגמים שהוכשרו מראש.
מה תצטרך
- מודול ESP32-CAM
- מתכנת FTDI (מתאם USB-to-Serial)
- חוטי מגשר
- לחם (אופציונלי)
- מחשב עם Arduino IDE המותקן
- דחף קצה או טנסורפליט לייט למודלים של גילוי אובייקטים
שלב 1: הגדרת IDE Arduino
1. התקן את חבילת הלוח ESP32
-
פתח את IDE Arduino.
-
לך אל קוֹבֶץ > העדפות.
-
בשדה "כתובות אתר של מנהל הדירקטוריון הנוסף", הוסף:
https://dl.espressif.com/dl/package_esp32_index.json
-
נְקִישָׁה בְּסֵדֶר.
-
לך אל כְּלֵי עֲבוֹדָה > לוּחַ > מנהל לוחות.
-
חפש "ESP32" והתקן את החבילה על ידי מערכות אספרסף.
2. התקן ספריות נדרשות
- התקן את ספריית "מצלמת ESP32".
- עבור דגמי זיהוי אובייקטים, התקן את "TensorFlow Lite Micro" (או ספריות דומות).
שלב 2: חיווט ה- ESP32-Cam
סיכת ESP32-CAM | סיכת מתכנת FTDI |
---|---|
GND | GND |
5V | VCC (5V) |
U0R | TX |
U0T | Rx |
GND | GND (IO0 ל- GND להבהב) |
חָשׁוּב: חבר את סיכת ה- IO0 ל- GND כדי להכניס את ה- ESP32-CAM למצב פלאש.
שלב 3: העלאת רישום זיהוי אובייקטים בסיסי
1. בחר בלוח וביציאה
- לך אל כְּלֵי עֲבוֹדָה > לוּחַ ובחר AI-Thinker ESP32-Cam.
- תַחַת כְּלֵי עֲבוֹדָה, בחר את הנכון נמל com עבור מתכנת ה- FTDI שלך.
2. הכנת הקוד
השתמש בדוגמה בסיסית כדי לטעון מודל לגילוי אובייקטים מאומן מראש (למשל, מודל TensorFlow Lite). להלן קטע מדגם לשילוב איתור אובייקטים:
#include <esp_camera.h>
#include <TensorFlowLite_ESP32.h>
// Replace with your specific model and labels
#include "model.h"
#include "labels.h"
void setup() {
Serial.begin(115200);
// Initialize the camera
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;
if (!esp_camera_init(&config)) {
Serial.println("Camera initialized successfully!");
} else {
Serial.println("Camera initialization failed!");
while (1);
}
// Load the TensorFlow Lite model
TfLiteStatus model_status = tflite::InitModel(model);
if (model_status != kTfLiteOk) {
Serial.println("Failed to initialize the model");
while (1);
}
}
void loop() {
// Capture a frame
camera_fb_t *frame = esp_camera_fb_get();
if (!frame) {
Serial.println("Camera capture failed");
return;
}
// Run object detection
tflite::RunInference(frame->buf, frame->len);
// Display detected objects
for (int i = 0; i < NUM_CLASSES; i++) {
float confidence = tflite::GetConfidence(i);
if (confidence > 0.5) {
Serial.print("Detected: ");
Serial.print(labels[i]);
Serial.print(" with confidence: ");
Serial.println(confidence);
}
}
esp_camera_fb_return(frame); // Free the frame buffer
delay(200);
}
3. העלה את הקוד
- לחץ על אִתחוּל כפתור ב- ESP32-CAM ואילו IO0 מחובר ל- GND.
- נְקִישָׁה העלה ב- Arduino IDE.
- לאחר השלמת ההעלאה, נתק את IO0 מ- GND ולחץ על אִתחוּל כפתור שוב.
שלב 4: גישה לתוצאות גילוי אובייקטים
- פתח את הצג הסדרתי (כְּלֵי עֲבוֹדָה > צג סידורי) וקבעו את שיעור הבוד
115200
. - צפה בחפצים שזוהו וציוני הביטחון שלהם במוניטור הסדרתי.
- אתה יכול להרחיב זאת על ידי הצגת תוצאות בממשק אינטרנט באמצעות HTML או שילוב עם פלטפורמות IoT כמו MQTT.
שלב 5: שיפור גילוי האובייקטים
- אופטימיזציה של מודל: השתמש ב- Edge Impulse או TensorFlow Lite כדי להכשיר דגמים מותאמים אישית המותאמים עבור ה- ESP32-CAM.
- ממשק אינטרנט: שפר את הפרויקט על ידי הצגת האובייקטים שזוהו ישירות בממשק דפדפן.
- שילוב IoT: שלח תוצאות גילוי לשירותי ענן להמשך עיבוד או מערכות התראה.
פתרון בעיות
- הדגם גדול מדי: ודא שגודל הדגם מתאים בזיכרון ה- ESP32-CAM.
- המצלמה לא זוהה: אמת חיווט וודא שהמצלמה מחוברת בצורה מאובטחת.
- דיוק נמוך: לאמן או לכוונן את המודל עם נתונים רלוונטיים יותר.
יישומים של איתור אובייקטים עם ESP32-CAM
- מצלמות אבטחה עם תנועה או איתור אובייקטים
- אוטומציה של בית חכם (למשל, גילוי משלוחים או חיות מחמד)
- מערכות ניטור וספירה תעשייתיות
- ניטור ומחקר חיות בר
מַסְקָנָה
הגדרת בהצלחה איתור אובייקטים בסיסי עם ה- ESP32-CAM. מודול חזק זה, בשילוב עם מודלים למידת מכונות, פותח אינסוף אפשרויות ליישומים בעולם האמיתי. התנסו במודלים שונים, שיפרו את הדיוק והרחבו את הפונקציונליות כך שיתאימו לצרכי הפרויקט שלכם!