ESP32同时使用WIFI和蓝牙时出错

我使用的是VS Code 的PlatformIO IDE 开发的ESP32,当我们同时导入WIFI和蓝牙的头文件时,就会出错。#include //WIFI#include

本文最后更新时间:  2023-03-09 00:26:13

我使用的是VS Code 的PlatformIO IDE 开发的ESP32,当我们同时导入WIFI和蓝牙的头文件时,就会出错。

#include //WIFI#include //蓝牙

出现以下错误,因为同时导入蓝牙和WIFI导致程序过大,

错误代码

解决方法

添加路径,如下图所示"C:/Users/Administrator/.platformio/packages/framework-arduinoespressif32/tools/partitions",//添加配置文件路径

配置文件,添加以下代码board_build.partitions = huge_app.csv

再次编译,欧克

蓝牙连接代码

#include #include BluetoothSerial SerialBT;void setup(){ Serial.begin(115200); SerialBT.begin("Homepea"); // 如果没有参数传入则默认是蓝牙名称是: "ESP32" SerialBT.setPin("1234"); // 蓝牙连接的配对码 Serial.printf("BT initial ok and ready to pair. rn");}void loop(){ if (Serial.available()) { SerialBT.write(Serial.read()); } if (SerialBT.available()) { Serial.write(SerialBT.read()); } delay(1);}

WIFI连接代码

/* * This sketch sends data via HTTP GET requests to data.sparkfun.com service. * * You need to get streamId and privateKey at data.sparkfun.com and paste them * below. Or just customize this script to talk to other HTTP servers. * */#include const char* ssid = "your-ssid";const char* password = "your-password";const char* host = "data.sparkfun.com";const char* streamId = "....................";const char* privateKey = "....................";void setup(){ Serial.begin(115200); delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP());}int value = 0;void loop(){ delay(5000); value; Serial.print("connecting to "); Serial.println(host); // Use WiFiClient class to create TCP connections WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { Serial.println("connection failed"); return; } // We now create a URI for the request String url = "/input/"; url = streamId; url = "?private_key="; url = privateKey; url = "&value="; url = value; Serial.print("Requesting URL: "); Serial.println(url); // This will send the request to the server client.print(String("GET ") url " HTTP/1.1rn" "Host: " host "rn" "Connection: closernrn"); unsigned long timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 5000) { Serial.println(">>> Client Timeout !"); client.stop(); return; } } // Read all the lines of the reply from server and print them to Serial while(client.available()) { String line = client.readStringUntil('r'); Serial.print(line); } Serial.println(); Serial.println("closing connection");}

蓝牙和wifi不能同时使用什么办

蓝牙和Wi-Fi信号两者主要都是使用2.4GHz频段,导致同时开启时,蓝牙的数据吞吐量会急剧下降,配对设备困难,Wi-Fi间歇性中断,网络受到限制。目前基本没什么办法可以根治这个问题,但可以用下面的方案临时解决一些问题。
提供了4种方法,可以参考下。
方法1:连接至5GHz无线网络
既然知道了问题出在频段冲突上,那么可以考虑购买一个双频(2.4GHz + 5GHz)路由器,并连接至5GHz的Wi-Fi网络。该方法可以彻底解决干扰问题,但银子也是必不可少的。
方法2:更换Wi-Fi信道
以TP-Link路由器为例,登录路由器Web管理页,在无线设置->基本设置中找到信道选项,将其改为1、6、11中的任何一个。这些为2.4GHz的不重叠传输信道,相较于其他信道更稳定一些。
方法3:开启网卡蓝牙共存功能
在近几年生产的无线网卡中,都支持蓝牙共存功能,方法是在网络适配器属性的高级选项卡中,找到Bluetooth Collaboration或Bluetooth Coexistence Mode(名称可能有所不同),将其设为启用(Enable)。Windows会自动重新连接Wi-Fi,干扰蓝牙的情况也会有所缓解。
方法4:远离干扰源
将蓝牙终端与路由器、微波炉、无绳电话机等使用2.4GHz频段的设备隔开使用。

如何解决蓝牙与wifi冲突的问题

1、首先在电脑上点击“开始“菜单,点击"控制面板”。

2、然后在控制面板页面,点击“网络和Internet”。

3、然后在新打开的页面点击“网络和共享中心”。

4、点击左侧的“更改配置器设置”,出现“网络连接”窗口。

5、右键点击“无线网络连接”,选择“属性”,出现“属性”对话框,点击“配置”按钮。

6、选择“高级”栏,将其中的”Bluetooth协作“启用,确认完成,冲突问题就解决了。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。