આ ટ્યુટોરિયલમાં, આપણે ESP32 માઇક્રોકંટ્રોલર સાથે લાઇટ ડિપેન્ડન્ટ રેઝિસ્ટર (LDR) નો ઉપયોગ કરીને પ્રકાશની તીવ્રતા કેવી રીતે માપવી તે શોધીશું. LDR ના પ્રતિકારને વાંચીને, આપણે ક્રિયાઓ ટ્રિગર કરી શકીએ છીએ, જેમ કે જ્યારે પ્રકાશનું સ્તર ચોક્કસ થ્રેશોલ્ડ કરતાં વધી જાય ત્યારે બઝર ચાલુ કરવું. આ પ્રોજેક્ટ પ્રકાશ સ્તરો અને ESP32 ની એનાલોગ રીડિંગ ક્ષમતાઓ વચ્ચેની ક્રિયાપ્રતિક્રિયા દર્શાવશે, જે આપણને આસપાસના પ્રકાશના આધારે પ્રતિભાવશીલ એપ્લિકેશનો બનાવવાની મંજૂરી આપે છે. (વિડિયોમાં 5:30 પર)
હાર્ડવેર સમજાવ્યું
આ પ્રોજેક્ટમાં આપણે જે મુખ્ય ઘટકોનો ઉપયોગ કરીશું તેમાં ESP32 માઇક્રોકંટ્રોલર, એક LDR અને 10 kΩ રેઝિસ્ટરનો સમાવેશ થાય છે. LDR તેની સપાટી પર પડતા પ્રકાશની તીવ્રતાના આધારે તેનો પ્રતિકાર બદલે છે: વધુ પ્રકાશ ઓછા પ્રતિકારમાં પરિણમે છે, જ્યારે ઓછો પ્રકાશ વધુ પ્રતિકારમાં પરિણમે છે. આ ગુણધર્મ આપણને રેઝિસ્ટર સાથે વોલ્ટેજ ડિવાઇડર રૂપરેખાંકનમાં LDR ને જોડીને બદલાતા પ્રકાશ સ્તરોને માપવાની મંજૂરી આપે છે.
ESP32 માઇક્રોકંટ્રોલરમાં બિલ્ટ-ઇન Wi-Fi અને બ્લૂટૂથ છે, જે તેને IoT પ્રોજેક્ટ્સ માટે આદર્શ બનાવે છે. તેમાં ઘણા એનાલોગ પિન છે જે બદલાતા વોલ્ટેજ સ્તરોને વાંચી શકે છે, જેનો આપણે LDR પરના વોલ્ટેજને મોનિટર કરવા માટે ઉપયોગ કરીશું. આ વોલ્ટેજ એનાલોગ મૂલ્યમાં રૂપાંતરિત થશે જે ESP32 પ્રોસેસ કરી શકે છે અને બઝર સક્રિય કરવા જેવી ક્રિયાઓ ટ્રિગર કરવા માટે ઉપયોગ કરી શકે છે.
ડેટાશીટ વિગતો
ઉત્પાદક
Espressif Systems
ભાગ નંબર
ESP32
લોજિક/IO વોલ્ટેજ
3.3 V
સપ્લાય વોલ્ટેજ
3.0 - 3.6 V
આઉટપુટ કરંટ (પ્રતિ GPIO)
40 mA મહત્તમ
PWM ફ્રીક્વન્સી માર્ગદર્શન
1 kHz - 40 kHz
ઇનપુટ લોજિક થ્રેશોલ્ડ
ઉચ્ચ: 2.0 V ન્યૂનતમ, નીચું: 0.8 V મહત્તમ
વોલ્ટેજ ડ્રોપ / RDS(on) / સેચ્યુરેશન
0.3 V મહત્તમ
થર્મલ મર્યાદાઓ
-40 °C થી 125 °C
પેકેજ
QFN48
નોંધો / વેરિઅન્ટ્સ
બહુવિધ Wi-Fi અને બ્લૂટૂથ પ્રોટોકોલને સપોર્ટ કરે છે
વોલ્ટેજ વિભાજન માટે LDR સાથે શ્રેણીમાં 10 kΩ રેઝિસ્ટરનો ઉપયોગ કરો.
નુકસાન ટાળવા માટે ESP32 ને 3.3 V સાથે પાવર કરવાની ખાતરી કરો.
પ્રકાશની તીવ્રતા માપવા માટે LDR અને રેઝિસ્ટરને યોગ્ય રીતે જોડો.
પાવર સપ્લાયને સ્થિર કરવા માટે જરૂર પડ્યે ડિકપ્લિંગ માટે કેપેસિટરનો ઉપયોગ કરો.
એનાલોગ રીડ મૂલ્યો તપાસો જેથી ખાતરી થાય કે તે અપેક્ષિત શ્રેણીમાં આવે છે.
વાયરિંગ સૂચનાઓ
ESP32-22_light_sensor-wiring
LDR અને રેઝિસ્ટરને ESP32 સાથે વાયર કરવા માટે, LDR ના એક ટર્મિનલને ESP32 પરના 3.3 V પાવર પિન સાથે જોડીને શરૂ કરો. LDR ના બીજા ટર્મિનલને 10 kΩ રેઝિસ્ટરના એક ટર્મિનલ સાથે જોડવું જોઈએ. રેઝિસ્ટરના બીજા ટર્મિનલને ગ્રાઉન્ડ સાથે જોડો.
આગળ, LDR અને રેઝિસ્ટર વચ્ચેના જંકશન બિંદુથી ESP32 પર પિન 35 સુધી જમ્પર વાયર જોડો. આ સેટઅપ વોલ્ટેજ ડિવાઇડર બનાવે છે, જે ESP32 ને LDR પર પડતા પ્રકાશની તીવ્રતાના આધારે બદલાતા વોલ્ટેજને વાંચવાની મંજૂરી આપે છે. ખાતરી કરો કે બધા જોડાણો સુરક્ષિત છે અને LDR એવી સ્થિતિમાં છે જ્યાં તે પ્રકાશના ફેરફારોને ચોક્કસ રીતે સમજી શકે.
કોડ ઉદાહરણો અને વોકથ્રુ
કોડમાં, આપણે LDR માંથી રીડિંગ્સ મોનિટર કરવા માટે સીરિયલ કમ્યુનિકેશન શરૂ કરીએ છીએ. અહીં મુખ્ય ઓળખકર્તા analogValue છે, જે પિન 35 માંથી રીડિંગ સ્ટોર કરે છે.
void setup() {
Serial.begin(115200);
}
void loop() {
int analogValue = analogRead(35);
Serial.printf("ADC analog value = %d\n",analogValue);
delay(100);
}
આ કોડ સ્નિપેટ 115200 ની બૉડ રેટ પર સીરિયલ મોનિટર શરૂ કરે છે અને પિન 35 માંથી એનાલોગ મૂલ્ય સતત વાંચે છે. મૂલ્ય સીરિયલ મોનિટર પર છાપવામાં આવે છે, જે આપણને અવલોકન કરવાની મંજૂરી આપે છે કે તે બદલાતા પ્રકાશ સ્તરો સાથે કેવી રીતે બદલાય છે.
જ્યારે પ્રકાશની તીવ્રતા બદલાય છે, ત્યારે LDR નો પ્રતિકાર બદલાય છે, અને આમ ESP32 દ્વારા વાંચવામાં આવતો વોલ્ટેજ પણ બદલાશે, જે પ્રકાશની સ્થિતિઓને પ્રતિબિંબિત કરશે (વિડિયોમાં 12:45 પર).
પ્રદર્શન / શું અપેક્ષા રાખવી
જેમ તમે પ્રોગ્રામ ચલાવો છો અને સીરિયલ મોનિટરનું અવલોકન કરો છો, તમારે ADC analog value આસપાસના પ્રકાશની સ્થિતિઓના આધારે વધઘટ થતું જોવું જોઈએ. જ્યારે તમે LDR ને ઢાંકો છો, ત્યારે મૂલ્ય વધવું જોઈએ, જે ઉચ્ચ પ્રતિકાર દર્શાવે છે, જ્યારે તેને તેજસ્વી પ્રકાશમાં ખુલ્લું મૂકવાથી મૂલ્ય નોંધપાત્ર રીતે ઘટવું જોઈએ. આ વર્તનનો ઉપયોગ પૂર્વવ્યાખ્યાયિત થ્રેશોલ્ડના આધારે બઝર અથવા અન્ય કોઈપણ ક્રિયાને ટ્રિગર કરવા માટે થઈ શકે છે.
જો રીડિંગ્સ અપેક્ષા મુજબ બદલાતા નથી, તો વાયરિંગ સમસ્યાઓ તપાસો, ખાતરી કરો કે LDR ફ્લોટિંગ નથી, અને ESP32 યોગ્ય રીતે પાવર થયેલ છે તેની પુષ્ટિ કરો. આ સામાન્ય મુશ્કેલીઓને રોકવામાં અને સરળ કામગીરી સુનિશ્ચિત કરવામાં મદદ કરશે (વિડિયોમાં 15:30 પર).
વિડિયો ટાઇમસ્ટેમ્પ્સ
00:00 શરૂઆત
1:48 LDR નો પરિચય
8:33 વાયરિંગ સમજાવ્યું
11:07 Arduino કોડ સમજાવ્યો
13:07 Arduino IDE માં ESP32 બોર્ડ અને COM પોર્ટ પસંદ કરવું
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
ભાષા: C++
void setup() {
// initialize serial communication at 115200 bits per second:
Serial.begin(115200);
}
void loop() {
// read the analog value
int analogValue = analogRead(35);
// print out the values you read:
Serial.printf("ADC analog value = %d\n",analogValue);
delay(100); // delay in between reads for clear read from serial
}
જાહેરાત: Amazon એસોસિયેટ તરીકે, અમે લાયક ખરીદીઓમાંથી કમાણી કરીએ છીએ. આનો અર્થ એ છે કે જો તમે લિંક પર ક્લિક કરીને ખરીદી કરો છો, તો અમને તમારા માટે કોઈ વધારાના ખર્ચ વિના નાનું કમિશન મળી શકે છે.