From b2bc757c370a840bc1c2854e3f3f7da93fc07a63 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Tue, 7 Mar 2023 23:25:40 +0300 Subject: [PATCH] Version 1.1 Added saving device ID to EEPROM. --- README.md | 27 +++------------------------ src/main.cpp | 24 +++++++++--------------- 2 files changed, 12 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 2c15a09..8f73d8d 100644 --- a/README.md +++ b/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). diff --git a/src/main.cpp b/src/main.cpp index 463cf16..8f28e0d 100644 --- a/src/main.cpp +++ b/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); + { + EEPROM.write(511, 254); + EEPROM.put(0, id); + } delay(50); sei(); }