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