Я работаю над проектом о заполнении сидений, в котором я использовал Arduino, пьезоэлектрический датчик и ESP8266. Моя проблема в том, что я не могу отправить данные на свой компьютер, где работает UDP-сервер, написанный на Python.Не удается отправить данные через ESP8266
Моя настоящая проблема заключается в том, что я могу отправлять данные, когда я использую последовательный монитор Arduino IDE. Он отлично передает и получает данные, но код не работает, и я не могу указать свою ошибку.
Arduino код:
const int seat_no = 2;
const char *ssid = "";
const char *passwd = "";
const char *ip = "192.168.43.250";
const int port = 55056;
const int threshold = 100;
String op;
int i, a, data_size;
void setup() {
Serial.begin(9600);
Serial1.begin(115200);
Serial.println("Starting ESP8266");
Serial1.write("AT+CWJAP=\"");
Serial1.write(ssid);
Serial1.write("\",\"");
Serial1.write(passwd);
Serial1.write("\"\r\n");
Serial1.write("AT+CWMODE=1\r\n");
Serial1.write("AT+CIPMUX=0\r\n");
Serial1.write("AT+CIPSTART=\"UDP\",\"");
Serial1.write(ip);
Serial1.write("\",");
Serial1.write(port);
Serial1.write("\r\n");
}
void loop() {
op = "{\"seat_status\":[";
for (i = 0; i < seat_no; i++) {
a = analogRead(i);
if (a > threshold) {
op += "\"0\"";
Serial.println("0");
}
else {
op += "\"1\"";
Serial.println("1");
}
if (i < seat_no - 1)
op += ",";
}
op += "]}";
data_size = op.length();
Serial1.write("AT+CIPSEND=");
Serial1.write(data_size+2);
Serial1.write("\r\n");
delay(1000);
for (i = 0; i < data_size; i++)
Serial.write(op[i]);
Serial.println();
for (i = 0; i < data_size; i++)
Serial1.write(op[i]);
Serial1.write("\r\n");
delay(5000);
}
Я думаю, что мой код Python правильно, как я могу получить данные из других источников, а также (через Android приложение UDP отправителя), чтобы помочь мне решить эту проблему.
Попробуйте поменять контакты RX/TX, чтобы RX ESP перешел на TX Mega и наоборот. –
сделано, что ничего не приходит к серийному монитору. EX8266's Tx соединяется с Tux arduino и тот же для Rx –
Я делал все, что меняю штырьки, используя другие последовательные контакты, добавляя задержку для каждой команды, и ни одна из них не решила мою проблему. –