added distance information in blink frequency
This commit is contained in:
@@ -13,10 +13,10 @@ platform = espressif32
|
|||||||
board = esp32dev
|
board = esp32dev
|
||||||
framework = arduino
|
framework = arduino
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
; upload_port = COM[6]
|
#; upload_port = COM[6]
|
||||||
upload_protocol = espota
|
#upload_protocol = espota
|
||||||
upload_port = 192.168.2.92
|
upload_port = 192.168.2.92
|
||||||
; board_build.partitions = huge_app.csv
|
;board_build.partitions = huge_app.csv
|
||||||
board_build.partitions = min_spiffs.csv
|
board_build.partitions = min_spiffs.csv
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
69
src/main.cpp
69
src/main.cpp
@@ -53,20 +53,27 @@ class MyServerCallbacks : public BLEServerCallbacks {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
// uint8_t toggle = 0;
|
// uint8_t toggle = 0;
|
||||||
uint8_t alarmFired = 0;
|
uint8_t alarmFired_1km = 0;
|
||||||
|
uint8_t alarmFired_500m = 0;
|
||||||
|
uint8_t alarmFired_300m = 0;
|
||||||
int state = 0;
|
int state = 0;
|
||||||
class MyAlarmCallback : public BLECharacteristicCallbacks {
|
class MyAlarmCallback : public BLECharacteristicCallbacks {
|
||||||
void onWrite(BLECharacteristic * pCharacteristic) {
|
void onWrite(BLECharacteristic * pCharacteristic) {
|
||||||
std::string value = pCharacteristic->getValue();
|
std::string value = pCharacteristic->getValue();
|
||||||
|
|
||||||
for (int i = 0; i < value.length(); i++) {
|
|
||||||
Serial.print(value[i]);
|
|
||||||
}
|
|
||||||
Serial.println("");
|
|
||||||
|
|
||||||
if (value.compare("X") == 0) {
|
if (value.compare("X") == 0) {
|
||||||
Serial.println("found X");
|
Serial.println("found X");
|
||||||
alarmFired = 1;
|
alarmFired_1km = 1;
|
||||||
|
state = 0;
|
||||||
|
}
|
||||||
|
else if (value.compare("XX") == 0) {
|
||||||
|
Serial.println("found XX");
|
||||||
|
alarmFired_500m = 1;
|
||||||
|
state = 0;
|
||||||
|
}
|
||||||
|
else if (value.compare("XXX") == 0) {
|
||||||
|
Serial.println("found XXX");
|
||||||
|
alarmFired_300m = 1;
|
||||||
state = 0;
|
state = 0;
|
||||||
}
|
}
|
||||||
else if (value.compare("U") == 0) {
|
else if (value.compare("U") == 0) {
|
||||||
@@ -120,6 +127,8 @@ void setup() {
|
|||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
||||||
EEPROM.begin(EEPROM_SIZE);
|
EEPROM.begin(EEPROM_SIZE);
|
||||||
|
|
||||||
|
// needs to be uncommend for very first boot
|
||||||
// EEPROM.write(MODE_ADDRESS, MODE_BLE);
|
// EEPROM.write(MODE_ADDRESS, MODE_BLE);
|
||||||
// EEPROM.commit();
|
// EEPROM.commit();
|
||||||
|
|
||||||
@@ -130,7 +139,7 @@ void setup() {
|
|||||||
// upcounting timer 1MHz
|
// upcounting timer 1MHz
|
||||||
timer = timerBegin(0, 40, true);
|
timer = timerBegin(0, 40, true);
|
||||||
timerAttachInterrupt(timer, &onTimer, true);
|
timerAttachInterrupt(timer, &onTimer, true);
|
||||||
timerAlarmWrite(timer, 100000, true);
|
timerAlarmWrite(timer, 400000, true);
|
||||||
timerAlarmEnable(timer);
|
timerAlarmEnable(timer);
|
||||||
|
|
||||||
// blink led
|
// blink led
|
||||||
@@ -205,7 +214,20 @@ void setup() {
|
|||||||
// ArduinoOTA.begin();
|
// ArduinoOTA.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// toggles pin and returns new state of pin
|
||||||
|
uint8_t togglePin(uint8_t pin, uint8_t state) {
|
||||||
|
if (state == 0) {
|
||||||
|
digitalWrite(pin, HIGH);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
digitalWrite(pin, LOW);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::string x;
|
std::string x;
|
||||||
|
uint8_t stateLED = 0;
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
if (mode == MODE_WIFI) {
|
if (mode == MODE_WIFI) {
|
||||||
@@ -216,7 +238,7 @@ void loop() {
|
|||||||
|
|
||||||
// BLE mode
|
// BLE mode
|
||||||
|
|
||||||
// occures every 100ms
|
// occures every 200ms
|
||||||
if (ctr > 0) {
|
if (ctr > 0) {
|
||||||
portENTER_CRITICAL(&timerMux);
|
portENTER_CRITICAL(&timerMux);
|
||||||
ctr--;
|
ctr--;
|
||||||
@@ -230,22 +252,35 @@ void loop() {
|
|||||||
}
|
}
|
||||||
state++;
|
state++;
|
||||||
#else
|
#else
|
||||||
if (alarmFired) {
|
if (alarmFired_1km) {
|
||||||
if (state % 2 == 0) {
|
if (state % 4 == 0) {
|
||||||
digitalWrite(ALARM_LED, HIGH);
|
stateLED = togglePin(ALARM_LED, stateLED);
|
||||||
}
|
}
|
||||||
else {
|
state++;
|
||||||
digitalWrite(ALARM_LED, LOW);
|
}
|
||||||
|
else if (alarmFired_500m) {
|
||||||
|
if (state % 3 == 0) {
|
||||||
|
stateLED = togglePin(ALARM_LED, stateLED);
|
||||||
|
}
|
||||||
|
state++;
|
||||||
|
}
|
||||||
|
else if (alarmFired_300m) {
|
||||||
|
if (state % 2 == 0) {
|
||||||
|
stateLED = togglePin(ALARM_LED, stateLED);
|
||||||
}
|
}
|
||||||
state++;
|
state++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (state == 22) {
|
if (state == 50) {
|
||||||
state = 0;
|
state = 0;
|
||||||
|
digitalWrite(ALARM_LED, LOW);
|
||||||
|
stateLED = 0;
|
||||||
#if defined TESTMODE
|
#if defined TESTMODE
|
||||||
ctr = -20;
|
ctr = -20;
|
||||||
#endif
|
#endif
|
||||||
alarmFired = 0;
|
alarmFired_1km = 0;
|
||||||
|
alarmFired_500m = 0;
|
||||||
|
alarmFired_300m = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,6 +306,6 @@ void loop() {
|
|||||||
oldDeviceConnected = deviceConnected;
|
oldDeviceConnected = deviceConnected;
|
||||||
}
|
}
|
||||||
|
|
||||||
delay(500);
|
// delay(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user