Compare commits
2 Commits
abca324a67
...
4cf5f6d151
| Author | SHA1 | Date | |
|---|---|---|---|
| 4cf5f6d151 | |||
| 9de5236e65 |
@@ -2,7 +2,7 @@ use crate::bail;
|
|||||||
use crate::fat_error::FatError;
|
use crate::fat_error::FatError;
|
||||||
use crate::hal::{ADC1, TANK_MULTI_SAMPLE};
|
use crate::hal::{ADC1, TANK_MULTI_SAMPLE};
|
||||||
use embassy_time::Timer;
|
use embassy_time::Timer;
|
||||||
use esp_hal::analog::adc::{Adc, AdcConfig, AdcPin, Attenuation};
|
use esp_hal::analog::adc::{Adc, AdcCalLine, AdcConfig, AdcPin, Attenuation};
|
||||||
use esp_hal::delay::Delay;
|
use esp_hal::delay::Delay;
|
||||||
use esp_hal::gpio::{Flex, Input, Output, OutputConfig, Pull};
|
use esp_hal::gpio::{Flex, Input, Output, OutputConfig, Pull};
|
||||||
use esp_hal::pcnt::channel::CtrlMode::Keep;
|
use esp_hal::pcnt::channel::CtrlMode::Keep;
|
||||||
@@ -17,7 +17,7 @@ pub struct TankSensor<'a> {
|
|||||||
one_wire_bus: OneWire<Flex<'a>>,
|
one_wire_bus: OneWire<Flex<'a>>,
|
||||||
tank_channel: Adc<'a, ADC1<'a>, Blocking>,
|
tank_channel: Adc<'a, ADC1<'a>, Blocking>,
|
||||||
tank_power: Output<'a>,
|
tank_power: Output<'a>,
|
||||||
tank_pin: AdcPin<GPIO5<'a>, ADC1<'a>>,
|
tank_pin: AdcPin<GPIO5<'a>, ADC1<'a>, AdcCalLine<ADC1<'a>>>,
|
||||||
flow_counter: Unit<'a, 1>,
|
flow_counter: Unit<'a, 1>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ impl<'a> TankSensor<'a> {
|
|||||||
one_wire_pin.apply_output_config(&OutputConfig::default().with_pull(Pull::None));
|
one_wire_pin.apply_output_config(&OutputConfig::default().with_pull(Pull::None));
|
||||||
|
|
||||||
let mut adc1_config = AdcConfig::new();
|
let mut adc1_config = AdcConfig::new();
|
||||||
let tank_pin = adc1_config.enable_pin(gpio5, Attenuation::_11dB);
|
let tank_pin = adc1_config.enable_pin_with_cal::<_, AdcCalLine<_>>(gpio5, Attenuation::_11dB);
|
||||||
let tank_channel = Adc::new(adc1, adc1_config);
|
let tank_channel = Adc::new(adc1, adc1_config);
|
||||||
|
|
||||||
let one_wire_bus = OneWire::new(one_wire_pin, false);
|
let one_wire_bus = OneWire::new(one_wire_pin, false);
|
||||||
@@ -146,8 +146,7 @@ impl<'a> TankSensor<'a> {
|
|||||||
self.tank_power.set_low();
|
self.tank_power.set_low();
|
||||||
|
|
||||||
store.sort();
|
store.sort();
|
||||||
//TODO probably wrong? check!
|
let median_mv = store[TANK_MULTI_SAMPLE / 2] as f32;
|
||||||
let median_mv = store[6] as f32 * 3300_f32 / 4096_f32;
|
Ok(median_mv/1000.0)
|
||||||
Ok(median_mv)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -904,10 +904,22 @@ async fn try_connect_wifi_sntp_mqtt(
|
|||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let ip = match stack.config_v4() {
|
||||||
|
Some(config) => config.address.address().to_string(),
|
||||||
|
None => {
|
||||||
|
match stack.config_v6() {
|
||||||
|
Some(config) => config.address.address().to_string(),
|
||||||
|
None => {
|
||||||
|
String::from("No IP")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
NetworkMode::Wifi {
|
NetworkMode::Wifi {
|
||||||
sntp: sntp_mode,
|
sntp: sntp_mode,
|
||||||
mqtt: mqtt_connected,
|
mqtt: mqtt_connected,
|
||||||
ip_address: stack.hardware_address().to_string(),
|
ip_address: ip,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user