Search Code

ESP32 ትምህርት 21/55 - የሰውን ልጅ በPIR እንቅስቃሴ ዳሳሽ መለየት | SunFounder's ESP32 IoT የመማሪያ ኪት

ESP32 ትምህርት 21/55 - የሰውን ልጅ በPIR እንቅስቃሴ ዳሳሽ መለየት | SunFounder's ESP32 IoT የመማሪያ ኪት

በዚህ ትምህርት ውስጥ፣ የሰውን መገኘት ለመለየት ከESP32 ጋር የPIR እንቅስቃሴ ዳሳሽ እንዴት መጠቀም እንደሚቻል እንማራለን። ESP32 ሁለቱንም ዋይ-ፋይ እና ብሉቱዝ አቅሞችን የሚያቀርብ ኃይለኛ ማይክሮ መቆጣጠሪያ ነው፣ ይህም ለአይኦቲ ፕሮጀክቶች ተስማሚ ያደርገዋል። የPIR ዳሳሽን በማዋሃድ፣ እንቅስቃሴ በተገኘ ቁጥር LED ወይም ባዘርን የሚያነቃ ስርዓት መገንባት እንችላለን፣ ይህም የሰውን እንቅስቃሴ ለመከታተል ቀላል ግን ውጤታማ መንገድ ይሰጣል።

PIR ዳሳሽ RE 200B

የPIR (ፓሲቭ ኢንፍራሬድ) ዳሳሽ በእቃዎች፣ በተለይም እንደ ሰዎች ያሉ ሞቅ ያሉ አካላት የሚለቁትን የኢንፍራሬድ ጨረር በመለየት እንቅስቃሴን ይለያል። እንቅስቃሴ በተገኘ ጊዜ፣ ዳሳሹ ለESP32 ምልክት ይልካል፣ ከዚያም እንደ LED ማብራት ወይም ባዘር ማሰማት ያሉ ውጤቶችን ሊያስነሳ ይችላል። ይህ ትምህርት ስርዓቱ በትክክል እንዲሰራ በሃርድዌር ዝግጅት፣ በሽቦ አያያዝ እና በኮድ ይመራዎታል (በቪዲዮ በ00:45)።

ESP32-21_motion_sensor-schematic

ሃርድዌር ተብራርቷል

ይህ ፕሮጀክት በርካታ ቁልፍ ክፍሎችን ያካትታል። የESP32 ማይክሮ መቆጣጠሪያ የክዋኔው አእምሮ ሆኖ ያገለግላል፣ የዳሳሽ መረጃን ይይዛል እና ውጤቶችን ይቆጣጠራል። የPIR እንቅስቃሴ ዳሳሽ በኢንፍራሬድ ጨረር ለውጦች መለካት እንቅስቃሴን ይለያል። LED ወይም ባዘር እንቅስቃሴ በተገኘ ጊዜ የእይታ ወይም የመስሚያ ማንቂያ ይሰጣል።

ESP32 በዋይ-ፋይ እና ብሉቱዝ የታጠቀ ነው፣ ይህም እንደ ክላውድ ግንኙነት ያሉ የተራዘሙ ተግባራትን ይፈቅዳል። የPIR ዳሳሽ የኢንፍራሬድ ብርሃንን በፒሮኤሌክትሪክ ዳሳሽ ላይ የሚያተኩር ሌንስ ይዟል፣ ይህም በኢንፍራሬድ ደረጃዎች ላይ ለውጦችን ሲለይ የቮልቴጅ ምልክት ያመነጫል፣ ይህም እንቅስቃሴን ያመለክታል።

የዳታሼት ዝርዝሮች

አምራች SunFounder
የክፍል ቁጥር PIR ዳሳሽ ሞጁል
ሎጂክ/IO ቮልቴጅ 3.3 ቪ
የአቅርቦት ቮልቴጅ 3.3 ቪ
የውጤት ጅረት (በአንድ ቻናል) 20 ሚኤ ከፍተኛ
ከፍተኛ ጅረት (በአንድ ቻናል) 50 ሚኤ ከፍተኛ
የPWM ድግግሞሽ መመሪያ የለም
የግቤት ሎጂክ ገደቦች 0.3 ቪ (ዝቅተኛ)፣ 2.0 ቪ (ከፍተኛ)
የቮልቴጅ ጠብታ / RDS(on) / ሙሌት የለም
የሙቀት ገደቦች 0 እስከ 70 ዲግሪ ሴልሺየስ
ፓኬጅ ሞጁል
ማስታወሻዎች / ልዩነቶች ሊስተካከል የሚችል ስሜታዊነት እና መዘግየት

 

  • ጉዳትን ለማስቀረት ትክክለኛ የኃይል አቅርቦት (3.3 ቪ) ያረጋግጡ።
  • ጅረትን ለመገደብ ለLED ተከላካይ ይጠቀሙ።
  • አጭር ዑደትን ለመከላከል ትክክለኛ ሽቦ ይጠብቁ።
  • እንደ አስፈላጊነቱ የPIR ዳሳሽ እጀታዎችን ለስሜታዊነት እና መዘግየት ያስተካክሉ።
  • ለተሻለ አፈጻጸም ዳሳሹን በተለያዩ አካባቢዎች ይሞክሩ።

የሽቦ መመሪያዎች

ESP32-21_motion_sensor-wiring

የPIR እንቅስቃሴ ዳሳሽ እና LEDን ከESP32 ጋር ለማገናኘት፣ የPIR ዳሳሹን የVCC ፒን በESP32 ላይ ካለው 3.3 ቪ ውጤት ጋር በማገናኘት ይጀምሩ። በመቀጠል የPIR ዳሳሹን የመሬት ፒን በESP32 ላይ ካለው የመሬት ፒን ጋር ያገናኙ። ከPIR ዳሳሽ የሚመጣው የምልክት ፒን (ብዙውን ጊዜ S ተብሎ የሚሰየም) በESP32 ላይ ካለው GPIO ፒን 14 ጋር መገናኘት አለበት።

ለLED፣ ረጅሙን እግር (አኖድ) በ220 ኦም ተከላካይ በኩል ከGPIO ፒን 26 ጋር ያገናኙ፣ እና አጭሩን እግር (ካቶድ) ከመሬት ጋር ያገናኙ። ትክክለኛ ተግባርን ለማረጋገጥ ሁሉም ግንኙነቶች ደህንነታቸው የተጠበቀ መሆናቸውን ያረጋግጡ። ከLED ይልቅ ባዘር እየተጠቀሙ ከሆነ፣ የባዘሩን አንድ ፒን ከGPIO ፒን 26 እና ሌላውን ከመሬት ጋር ያገናኙ፣ የLED ዝግጅቱን ይተኩ።

የኮድ ምሳሌዎች እና ጉዞ

በኮዱ ውስጥ፣ ለPIR ዳሳሽ እና LED የፒን ቁጥሮችን እንገልጻለን። const int pirPin = 14; የPIR ፒንን ለማዘጋጀት እና const int ledPin = 26; ለLED ፒን እንጠቀማለን። እነዚህ ቋሚዎች በፕሮግራሙ አፈጻጸም ወቅት የፒን ቁጥሮች ሳይለወጡ እንዲቆዩ ያረጋግጣሉ።

const int pirPin = 14;  // የፒር ፒን ቁጥር
const int ledPin = 26;     // LED ፒን

ይህ ቁራጭ የምንጠቀምባቸውን ፒኖች ያስጀምራል። በsetup() ተግባር ውስጥ፣ የPIR ፒንን እንደ ግቤት እና የLED ፒንን እንደ ውጤት እናዋቅራለን። ይህ ዝግጅት የዳሳሹን ሁኔታ ለማንበብ እና LEDን ለመቆጣጠር ወሳኝ ነው።

void setup() {
  Serial.begin(115200);  
  pinMode(pirPin, INPUT);  // የፒር ፒንን እንደ ግቤት ያስጀምሩ
  pinMode(ledPin, OUTPUT);  // የLED ፒንን እንደ ውጤት ያስጀምሩ
}

loop() ተግባር ውስጥ፣ digitalRead(pirPin); በመጠቀም የPIR ዳሳሹን ሁኔታ ያለማቋረጥ እናነባለን። ዳሳሹ እንቅስቃሴን ከለየ (በከፍተኛ ሁኔታ የሚጠቁም)፣ digitalWrite(ledPin, HIGH); በመጠቀም LEDን እናበራለን። አለበለዚያ፣ LEDን እናጠፋለን።

if (pirState == HIGH) {
    digitalWrite(ledPin, HIGH);  // LED አብሩ
} else {
    digitalWrite(ledPin, LOW);    // LED አጥፉ
}

ይህ አመክንዮ LED በPIR ዳሳሽ ለተገኘ እንቅስቃሴ ምላሽ እንዲሰጥ ያስችላል። ለሙሉ ተግባር ከዚህ ጽሑፍ በታች የቀረበውን ሙሉ ኮድ መስቀልዎን ያረጋግጡ።

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

ሁሉም ነገር ከተዘጋጀ እና ኮዱ ከተሰቀለ በኋላ፣ እንቅስቃሴ በPIR ዳሳሽ ሲገኝ LED ያበራል። በፊቱ በመንቀሳቀስ ዳሳሹን መሞከር ይችላሉ፤ LED ወዲያውኑ መብራት አለበት። ዳሳሹ ለመዘግየት ከተዋቀረ፣ ከመጥፋቱ በፊት ለተወሰነ ጊዜ በርቶ ይቆያል (በቪዲዮ በ12:15)።

የተለመዱ ችግሮች የተሳሳተ ሽቦ መገጣጠምን ያካትታሉ፣ ይህም ዳሳሹ እንዳይሰራ ሊከለክለው ይችላል። የPIR ዳሳሹ በትክክል ኃይል መቀበሉን እና የሲግናል ፒኑ በESP32 ላይ ካለው ትክክለኛ GPIO ፒን ጋር መገናኘቱን ያረጋግጡ። በPIR ዳሳሹ ላይ ያሉትን የስሜታዊነት እና የመዘግየት ቁልፎችን ማስተካከል በአካባቢዎ መሰረት አፈጻጸሙን ለማመቻቸት ይረዳል።

የቪዲዮ የጊዜ ምልክቶች

  • 00:00 መጀመሪያ
  • 1:54 የPIR ዳሳሽ መግቢያ
  • 6:38 የሽቦ አገጣጠም ተብራርቷል
  • 10:21 የአርዱኖ ኮድ ተብራርቷል
  • 12:45 በአርዱኖ IDE ውስጥ የESP32 ቦርድ እና COM ፖርት መምረጥ
  • 14:27 የPIR ዳሳሽ ማሳያ እና ማስተካከያ

ምስሎች

ESP32-21_motion_sensor-wiring
ESP32-21_motion_sensor-wiring
PIR SENSOR RE 200B
PIR SENSOR RE 200B
ESP32-21_motion_sensor-schematic
ESP32-21_motion_sensor-schematic
820-ESP32 Tutorial 21/55- Arduino code for motion sensor
ቋንቋ: C++
// set pin numbers
const int pirPin = 14;  // the number of the pir pin
const int ledPin = 26;     // LED pin

// variable for storing the pir status 
int pirState = 0;

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

void loop() {
  // read the state of the pir value
  pirState = digitalRead(pirPin);
  Serial.println(pirState);
  delay(100);

  // if the pir is pressed, the pirState is HIGH
  if (pirState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);

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

ምንጮች እና ምንጮች

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

ፋይሎች📁

የዳታ ማዕከል (pdf)

ሌላ ፋይሎች