Search Code

ESP32 ትምህርት 9/55 - የግፊት ቁልፍን በመጠቀም LED ን ማብራት እና ማጥፋት፣ ግፋ አብራ፣ ግፋ አጥፋ -SunFounder ESP32 IoT ኪት

ESP32 ትምህርት 9/55 - የግፊት ቁልፍን በመጠቀም LED ን ማብራት እና ማጥፋት፣ ግፋ አብራ፣ ግፋ አጥፋ -SunFounder ESP32 IoT ኪት

በዚህ ትምህርት፣ ከESP32 ማይክሮኮንትሮለር ጋር ኤልኢዲን ለማብራት እና ለማጥፋት የግፊት ቁልፍን እንዴት መጠቀም እንደምንችል እንማራለን። ፕሮጀክቱ የግፊት ቁልፉን ሁኔታ እንዴት ማንበብ እና ኤልኢዲውን በዚሁ መሰረት እንዴት መቆጣጠር እንደሚቻል ያሳያል። ቁልፉ ሲጫን፣ ኤልኢዲው ይበራል፣ ሲለቀቅ ደግሞ ይጠፋል። ይህ ለብዙ መስተጋብራዊ ፕሮጀክቶች ከESP32 ጋር መሰረታዊ ፅንሰ-ሀሳብ ነው።

ESP32 አብሮ የተሰራ ዋይ-ፋይ እና ብሉቱዝ አቅም ያለው ኃይለኛ ማይክሮኮንትሮለር ነው፣ ይህም ለተለያዩ የIoT አፕሊኬሽኖች ተስማሚ ያደርገዋል። በዚህ ትምህርት፣ እንደ ተከላካይ እና ኤልኢዲ ያሉ አስፈላጊ ክፍሎችን የሚያካትተውን ከSunFounder ESP32 Starter Kit የESP32ን በመጠቀም ቀላል ወረዳ እንፈጥራለን። ስለ ሽቦ አያያዥነት እና ኮድ ዝርዝር ማብራሪያ ለማግኘት፣ እባክዎ ቪዲዮውን ይመልከቱ (በቪዲዮው 00:00 ላይ)።

ሃርድዌር ተብራርቷል

ለዚህ ፕሮጀክት ቁልፍ ክፍሎች ESP32 ማይክሮኮንትሮለር፣ የግፊት ቁልፍ፣ ኤልኢዲ እና ተከላካዮች ያካትታሉ። ESP32 የፕሮጀክቱ አንጎል ሆኖ ይሰራል፣ በግፊት ቁልፉ ሁኔታ ላይ በመመስረት ኤልኢዲውን ይቆጣጠራል። የግፊት ቁልፉ ተጠቃሚዎች ከወረዳው ጋር እንዲገናኙ ያስችላቸዋል፣ ኤልኢዲው ደግሞ ቁልፉ ሲጫን የእይታ ግብረመልስ ይሰጣል።

የግፊት ቁልፉ የሚሰራው ሲጫን ወረዳውን በመዝጋት ነው፣ ይህም ኤሌክትሪክ እንዲፈስ ያስችላል። ይህ እርምጃ ለESP32 በተመደበው የግቤት ፒን ላይ ከፍተኛ ሲግናል ይልካል፣ ይህም በኮዱ ውስጥ ሊነበብ ይችላል። ከቁልፉ ጋር የተገናኘው ተከላካይ ቁልፉ በማይጫንበት ጊዜ ፒኑ የተወሰነ ሁኔታ እንዲኖረው ያረጋግጣል፣ ይህም ያልተረጋጋ ባህሪን ይከላከላል።

የግፊት ቁልፍ ከተከላካይ ጋር

የሽቦ አያያዥነት መመሪያዎች

ወረዳውን ለማገናኘት፣ የኤልኢዲውን ረጅሙን ፒን (አኖድ) ከ220-ኦም ተከላካይ ጋር በማገናኘት ይጀምሩ። የተከላካዩን ሌላኛውን ጫፍ በESP32 ላይ ካለው GPIO ፒን 26 ጋር ያገናኙ። የኤልኢዲው አጭሩ ፒን (ካቶድ) ከመሬት ጋር መገናኘት አለበት። በመቀጠል፣ የግፊት ቁልፉን ይውሰዱ እና አንዱን ጎን በቦርዱ ላይ ካለው የ3.3V የኃይል አቅርቦት ጋር ያገናኙ። የግፊት ቁልፉ ሌላኛው ጎን ከGPIO ፒን 14 ጋር ይገናኛል።

የግፊት ቁልፍ ያለ ተከላካይ
የግፊት ቁልፍ ያለ ተከላካይ
የግፊት ቁልፍ ከተከላካይ ጋር
የግፊት ቁልፍ ከተከላካይ ጋር

በተጨማሪም፣ ቁልፉ በማይጫንበት ጊዜ ፒኑ LOW መሆኑን ለማረጋገጥ ከGPIO ፒን 14 ወደ መሬት የ10k-ኦም ተከላካይ ያስቀምጡ። በመጨረሻም፣ ከESP32 የመሬት ሽቦውን በብሬድቦርዱ ላይ ካለው የጋራ መሬት ጋር ያገናኙ። ይህ ዝግጅት ESP32 የቁልፉን ሁኔታ እንዲያነብ እና ኤልኢዲውን በዚሁ መሰረት እንዲቆጣጠር ያስችለዋል።

የኮድ ምሳሌዎች እና ማብራሪያ

የፕሮግራሙ ዋና ክፍል የሚጀምረው ለቁልፉ እና ለኤልኢዲው የፒን ቁጥሮችን በቋሚዎች በመግለጽ ነው። ይህ የፒን ምደባዎች በፕሮግራሙ አፈፃፀም ውስጥ ሳይለወጡ እንዲቆዩ ያረጋግጣል።

// የፒን ቁጥሮችን ያዘጋጁ
const int buttonPin = 14;  // የቁልፍ ፒን
const int ledPin = 26;     // የኤልኢዲ ፒን

setup() ተግባር ውስጥ፣ ተከታታይ መቆጣጠሪያውን እንጀምራለን እና የቁልፍ ፒኑን እንደ ግቤት እናስቀምጣለን የኤልኢዲ ፒኑን ደግሞ እንደ ውፅዓት እናዋቅራለን። ይህ ESP32 ከቁልፉ ለማንበብ እና ኤልኢዲውን ለመቆጣጠር ያዘጋጃል።

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

loop() ተግባር ውስጥ፣ ፕሮግራሙ ያለማቋረጥ የቁልፉን ሁኔታ ያነባል እና ወደ ተከታታይ መቆጣጠሪያው ያትማል። ቁልፉ ከተጫነ፣ ኤልኢዲው ይበራል፤ አለበለዚያ ይጠፋል። ይህ አመክንዮ በቁልፉ ሁኔታ ላይ በመመስረት ኤልኢዲውን ለማብራት እና ለማጥፋት አስፈላጊ ነው።

void loop() {
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

ይህ መሰረታዊ ተግባር ኤልኢዲው ለግፊት ቁልፉ በቀጥታ ምላሽ እንዲሰጥ ያስችላል። ስለ ፕሮጀክቱ ተጨማሪ ዝርዝሮች እና ሙሉ ኮድ ለማግኘት፣ እባክዎ የቀረበውን ቪዲዮ ይመልከቱ (በቪዲዮው 14:00 ላይ)።

ማሳያ / ምን እንደሚጠበቅ

ሽቦ አያያዥነቱ ከተጠናቀቀ እና ኮዱ ከተጫነ፣ የግፊት ቁልፉን መጫን ኤልኢዲውን ማብራት አለበት፣ መልቀቅ ደግሞ ኤልኢዲውን ያጠፋል። ይህ ባህሪ የቁልፉ ሁኔታ በትክክል እየተነበበ መሆኑን ያረጋግጣል። ኤልኢዲው እንደተጠበቀው ምላሽ ካልሰጠ፣ ሽቦ አያያዥነቱን ይፈትሹ እና ቁልፉ በትክክል እየሰራ መሆኑን ያረጋግጡ።

በሙከራ ወቅት፣ ለቁልፍ ሁኔታ ንባቦች ተከታታይ መቆጣጠሪያውን መመልከቱን ያረጋግጡ። ቁልፉ ሲጫን '1' እና ሲለቀቅ '0' ማየት አለብዎት። ንባቦቹ ባልተጠበቀ ሁኔታ ከተለዋወጡ፣ የሽቦ አያያዥነት ችግር ወይም በኮዱ ውስጥ ተጨማሪ የዲባውንሲንግ አመክንዮ አስፈላጊነት ሊያመለክት ይችላል።

የቪዲዮ ጊዜ ምልክቶች

  • 00:00 መጀመሪያ
  • 1:48 የፕሮጀክት መግቢያ
  • 3:10 ስዊች እና የግፊት አዝራር ተብራርቷል
  • 7:19 የሽቦ አያያዝ ተብራርቷል
  • 12:25 የግፊት አዝራር የአርዱኖ ኮድ ተብራርቷል
  • 15:56 የESP32 ቦርድ እና የCOM ወደብ መምረጥ
  • 17:38 የፕሮጀክቱ ማሳያ
  • 18:33 ፕሮጀክት-2 መቀያየር እና LED
  • 19:09 LED ለማብራት የአርዱኖ ኮድ
  • 21:16 LED የማብራት ማሳያ

ምስሎች

Push button with resistor
Push button with resistor
Push button with resistor
Push button with resistor
Push button without resistor
Push button without resistor
Push button without resistor
Push button without resistor
Push button with resistor
Push button with resistor
808-ESP32 Tutorial 9/55 - Arduino code push button
ቋንቋ: C++
// set pin numbers
const int buttonPin = 14;  // Button pin
const int ledPin = 26;     // LED pin

// variable for storing the button status
int buttonState = 0;

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

void loop() {
  // read the state of the button value
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
  // if the button is pressed
  if (buttonState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);

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

ምንጮች እና ምንጮች

አሁን ምንም ምንጮች የለም።

ፋይሎች📁

አንድ ፋይል የለም።