ورکشاپ آموزشی - آیسی مدار
رفتن به محتوا

نورسنج دیجیتال با برد ESP32 و سنسور TEMT6000

ابزار و گجت
۰ نظر
۴۶ نفر
کد ۳۰۹۶

آیا تا حالا برات سوال شده که گوشی موبایلت چطوری نور صفحه‌نمایش رو با توجه به نور محیط تنظیم می‌کنه؟ یا چراغ‌های هوشمند خیابون از کجا می‌فهمن که دقیقا چه زمانی باید روشن بشن؟ راز پشت پرده تمام این سیستم‌های اتوماتیک، استفاده از سنسورهای تشخیص نور محیطیه که شدت روشنایی رو با دقت بالایی اندازه‌گیری می‌کنن.

تیم آیسی‌مدار تو این آموزش قراره بهت یاد بده چطوری یه نورسنج دیجیتال (لوکس‌متر) دقیق بسازی. ما برای این پروژه از سنسور جذاب TEMT6000 استفاده می‌کنیم. ویژگی فوق‌العاده این سنسور اینه که رفتارش خیلی شبیه به چشم انسان طراحی شده؛ یعنی به نورهای نامرئی مثل مادون قرمز یا فرابنفش واکنشی نشون نمی‌ده و فقط نور مرئی رو می‌سنجه تا دقیق‌ترین خروجی ممکن رو بهمون بده.

مغز متفکر این پروژه، برد توسعه قدرتمند ESP32 هست. قراره این سنسور رو به میکروکنترلر وصل کنیم، کدهای لازم رو تو نرم‌افزار آردوینو بنویسیم و شدت نور محیط رو بر اساس واحد استاندارد "لوکس" (Lux) روی مانیتور ببینیم. پس قطعاتت رو روی میز بچین تا بریم سراغ ساخت این پروژه الکترونیکی کاربردی!

سنسور TEMT6000 دقیقا چیه؟

TXT
VCC: Power pin.
GND: Ground pin.
SIG: Signal pin.

قطعات موردنیاز

  • برد توسعه میکروکنترلر ESP32 (مدل ESP-WROOM-32)
  • ماژول سنسور تشخیص نور TEMT6000
  • برد بورد (Breadboard)
  • سیم جامپر
  • کابل دیتای USB (میکرو یو‌اس‌بی)
  • نرم‌افزار Arduino IDE
مرحله ۱

نقشه مدار و سیم‌کشی پروژه

نحوه اتصال سه تا پین سنسور به برد ESP32 خیلی ساده‌ست. سیم‌کشی‌ها رو طبق راهنمای زیر انجام بده:

TXT
TEMT6000 ESP32 Wire Color
VCC 3.3V Red
GND GND Black
SIG GPIO34 Blue

⚠️ نکته خیلی مهم: به هیچ‌وجه سنسور رو به پین 5 ولت وصل نکن! این سنسور فقط باید با ولتاژ 3.3 ولت تغذیه بشه تا آسیب نبینه.

مرحله ۲

راه‌اندازی و تنظیمات نرم‌افزار آردوینو

نرم‌افزار Arduino IDE همون محیطیه که قراره کدهامون رو توش بنویسیم و روی برد ESP32 آپلود کنیم. با پنج قدم ساده زیر محیطت رو آماده کن:

  1. نسخه جدید نرم‌افزار Arduino IDE رو از سایت رسمی آردوینو برای سیستمت دانلود و نصب کن.
  2. نرم‌افزار رو باز کن.
  3. از منوی File وارد بخش Preferences شو. تو کادر Additional Boards Manager URLs، آدرس پکیج رسمی بردهای ESP32 رو وارد کن.
  4. حالا از منوی Tools بخش Board برو به Boards Manager. کلمه ESP32 رو سرچ کن و پکیجی که سازنده‌ش Espressif هست رو نصب کن.
  5. در نهایت، از مسیر Tools بخش Board و سپس ESP32 Arduino، مدل برد خودت یعنی ESP32 Dev Module رو انتخاب کن.

تموم شد! حالا نرم‌افزار آردوینو کاملا آماده‌ست تا با برد ESP32 تو ارتباط برقرار کنه.

مرحله ۳

کدنویسی و آپلود برنامه روی برد

کدهای زیر رو کپی کن و تو محیط نرم‌افزار آردوینو قرار بده. برای اینکه دقیقا بدونی هر بخش چیکار می‌کنه، جلوی هر خط کدهای اصلی توضیحاتی نوشته شده.

Arduino
// TEMT6000 Light Sensor with ESP32
// Reads light brightness
const float VCC = 3.3;
const int ADC_RES = 4095;
const int SENSOR_PIN = 34; // Pin where TEMT6000 sensor output is connected (GPIO34 on ESP32)
const float R_OHMS = 10000.0; // Load resistor value used with the sensor (10k ohm)
const float UA_PER_LUX = 0.5; // Sensor sensitivity from datasheet (0.5 microamp per lux)
void setup() {
Serial.begin(115200);
analogReadResolution(12);
analogSetAttenuation(ADC_11db); // Set ADC input range to full scale (0–3.3V)
Serial.println();
Serial.println("========================================");
Serial.println(" TEMT6000 Light Sensor Data ");
Serial.println("========================================");
// Table header with proper spacing
Serial.printf("| %-8s | %-10s | %-10s |\n", "Raw ADC", "Voltage(V)", "Lux");
Serial.println("----------------------------------------");
}
void loop() {
int raw = analogRead(SENSOR_PIN);
float volts = (float)raw / ADC_RES * VCC;
float uAmps = (volts / R_OHMS) * 1e6;
float lux = uAmps / UA_PER_LUX;
// Proper aligned table row
Serial.printf("| %-8d | %-10.3f | %-10.1f |\n", raw, volts, lux);
delay(1000);
}

آپلود کردن کد روی ESP32

  1. کل کدهای بخش قبل رو کپی کن و تو نرم‌افزار آردوینو پیست کن.
  2. برد ESP32 رو با کابل دیتا به کامپیوترت وصل کن.
  3. روی دکمه Upload (آیکون فلش در بالای صفحه) کلیک کن.
  4. حدود 10 ثانیه صبر کن تا پیام موفقیت‌آمیز بودن آپلود رو پایین صفحه ببینی.
مرحله ۴

مشاهده خروجی سنسور و تست مدار

رسیدیم به بخش هیجان‌انگیز کار! حالا می‌خوایم عملکرد سنسور رو به صورت زنده ببینیم.

  1. تو نرم‌افزار آردوینو، از منوی Tools گزینه Serial Monitor رو انتخاب کن تا پنجره‌ش باز بشه.
  2. از گوشه پایین این پنجره، نرخ انتقال دیتا (Baud Rate) رو روی 115200 تنظیم کن.
  3. می‌بینی که هر نیم ثانیه یک بار، اطلاعات مربوط به شدت نور محیط داره روی صفحه چاپ می‌شه!

چند تا تست ساده برای بررسی عملکرد

برای اینکه مطمئن بشی سنسورت درست کار می‌کنه و اعداد واقعی هستن، این چند تا کار رو امتحان کن:

  1. دستت رو بذار روی سنسور تا تاریک بشه. عدد لوکس باید بیاد پایین و نزدیک به صفر بشه.
  2. دستت رو بردار. عددها بلافاصله می‌رن بالا.
  3. سنسور رو بگیر سمت یه پنجره روشن یا لامپ. می‌بینی که مقدار لوکس به شدت افزایش پیدا می‌کنه.
  4. چراغ‌های اتاق رو خاموش کن. عدد روی مانیتور فورا افت می‌کنه.
مرحله ۵

جمع‌بندی پروژه نورسنج

به همین راحتی تونستی یه سنسور تشخیص نور کاربردی رو از صفر تا صد راه‌اندازی کنی! تو این پروژه سیم‌کشی مدار رو یاد گرفتی، منطق اندازه‌گیری نور رو فهمیدی، کدها رو نوشتی و دیتای واقعی از محیط گرفتی. این ماژول رو می‌تونی تو پروژه‌های خفن‌تری مثل ساخت پرده‌های هوشمند یا کنترل خودکار روشنایی اتاق استفاده کنی.

فایل‌های پیوست

INO Light_Meter_Using_TEMT6000.ino
JSON package_esp32_index.json

تو میتونی اولین سازنده باشی!

اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر

این آموزش با استانداردهای اختصاصی آیسی‌مدار بازنویسی و بهینه‌سازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.

آموزش‌های مشابه

گفتگو‌های کاربران

هنوز نظری ثبت نشده؛ تو شروع کن!