Я хочу изменить параметры с предложениями udp. Я получаю UDP, но мое условие if не работает. Как могут конкурировать 2 переменные?
Я изменил типы переменных и / или тип предложения (например, if (strcmp (UdpMsg, "relay01_off") == 0)).
Настроить переменную предложения IF
String UdpMsg = "12345";...
Получение UDP-сообщения
String UdpMsg ((char *)buffer);...
IF оговорка
if ( UdpMsg == "relay01_off" ) {
digitalWrite(relay_pin, HIGH);
Serial.print ("You!\n");
}
Я ожидал увидеть тебя! когда я отправляю UDP, но он не находит равных.
Полный код для информации:
#include <WiFi.h>
#include <WiFiUdp.h>
#include <cstring> //For the string functions
const char* wifi_name = "SSID"; // Your Wifi network name here
const char* wifi_pass = "password"; // Your Wifi network password here
WiFiServer server(80); // Server will be at port 80
// IP address to send UDP data to.
const char * udpAddress = "192.168.1.6";
int udpPort = 4444;
//create UDP instance
WiFiUDP udp;
// relay PINi
int relay_pin = 15;
// UDP Mesajı gelen
String UdpMsg = "12345";
void setup()
{
Serial.begin (115200);
pinMode (relay_pin, OUTPUT);
Serial.print ("Connecting to ");
Serial.print (wifi_name);
WiFi.begin (wifi_name, wifi_pass); // Connecting to the wifi network
while (WiFi.status() != WL_CONNECTED) // Waiting for the response of wifi network
{
delay (500);
Serial.print (".");
}
Serial.println("");
Serial.println("Connection Successful");
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); // Getting the IP address
Serial.println("Type the above IP address into browser search bar");
server.begin(); // Starting the server
digitalWrite(relay_pin, LOW); // switch i AC
//This initializes udp and transfer buffer
udp.begin(udpPort);
}
void loop()
{
uint8_t buffer[50] = "";
//processing incoming packet, must be called before reading the buffer
udp.parsePacket();
//receive response from server, it will be HELLO WORLD
if(udp.read(buffer, 50) > 0){
Serial.print("Recevied UDP: ");
Serial.println((char *)buffer);
String UdpMsg ((char *)buffer);
}
//////// UDP IF leri ///////////
if ( UdpMsg == "relay01_off" ) { // Equal strings
digitalWrite(relay_pin, HIGH);
Serial.print ("You!\n");
}
}