This circuit is designed to interface a load cell with an ESP32 microcontroller using an HX711 bridge sensor interface. Additionally, it includes an ENS160+AHT21 sensor for environmental monitoring (temperature and humidity). The circuit is powered by a 12V power supply, which is stepped down to 3.3V using a Mini-360 DC-DC Step Down Buck Converter.
Load Cell - Red/white/black/green
HX711 - Bridge Sensor Interface
ESP32
ENS160+AHT21
Mini-360 DC-DC Step Down Buck Converter
12V Power Supply
#include <HX711.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_AHTX0.h>
// HX711 pins
#define HX711_DOUT 12
#define HX711_SCK 13
// I2C pins for ENS160+AHT21
#define I2C_SDA 21
#define I2C_SCL 22
// Create instances
HX711 scale;
Adafruit_AHTX0 aht;
void setup() {
// Initialize Serial Monitor
Serial.begin(115200);
// Initialize HX711
scale.begin(HX711_DOUT, HX711_SCK);
Serial.println("HX711 initialized.");
// Initialize I2C for ENS160+AHT21
Wire.begin(I2C_SDA, I2C_SCL);
if (!aht.begin()) {
Serial.println("Failed to find AHT sensor!");
while (1) delay(10);
}
Serial.println("AHT sensor initialized.");
}
void loop() {
// Read weight from HX711
if (scale.is_ready()) {
long reading = scale.read();
Serial.print("HX711 reading: ");
Serial.println(reading);
} else {
Serial.println("HX711 not found.");
}
// Read temperature and humidity from AHT21
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp);
Serial.print("Temperature: ");
Serial.print(temp.temperature);
Serial.println(" degrees C");
Serial.print("Humidity: ");
Serial.print(humidity.relative_humidity);
Serial.println("% rH");
// Delay between readings
delay(2000);
}
This code initializes the HX711 and ENS160+AHT21 sensors, reads data from them, and prints the readings to the Serial Monitor. The HX711 is used to read weight data from the load cell, while the ENS160+AHT21 is used to read temperature and humidity data.