Witam, chciałbym się zapytać gdzie, może być tutaj błąd, ponieważ wywołując metodę na rzecz string metoda zawsze zwraca -1.
A dany argument znajduje się w łańcuchu.
Może jest jakaś inna metoda na znalezienie danego słowa w łańcuchy ?
#include <SoftwareSerial.h> const byte rxPin = 2; const byte txPin = 3; SoftwareSerial esp8266 (rxPin, txPin); bool sendC(char* cmd,char* rep){ while(esp8266.available()>0 && esp8266.read()>-1){} int i=0; while(true){ esp8266.print(cmd); if(esp8266.available() && esp8266.find(rep)){ Serial.print(i); Serial.println(cmd); return true; } i+=1; } } void setup() { Serial.begin(115200); esp8266.begin(115200); if(sendC("AT+RST\r\n","ready") && sendC("AT+CWMODE=1\r\n","OK") && sendC("AT+CIPMUX=1\r\n","OK") && sendC("AT+CIPSERVER=1,80\r\n","OK")){ Serial.println("SERVER START"); } } void loop() { if(esp8266.available()){ String s = String(char(esp8266.read())); if(s.indexOf("HTTP") != -1){ Serial.println("FOUND CONNECT"); } Serial.print(s); } }
A to jest wynik, jaki dostaje na ekran po wgraniu kodu na płytkę.
2682AT+RST 31AT+CWMODE=1 207AT+CIPMUX=1 0AT+CIPSERVER=1,80 SERVER START 0,CONNECT +IPD,0,430;GET / HTTP/1.1 Host: 00.186.213.100 Coneel6e5i9. e0,CLOSED 0,CONNECT +IPD,0.430:GET / HTTP/1.1 Host: 10.186.213.110 Cone-z6G3oatnn1,COONECT +IPD,1,430:GET / HTTP/1.1 Host: 10.186/213.110 C⸮˫⸮ Iix 5n/na00,CLOSED 0,CONNECT +IPD,0,430:GET / HTTP/1.1 Host: 10.186.213/110 ConacaAotwtn,1,CLOSED 0,CLOSED