Arduino 缩小ESP 32-Wroom-32D微控制器的经典蓝牙范围

Arduino 缩小ESP 32-Wroom-32D微控制器的经典蓝牙范围,arduino,bluetooth,esp32,Arduino,Bluetooth,Esp32,我正在使用ESP 32-Wroom-32D微控制器,并使用内置的经典蓝牙连接到android设备。目前,微控制器的范围是70米左右,我想把它缩小到5-6米左右。是否有任何可能的方法来减少蓝牙范围。请查找代码段 #包括“DHT.h” #包括“BluetoothSerial.h” #包括“BLEDevice.h” #包括 #如果!已定义(已启用配置)| |!已定义(配置\u BLUEDROID\u已启用) #错误:蓝牙未启用!请运行“make menuconfig”并启用它 #恩迪夫 #定义DHT

我正在使用ESP 32-Wroom-32D微控制器,并使用内置的经典蓝牙连接到android设备。目前,微控制器的范围是70米左右,我想把它缩小到5-6米左右。是否有任何可能的方法来减少蓝牙范围。请查找代码段

#包括“DHT.h”
#包括“BluetoothSerial.h”
#包括“BLEDevice.h”
#包括
#如果!已定义(已启用配置)| |!已定义(配置\u BLUEDROID\u已启用)
#错误:蓝牙未启用!请运行“make menuconfig”并启用它
#恩迪夫
#定义DHTPIN 23
#定义DHT类型DHT22//DHT 22
DHT-DHT(DHTPIN,DHTTYPE);
蓝牙系列;
无效设置(){
序列号开始(115200);
SerialBT.begin(“ESP32”);//蓝牙设备名称
println(“设备已启动,现在您可以将其与蓝牙配对!”);
dht.begin();
//电除尘器功率级(电除尘器压水堆低压12);
}
void循环(){
if(SerialBT.available()==0);
电除尘器功率级(电除尘器压水堆低压12);
串行打印LN(ESP_PWR_LVL_N12);
延迟(2000年);
浮子f=dht读数温度(真);
//检查是否有读取失败并提前退出(以重试)。
if(isnan(f)){
Serial.println(F(“从DHT传感器读取失败!”);
返回;
}
连续打印(f);
//序列号println(f);
延迟(2000年);

}
See@hcheung我尝试过这种方法,我认为这种方法适用于蓝牙低能量。在代码片段中,我使用了myDevice.setPower(ESP_PWR_LVL_N0),它将发送功率设置为0 dBm。当我把代码上传到黑板上时,它不起作用。据我所知,支持所有模式。0dm为1mW且不是低功率。您是否将其设置为N9(-9dbm)或N12(-12dbm)?@hcheung我实现了您之前提到的功率级方法,请查看我在帖子中更新的代码。由于esp_功率级(esp_PWR_LVL_N12)是一个枚举,当我在串行监视器中打印esp_PWR_LVL_N12时,它会显示数据表中所述的正确索引号。尽管如此,无论我走多远,我的手机蓝牙仍与设备保持连接。