Member 13479861 Ответов: 0

Как отправить данные mfrc522 в приложение C# с помощью TCP-сервера nodemcu?


Привет ребята;

Я пытаюсь я пытаюсь отправить данные Mfrc522 в приложение c# через Nodemcu esp8266, который действует как точка доступа для приложения c#.
Я изменил код, который получил со следующего сайта:-

http://tdmts.net/2017/02/04/controlling-an-arduino-with-a-wifi-esp8266-adapter-using-a-windows-10-universal-app/

и мой модифицированный код таков :=

#include ESP8266WiFi.h>
#include SPI.h>
#include MFRC522.h>
 
const char* AP_SSID ="IoT4143" ;
const char* AP_PASSWORD ="iot4143";

#define RST_PIN D3
#define SS_PIN D4

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance
 

 
WiFiServer server(80);
WiFiClient client;
 
void wifiConnect()
{
  WiFi.disconnect();
  WiFi.softAP(AP_SSID, AP_PASSWORD);
  
  int watchDog = 0;
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    watchDog++;
    if(watchDog == 60)
    {
      WiFi.disconnect();
      WiFi.printDiag(Serial);
      watchDog = 0;
      return;
    }
  }
 
  server.begin();
}
 
void setup() {
  Serial.begin(115200);
  SPI.begin();      // Init SPI bus
  mfrc522.PCD_Init();   // Init MFRC522
  mfrc522.PCD_DumpVersionToSerial();  // Show details of PCD - MFRC522 Card Reader details
  Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
  
  wifiConnect();
}
 
void loop() {
  //Are we connected to WiFi?
  if(WiFi.status() != WL_CONNECTED)
  {
    wifiConnect();
  }
 
  //Wait for a connection attempt
  client = server.available();
  if (!client) {
    return;
  }
   
  // Wait until the client sends some data
  int watchDog = 0;
  while(!client.available())
  {
    delay(1);
    if(watchDog == 10000)
    {
      watchDog = 0;
      return;
    }
    watchDog++;
  }

  sendData();
}

 void sendData()
 {
  
  // Read the first line of the request
  String request = client.readStringUntil('\r');
  client.flush();
   
  // Match the request
  while(request=="READSTOP")
  {
    Serial.println("RFID READING STARTED..."); //Forward to C# App
    if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  // Dump debug info about the card; PICC_HaltA() is automatically called
  client.print(mfrc522.uid);
}
 
    Serial.println("RFID READING STOPPED"); //Stop server

     delay(1);
  
  client.stop();
  }


Я очень новичок в аппаратном/сетевом программировании, я не знаю, какие будут возможные ошибки вышеприведенного кода и будет ли он работать или нет

когда я проверил приведенный выше код в arduino ide, ошибка wasa в этой строке кода:=

client.print(mfrc522.uid);

error:= no matching function for call to 'WiFiClient::print(MFRC522::Uid&)'


Я просто хочу отправить rfid-данные в приложение c#, вся проверка будет выполнена на c#.

При нажатии кнопки connect в приложении строка "READSTART" отправляется в nodemcu, а при нажатии кнопки disconnect-строка "READSTOP".

Пожалуйста, нужна помощь!!!!

Что я уже пробовал:

Я не загрузил код на свое оборудование из-за сомнений в моем коде.

0 Ответов