Luka Code

Ezali na ndenge ya kolakisa: "ESP32 Tutorial 27/55 - Komeka mosika na sensor ya ultrasonic | SunFounder's ESP32 IoT Learning kit"

Ezali na ndenge ya kolakisa: "ESP32 Tutorial 27/55 - Komeka mosika na sensor ya ultrasonic | SunFounder's ESP32 IoT Learning kit"

Na boyekoli oyo, tokoyekola ndenge ya kosalela sensor ya mosika ya ultrasonic na ESP32 mpo na komeka mosika mpe kolakisa bopesi na ekran. Tokotalaka mpe ndenge ya kofungola buzzer soki eloko emonani na kati ya mosika moko ya sikisiki. Proje oyo elakisaka boyebi ya ESP32 microcontroller, oyo ezali na Wi-Fi mpe Bluetooth, mpo na misala ndenge na ndenge ya IoT.

ultrasonic_principle

Na boyekoli oyo mobimba, okokuta ndimbola ya ba composants ya hardware, mitindo ya ba connexions, mpe ba extraits ya code mpo na kosalisa yo kosala proje na ndenge elongani. Mpo na bososoli ya kobakisa, tala video (na video na 00:00).

Hardware Explicado

Ba composants ya liboso ya proje oyo ezali na ESP32 microcontroller, sensor ya ultrasonic (HC-SR04), mpe buzzer. Sensor ya ultrasonic ezali na biteni mibale ya minene: émetteur oyo ebimisaka ba ondes ya ultrasonic mpe récepteur oyo eyokaka ba ondes oyo ezongisami. Na komeka ntango oyo esengeli mpo na ba ondes kozonga, tokoki kosala calcul ya mosika na eloko.

ESP32 ezali lokola contrôleur central, oyo esalaka traitement ya ba données ya sensor ya ultrasonic mpe ekolakisa buzzer kolanda mosika oyo emekami. Buzzer ekobeta soki mosika oyo emonani ezali na se ya seu moko oyo ezwami, kolakisa ete eloko ezali penepene mingi.

Détails ya Datasheet

Fabricant HC-SR04
Numéro ya partie HC-SR04
Tension ya logique/IO 5 V
Tension ya alimentation 5 V
Courant ya sortie (na canal) 16 mA
Courant ya pointe (na canal)
Directive ya fréquence PWM
Seuils ya logique ya entrée
Chute ya tension / RDS(on) / saturation
Limites thermiques
Paquet
Notes / variantes Étendue ya mesure: 2 cm kino 400 cm

 

  • Kokamba ete alimentation ya 5 V ezala malamu mpo na sensor.
  • Kobatela nzela ya pole mpo na ba ondes ya ultrasonic mpo na kokima dérangement.
  • Kosalela ba fils ya mokuse mpo na kokitisa retard ya signal mpe bruit.
  • Kokamba ete ba connexions ya ba pins ezala malamu mpo na kokima maloba ya mabe.
  • Komeka sensor na ba environnements ndenge na ndenge mpo na kotalela précision.

Mitindo ya Connexion

ESP32-27_ultrasonic_wiring

Mpo na kosangisa sensor ya ultrasonic na ESP32, sangisa pin ya VCC ya sensor na pin ya 5V na ESP32. Na sima, sangisa pin ya GND ya sensor na moko ya ba pins ya terre (GND) na ESP32. Pin ya trigger (Trig) ya sensor esengeli kosangisama na GPIO 26 na ESP32, ntango pin ya echo (Echo) esengeli kosangisama na GPIO 25. Mbulu oyo epesaka ESP32 nzela ya kotinda signal na sensor mpe kozwa signal ya echo mpo na kosala calcul ya mosika.

ESP32-27_ultrasonic_schematic

Mpo na buzzer, sangisa pin ya positif (long) na GPIO 12 na ESP32 mpe pin ya négatif (court) na GND. Kokamba ete ba connexions nyonso ezala ya libende mpo na kokima ba fils oyo ezali kofungwama na ntango ya fonctionnement. Soki ozali kosalela breadboard, sangisa ba connexions ya buzzer na ndenge ya malamu mpo na kokima ba erreurs ya connexion. Tala video mpo na kolakisa connexion (na video na 05:12).

Ba Exemples ya Code & Explication

Code ebandisaka ba pins mpo na sensor ya ultrasonic mpe esalaka communication série. Fonction principale, readSensorData(), ezali na mokumba ya kotinda signal ya trigger mpe komeka ntango ya réponse na pin ya echo.

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

void setup() {
  Serial.begin(115200);
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
  Serial.println("Ultrasonic sensor:");  
}

Code ezwaka echoPin mpe trigPin lokola ba constantes mpo na ba pins oyo esangisami na sensor ya ultrasonic. Na fonction setup(), tobandisaka communication série mpe totyolaka ba modes ya ba pins na ndenge ya malamu.

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

Extrait oyo elakisaka fonction readSensorData(), oyo etindaka pulse ya 10 microsecondes na pin ya trigger. Na sima emekaka ntango oyo esengeli mpo na pin ya echo kozwa signal oyo ezongisami, esalaka calcul ya mosika, mpe ezongisaka valeur oyo.

Na suka, fonction ya boucle ezali kotanga mosika mbala na mbala mpe kolakisa yango na moniteur série. Soki mosika ezali na se ya 20 cm, buzzer ekofungwama.

Démonstration / Nini Okoki Kozela

Ntango okosalela programme, ESP32 ekolakisa mosika oyo emekami na centimètres na moniteur série. Soki eloko ekoti na kati ya 20 cm ya sensor, buzzer ekobeta. Ezaleli oyo ekoki komekama na kotya ba objets na ba mosika ndenge na ndenge liboso ya sensor. Kozala na bokebi na polarité oyo ezongisami mpe kokamba ete ba connexions esalema na ndenge oyo elobami mpo na kokima ba problèmes na ntango ya fonctionnement (na video na 08:00).

Ba Timestamps ya Video

  • 00:00 Ebandeli
  • 1:46 Boyebi ya capteur ya ultrason
  • 6:02 Ndimbola ya kosangisa ba fils
  • 7:37 Ndimbola ya code ya ESP32 na Arduino
  • 11:33 Kopona board ya ESP32 mpe port ya COM na Arduino IDE
  • 13:15 Ndimboli ya komekola mosika
  • 16:43 Kosala likambo na mosika: buzzer

Images

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

Fichiers📁

Aucun fichier disponible.