ESP32 ትምህርት 27/55 - ርቀትን በአልትራሶኒክ ዳሳሽ መለካት | SunFounder የESP32 IoT መማሪያ ኪት
በዚህ መማሪያ ውስጥ፣ ከESP32 ጋር የአልትራሳውንድ ርቀት ዳሳሽ እንዴት መጠቀም እንደሚቻል እንማራለን፣ ርቀቶችን ለመለካት እና ውጤቶቹን በስክሪን ላይ ለማሳየት። እንዲሁም አንድ ነገር በተወሰነ ክልል ውስጥ ሲገኝ ባዘርን እንዴት ማግበር እንደሚቻል እንመረምራለን። ይህ ፕሮጀክት የESP32 ማይክሮ መቆጣጠሪያን ሁለገብነት ያሳያል፣ እሱም የWi-Fi እና የብሉቱዝ አቅሞችን ያጣምራል፣ ለተለያዩ የIoT አፕሊኬሽኖች ተስማሚ ያደርገዋል።
በዚህ መመሪያ ውስጥ፣ የሃርድዌር ክፍሎችን ማብራሪያዎችን፣ የሽቦ መገጣጠሚያ መመሪያዎችን እና ፕሮጀክቱን በተሳካ ሁኔታ ለመተግበር የሚረዱ የኮድ ቁርጥራጮችን ያገኛሉ። ለተጨማሪ ግልጽነት፣ እባክዎን ቪዲዮውን ይመልከቱ (በቪዲዮው በ00:00)።
ሃርድዌር ተብራርቷል
የዚህ ፕሮጀክት ዋና ክፍሎች የESP32 ማይክሮ መቆጣጠሪያ፣ የአልትራሳውንድ ዳሳሽ (HC-SR04) እና ባዘር ያካትታሉ። የአልትራሳውንድ ዳሳሽ ሁለት ዋና ክፍሎችን ያቀፈ ነው፡- የአልትራሳውንድ ሞገዶችን የሚያመነጭ አስተላላፊ እና የተንጸባረቁትን ሞገዶች የሚቀበል ተቀባይ። ሞገዶቹ ለመመለስ የሚወስዱትን ጊዜ በመለካት፣ ወደ አንድ ነገር ያለውን ርቀት ማስላት እንችላለን።
ESP32 እንደ ማዕከላዊ መቆጣጠሪያ ሆኖ ያገለግላል፣ ከአልትራሳውንድ ዳሳሽ የተገኘውን መረጃ ያካሂዳል እና በተለካው ርቀት ላይ በመመስረት ባዘሩን ይቆጣጠራል። የተገኘው ርቀት ከተወሰነ ገደብ ያነሰ ሲሆን ባዘሩ ይደወላል፣ ይህም አንድ ነገር በጣም ቅርብ መሆኑን ያመለክታል።
የዳታሼት ዝርዝሮች
| አምራች | HC-SR04 |
|---|---|
| የክፍል ቁጥር | HC-SR04 |
| የሎጂክ/IO ቮልቴጅ | 5 ቮ |
| የአቅርቦት ቮልቴጅ | 5 ቮ |
| የውጤት ጅረት (በአንድ ቻናል) | 16 ሚኤ |
| ከፍተኛ ጅረት (በአንድ ቻናል) | … |
| የPWM ድግግሞሽ መመሪያ | … |
| የግቤት ሎጂክ ገደቦች | … |
| የቮልቴጅ ጠብታ / RDS(on) / ሙሌት | … |
| የሙቀት ገደቦች | … |
| ፓኬጅ | … |
| ማስታወሻዎች / ልዩነቶች | የመለኪያ ክልል፡ ከ2 ሴ.ሜ እስከ 400 ሴ.ሜ |
- ለዳሳሹ ትክክለኛ የ5 ቮ የኃይል አቅርቦት ያረጋግጡ።
- ጣልቃ ገብነትን ለማስወገድ ለአልትራሳውንድ ሞገዶች ግልጽ መንገድ ይጠብቁ።
- የምልክት መዘግየትን እና ጫጫታን ለመቀነስ አጫጭር ሽቦዎችን ይጠቀሙ።
- የተሳሳተ ግንኙነትን ለማስወገድ ትክክለኛ የፒን ግንኙነቶችን ያረጋግጡ።
- ትክክለኛነትን ለመፈተሽ ዳሳሹን በተለያዩ አካባቢዎች ይሞክሩት።
የሽቦ መገጣጠሚያ መመሪያዎች

የአልትራሳውንድ ዳሳሹን ከESP32 ጋር ለማገናኘት፣ የዳሳሹን የVCC ፒን በESP32 ላይ ካለው የ5V ፒን ጋር ያገናኙ። በመቀጠል፣ የዳሳሹን የGND ፒን በESP32 ላይ ካሉት የመሬት (GND) ፒኖች አንዱ ጋር ያገናኙ። ከዳሳሹ የሚመጣው የቀስተ (Trig) ፒን በESP32 ላይ ከGPIO 26 ጋር መገናኘት አለበት፣ የኢኮ (Echo) ፒን ደግሞ ከGPIO 25 ጋር መገናኘት አለበት። ይህ ዝግጅት ESP32 ወደ ዳሳሹ ምልክት እንዲልክ እና ርቀትን ለማስላት የኢኮ ምልክቱን እንዲቀበል ያስችለዋል።
ለባዘሩ፣ አወንታዊውን (ረጅሙን) እግር በESP32 ላይ ከGPIO 12 ጋር እና አሉታዊውን (አጭሩን) እግር ከGND ጋር ያገናኙ። በስራ ጊዜ ልቅ የሆነ ሽቦ እንዳይኖር ሁሉም ግንኙነቶች ደህንነታቸው የተጠበቀ መሆናቸውን ያረጋግጡ። የዳቦ ሰሌዳ የሚጠቀሙ ከሆነ፣ የተሳሳተ ሽቦ እንዳይኖር የባዘሩን ግንኙነቶች በትክክል ያስተካክሉ። ለሽቦ መገጣጠሚያ ማረጋገጫ ቪዲዮውን መመልከትዎን ያረጋግጡ (በቪዲዮው በ05:12)።
የኮድ ምሳሌዎች እና ማብራሪያ
ኮዱ ለአልትራሳውንድ ዳሳሹ ፒኖችን ያስጀምራል እና ተከታታይ ግንኙነትን ያዘጋጃል። ዋናው ተግባር፣ readSensorData()፣ የቀስተ ምልክት መላክ እና ከኢኮ ፒን የሚመጣውን የምላሽ ጊዜ መለካት ሃላፊነት አለበት።
const int echoPin = 25;
const int trigPin = 26;
void setup() {
Serial.begin(115200);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.println("Ultrasonic sensor:");
}
ኮዱ echoPin እና trigPinን ከአልትራሳውንድ ዳሳሹ ጋር ለተገናኙት ፒኖች እንደ ቋሚዎች ይገልጻል። በsetup() ተግባር ውስጥ፣ ተከታታይ ግንኙነትን እናስጀምራለን እና የፒን ሁነታዎችን በዚሁ መሰረት እናዘጋጃለን።
float readSensorData() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long microsecond = pulseIn(echoPin, HIGH);
float distance = microsecond / 29.00 / 2;
return distance;
}
ይህ ቁርጥራጭ readSensorData() ተግባርን ያሳያል፣ እሱም የ10-ማይክሮሰከንድ ምት ወደ ቀስተ ፒን ይልካል። ከዚያም የኢኮ ፒን ምልክቱን ወደ ኋላ ለመቀበል የወሰደውን ጊዜ ይለካል፣ ርቀቱን ያሰላል እና ይህን እሴት ይመልሳል።
በመጨረሻም፣ የሉፕ ተግባሩ ርቀቱን ያለማቋረጥ ያነባል እና በተከታታይ መቆጣጠሪያው ላይ ያትመዋል። ርቀቱ ከ20 ሴ.ሜ በታች ከሆነ፣ ባዘሩ ይጠቃለላል።
ማሳያ / ምን እንደሚጠበቅ
ፕሮግራሙን ሲያሂዱ፣ ESP32 የተለካውን ርቀት በሴንቲሜትር በተከታታይ መቆጣጠሪያው ላይ ያሳያል። አንድ ነገር ከዳሳሹ በ20 ሴ.ሜ ውስጥ ከገባ፣ ባዘሩ ይደወላል። ይህ ባህሪ ነገሮችን ከዳሳሹ ፊት ለፊት በተለያዩ ርቀቶች በማስቀመጥ ሊሞከር ይችላል። የተገላቢጦሽ ዋልታን ይጠንቀቁ እና በስራ ጊዜ ችግሮችን ለማስወገድ ግንኙነቶቹ እንደተገለጸው መደረጋቸውን ያረጋግጡ (በቪዲዮው በ08:00)።
የቪዲዮ ጊዜ ምልክቶች
- 00:00 መጀመሪያ
- 1:46 የአልትራሶኒክ ዳሳሽ መግቢያ
- 6:02 የሽቦ አያያዝ ማብራሪያ
- 7:37 የESP32 Arduino ኮድ ማብራሪያ
- 11:33 በArduino IDE ውስጥ የESP32 ቦርድ እና COM ወደብ መምረጥ
- 13:15 የርቀት መለኪያ ማሳያ
- 16:43 ከርቀት ጋር የተያያዘ እርምጃ፡ ባዘር
// Define pins for the ultrasonic sensor
const int echoPin = 25;
const int trigPin = 26;
// Function prototype for reading sensor data
float readSensorData();
void setup() {
// Begin serial communication at 115200 baud rate
Serial.begin(115200);
// Set echoPin as input and trigPin as output
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
// Print sensor information to the serial monitor
Serial.println("Ultrasonic sensor:");
}
void loop() {
// Read distance from the ultrasonic sensor
float distance = readSensorData();
// Print the measured distance to the serial monitor
Serial.print(distance);
Serial.println(" cm");
// Delay between readings
delay(200);
}
// Function to read data from the ultrasonic sensor
float readSensorData() {
// Trigger a low signal before sending a high signal
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Send a 10-microsecond high signal to the trigPin
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
// Return to low signal
digitalWrite(trigPin, LOW);
// Measure the duration of the high signal on the echoPin
unsigned long microsecond = pulseIn(echoPin, HIGH);
// Calculate the distance using the speed of sound (29.00µs per centimeter)
float distance = microsecond / 29.00 / 2;
// Return the calculated distance
return distance;
}
Common Course Links
Common Course Files
እንደሚያስፈልግዎት ይችላል
-
ኢቤይ
-
ባንጉድPurchase HC-SR04 Ultrasonic Sensor from Banggoodbanggood.com
ምንጮች እና ምንጮች
-
ሰነዶችESP32 Tutorial 27/55- SunFounder doc page for Ultrasonic distance sensordocs.sunfounder.com
-
ውስጥHC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
ፋይሎች📁
አንድ ፋይል የለም።