Wa Koodu

Èkọ́ ESP32 27/55 - Wíwọ̀n Ìjìnà pẹ̀lú Sensor Ultrasonic | SunFounder's ESP32 IoT Learning kit

Èkọ́ ESP32 27/55 - Wíwọ̀n Ìjìnà pẹ̀lú Sensor Ultrasonic | SunFounder's ESP32 IoT Learning kit

Nínú ẹ̀kọ́ yìí, a óò kọ́ bí a ṣe ń lo sẹ́ǹsò ìwọ̀n ìjìn-ọ̀nà ultrasonic pẹ̀lú ESP32 láti wọn ìjìn-ọ̀nà àti láti fi àbájáde rẹ̀ hàn lórí ojú-ìgbéléwọ̀n. A óò tún ṣàwárí bí a ṣe ń mú buzzer ṣiṣẹ́ nígbà tí a bá rí ohun kan nínú ìwọ̀n kan pàtó. Iṣẹ́-ọwọ́ yìí ṣàfihàn ìmú-ṣiṣẹ́ púpọ̀ ti microcontroller ESP32, tí ó ní agbára Wi-Fi àti Bluetooth nínú ara rẹ̀, tí ó sì mú un yẹ́ fún ọ̀pọ̀lọpọ̀ àwọn ohun-èlò IoT.

ìlànà_ultrasonic

Nínú gbogbo ìtọ́sọ́nà yìí, o óò rí àlàyé nípa àwọn ẹ̀yà ohun-èlò, àwọn ìtọ́sọ́nà ìsopọ̀, àti àwọn ẹsẹ̀ kóòdù tí yóò ràn ọ́ lọ́wọ́ láti ṣe iṣẹ́-ọwọ́ náà ní àṣeyọrí. Fún ìmúdájú síwájú sí i, jọ̀wọ́ wo fídíò náà (nínú fídíò ní 00:00).

Àlàyé Ohun-Èlò

Àwọn ẹ̀yà pàtàkì ti iṣẹ́-ọwọ́ yìí ni microcontroller ESP32, sẹ́ǹsò ultrasonic (HC-SR04), àti buzzer kan. Sẹ́ǹsò ultrasonic náà ní àwọn ẹ̀yà pàtàkì méjì: olùránsọ̀ kan tí ń ta àwọn ìgbì ultrasonic jáde àti olùgbà kan tí ń gbọ́ àwọn ìgbì tí a dá padà. Nípa wíwọn àkókò tí ó gbà fún àwọn ìgbì náà láti padà, a lè ṣírò ìjìn-ọ̀nà sí ohun kan.

ESP32 náà ni olùdarí àringbùngbùn, tí ń ṣiṣẹ́ lórí àwọn data láti ọ̀dọ̀ sẹ́ǹsò ultrasonic àti tí ń ṣàkóso buzzer náà nípa ìjìn-ọ̀nà tí a wọn. Buzzer náà yóò dun nígbà tí ìjìn-ọ̀nà tí a rí bá kéré ju ìwọ̀n kan tí a ṣètò, tí ó ń fi hàn pé ohun kan súnmọ́ jù.

Àwọn Àlàyé Datasheet

Olùṣe HC-SR04
Nọ́mbà ẹ̀yà HC-SR04
Foltiège Logic/IO 5 V
Foltiège ìpèsè 5 V
Ìwọ̀n ìjàde lọ́wọ́ (fún ikanni kọ̀ọ̀kan) 16 mA
Ìwọ̀n ìjàde tí ó ga jù (fún ikanni kọ̀ọ̀kan)
Ìtọ́sọ́nà ìgbohùnsáyẹ́nsì PWM
Àwọn ìwọ̀n ààlà logic input
Ìdìndì foltiège / RDS(on) / ìkún
Àwọn ààlà ooru
Ìpako
Àwọn àkíyèsí / àwọn oríṣiríṣi Ìwọ̀n ìjìn-ọ̀nà: 2 cm sí 400 cm

 

  • Rí i dájú pé ìpèsè agbára 5 V tí ó tọ́ wà fún sẹ́ǹsò náà.
  • Mú ọ̀nà tí ó ṣí sílẹ̀ fún àwọn ìgbì ultrasonic láti yẹra fún ìdàrúdàpọ̀.
  • Lo àwọn okun kúkúrú láti dín àkókò ìdálọ́nà àti ariwo kù.
  • Rí i dájú pé àwọn ìsopọ̀ pin tọ́ láti yẹra fún àìní ìbánisọ̀rọ̀.
  • Dán sẹ́ǹsò náà wò ní oríṣiríṣi àyíká láti ṣàgbéwọ́ ìpéye rẹ̀.

Àwọn Ìtọ́sọ́nà Ìsopọ̀

ESP32-27_ultrasonic_wiring

Láti so sẹ́ǹsò ultrasonic pọ̀ mọ́ ESP32, so pin VCC ti sẹ́ǹsò náà pọ̀ mọ́ pin 5V lórí ESP32. Nígbà tí o bá ṣe bẹ́ẹ̀, so pin GND ti sẹ́ǹsò náà pọ̀ mọ́ ọ̀kan lára àwọn pin ilẹ̀ (GND) lórí ESP32. Pin trigger (Trig) láti ọ̀dọ̀ sẹ́ǹsò náà yẹ kí ó sopọ̀ mọ́ GPIO 26 lórí ESP32, nígbà tí pin echo (Echo) yẹ kí ó sopọ̀ mọ́ GPIO 25. Ìtòlẹ́sẹ̀ẹ́ yìí jẹ́ kí ESP32 rán àmì-ìdánilẹ́kọ̀ọ́ sí sẹ́ǹsò náà àti láti gba àmì-ìdánilẹ́kọ̀ọ́ echo láti ṣírò ìjìn-ọ̀nà.

ESP32-27_àwòrán_ultrasonic

Fún buzzer náà, so ẹsẹ̀ rere (gígùn) pọ̀ mọ́ GPIO 12 lórí ESP32 àti ẹsẹ̀ òdì (kúkúrú) pọ̀ mọ́ GND. Rí i dájú pé gbogbo àwọn ìsopọ̀ ṣe dáradára láti yẹra fún ìsopọ̀ tí ó lọ́wọ́ nígbà iṣẹ́. Bí o bá ń lo breadboard, tọ́ àwọn ìsopọ̀ buzzer náà dáradára láti yẹra fún ìsopọ̀ tí kò tọ́. Rí i dájú pé o wo fídíò náà fún ìmúdájú ìsopọ̀ (nínú fídíò ní 05:12).

Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà

Kóòdù náà bẹ̀rẹ̀ àwọn pin fún sẹ́ǹsò ultrasonic àti ṣètò ìbánisọ̀rọ̀ serial. Iṣẹ́ pàtàkì, readSensorData(), ni ó ṣe ojúṣe fún rírá àmì-ìdánilẹ́kọ̀ọ́ trigger àti wíwọn àkókò ìdáhùn láti pin echo.

const int echoPin = 25;
const int trigPin = 26;

void setup() {
  Serial.begin(115200);
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
  Serial.println("Sẹ́ǹsò ultrasonic:");  
}

Kóòdù náà ṣàlàyé echoPin àti trigPin gẹ́gẹ́ bí àwọn ìwọ̀n tí kò yí padà fún àwọn pin tí a so pọ̀ mọ́ sẹ́ǹsò ultrasonic. Nínú iṣẹ́ setup(), a bẹ̀rẹ̀ ìbánisọ̀rọ̀ serial àti ṣètò àwọn ipo pin ní ìbámu.

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;
}

Ẹsẹ̀ yìí ṣàfihàn iṣẹ́ readSensorData(), tí ó rán àmì-ìdánilẹ́kọ̀ọ́ 10-microsecond sí pin trigger. Ó wá wọn àkókò tí ó gbà fún pin echo láti gba àmì-ìdánilẹ́kọ̀ọ́ padà, ṣírò ìjìn-ọ̀nà, àti láti dá ìye yìí padà.

Níkẹyìn, iṣẹ́ loop ń ka ìjìn-ọ̀nà nígbà gbogbo àti tẹ̀ ẹ́ jáde sí ojú-ìgbéléwọ̀n serial. Bí ìjìn-ọ̀nà náà bá kéré ju 20 cm lọ, buzzer náà yóò ṣiṣẹ́.

Ìṣàfihàn / Ohun Tí O Lè Retí

Nígbà tí o bá ṣe ètò náà, ESP32 yóò ṣàfihàn ìjìn-ọ̀nà tí a wọn ní centimeters lórí ojú-ìgbéléwọ̀n serial. Bí ohun kan bá wọ inú 20 cm ti sẹ́ǹsò náà, buzzer yóò dun. A lè dán ìwà yìí wò nípa gbígbé àwọn ohun sí oríṣiríṣi ìjìn-ọ̀nà níwájú sẹ́ǹsò náà. Ṣọ́ra fún polarity tí a yí padà àti rí i dájú pé àwọn ìsopọ̀ ni a ṣe gẹ́gẹ́ bí a ti sọ ọ́ láti yẹra fún àwọn ìṣòro nígbà iṣẹ́ (nínú fídíò ní 08:00).

Àwọn Àkókò Fídíò

  • 00:00 Bẹ̀rẹ̀
  • 1:46 Ìfihàn sí Sensọ Ultrasonic
  • 6:02 Àlàyé nípa ìsopọ̀ oníná
  • 7:37 Àlàyé kóòdù ESP32 Arduino
  • 11:33 Yíyàn bọ́ọ̀dù ESP32 àti COM port nínú Arduino IDE
  • 13:15 Ìfihàn wíwọ̀n ìjìnà
  • 16:43 Ìṣe ìgbésẹ̀ pẹ̀lú ìjìnà: buzzer

Aworan

ESP32-27_ultrasonic_wiring
ESP32-27_ultrasonic_wiring
ESP32-27_ultrasonic_schematic
ESP32-27_ultrasonic_schematic
ultrasonic_principle
ultrasonic_principle
827-ESP32 Tutorial 27/55- Arduino code for ultrasonic sensor
Ede: C++
// 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;
}

Fáìlìs📁

Ko si awọn faili ti o wa.