Version 1.1

Added saving device ID to EEPROM.
This commit is contained in:
Alexey Zholtikov 2023-03-07 23:25:40 +03:00
parent 603efb8a08
commit b2bc757c37
2 changed files with 12 additions and 39 deletions

View File

@ -1,6 +1,6 @@
# RF open/close sensor
Open/close sensor on ATmega168/328 + RF24.
Open/close sensor on ATmega168/328 + nRF24.
## Features
@ -11,27 +11,6 @@ Open/close sensor on ATmega168/328 + RF24.
## Note
A gateway is required. For details see "RF Gateway".
A gateway is required. For details see [RF Gateway](https://github.com/aZholtikov/RF-Gateway).
## Full config example for Home Assistant
```yml
mqtt:
sensor:
- name: "NAME"
device_class: "voltage"
unit_of_measurement: "V"
state_topic: "homeassistant/rf_sensor/ID/open_close"
value_template: "{{ value_json.battery }}"
force_update: true
qos: 2
binary_sensor:
- name: "NAME"
device_class: "door"
state_topic: "homeassistant/rf_sensor/ID/open_close"
value_template: "{{ value_json.state }}"
payload_on: "OPEN"
payload_off: "CLOSE"
force_update: true
qos: 2
```
Any feedback via [e-mail](mailto:github@zh.com.ru) would be appreciated. Or... [Buy me a coffee](https://paypal.me/aZholtikov).

View File

@ -8,8 +8,7 @@
void sendButtonStatus(void *pvParameters);
float getBatteryLevelCharge(void);
void loadConfig(void);
void saveConfig(void);
void loadId(void);
int16_t id{abs((int16_t)ID)};
@ -18,6 +17,8 @@ SemaphoreHandle_t buttonSemaphore;
void setup()
{
loadId();
EICRA |= (1 << ISC00);
EIMSK |= (1 << INT0);
ADCSRA &= ~(1 << ADEN);
@ -73,26 +74,19 @@ float getBatteryLevelCharge()
while (bit_is_set(ADCSRA, ADSC))
;
ADCSRA &= ~(1 << ADEN);
float value = ((1024 * 1.1) / (ADCL + ADCH * 256));
return value;
return (1024 * 1.1) / (ADCL + ADCH * 256);
}
void loadConfig()
void loadId()
{
cli();
if (EEPROM.read(511) == 254)
EEPROM.get(0, id);
else
saveConfig();
delay(50);
sei();
}
void saveConfig()
{
cli();
EEPROM.write(511, 254);
EEPROM.put(0, id);
{
EEPROM.write(511, 254);
EEPROM.put(0, id);
}
delay(50);
sei();
}