mirror of
https://github.com/jdillenburg/esphome.git
synced 2026-01-10 07:10:39 -07:00
Added ADXL345 external component
This commit is contained in:
40
components/adxl345/adxl345.h
Normal file
40
components/adxl345/adxl345.h
Normal file
@@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#include "esphome/core/component.h"
|
||||
#include "esphome/components/sensor/sensor.h"
|
||||
#include "esphome/components/i2c/i2c.h"
|
||||
#include <Wire.h>
|
||||
#include <Adafruit_Sensor.h>
|
||||
#include <Adafruit_ADXL345_U.h>
|
||||
|
||||
namespace esphome {
|
||||
namespace adxl345 {
|
||||
|
||||
class ADXL345Component : public PollingComponent, public i2c::I2CDevice {
|
||||
public:
|
||||
ADXL345Component() : PollingComponent(100) {}
|
||||
|
||||
void setup() override;
|
||||
void update() override;
|
||||
void dump_config() override;
|
||||
|
||||
void set_off_vertical_sensor(sensor::Sensor *off_vertical) { off_vertical_ = off_vertical; }
|
||||
void set_jitter_sensor(sensor::Sensor *jitter) { jitter_ = jitter; }
|
||||
void set_accel_x_sensor(sensor::Sensor *accel_x) { accel_x_ = accel_x; }
|
||||
void set_accel_y_sensor(sensor::Sensor *accel_y) { accel_y_ = accel_y; }
|
||||
void set_accel_z_sensor(sensor::Sensor *accel_z) { accel_z_ = accel_z; }
|
||||
|
||||
void set_range(uint8_t range) { range_ = range; }
|
||||
|
||||
protected:
|
||||
Adafruit_ADXL345_Unified accel_{12345};
|
||||
sensor::Sensor *off_vertical_{nullptr};
|
||||
sensor::Sensor *jitter_{nullptr};
|
||||
sensor::Sensor *accel_x_{nullptr};
|
||||
sensor::Sensor *accel_y_{nullptr};
|
||||
sensor::Sensor *accel_z_{nullptr};
|
||||
uint8_t range_{0}; // Default to 2G range (0)
|
||||
};
|
||||
|
||||
} // namespace adxl345
|
||||
} // namespace esphome
|
||||
Reference in New Issue
Block a user