4.7 KiB
Detect proximity - Virtual IoT Hardware
In this part of the lesson, you will add a proximity sensor to your virtual IoT device and read distance measurements from it.
Hardware
The virtual IoT device will use a simulated distance sensor.
In a physical IoT device, you would use a sensor equipped with a laser ranging module to measure distance.
Add the distance sensor to CounterFit
To use a virtual distance sensor, you need to add one to the CounterFit app.
Task - Add the distance sensor to CounterFit
Add the distance sensor to the CounterFit app.
-
Open the
fruit-quality-detector
code in VS Code, and ensure the virtual environment is activated. -
Install an additional Pip package to set up a CounterFit shim that simulates the rpi-vl53l0x Pip package, a Python package designed to interact with a VL53L0X time-of-flight distance sensor. Make sure you install this from a terminal with the virtual environment activated.
pip install counterfit-shims-rpi-vl53l0x
-
Ensure the CounterFit web app is running.
-
Create a distance sensor:
-
In the Create sensor box in the Sensors pane, open the Sensor type dropdown and select Distance.
-
Leave the Units as
Millimeter
. -
This sensor is an I2C sensor, so set the address to
0x29
. If you were using a physical VL53L0X sensor, this address would be hardcoded. -
Click the Add button to create the distance sensor.
The distance sensor will be created and appear in the sensors list.
-
Program the distance sensor
The virtual IoT device can now be programmed to use the simulated distance sensor.
Task - Program the time-of-flight sensor
-
Create a new file in the
fruit-quality-detector
project calleddistance-sensor.py
.💁 A simple way to simulate multiple IoT devices is to create each one in a separate Python file and run them simultaneously.
-
Start a connection to CounterFit with the following code:
from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Add the following code below this:
import time from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X
This imports the sensor library shim for the VL53L0X time-of-flight sensor.
-
Below this, add the following code to access the sensor:
distance_sensor = VL53L0X() distance_sensor.begin()
This code declares a distance sensor and starts the sensor.
-
Finally, add an infinite loop to read distance measurements:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
This code waits for a value to be ready from the sensor and then prints it to the console.
-
Run this code.
💁 Remember, this file is called
distance-sensor.py
! Make sure to run it using Python, notapp.py
. -
You will see distance measurements appear in the console. Change the value in CounterFit to see the output update, or use random values.
(.venv) ➜ fruit-quality-detector python distance-sensor.py Distance = 37 mm Distance = 42 mm Distance = 29 mm
💁 You can find this code in the code-proximity/virtual-iot-device folder.
😀 Congratulations! Your proximity sensor program is working successfully!
Disclaimer:
This document has been translated using the AI translation service Co-op Translator. While we aim for accuracy, please note that automated translations may include errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is advised. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.