#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
// DS18B20 pin (PB9 in your wiring)
#define ONE_WIRE_BUS PB9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// MPU6050 object
Adafruit_MPU6050 mpu;
void setup() {
Serial.begin(115200);
// Start DS18B20
sensors.begin();
// Start I2C (SDA=PB7, SCL=PB6 for Blue Pill)
Wire.begin(PB7, PB6);
// Initialize MPU6050
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip!");
while (1) {
delay(10);
}
}
Serial.println("MPU6050 Found!");
// Configure accelerometer & gyro ranges
mpu.setAccelerometerRange(MPU6050_RANGE_2_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
}
void loop() {
// --- DS18B20 ---
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
Serial.print("Temp: ");
Serial.print(tempC);
Serial.println(" °C");
// --- MPU6050 ---
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
Serial.print("Accel X: "); Serial.print(a.acceleration.x);
Serial.print(" m/s^2, Y: "); Serial.print(a.acceleration.y);
Serial.print(" m/s^2, Z: "); Serial.print(a.acceleration.z);
Serial.println(" m/s^2");
delay(1000);
}