Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Commit 7581ba5

Browse files
committed
Added analog_activation_threshold
1 parent 63551e8 commit 7581ba5

File tree

4 files changed

+17
-8
lines changed

4 files changed

+17
-8
lines changed

examples/FirebaseTranscriber_ESP8266/FirebaseTranscriber_ESP8266.ino

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,16 @@
3131
#define DIGITAL_OUT BUILTIN_LED
3232
#define ANALOG_IN A0
3333
#define ANALOG_OUT D8
34+
#define ANALOG_ACTIVATION_THRESHOLD 0.1
35+
3436

3537
thing::Config config = {
3638
FIREBASE_HOST,
3739
FIREBASE_AUTH,
3840
FIREBASE_PATH,
3941
WIFI_SSID,
4042
WIFI_PASSWORD,
43+
ANALOG_ACTIVATION_THRESHOLD,
4144
DIGITAL_IN,
4245
DIGITAL_OUT,
4346
ANALOG_IN,

src/thing/Config.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ struct Config {
1111
std::string wifi_ssid;
1212
std::string wifi_key;
1313

14+
// If the change is analog value is less than this amount we don't send an
15+
// update.
16+
float analog_activation_threshold;
17+
1418
int pin_digital_in;
1519
int pin_digital_out;
1620
int pin_analog_in;

src/thing/Transcriber.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ void Transcriber::UpdateConfig(const Config& config) {
2020

2121
void Transcriber::Init(const Config& config) {
2222
path_ = config.path;
23+
analog_activation_threshold_ = config.analog_activation_threshold;
2324
pin_digital_out_ = config.pin_digital_out;
2425
pin_digital_in_ = config.pin_digital_in;
2526
pin_analog_out_ = config.pin_analog_out;
@@ -52,16 +53,16 @@ void Transcriber::Loop() {
5253
}
5354

5455
// Send values to cloud
55-
int digital_in = digitalRead(pin_digital_in_);
56-
if (digital_in != digital_in_) {
57-
SetValue(path_ + kSubPathDigitalIn, String(digital_in).c_str());
58-
digital_in_ = digital_in;
56+
int new_digital_in = digitalRead(pin_digital_in_);
57+
if (new_digital_in != digital_in_) {
58+
SetValue(path_ + kSubPathDigitalIn, String(new_digital_in).c_str());
59+
digital_in_ = new_digital_in;
5960
}
6061

61-
float analog_in = analogRead(pin_analog_in_);
62-
if (analog_in != analog_in_) {
63-
SetValue(path_ + kSubPathAnalogIn, String(analog_in).c_str());
64-
analog_in_ = analog_in;
62+
float new_analog_in = analogRead(pin_analog_in_);
63+
if (abs(new_analog_in - analog_in_) > analog_activation_threshold_) {
64+
SetValue(path_ + kSubPathAnalogIn, String(new_analog_in).c_str());
65+
analog_in_ = new_analog_in;
6566
}
6667
}
6768

src/thing/Transcriber.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class Transcriber {
4848
std::unique_ptr<FirebaseStream> stream_;
4949

5050
int digital_in_ = 0;
51+
float analog_activation_threshold_ = 0.0f;
5152
float analog_in_ = 0.0f;
5253

5354
int pin_digital_out_;

0 commit comments

Comments
 (0)