когда я компилирую этот код, он всегда "SendCommand" не объявляется в этой области..plzz help
#include <SoftwareSerial.h>
#define DEBUG true
SoftwareSerial esp8266(10, 11); // RX, TX
void setup() { // Open serial communications and wait for port to open:
Serial.begin(9600); //for monitoring purposes
sendCommand("AT+CIFS+RST\r\n", 2000, DEBUG); // reset module
sendCommand("AT+IPR=115200\r\n", 1000, DEBUG);
sendCommand("AT+CWMODE=1\r\n", 1000, DEBUG); // configure as access point
sendCommand("AT+CWJAP=\"ABCDEFG\",\"12345678\"\r\n", 3000, DEBUG); //connect to a network with name ABCDEFG with password 12345678
delay(1000);
sendCommand("AT+CIFSR\r\n", 1000, DEBUG); // get ip address
sendCommand("AT+CIPSTA=\"192.168.43.16\"\r\n", 1000, DEBUG);
sendCommand("AT+CIPMUX=1\r\n", 1000, DEBUG); // configure for multiple connections
sendCommand("AT+CIPSERVER=1,6625\r\n", 1000, DEBUG); // turn on server on port 6625
Serial.println("Server Ready");
}
void loop() { // run over and over
if (esp8266.available()) {
if (esp8266.find("+IPD,0,")) {
delay(10);
esp8266.find(":");
delay(10);
char letter = esp8266.read();
Serial.print(letter); //for monitoring purposes
//Gets the value/char from android app
}
String sendCommand(String command, const int timeout, boolean debug) {
String response = "";
esp8266.print(command); // send the read character to the esp8266
long int time = millis();
while ((time + timeout) > millis()) {
while (esp8266.available()) {
// The esp has data so display its output to the serial window
char c = esp8266.read(); // read the next character.
response += c;
}
}
if (debug) {
Serial.print(response);
}
return response;
}
@Wyeth Gamba, 👍0
Обсуждение1 ответ
▲ 2
В цикле
у вас есть три открывающие скобки и одна закрывающая скобка. Это добром не кончится:
void loop() {
if (esp8266.available()) {
if (esp8266.find("+IPD,0,")) {
delay(10);
esp8266.find(":");
delay(10);
char letter = esp8266.read();
Serial.print(letter); //для целей мониторинга
//Получает значение/символ из приложения для Android
}
Еще две закрывающиеся скобки исправили бы это.
,
@Nick Gammon
tnx, сэр ... я могу загрузить его прямо сейчас.. еще раз извините, сэр...Могу я спросить еще раз, сэр.. я могу загрузить его сейчас, но при использовании по команде в последовательном мониторе слова не выходят,,, @Wyeth Gamba
Смотрите также:
- AT-команда не отвечает на последовательный монитор
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- myserial.available() возвращает нулевой байт
- Последовательная связь от Arduino до ESP8266 NodeMCU работает, но от NodeMCU до Arduino не работает
- SoftwareSerial данные недоступны
- последовательная передача данных на GPS-экране duinopeak
Я отформатировал ваш код, и теперь вы можете видеть, что двух } не хватает, чтобы замкнуть цикл. (и неуместный комментарий). и я добавил "символ" перед " буквой`, @Juraj
сэр ... я добавляю изменение кода, но все равно не могу его скомпилировать, он по-прежнему говорит, что "SendCommand" не был объявлен в этой области.., @Wyeth Gamba
Затем отредактируйте свой вопрос, чтобы отразить новый код, чтобы мы могли помочь вам, @chrisl
Вы заметили, что объявили и определили
SendCommand()
*внутри*loop ()
, верно?, @Ignacio Vazquez-Abramsсэр, извините за медлительность.. какую петлю() вы имеете в виду, сэр?, @Wyeth Gamba
существует только один loop(), @jsotola