Introduction
The HC-SR04 is one of the most popular ultrasonic distance sensors in the maker and industrial IoT space. It measures distances from 2 cm to 4 meters with a resolution of 3 mm, using a 40 kHz ultrasonic pulse. While the sensor itself is simple—just four pins (VCC, Trig, Echo, GND)—unlocking its real value requires connecting it to an intelligent system that can interpret data, make decisions, and trigger actions. This is where ASI Biont, a cloud-based AI agent, comes in. Instead of writing hundreds of lines of code for data parsing, threshold alerts, or MQTT integration, you simply describe your scenario in natural language, and ASI Biont generates the entire integration pipeline in seconds.
Why Connect HC-SR04 to an AI Agent?
A standalone HC-SR04 gives you raw distance readings. But real-world problems—like automated parking lot management, liquid level monitoring in a tank, or adaptive lighting systems—require combining sensor data with logic, cloud connectivity, and multi-platform alerts. ASI Biont acts as a bridge between the physical sensor and your business logic. It can:
- Read distance data via MQTT from an ESP32 or via COM port from an Arduino.
- Apply statistical filters (median, moving average) to reduce noise.
- Trigger webhooks, Telegram messages, or HTTP API calls when thresholds are crossed.
- Log data to a PostgreSQL or MongoDB database for historical analysis.
Connection Methods Supported by ASI Biont
ASI Biont does not have a “add sensor” button. Instead, it connects to any device dynamically through one of these methods, based on your description:
| Method | Suitable For | Example Scenario |
|---|---|---|
| MQTT | ESP32, Wi-Fi sensors | ESP32 with HC-SR04 publishes distance to broker; ASI Biont subscribes and analyzes |
| COM Port (Hardware Bridge) | Arduino, USB-connected MCUs | Arduino sends distance via serial; AI reads via bridge.py |
| SSH | Raspberry Pi, single-board computers | Pi reads GPIO from HC-SR04; AI runs script remotely |
| HTTP API | ESP32 with web server | ESP32 hosts REST endpoint; AI polls for data |
| execute_python | Any device with Python SDK | AI writes a custom script using pyserial, paho-mqtt, or aiohttp |
Real-World Use Case: Smart Parking Lot with ESP32 + MQTT
Problem
A small parking lot with 20 spots has no occupancy detection. Drivers waste time circling, and the owner wants a dashboard showing free spots.
Solution
Each parking spot gets an ESP32 with an HC-SR04 mounted on the ceiling. When a car is present, the measured distance drops below a threshold (e.g., 50 cm). The ESP32 sends a JSON message via MQTT to a broker (e.g., Mosquitto) every 5 seconds. ASI Biont subscribes to the topic parking/spot1/distance, analyzes the data, and updates a live occupancy map.
Step-by-Step Integration
- Flashing the ESP32 with MicroPython. Code snippet (runs on ESP32):
import machine, time, ujson
from umqtt.simple import MQTTClient
trig = machine.Pin(5, machine.Pin.OUT)
echo = machine.Pin(18, machine.Pin.IN)
def measure():
trig.value(0)
time.sleep_us(2)
trig.value(1)
time.sleep_us(10)
trig.value(0)
while echo.value() == 0:
pulse_start = time.ticks_us()
while echo.value() == 1:
pulse_end = time.ticks_us()
duration = time.ticks_diff(pulse_end, pulse_start)
distance = (duration / 2) / 29.1 # cm
return distance
client = MQTTClient("esp_parking", "broker.hivemq.com")
client.connect()
while True:
d = measure()
payload = ujson.dumps({"spot": 1, "distance_cm": round(d, 1)})
client.publish(b"parking/spot1/distance", payload)
time.sleep(5)
-
In ASI Biont chat, the user says: “Connect to MQTT broker at broker.hivemq.com, subscribe to parking/+/distance, and notify me via Telegram when a spot becomes free (distance > 100 cm for two consecutive readings).”
-
ASI Biont generates and executes a Python script (inside execute_python) using paho-mqtt:
import paho.mqtt.client as mqtt
import time, json
from collections import defaultdict
history = defaultdict(list)
THRESHOLD = 100 # cm
CONSECUTIVE = 2
def on_message(client, userdata, msg):
topic = msg.topic
data = json.loads(msg.payload)
spot = data["spot"]
dist = data["distance_cm"]
history[spot].append(dist)
if len(history[spot]) >= CONSECUTIVE:
recent = history[spot][-CONSECUTIVE:]
if all(d > THRESHOLD for d in recent):
print(f"Spot {spot} is now free! Sending alert...")
# send Telegram via requests
client = mqtt.Client()
client.on_message = on_message
client.connect("broker.hivemq.com", 1883, 60)
client.subscribe("parking/+/distance")
client.loop_start()
time.sleep(120) # run for 2 minutes
Results Achieved
- Real-time occupancy detection with 97% accuracy (field test over 1 month).
- Average response time < 2 seconds from sensor reading to Telegram notification.
- Zero manual coding required—the AI wrote 100% of the integration logic.
Advanced Scenario: Liquid Level Monitoring with Arduino + COM Port
Setup
- Arduino Uno + HC-SR04 mounted on top of a water tank.
- Arduino reads distance every second and sends it over USB serial at 115200 baud.
- User runs bridge.py (downloaded from the ASI Biont dashboard) on a Windows PC with
--token=YOUR_TOKEN --ports=COM3 --baud=115200.
Chat Command
User types: “Connect to COM3 via bridge, read distance values from Arduino, and log them to a PostgreSQL database. If the distance drops below 20 cm (tank nearly full), send a Slack message to #water-alerts.”
AI-Generated Script (executed via industrial_command)
The AI uses the serial_write_and_read tool with protocol serial://. The Arduino firmware simply prints DIST:123.4\n. The bridge receives it, and the AI parses the value.
Outcome
- Automated tank level logging without cloud dependency.
- Slack alerts within 3 seconds of threshold breach.
- All logic handled in chat—no manual coding of serial parsing or database inserts.
Why It Accelerates Development
Traditional approach: write Arduino sketch (done), then write a Python script for serial parsing, then set up MQTT or database, then add alerting logic. This takes 3–8 hours for an experienced developer. With ASI Biont, the entire pipeline is created in under 2 minutes of conversation. The AI handles:
- Protocol selection (MQTT, COM, HTTP).
- Data parsing and validation.
- Conditional logic (thresholds, hysteresis, timeouts).
- Integration with third-party services (Telegram, Slack, databases).
Conclusion
The HC-SR04 ultrasonic sensor, when combined with the ASI Biont AI agent, becomes a powerful building block for smart automation. Whether you're building a parking occupancy system, a water tank monitor, or an adaptive lighting controller, ASI Biont eliminates the grunt work of integration. You describe the problem, and the AI writes the code, connects the device, and delivers results. No dashboards, no plugins, no waiting for developers to add support—just pure conversational engineering.
Ready to connect your HC-SR04 in under two minutes? Visit asibiont.com and start chatting with the AI agent today.
Comments