Skip to content

MicroPython I2C library and example for Gravity: URM09 Ultrasonic Sensor

Notifications You must be signed in to change notification settings

Lupin3000/Micropython-I2C-URM09

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MicroPython I2C library and example for Gravity: URM09 Ultrasonic Sensor

This repository contains the MicroPython I2C library for the Gravity: URM09 Ultrasonic Sensor from DFRobot, as well as a very simple example of how to use it. The original repository from DFRobot is located here (for Arduino and Raspberry Pi).

Why this repository?

The original version of DFRobot uses Python serial (UART) and Python SMBus (I2C), which are not compatible with MicroPython. Also, I was not so happy with the Python code style/quality. That's why I created this version.

Prerequisite

  • Gravity: URM09 Ultrasonic Sensor
  • ESP32 (MicroPython compatible device)
  • MicroPython firmware installed (min. 1.20.0.*)
  • USB cable (for connection between ESP32 and sensor)
  • latest VCP driver installed

Ultrasonic.jpg

Installation

Clone this repository to your local computer.

# clone repository
$ git clone https://github.com/Lupin3000/Micropython-I2C-URM09.git

# change into local repository folder
$ cd Micropython-I2C-URM09/

You can optionally install other helpful Python packages.

  • esptool (to flash the MicroPython firmware to the ESP32)
  • rshell (to establish a serial connection between the local computer and the ESP32 and to transfer data)
  • micropython-esp32-stubs (to facilitate local development, for example: code completion)
# install python packages (optional)
$ pip install -r requirements.txt

Connect the sensor to the ESP32. Make sure that you have set the communication mode on the sensor to I2C and use the correct connections (ESP GPIO's/Sensor interface)! Only then connect the ESP32 to your local computer via USB.

In the example main.py, the GPIOs pins 21 (SDA) and 22 (SCL) are used. However, you can adapt these to your needs at any time.

Then start the serial connection and load the example and the library onto the ESP32 device.

# start rshell connection
$ rshell -p /dev/cu.usbserial-0001

# upload files and folder
/YOUR/LOCAL/PATH> cp main.py /pyboard/
/YOUR/LOCAL/PATH> cp -r lib/ /pyboard/

The example device/path /dev/cu.usbserial-0001 could be different for you! Please adapt before your execute the commands!

Usage

# start the Python REPL
/YOUR/LOCAL/PATH> repl

Now press the keys CTRL + d on your local device, to trigger the soft-reset of the ESP32. If there are no errors, you should see the GNSS values in the terminal after a very short time.

Entering REPL. Use Control-X to exit.
>
MicroPython v1.22.1 on 2024-01-05; Generic ESP32 module with ESP32
Type "help()" for more information.
>>> 
>>> 
MPY: soft reboot

If you have an object in given range (no object in range means -1), the output looks similar to this example:

---
####################
Distance: 18 cm
Temperature: 24.9 °C

Additional information:

About

MicroPython I2C library and example for Gravity: URM09 Ultrasonic Sensor

Topics

Resources

Stars

Watchers

Forks

Languages