مشکل در اتصال به ESP MESH با ESP32

6 ماه قبل
99 بازدید

0

سلام 

من یک ESP32 دارم که وقتی میخواد که به شبکه MESH وصل بشه این ارور رو توی سریال مانیتور دریافت میکنم ( ERROR: NodeId set to 0 ) 
برای رفع این مشکل چه پیشنهادی دارید!؟

خروجی سریال مانیتور : 

setLogLevel: ERROR | STARTUP |

STARTUP: init(): 1

ERROR: NodeId set to 0

STARTUP: AP tcp server established on port 5555

 کد من : 

#include "painlessMesh.h"

#define   MESH_PREFIX     "whateverYouLike"
#define   MESH_PASSWORD   "somethingSneaky"
#define   MESH_PORT       5555

Scheduler userScheduler; // to control your personal task
painlessMesh  mesh;

uint32_t targetNodeId = 0; // شناسه نود مقصد

// User stub
void sendMessage(); // Prototype so PlatformIO doesn't complain

Task taskSendMessage(TASK_SECOND * 1 , TASK_FOREVER, &sendMessage);

void sendMessage() {
  if (targetNodeId != 0) {
    String msg = "Hi from node1";
    msg += mesh.getNodeId();
    mesh.sendSingle(targetNodeId, msg); // ارسال پیام به نود خاص
  }else if(targetNodeId == 0){
    // Serial.println("error");
  }
  taskSendMessage.setInterval(random(TASK_SECOND * 1, TASK_SECOND * 5));
}

// Needed for painless library
void receivedCallback(uint32_t from, String &msg) {
  Serial.printf("startHere: Received from %u msg=%s\n", from, msg.c_str());
}

void newConnectionCallback(uint32_t nodeId) {
  Serial.printf("--> startHere: New Connection, nodeId = %u\n", nodeId);
  targetNodeId = nodeId; // ذخیره شناسه نود مقصد
}

void changedConnectionCallback() {
  Serial.printf("Changed connections\n");
}

void nodeTimeAdjustedCallback(int32_t offset) {
  Serial.printf("Adjusted time %u. Offset = %d\n", mesh.getNodeTime(), offset);
}

void setup() {
  Serial.begin(115200);
delay(1000); 
  // mesh.setDebugMsgTypes(ERROR | MESH_STATUS | CONNECTION | SYNC | COMMUNICATION | GENERAL | MSG_TYPES | REMOTE); // all types on
  mesh.setDebugMsgTypes(ERROR | STARTUP);  // set before init() so that you can see startup messages

  mesh.init(MESH_PREFIX, MESH_PASSWORD, &userScheduler, MESH_PORT);
  mesh.onReceive(&receivedCallback);
  mesh.onNewConnection(&newConnectionCallback);
  mesh.onChangedConnections(&changedConnectionCallback);
  mesh.onNodeTimeAdjusted(&nodeTimeAdjustedCallback);

  userScheduler.addTask(taskSendMessage);
  taskSendMessage.enable();
}

void loop() {
  // it will run the user scheduler as well
  mesh.update();
}
04 تیر 03 در 12:08
امیررضا برزگر
45

افزودن دیدگاه

1 پاسخ ثبت شده است
0

با سلام

بنده کد شما را بر روی یک ESP32 آپلود کردم و خروجی به صورت زیر بوده

setLogLevel: ERROR | STARTUP |
STARTUP: init(): 0
STARTUP: AP tcp server established on port 5555

برای شما init را بر روی 1 قرار داده است.

شاید مربوط به تنظیماتی می باشد که باید انجام بدهید.

امکان دارد ID0 پر میباشد و باید بر روی شماره های دیگری قرار بدهید.

پیشنهاد میکنم این موارد را بررسی کنید در صورتی که همچنان این مشکل وجود داشت اعلام کنید تا مرحله به مرحله بررسی کنیم.

میتوانید کد بیس را نیز برای بنده ارسال کنید تا شبکه را به صورت کامل بنده نیز اجرا کنم.

06 تیر 03 در 06:03
محمد دمیرچی
4240

افزودن دیدگاه


انجمن کافه‌ربات © 1400