MicroPython HC-SR04 ultrasone sensor – ESP32 en Thonny IDE

Micropython Hc Sr04 Ultrasone Sensor Esp32 En Thonny Ide



MicroPython wordt veel gebruikt met microcontrollers en embedded systemen. We kunnen code en bibliotheken binnen MicroPython IDE schrijven en meerdere sensoren koppelen. Dit artikel zal u begeleiden bij het meten van afstand met behulp van de ESP32 met HC-SR04-sensor.

ESP32 met HC-SR04 ultrasone sensor met behulp van MicroPython

Om ESP32 met ultrasoon te verbinden, hoeven slechts twee draden te worden aangesloten. Met behulp van ultrasone sensoren kunnen we de afstand tussen objecten meten en reacties op basis van dit systeem activeren, zoals systemen om botsingen met voertuigen te voorkomen.









Met behulp van MicroPython, een ontworpen taal voor ESP32 en andere microcontrollers, kunnen we meerdere sensoren koppelen, zoals de HC-SR04 . Er wordt MicroPython-code geschreven die de tijd berekent die de SONAR-golf nodig heeft om van sensor naar object en terug naar object te reiken. Later kunnen we met behulp van de afstandsformule de objectafstand berekenen.



Hier zijn enkele belangrijke hoogtepunten van de HC-SR04-sensor:





Kenmerken Waarde
Werkspanning 5V gelijkstroom
Bedrijfsstroom 15mA
Werk frequentie 40 KHz
Mijn Bereik 2 cm
Maximaal bereik 400cm/13 voet
Nauwkeurigheid 3mm
Hoek meten <15 graden

HC-SR04 Pinout HC-SR04 bevat het volgende vier pinnen:

  • Vcc: Maak verbinding met de ESP32 Vin-pin
  • Gnd: Maak verbinding met GND
  • Trig: Pin om het besturingssignaal van het ESP32-bord te ontvangen
  • Echo: Stuur signaal terug. Microcontroller Board ontvangt dit signaal om de afstand met behulp van tijd te berekenen



Hoe ultrasoon werkt

Nadat de HC-SR04-sensor is verbonden met ESP32, wordt er een signaal gegeven aan de Trig pin wordt gegenereerd door het bord. Zodra het signaal is ontvangen bij de trig-pin van de HC-SR04-sensor, wordt een ultrasone golf gegenereerd die de sensor verlaat en het object of obstakel raakt. Na het raken stuitert het terug naar het objectoppervlak.

  Een afbeelding met tekstbeschrijving wordt automatisch gegenereerd

Zodra de gereflecteerde golf terugkeert naar het ontvangende uiteinde van de sensor, wordt een signaalpuls op de echopin gegenereerd. ESP32 ontvangt het echo-pinsignaal en berekent de afstand tussen object en sensor met behulp van Afstand-formule.

  Tekstbeschrijving automatisch gegenereerd

De totale berekende afstand moet worden gedeeld door twee in de ESP32-code, aangezien de afstand die we oorspronkelijk krijgen gelijk is aan de totale afstand van sensor tot object en terug naar het ontvangende uiteinde van de sensor. Dus echte afstand is het signaal dat gelijk is aan de helft van die afstand.

Schematisch

Hieronder volgt het schema voor de interface van ESP32 met ultrasone sensor:

  Een afbeelding met tekst, elektronica Beschrijving automatisch gegenereerd

Verbind de trigger- en echopin van de sensor met respectievelijk GPIO 5 en GPIO 18 van ESP32. Verbind ook ESP32 GND en Vin-pin met sensorpinnen.

HC-SR04 ultrasone sensor ESP32-pen
Trig GPIO5
Echo GPIO 18
GND GND
VCC KOMEN

Hardware

De volgende componenten zijn vereist om de ultrasone sensor te programmeren:

  • ESP32
  • HC-SR04
  • Broodplank
  • Jumper-draden

  Een afbeelding met tekstbeschrijving wordt automatisch gegenereerd

Hoe Ultrasonic HC-SR04 in te stellen met ESP32 met behulp van MicroPython

Voordat we ESP32 kunnen programmeren met een ultrasone sensor, moeten we er een bibliotheek in installeren. Sluit de ESP32-kaart aan op de pc. Volg de stappen om de ESP32-configuratie met ultrasone sensor in Thonny IDE te voltooien met behulp van MicroPython.

Stap 1: Open nu Thonny IDE. Maak een nieuw bestand aan in het editorvenster. Ga naar : Bestand>Nieuw of druk op Ctrl+N .

Zodra het nieuwe bestand is geopend, plakt u de volgende code in het Thonny IDE-editorvenster.

importeren machine , tijd
van machine importeren Pin

klas HCSR04:

# echo_timeout_us is gebaseerd op limiet van chipbereik (400 cm)
def __heet__ ( zelf , trekker_pin , echo_pin , echo_timeout_us = 500 * twee * 30 ) :

zelf . echo_timeout_us = echo_timeout_us
# Init-triggerpen (uit)
zelf . trekker = Pin ( trekker_pin , modus = Pin. UIT , trekken = Geen )
zelf . trekker . waarde ( 0 )

# Init echo pin (in)
zelf . echo = Pin ( echo_pin , modus = Pin. IN , trekken = Geen )

def _zend_puls_en_wacht ( zelf ) :

zelf . trekker . waarde ( 0 ) # Stabiliseer de sensor
tijd . slaap_ons ( 5 )
zelf . trekker . waarde ( 1 )
# Stuur een 10us-puls.
tijd . slaap_ons ( 10 )
zelf . trekker . waarde ( 0 )
proberen :
puls_tijd = machine. time_pulse_us ( zelf . echo , 1 , zelf . echo_timeout_us )
opbrengst puls_tijd
behalve OFout net zo ex:
als ex. argumenten [ 0 ] == 110 : #110 = ETIMEDOUT
salarisverhoging OFout ( 'Buiten bereik' )
salarisverhoging ex

def afstand_mm ( zelf ) :

puls_tijd = zelf ._zend_puls_en_wacht ( )

mm = puls_tijd * 100 // 582
opbrengst mm

def afstand_cm ( zelf ) :

puls_tijd = zelf ._zend_puls_en_wacht ( )

cms = ( pulse_time / twee ) / 29.1
opbrengst cms

Stap 2: Na het schrijven van de bibliotheek code in het editorvenster nu moeten we het opslaan in het MicroPython-apparaat.

  Tekst, toepassing Beschrijving automatisch gegenereerd

Stap 3: Ga naar : Bestand>Opslaan of druk op Ctrl+S .

  Grafische gebruikersinterface, applicatie, Teams Beschrijving automatisch gegenereerd

Stap 4: Er verschijnt een nieuw venster. Zorg ervoor dat ESP32 is aangesloten op de pc. Selecteer het MicroPython-apparaat om het bibliotheekbestand op te slaan.

  Grafische gebruikersinterface, toepassing Beschrijving automatisch gegenereerd

Stap 5: Sla het ultrasone bibliotheekbestand op met een naam hcsr04.py en klik Oké .

  Grafische gebruikersinterface, toepassing Beschrijving automatisch gegenereerd

Nu is de ultrasone hcsr04-sensorbibliotheek met succes toegevoegd aan het ESP32-bord. Nu kunnen we bibliotheekfuncties binnen code aanroepen om de afstand van verschillende objecten te meten.

Code voor ultrasone sensor met behulp van MicroPython

Maak voor ultrasone sensorcode een nieuw bestand aan ( Ctrl+N ). Voer in het editorvenster de onderstaande code in en sla deze op in het hoofd.py of boot.py het dossier. Deze code drukt de afstand af van elk object dat voor HC-SR04 komt.

  Grafische gebruikersinterface, tekst, toepassing Beschrijving automatisch gegenereerd

Code begon met het aanroepen van belangrijke bibliotheken zoals HCSR04 en tijd bibliotheek mee slaap vertragingen te geven.

Vervolgens hebben we een nieuw object met een naam gemaakt sensor . Dit object gebruikt drie verschillende argumenten: trigger, echo en time-out. Hier wordt de time-out gedefinieerd als de maximale tijd nadat de sensor buiten bereik is.

sensor = HCSR04 ( trekker_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )

Om de afstand te meten en op te slaan, wordt een nieuw object genoemd afstand is gecreëerd. Dit object bespaart afstand in cm.

afstand = sensor. afstand_cm ( )

Schrijf de volgende code om gegevens in mm te krijgen.

afstand = sensor. afstand_mm ( )

Vervolgens hebben we het resultaat afgedrukt op de MicroPython IDE-shell.

afdrukken ( 'Afstand:' , afstand , 'cm' )

Uiteindelijk wordt een vertraging van 1 sec gegeven.

slaap ( 1 )

Volledige code wordt hieronder gegeven:

van hcsr04 importeren HCSR04
van tijd importeren slaap
#ESP32
sensor = HCSR04 ( trekker_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )
# ESP8266
#sensor = HCSR04(trigger_pin=12, echo_pin=14, echo_timeout_us=10000)
terwijl WAAR :
afstand = sensor. afstand_cm ( )
afdrukken ( 'Afstand:' , afstand , 'cm' )
slaap ( 1 )

Na het schrijven en opslaan van code in het MicroPython-apparaat, voer ik nu de ultrasone sensor uit hoofd.py bestandscode. Klik op de afspeelknop of druk op F5 .

  Grafische gebruikersinterface, tekst, applicatie, chat of sms Beschrijving automatisch gegenereerd

Uitvoer van ultrasone sensor wanneer object dichtbij is

Plaats nu een object in de buurt van de ultrasone sensor en controleer de gemeten afstand op het seriële monitorvenster van Arduino IDE.

  Een afbeelding met tekstbeschrijving wordt automatisch gegenereerd

Objectafstand wordt weergegeven in de shell-terminal. Nu wordt het object op 5 cm van de ultrasone sensor geplaatst.

Uitvoer van ultrasone sensor wanneer object ver is

Om ons resultaat te verifiëren, plaatsen we objecten ver van de sensor en controleren we de werking van de ultrasone sensor. Plaats objecten zoals weergegeven in onderstaande afbeelding:

  Een afbeelding met tekstbeschrijving wordt automatisch gegenereerd

Uitvoervenster geeft ons een nieuwe afstand en zoals we kunnen zien dat het object ver van de sensor verwijderd is, is de gemeten afstand ongeveer. 15 cm van de ultrasone sensor.

  Grafische gebruikersinterface, applicatie, Word Beschrijving automatisch gegenereerd

Conclusie

Het meten van afstand heeft een geweldige toepassing als het gaat om robotica en andere projecten, er zijn verschillende manieren om afstand te meten. HC-SR04 met ESP32 kan de afstand van verschillende objecten meten. Hier behandelt dit artikel alle stappen die nodig zijn om te integreren en afstand te meten met ESP32.