乐鑫技术交流
直播中

丁冬芹

7年用户 1236经验值
私信 关注
[问答]

使用ESP2866连接到MySQL服务器,得到“异常(28)” WiFi连接怎么解决?

有人可以帮忙吗?
我正在尝试使用 ESP2866 连接到 MySQL 服务器。我用的板子是uno+wifi r3 atmega328p+esp8266。
我得到 WIFI 连接,但是当开发板想要连接到 MySQL 服务器时,我得到“异常(28)”
WiFi 连接
MAC:A8:1F:F5:12:CF:A4
分配的 IP:192.168.8.110
连接到数据库
.. .trying...
-------------- 在这里剪切异常解码器 --------------
异常 (28):
epc1=0x40201670 epc2= 0x00000000 epc3=0x00000000 excvaddr=0x00000049 depc=0x00000000
>>>堆栈>>>
这是我的代码:
--------------------
#include  
#包括  
#include  
#include  
char ssid[] = "**-2"; // 网络名称
char pass[] = "TGBKJIHU@#"; // 网络密码
字节 mac[6];
WiFiServer服务器(80);
IP 地址 ip(192, 168, 8, 110);
IP 地址网关(192、168、8、1);
IP 地址子网(255、255、255、0);
WiFiClient客户端;
MySQL_Connection conn((Client *)&client);
//char INSERT_SQL
char INSERT_SQL[] = "插入 sensors.sensor_data (sensor_number, humid_1, humid_2, humid_3) VALUES (%d,%d,%d,%d)";
字符查询[128];
IP 地址 server_addr(192,168,8,108); // MySQL 服务器 IP
char user[] = "
char password[] = "密码"; // MySQL 密码
void setup() {
  Serial.begin(115200);
  //pinMode(sensorPin1, 输入);
  //引脚模式(传感器引脚2,输入);
  Serial.println("初始化连接");
  Serial.print(F("设置静态 ip 为:"));
  序列号.println(ip);
  序列号.println("");
  序列号.println("");
  Serial.print("连接到");
  序列号.println(ssid);
  WiFi.config(ip, 网关, 子网);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    delay(2000);
    序列号.print(".");
  }
  Serial.println("");
  序列号.println("

  Serial.print("MAC:");
  Serial.print(mac[5],HEX);
  序列号.print(":");
  Serial.print(mac[4],HEX);
  序列号.print(":");
  Serial.print(mac[3],HEX);
  序列号.print(":");
  Serial.print(mac[2],HEX);
  序列号.print(":");
  Serial.print(mac[1],HEX);
  序列号.print(":");
  Serial.println(mac[0],HEX);
  序列号.println("");
  Serial.print("分配的 IP:");
  Serial.print(WiFi.localIP());
  序列号.println("");
  Serial.println("正在连接数据库");
  while (conn.connect(server_addr, 3306, user, password) != true) {
    delay(2000);
    串行。打印 ( ”。” );
  }
  Serial.println("");
  Serial.println("连接到 SQL Server!");  
}
void loop() {
  //int soil_hum = 1024 - analogRead(sensorPin1);
  //浮动 t = dht.readTemperature();
  //序列号.println(t);
  延迟(10000);//10 秒
  //sprintf(query, INSERT_SQL, soil_hum);
  //sprintf(query, INSERT_SQL, soil_hum, t);
  //Serial.println("记录数据。");
  //Serial.println(查询);
  MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
  //cur_mem->执行(查询);
  删除当前内存;
}


回帖(1)

Arvinhw

2024-1-17 18:36:40
这个错误可能是由于ESP8266芯片连接到WiFi网络时,没有足够的内存造成的。

你可以尝试扩大ESP8266芯片的内存,或者减小发送给MySQL服务器的数据量。你也可以尝试在代码中添加一些延迟(如delay(1000))来让芯片有足够的时间来连接到网络,或者使用另一个ESP8266模块,它可能具有更好的内存管理。

同时,你需要检查确保你的MySQL服务器配置和网络设置正确,而且可以被从ESP8266中的代码连接。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分