Package Delivery and Pickup Alert with a Smart Weight Mat
Load cells under a board on your porch tell you when a package lands — and when it leaves, so you know if it was taken.
Cameras see a lot, but weight is simpler: a box makes the reading jump and pickup makes it fall. ESPHome reads an HX711 load-cell amplifier, and Home Assistant decides whether to notify you.
Outdoors, rain and electricity don't mix: use only low-voltage USB power, keep all electronics in a sealed box and plug the adapter into a GFCI-protected, weather-covered outlet.
Mission steps
Build the platform
Place the four load cells at the corners between two rigid boards (or 3D-printed cell mounts) so all the weight passes through them.
Wire the HX711
Connect the four half-bridge cells to the HX711 in the standard bridge pattern, then DT to GPIO4, SCK to GPIO5, VCC to 3V3 and GND.
Flash and calibrate
Flash the config, note the raw value empty and with a known weight, and put both into calibrate_linear.
Create the alerts
In Home Assistant: weight rises over 0.3 kg → 'Package delivered'; weight drops back to zero while nobody is home → 'Package picked up'.
Weatherproof it
Put the ESP32 and HX711 in a sealed box under the mat and run a USB cable to a covered outdoor-rated outlet or indoors.
Code
esphome:
name: porch-mat
esp32:
board: esp32-s3-devkitc-1
logger:
api:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
sensor:
- platform: hx711
name: "Porch mat weight"
dout_pin: GPIO4
clk_pin: GPIO5
gain: 128
update_interval: 2s
unit_of_measurement: kg
accuracy_decimals: 2
filters:
- median:
window_size: 5
send_every: 1
- calibrate_linear: # replace with your own readings
- 120000 -> 0
- 520000 -> 2.0Tip: test every script on the bench before installing it in a moving machine.
Questions
Will a cat set it off?
It can. Add a minimum duration (for example 30 seconds) before the alert, or require a camera snapshot to confirm the package.