ماژول شدت نور GY-30 BH1750FVI
ماژول سنجش شدت نور GY-30 با سنسور BH1750FVI
ماژول GY-30 یک سنسور شدت نور دیجیتالی است که میتواند سطح نور محیط را اندازهگیری کند. این ماژول از سنسور BH1750FVI استفاده میکند که یک سنسور نور دیجیتالی با دقت بالا و برد گسترده است. مجهز به سنسور حساس به شدت نور است که دارای یک مبدل AD شانزده بیتی است و می تواند مستقیما سیگنال دیجیتال در خروجی ایجاد کند. این سنسور با داشتن یک فیلتر مخصوص، قابلیت اندازهگیری شدت نور در محدوده یک تا ۶۵۵۳۵ لوکس را دارد و با استفاده از یک رابط دیجیتالی (I2C) ارتباط برقرار میکند. همچنین، این سنسور دارای دو حالت اندازهگیری میباشد، حالت متوسط (معمولاً ۱۰۰ میلی ثانیه) و حالت با سرعت بالا (معمولاً ۱۶ میلی ثانیه) را پشتیبانی میکند. با توجه به کاربردهای مختلف این سنسور در صنعت، الکترونیک، اینترنت اشیا، رباتیک و ... این ماژول در بسیاری از پروژهها به عنوان یک سنسور نور دیجیتالی استفاده میشود. برای استفاده از این ماژول، میتوانید آن را به میکروکنترلر، آردوینو و یا بردهای توسعه دیگری که از رابط I2C پشتیبانی میکنند متصل کنید و از آن برای اندازهگیری شدت نور محیط استفاده کنید.
ویژگیهای فنی ماژول GY-30 با سنسور BH1750FVI
ولتاژ کاری: 3 تا 5 ولت
رابط ارتباطی: I2C
محدوده اندازهگیری شدت نور: 0 تا 65535 لوکس
دقت اندازهگیری: 1 لوکس
حالت اندازهگیری: حالت متوسط و حالت با سرعت بالا
دمای کاری: -40 تا +85 درجه سانتیگراد
اندازه: 16.9 × 18.6 میلیمتر
بررسی پایههای pinOut ماژول GY-30 شدت نور محیط
ماژول GY-30 BH1750FVI دارای چهار پایه است که شامل VCC، GND، SCL و SDA هستند.
VCC: پایه ولتاژ که باید به آن ولتاژ کاری ماژول (۳ تا ۵ ولت) متصل شود.
GND: پایه ارتباطی که به زمین متصل میشود.
SCL: پایه ارتباطی که به پایه SCL میکروکنترلر یا برد توسعه متصل میشود.
SDA: پایه ارتباطی که به پایه SDA میکروکنترلر یا برد توسعه متصل میشود.
توجه داشته باشید که برای استفاده از این ماژول، باید آن را به یک میکروکنترلر یا برد توسعه دیگری که از رابط I2C پشتیبانی میکند متصل کنید. همچنین، قطبیت پایههای VCC و GND باید به درستی رعایت شود.
به همراه ماژول شدت نور GY-30 چه اقلامی باید خریداری شود؟
برای استفاده از ماژول GY-30 BH1750FVI، بسته به نوع پروژه و کاربرد مورد نظر، ممکن است نیاز به خریداری اقلامی دیگر باشد. اما در کل، برای استفاده از این ماژول به یکی یا چندی از موارد زیر نیاز خواهید داشت.
برد توسعه یا میکروکنترلر: برای ارتباط با ماژول GY-30 BH1750FVI از رابط I2C استفاده میشود. بنابراین، باید از یک برد توسعه یا میکروکنترلری که این رابط را پشتیبانی میکند، استفاده کنید. مثالهایی از این نوع بردها شامل آردوینو، رسپبریپای، STM32 و ...
کابلهای ارتباطی: برای اتصال ماژول GY-30 BH1750FVI به برد توسعه یا میکروکنترلر، باید از کابلهای مناسب استفاده کنید. برای مثال، برای رابط I2C میتوانید از کابلهای Dupont با پایههای فلزی استفاده کنید.
منبع تغذیه: برای تامین ولتاژ کاری ماژول GY-30 BH1750FVI، نیاز به منبع تغذیه مناسب دارید. بسته به ولتاژ کاری ماژول (۳ تا ۵ ولت)، میتوانید از باتری، آداپتور یا منبع تغذیه دیگری استفاده کنید.
مقاومتهای Pull-Up: برای استفاده از رابط I2C، باید مقاومتهای Pull-Up مناسب بین پایههای SDA و SCL قرار داده شوند. مقدار این مقاومتها بسته به سرعت ارتباط و طول کابلهای ارتباطی، ممکن است متفاوت باشد.
راه اندازی سنسور شدت نور GY-30 و سنجش شدت نور محیط با آردوینو
برای راه اندازی سنسور شدت نور GY-30 BH1750FVI با آردوینو، ابتدا باید کتابخانهای به نام "Wire" را به کد آردوینو خود اضافه کنید. این کتابخانه برای ارتباط با رابط I2C استفاده میشود. سپس میتوانید با استفاده از کد زیر، شدت نور محیط را اندازهگیری کنید.
#include <Wire.h>
#include <BH1750FVI.h>
BH1750FVI LightSensor;
void setup()
{
Serial.begin(9600);
Wire.begin();
LightSensor.begin();
LightSensor.SetAddress(Device_Address);
LightSensor.SetMode(Continuous_H_resolution_Mode);
}
void loop()
{
float lux = LightSensor.GetLightIntensity();
Serial.print("Light Intensity: ");
Serial.print(lux);
Serial.println(" lux");
delay(500);
}
این کد، برای استفاده از رابط I2C با استفاده از کتابخانه Wire و کتابخانه BH1750FVI نوشته شده است. ابتدا با فراخوانی تابع begin() کتابخانه BH1750FVI، سنسور را راهاندازی کرده و با فراخوانی SetAddress()، آدرس سنسور را به آردوینو اعلام میکنیم. سپس با فراخوانی SetMode()، حالت عملیاتی سنسور را تنظیم میکنیم. در نهایت، با فراخوانی GetLightIntensity()، شدت نور محیط در واحد لوکس اندازهگیری شده و در متغیر lux ذخیره میشود. سپس مقدار lux به همراه پیام "Light Intensity: " و " lux" در سریال مانیتور نمایش داده میشود. توجه داشته باشید که قبل از اجرای کد، باید مطمئن شوید که پایههای SDA و SCL به درستی به آردوینو متصل شده باشند. همچنین، در این کد از حالت عملیاتی با دقت بالا استفاده شده است، اما شما میتوانید این حالت را با حالتهای دیگری مانند با سرعت بالا و یا با دقت پایین تعویض کنید.
راه اندازی این سنسور و سنجش شدت نور محیط با میکروپایتون
برای راه اندازی سنسور شدت نور GY-30 BH1750FVI با میکروپایتون، میتوانید از کتابخانه smbus2 برای ارتباط با رابط I2C استفاده کنید. ابتدا باید این کتابخانه را با استفاده از دستور sudo pip3 install smbus2 نصب کنید. سپس میتوانید با استفاده از کد زیر، شدت نور محیط را اندازهگیری کنید.
import smbus2
import time
DEVICE_ADDRESS = 0x23
POWER_DOWN = 0x00
POWER_ON = 0x01
RESET = 0x07
CONTINUOUS_HIGH_RES_MODE = 0x10
bus = smbus2.SMBus(1)
def read_light_intensity():
# Power on the sensor
bus.write_byte(DEVICE_ADDRESS, POWER_ON)
# Reset the sensor
bus.write_byte(DEVICE_ADDRESS, RESET)
# Set the measurement mode
bus.write_byte(DEVICE_ADDRESS, CONTINUOUS_HIGH_RES_MODE)
# Wait for measurement to be taken
time.sleep(0.2)
# Read the two-byte light intensity value
data = bus.read_i2c_block_data(DEVICE_ADDRESS, 0x00)
# Combine the two bytes into a single integer value
raw_light = (data[1] + (256 * data[0])) / 1.2
# Power down the sensor to save power
bus.write_byte(DEVICE_ADDRESS, POWER_DOWN)
return raw_light
while True:
light_intensity = read_light_intensity()
print("Light intensity: {:.2f} lux".format(light_intensity))
time.sleep(1)
این کد، با استفاده از کتابخانه smbus2 و دستورات I2C، ارتباط با سنسور برقرار میکند و شدت نور محیط را اندازهگیری میکند. ابتدا با تعریف آدرس دستگاه در متغیر DEVICE_ADDRESS، با استفاده از دستورات write_byte، ماژول را راهاندازی میکنیم و حالت اندازهگیری شدت نور را تنظیم میکنیم. با استفاده از دستور read_i2c_block_data، دو بایت داده را از ماژول میخوانیم و آنها را با یکدیگر ترکیب میکنیم تا مقدار شدت نور را بدست آوریم.
کاربرد سنسور شدت نور GY-30
این سنسور نور محیط می تواند اجسام را مستقیماً توسط نور سنج اندازه گیری کند. هنگامی که یک جسم در معرض نور یکنواخت قرار می گیرد، می تواند شار نوری lx در یک متر مربع با شدت نور 1 lx را بدست آورد. بعضی اوقات برای استفاده کامل از منبع نور، می توانید یک منبع نور اضافه کنید. به این ترتیب می توان در برخی جهات شار نوری بیشتری برای افزایش روشنایی سطح روشن به دست آورد.
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- تعداد قطعات
- ۱۲ عدد
- ابعاد فیبر
- ۳۳ * ۱۵ میلی متر
- سطح تجربه مورد نیاز
- پیشرفته
- ابعاد
- 33x15mm
- ولتاژ مورد نياز
- ۴/۵ ولت DC
- فیبر مدار چاپی
- فایبرگلاس دورو متالیزه
- محدوده دمایی
- ۴۰- تا ۱۰۰+ درجه سانتی گراد
- دمای کاری
- ۴۰- تا +۸۵ درجه سانتی گراد
- چاپ مس
- دارای چاپ آبی
- تعداد پایه ها
- ۵ پایه
- ترتیب پایه ها
- طبق چاپ راهنما یا مراجعه به دیتاشیت
- کشور سازنده
- چین
- سنسور
- همراه سنسور BH1750FVI
- پروتکل ارتباطی
- I2C
اتصالات باتریها را بررسی کنید. همگی از یک نمونه باشند و اتصالات کامل و استاندارد باشند.
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.