Доброго времени суток, решил сделать небольшую блютуз метео-станцию, на модуле BMP280, и платы Ардуино ESP 32 SUPER MICRO, столкнулся с проблемой что ардуино не стартует после включения, пока я не запущу монитор порта. Хотя в коде ни слово нету о его использовании, буду благодарен за любую информацию и помощь.
#include <Wire.h>
#include <Adafruit_BMP280.h>
#include <ArduinoBLE.h>
#define BMP_SDA (4)
#define BMP_SCL (5)
Adafruit_BMP280 bmp;
BLEService weatherService("19b10000-e8f2-537e-4f6c-d104768a1214"); // Custom BLE Service UUID
BLEStringCharacteristic temperatureCharacteristic("19b10001-e8f2-537e-4f6c-d104768a1214", BLERead | BLENotify, 20); // Characteristic for temperature
BLEStringCharacteristic pressureCharacteristic("19b10002-e8f2-537e-4f6c-d104768a1214", BLERead | BLENotify, 20); // Characteristic for pressure
BLEStringCharacteristic altitudeCharacteristic("19b10003-e8f2-537e-4f6c-d104768a1214", BLERead | BLENotify, 20); // Characteristic for altitude
void setup() {
Wire.begin(BMP_SDA, BMP_SCL);
bmp.begin(0x77);
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,
Adafruit_BMP280::SAMPLING_X2,
Adafruit_BMP280::SAMPLING_X16,
Adafruit_BMP280::FILTER_X16,
Adafruit_BMP280::STANDBY_MS_500);
BLE.begin();
BLE.setLocalName("WeatherSensor");
BLE.setAdvertisedService(weatherService);
weatherService.addCharacteristic(temperatureCharacteristic);
weatherService.addCharacteristic(pressureCharacteristic);
weatherService.addCharacteristic(altitudeCharacteristic);
BLE.addService(weatherService);
BLE.advertise();
}
void loop() {
BLEDevice central = BLE.central();
if (central) {
while (central.connected()) {
float temperature = bmp.readTemperature();
float pressure = bmp.readPressure() / 100.0; // Convert pressure to hPa
float altitude = bmp.readAltitude(1013.25);
String temperatureString = String(temperature, 2);
String pressureString = String(pressure, 2);
String altitudeString = String(altitude, 2);
temperatureCharacteristic.writeValue(temperatureString);
pressureCharacteristic.writeValue(pressureString);
altitudeCharacteristic.writeValue(altitudeString);
delay(2000);
}
}
}
#include <Adafruit_BMP280.h>
#include <ArduinoBLE.h>
#define BMP_SDA (4)
#define BMP_SCL (5)
Adafruit_BMP280 bmp;
BLEService weatherService("19b10000-e8f2-537e-4f6c-d104768a1214"); // Custom BLE Service UUID
BLEStringCharacteristic temperatureCharacteristic("19b10001-e8f2-537e-4f6c-d104768a1214", BLERead | BLENotify, 20); // Characteristic for temperature
BLEStringCharacteristic pressureCharacteristic("19b10002-e8f2-537e-4f6c-d104768a1214", BLERead | BLENotify, 20); // Characteristic for pressure
BLEStringCharacteristic altitudeCharacteristic("19b10003-e8f2-537e-4f6c-d104768a1214", BLERead | BLENotify, 20); // Characteristic for altitude
void setup() {
Wire.begin(BMP_SDA, BMP_SCL);
bmp.begin(0x77);
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,
Adafruit_BMP280::SAMPLING_X2,
Adafruit_BMP280::SAMPLING_X16,
Adafruit_BMP280::FILTER_X16,
Adafruit_BMP280::STANDBY_MS_500);
BLE.begin();
BLE.setLocalName("WeatherSensor");
BLE.setAdvertisedService(weatherService);
weatherService.addCharacteristic(temperatureCharacteristic);
weatherService.addCharacteristic(pressureCharacteristic);
weatherService.addCharacteristic(altitudeCharacteristic);
BLE.addService(weatherService);
BLE.advertise();
}
void loop() {
BLEDevice central = BLE.central();
if (central) {
while (central.connected()) {
float temperature = bmp.readTemperature();
float pressure = bmp.readPressure() / 100.0; // Convert pressure to hPa
float altitude = bmp.readAltitude(1013.25);
String temperatureString = String(temperature, 2);
String pressureString = String(pressure, 2);
String altitudeString = String(altitude, 2);
temperatureCharacteristic.writeValue(temperatureString);
pressureCharacteristic.writeValue(pressureString);
altitudeCharacteristic.writeValue(altitudeString);
delay(2000);
}
}
}