Search Code

ESP32 ટ્યુટોરિયલ 18/55 - ESP32 નો ઉપયોગ કરીને ટિલ્ટ શોધવું | SunFounder ની ESP32 IoT લર્નિંગ કિટ

ESP32 ટ્યુટોરિયલ 18/55 - ESP32 નો ઉપયોગ કરીને ટિલ્ટ શોધવું | SunFounder ની ESP32 IoT લર્નિંગ કિટ

આ ટ્યુટોરિયલમાં, અમે SunFounder ESP32 માઇક્રોકંટ્રોલરનો ઉપયોગ કરીને એક સરળ પ્રોજેક્ટ બનાવીશું જે ટિલ્ટ સ્વિચનો ઉપયોગ કરીને ઝુકાવ શોધે છે. જ્યારે ટિલ્ટ સ્વિચ સક્રિય થાય છે, ત્યારે LED બંધ થશે, અને જ્યારે તે તેની સીધી સ્થિતિમાં હોય, ત્યારે LED ચાલુ થશે. આ પ્રોજેક્ટ માત્ર ટિલ્ટ સેન્સર સાથે કામ કરવાનો ઉત્તમ પરિચય નથી, પરંતુ વિવિધ રોબોટિક્સ એપ્લિકેશનો માટે પાયો પણ છે. વિગતવાર વિઝ્યુઅલ માર્ગદર્શન માટે, ઉપર લિંક કરેલ વિડિયો (વિડિયોમાં 00:00 પર) ચોક્કસપણે જુઓ.

ટિલ્ટ_સ્વિચ

હાર્ડવેર સમજાવ્યું

આ પ્રોજેક્ટમાં ઉપયોગમાં લેવાતા મુખ્ય ઘટકોમાં ESP32 માઇક્રોકંટ્રોલર, ટિલ્ટ સ્વિચ અને LED નો સમાવેશ થાય છે. ESP32 એ બિલ્ટ-ઇન Wi-Fi અને Bluetooth સાથેનો શક્તિશાળી માઇક્રોકંટ્રોલર છે, જે તેને IoT એપ્લિકેશનો માટે આદર્શ બનાવે છે. ટિલ્ટ સ્વિચ એ એક સરળ ઉપકરણ છે જેમાં કેનની અંદર ધાતુનો બોલ હોય છે. જ્યારે ઝુકાવવામાં આવે છે, ત્યારે બોલ ખસે છે અને સર્કિટ તોડે છે, જેનાથી અમને ઝુકાવની સ્થિતિ શોધવાની મંજૂરી મળે છે. LED સ્વિચની સ્થિતિના આધારે ઝુકાવની સ્થિતિ દૃષ્ટિની રીતે સૂચવશે. આ ઘટકો ઉપરાંત, અમે વર્તમાન મર્યાદિત કરવા અને પુલ-ડાઉન હેતુઓ માટે રેઝિસ્ટરનો પણ ઉપયોગ કરીશું. LED સાથે જોડાયેલ 220-ઓહ્મ રેઝિસ્ટર ખાતરી કરે છે કે LED વધુ પડતો વર્તમાન ખેંચ્યા વિના સુરક્ષિત રીતે કાર્ય કરે છે. 10k-ઓહ્મ રેઝિસ્ટર ટિલ્ટ સ્વિચ માટે પુલ-ડાઉન તરીકે કાર્ય કરે છે, જે ખાતરી કરે છે કે જ્યારે સ્વિચ સક્રિય ન હોય ત્યારે ઇનપુટ પિન જાણીતી સ્થિતિ વાંચે છે.

ડેટાશીટ વિગતો

ઉત્પાદક SunFounder
ભાગ નંબર ESP32
લોજિક/IO વોલ્ટેજ 3.3 V
સપ્લાય વોલ્ટેજ 5 V
આઉટપુટ વર્તમાન (પ્રતિ ચેનલ) 12 mA
પીક વર્તમાન (પ્રતિ ચેનલ) 40 mA
PWM આવર્તન માર્ગદર્શન 1 kHz
ઇનપુટ લોજિક થ્રેશોલ્ડ 0.8 V (નીચું), 2.0 V (ઉચ્ચ)
વોલ્ટેજ ડ્રોપ / RDS(on) / સંતૃપ્તિ 0.2 V
થર્મલ મર્યાદાઓ 85 °C
પેકેજ ESP32 મોડ્યુલ
નોંધો / વેરિઅન્ટ્સ Wi-Fi અને Bluetooth ક્ષમતાઓનો સમાવેશ કરે છે

 

  • LED ને નુકસાન ટાળવા માટે યોગ્ય રેઝિસ્ટર મૂલ્યો સુનિશ્ચિત કરો.
  • શોર્ટ સર્કિટ ટાળવા માટે વાયરિંગ વ્યવસ્થિત રાખો.
  • ટિલ્ટ સ્વિચમાંથી સ્થિર રીડિંગ્સ સુનિશ્ચિત કરવા માટે પુલ-ડાઉન રેઝિસ્ટરનો ઉપયોગ કરો.
  • ઘટક નિષ્ફળતા ટાળવા માટે સર્કિટને પાવર કરતા પહેલા જોડાણો ચકાસો.
  • સચોટ કાર્યક્ષમતા માટે ટિલ્ટ સ્વિચની દિશા ચકાસો.

વાયરિંગ સૂચનાઓ

ESP32-18_tile_wiring

ઘટકોને વાયર કરવા માટે, ટિલ્ટ સ્વિચથી શરૂ કરો, જેમાં ધ્રુવીયતા નથી, તેથી તે કોઈપણ દિશામાં જોડી શકાય છે. ટિલ્ટ સ્વિચનો એક પિન 3.3V સપ્લાય સાથે અને બીજો પિન ESP32 પર પિન 14 સાથે જોડો. જ્યારે સ્વિચ સક્રિય ન હોય ત્યારે પિન 14 જાણીતી સ્થિતિ વાંચે તે સુનિશ્ચિત કરવા માટે, તે જ પિનથી ગ્રાઉન્ડ સુધી 10k-ઓહ્મ રેઝિસ્ટર જોડો. આગળ, LED લો અને તેને બ્રેડબોર્ડમાં દાખલ કરો જેમાં લાંબો પગ (એનોડ) 220-ઓહ્મ રેઝિસ્ટર સાથે જોડાયેલ હોય. રેઝિસ્ટરનો બીજો છેડો ESP32 પર પિન 26 સાથે જોડો. LED નો ટૂંકો પગ (કેથોડ) ગ્રાઉન્ડ સાથે જોડાયેલ હોવો જોઈએ. છેલ્લે, ESP32 ના ગ્રાઉન્ડ પિનને તમારા બ્રેડબોર્ડના ગ્રાઉન્ડ રેલ સાથે અને 3.3V પિનને પાવર રેલ સાથે જોડો. કોઈપણ શોર્ટ્સ અથવા ખોટા રીડિંગ્સ ટાળવા માટે બધા જોડાણો બે વાર તપાસવાનું સુનિશ્ચિત કરો. જો તમે આ પગલાંઓનું પાલન કરો છો, તો તમારી પાસે પ્રોગ્રામિંગ માટે તૈયાર કાર્યાત્મક ટિલ્ટ સેન્સર સેટઅપ હોવું જોઈએ.

કોડ ઉદાહરણો અને વોકથ્રુ

કોડ ટિલ્ટ સ્વિચ અને LED માટે પિન નંબરો વ્યાખ્યાયિત કરીને શરૂ થાય છે. ટિલ્ટ સ્વિચ પિન 14 સાથે જોડાયેલ છે, અને LED પિન 26 સાથે જોડાયેલ છે. ટિલ્ટ સ્વિચની સ્થિતિ ચલ tiltState માં સંગ્રહિત થાય છે.


// પિન નંબરો સેટ કરો
const int tiltPin = 14;  // ટિલ્ટ સ્વિચ
const int ledPin = 26;   // LED

// ઝુકાવ સ્થિતિ સંગ્રહિત કરવા માટે ચલ
int tiltState = 0;

આ અંશ પિન સોંપણીઓ અને ઝુકાવ સ્થિતિને ટ્રેક કરશે તે ચલની ઘોષણા દર્શાવે છે. tiltPin સ્વિચ સ્થિતિ વાંચવા માટે ઇનપુટ તરીકે સેટ છે. setup() ફંક્શનમાં, સીરિયલ સંચાર શરૂ કરવામાં આવે છે, અને ટિલ્ટ સ્વિચ અને LED માટે પિન મોડ્સ સેટ કરવામાં આવે છે. આ સુનિશ્ચિત કરે છે કે ESP32 ટિલ્ટ સ્વિચમાંથી ઇનપુટ વાંચી શકે છે અને તે મુજબ LED ને નિયંત્રિત કરી શકે છે.


void setup() {
  Serial.begin(115200);
  // ટિલ્ટ પિનને ઇનપુટ તરીકે શરૂ કરો
  pinMode(tiltPin, INPUT);
  // LED પિનને આઉટપુટ તરીકે શરૂ કરો
  pinMode(ledPin, OUTPUT);
}

આ વિભાગ નિર્ણાયક છે કારણ કે તે વાતાવરણ સેટ કરે છે, જે ESP32 ને અસરકારક રીતે સંચાર કરવા અને ટિલ્ટ સ્વિચ સ્થિતિના આધારે આઉટપુટ નિયંત્રિત કરવાની મંજૂરી આપે છે. loop() ફંક્શન સતત ટિલ્ટ સ્વિચની સ્થિતિ તપાસે છે. જો સ્વિચ સીધી હોય, તો LED ચાલુ થશે; જો ઝુકાવેલું હોય, તો LED બંધ થશે. વર્તમાન સ્થિતિ ડિબગિંગ માટે સીરિયલ મોનિટર પર છાપવામાં આવે છે.


void loop() {
  // ટિલ્ટ સ્વિચની સ્થિતિ વાંચો
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // જો સ્વિચ સીધી હોય
  if (tiltState == HIGH) {
    // LED ચાલુ કરો
    digitalWrite(ledPin, HIGH);
  } else {
    // LED બંધ કરો
    digitalWrite(ledPin, LOW);
  }
}

આ લૂપ સતત ચાલે છે, જે ટિલ્ટ સ્વિચ સ્થિતિ અને અનુરૂપ LED નિયંત્રણનું રીઅલ-ટાઇમ મોનિટરિંગ કરવાની મંજૂરી આપે છે. આઉટપુટ સીરિયલ મોનિટરમાં અવલોકન કરી શકાય છે, જે કાર્યક્ષમતા ચકાસવાનું સરળ બનાવે છે.

પ્રદર્શન / શું અપેક્ષા રાખવી

એકવાર બધું યોગ્ય રીતે વાયર થઈ જાય અને કોડ અપલોડ થઈ જાય, ત્યારે તમે જોશો કે જ્યારે ટિલ્ટ સ્વિચ સીધી સ્થિતિમાં હોય ત્યારે LED ચાલુ થાય છે, અને જ્યારે તે ઝુકાવવામાં આવે ત્યારે તે બંધ થઈ જાય છે. ટિલ્ટ સ્થિતિ અને LED પ્રતિભાવ વચ્ચેનો આ સીધો સંબંધ ટિલ્ટ સ્વિચની કાર્યક્ષમતાને અસરકારક રીતે દર્શાવે છે. સામાન્ય ભૂલોમાં વાયરિંગ સાચું છે તેની ખાતરી કરવી અને શોર્ટ સર્કિટ ટાળવા માટે રેઝિસ્ટર યોગ્ય રીતે મૂકવામાં આવ્યા છે તે ચકાસવું શામેલ છે (વિડિયોમાં 12:00 પર).

વિડિયો ટાઇમસ્ટેમ્પ્સ

  • 00:00 શરૂઆત
  • 1:44 પ્રોજેક્ટ પરિચય
  • 2:49 દસ્તાવેજીકરણ
  • 6:43 આર્ડુઇનો વાયરિંગ સમજાવ્યું
  • 10:39 આર્ડુઇનો કોડ સમજાવ્યો
  • 13:40 આર્ડુઇનો IDE પર ESP32 બોર્ડ અને COM પોર્ટ પસંદ કરવું
  • 15:22 પ્રોજેક્ટ ટિલ્ટ પ્રદર્શન

Images

ESP32-18_tile_wiring
ESP32-18_tile_wiring
tilt_switch
tilt_switch
ESP32-18_tile_schematic
ESP32-18_tile_schematic
817-ESP32 Tutorial 18/55- Arduino code for tilt sensor
Language: C++
// Set pin numbers
const int tiltPin = 14;  // Tilt Switch
const int ledPin = 26;   // LED

// Variable for storing the tilt status
int tiltState = 0;

void setup() {
  Serial.begin(115200);
  // Initialize the tilt pin as an input
  pinMode(tiltPin, INPUT);
  // Initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Read the state of the tilt switch
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // If the switch is upright
  if (tiltState == HIGH) {
    // Turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // Turn LED off
    digitalWrite(ledPin, LOW);
  }
}

Resources & references

Files📁

No files available.