// Program for esp32 as bluetooth buffer // created by Jans Hendry // Universitas Gadjah Mada, Indonesia // Kamakura Node, Japan // fab academy MIT - 2022 // directive bluetooth serial #include "BluetoothSerial.h" BluetoothSerial SerialBT; // create an object // variables long dur; long dist; const int echoPin = 2; // echo pin const int trigPin = 4; // trigger pin const int toat = 15; // signal to attiny1614 as MOTOR const int toat2 = 21; // signal to attiny1614 as LED char vup = '1'; // check whether signal UP is active char vdo = '0'; // char vss = '2'; // get distance char lon = '3'; // led on char loff = '4'; // led off char sign; void setup() { Serial.begin(115200); // start serial esp32 SerialBT.begin("ESP32 - Jans"); //Bluetooth device name // set pin as output pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT); pinMode(toat, OUTPUT); digitalWrite(toat, LOW); pinMode(toat2, OUTPUT); digitalWrite(toat2, LOW); delay(500); // take a breath } void loop() { // check whether serial bluetooth is also available if (SerialBT.available()) { // read from bluetooth serial sign = (char)SerialBT.read(); // motor signal if (sign == vup){ digitalWrite(toat, HIGH); Serial.println(sign); delay(20); } else if (sign == vdo){ digitalWrite(toat, LOW); Serial.println(sign); delay(20); } // LED signal if (sign == lon){ digitalWrite(toat2, HIGH); Serial.println(sign); delay(20); } else if (sign == loff){ digitalWrite(toat2, LOW); Serial.println(sign); delay(20); } // Request for distance sensor if (sign == vss){ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // get the distance dur = pulseIn(echoPin, HIGH); dist = dur * 0.034/2; SerialBT.write(dist); // send via serial } } }