Version 1.1
Added saving device ID to EEPROM.
This commit is contained in:
parent
603efb8a08
commit
b2bc757c37
27
README.md
27
README.md
@ -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).
|
||||
|
18
src/main.cpp
18
src/main.cpp
@ -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);
|
||||
}
|
||||
delay(50);
|
||||
sei();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user