งานที่ 17
ESP8266 NodeMCU พร้อม HC-SR04 Ultrasonic Sensor พร้อม Arduino IDE
คู่มือนี้แสดงวิธีใช้อัลตราโซนิกเซนเซอร์ HC-SR04 กับบอร์ด ESP8266 NodeMCU โดยใช้แกน Arduino เซ็นเซอร์อัลตราโซนิกใช้โซนาร์เพื่อกำหนดระยะห่างจากวัตถุ เราจะแสดงวิธีเชื่อมต่อเซ็นเซอร์กับ ESP8266 และให้ตัวอย่างสเก็ตช์หลายแบบเพื่อกำหนดระยะห่างจากวัตถุโดยใช้ HC-SR04

บทช่วยสอนนี้ครอบคลุมหัวข้อต่อไปนี้:
- อัลตราโซนิกเซนเซอร์ HC-SR04 Pinout
- การเดินสาย Ultrasonic Sensor HC-SR04 ไปยัง ESP8266
- การหาระยะทางไปยังวัตถุโดยใช้ Ultrasonic Sensor HC-SR04 กับ ESP8266
- การแสดงระยะทางไปยังวัตถุบนจอแสดงผลโดยใช้ ESP8266 และ HC-SR04
ขอแนะนำอัลตราโซนิกเซนเซอร์ HC-SR04
เซ็นเซอร์อัลตราโซนิก HC-SR04 ใช้โซนาร์เพื่อกำหนดระยะห่างจากวัตถุ เซ็นเซอร์นี้อ่านได้ตั้งแต่ 2 ซม. ถึง 400 ซม. (0.8 นิ้วถึง 157 นิ้ว) ด้วยความแม่นยำ 0.3 ซม. (0.1 นิ้ว) ซึ่งเหมาะสำหรับโครงการงานอดิเรกส่วนใหญ่ นอกจากนี้ โมดูลเฉพาะนี้ยังมาพร้อมกับโมดูลตัวส่งและตัวรับแบบอัลตราโซนิก
ภาพต่อไปนี้แสดงเซ็นเซอร์อัลตราโซนิก HC-SR04

รูปภาพถัดไป:อีกด้านหนึ่งของเซ็นเซอร์

หาซื้อได้ที่ไหน HC-SR04 Ultrasonic Sensor?
คุณสามารถตรวจสอบเซ็นเซอร์ Ultrasonic Sensor HC-SR04 บน Maker Advisor เพื่อค้นหาราคาที่ดีที่สุด:
ข้อมูลทางเทคนิคของเซนเซอร์อัลตราโซนิก HC-SR04
ตารางต่อไปนี้แสดงคุณสมบัติหลักและข้อกำหนดของเซ็นเซอร์อัลตราโซนิก HC-SR04 สำหรับข้อมูลเพิ่มเติม คุณควรศึกษาเอกสารข้อมูลของเซ็นเซอร์
พาวเวอร์ซัพพลาย | 5V DC |
การทำงานปัจจุบัน | 15 mA |
ความถี่ในการทำงาน | 40 kHz |
ช่วงสูงสุด | 4 เมตร |
ช่วงต่ำสุด | 2 ซม. |
วัดมุม | 15º |
ปณิธาน | 0.3 ซม. |
สัญญาณอินพุตทริกเกอร์ | 10uS TTL ชีพจร |
ก้องเอาท์พุตสัญญาณ | ชีพจร TTL สัดส่วนกับช่วงระยะทาง |
ขนาด | 45mm x 20mm x 15mm |
HC-SR04 อัลตราโซนิกเซนเซอร์ Pinout
นี่คือพินเอาต์ของอัลตราโซนิกเซนเซอร์ HC-SR04
VCC | ให้พลังงานแก่เซ็นเซอร์ (5V) |
หนุน | ทริกเกอร์อินพุต Pin |
ก้อง | Echo เอาต์พุต Pin |
GND | GND ทั่วไป |
อัลตราโซนิกเซนเซอร์ HC-SR04 ทำงานอย่างไร
เซ็นเซอร์อัลตราโซนิกใช้โซนาร์เพื่อกำหนดระยะห่างจากวัตถุ นี่คือวิธีการทำงาน:
- เครื่องส่งอัลตราซาวนด์ (ขาหนีบ) ปล่อยเสียงความถี่สูง (40 kHz)
- เสียงเดินทางผ่านอากาศ หากพบวัตถุ มันจะเด้งกลับไปที่โมดูล
- เครื่องรับอัลตราซาวนด์ (เอคโคพิน) รับเสียงสะท้อน (เอคโค่)

โดยคำนึงถึงความเร็วของเสียงในอากาศและเวลาเดินทาง (เวลาที่ผ่านไปตั้งแต่การส่งและรับสัญญาณ) เราสามารถคำนวณระยะทางไปยังวัตถุได้ นี่คือสูตร:
distance to an object = ((speed of sound in the air)*time)/2
- ความเร็วของเสียงในอากาศ 20ºC (68ºF) = 343m/s
อะไหล่ที่จำเป็น

ในการทำให้บทช่วยสอนนี้สมบูรณ์ คุณต้องมีชิ้นส่วนต่อไปนี้:
คุณสามารถใช้ลิงก์ก่อนหน้าหรือไปที่MakerAdvisor.com/toolsโดยตรงเพื่อค้นหาชิ้นส่วนทั้งหมดสำหรับโครงการของคุณในราคาที่ดีที่สุด!
แผนผัง – ESP8266 NodeMCU พร้อม HC-SR04 Ultrasonic Sensor
ต่อสายเซ็นเซอร์อัลตราโซนิก HC-SR04 เข้ากับ ESP8266 ตามที่แสดงในแผนผังต่อไปนี้ เรากำลังเชื่อมต่อ Trig pin กับGPIO 5 และหมุดก้องไปที่ GPIO 18แต่คุณสามารถใช้พินอื่นๆ ที่เหมาะสมได้

อัลตราโซนิกเซนเซอร์ | ESP8266 |
VCC | วิน |
หนุน | GPIO 12 (D6) |
ก้อง | GPIO14 (D5) |
GND | GND |
กำลังเตรียม Arduino IDE
เราจะตั้งโปรแกรมบอร์ด ESP8266 โดยใช้ Arduino IDE ดังนั้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งโปรแกรมเสริม ESP8266 แล้ว ทำตามบทช่วยสอนถัดไป:
หากคุณต้องการใช้ VS Code กับส่วนขยาย PlatformIO ให้ทำตามบทช่วยสอนถัดไปแทนเพื่อเรียนรู้วิธีตั้งโปรแกรม ESP8266:
- เริ่มต้นใช้งาน VS Code และ PlatformIO IDE สำหรับ ESP32 และ ESP8266 (Windows, Mac OS X, Linux Ubuntu)
รหัส – ระยะทางไปยังวัตถุโดยใช้เซ็นเซอร์อัลตราโซนิก HC-SR04 และ ESP8266
ภาพสเก็ตช์ต่อไปนี้เป็นตัวอย่างง่ายๆ ของวิธีที่คุณจะได้รับระยะห่างระหว่างเซ็นเซอร์กับวัตถุโดยใช้บอร์ด ESP8266 ที่มีแกน Arduino
/*********
Rui Santos
Complete project details at https://RandomNerdTutorials.com/esp8266-nodemcu-hc-sr04-ultrasonic-arduino/
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
*********/
const int trigPin = 12;
const int echoPin = 14;
//define sound velocity in cm/uS
#define SOUND_VELOCITY 0.034
#define CM_TO_INCH 0.393701
long duration;
float distanceCm;
float distanceInch;
void setup() {
Serial.begin(115200); // Starts the serial communication
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculate the distance
distanceCm = duration * SOUND_VELOCITY/2;
// Convert to inches
distanceInch = distanceCm * CM_TO_INCH;
// Prints the distance on the Serial Monitor
Serial.print("Distance (cm): ");
Serial.println(distanceCm);
Serial.print("Distance (inch): ");
Serial.println(distanceInch);
delay(1000);
}
ความคิดเห็น
แสดงความคิดเห็น