#include "Adafruit_VL53L0X.h" #include #include #include Adafruit_VL53L0X lox = Adafruit_VL53L0X(); LiquidCrystal_I2C lcd(0x27, 16, 2); VL53L0X_RangingMeasurementData_t sup_measure; SoftwareSerial mySerial(2, 3); // RX, TX void setup() { Serial.begin(9600); while (!Serial) { delay(1); // wait for serial port to connect. Needed for native USB } // bluetooth init pinMode(12, OUTPUT); digitalWrite(12,HIGH); mySerial.begin(9600); //lcd init lcd.begin(16, 2); lcd.backlight(); // senzor init pinMode(13, OUTPUT); digitalWrite(13,HIGH); if (!lox.begin()) { Serial.println(F("Failed to boot VL53L0X")); while (1); } // masuratoare initiala a suprafetei lox.rangingTest(&sup_measure, false); if (sup_measure.RangeStatus != 4) { Serial.print("Distance (mm): "); Serial.println(sup_measure.RangeMilliMeter); } else { Serial.println(" out of range "); } lcd.setCursor(0, 0); lcd.print("dist sup: "); lcd.setCursor(11, 0); lcd.print(sup_measure.RangeMilliMeter / 10); delay(5000); } void loop() { VL53L0X_RangingMeasurementData_t measure; lox.rangingTest(&measure, false); lcd.clear(); lcd.setCursor(0, 0); lcd.print("height: "); lcd.setCursor(8, 0); int heightDiff = (sup_measure.RangeMilliMeter - measure.RangeMilliMeter) / 10; if (heightDiff > 0) lcd.print(heightDiff); else lcd.print("nimic sub"); if (mySerial.available()) { char c = mySerial.read(); Serial.println(c); if (c == '1'){ Serial.println("trimit inaltime"); mySerial.println(heightDiff); } Serial.write(c); // send from Bluetooth to Serial //Serial.print("Bluetooth received: "); } if (Serial.available()) { char s = Serial.read(); mySerial.print(s); // send from Serial to Bluetooth //Serial.print("Serial received: "); } delay(1000); }