CCCPaste

Teste ESP01

#include "SoftwareSerial.h"

#define TIMEOUT 5000 // mS
#define LED 13

SoftwareSerial mySerial(6, 7); // RX, TX
const int button = 8;
const int LDR = A0;
int LDR_value = 0;
 
void setup()
{
 pinMode(LED,OUTPUT);
 
 Serial.begin(9600);
 mySerial.begin(9600);
 SendCommand("AT+RST", "Ready");
 delay(5000);

 SendCommand("AT+CWMODE=1","OK");
 SendCommand("AT+CIFSR", "OK");
 SendCommand("AT+CIPMUX=1","OK");
 SendCommand("AT+CIPSERVER=1,80","OK");
}
 
void loop(){
 LDR_value = analogRead(LDR);
  
 String IncomingString="";
 boolean StringReady = false;
 
 while (mySerial.available()){
   IncomingString=mySerial.readString();
   StringReady= true;
  }
 
  if (StringReady){
    Serial.println("Received String: " + IncomingString);
  
  if (IncomingString.indexOf("LED=ON") != -1) {
    digitalWrite(LED,HIGH);
    mySerial.println("AT+CIPSEND=0,18");
    delay(100);
    mySerial.println("

LED Aceso

"); delay(1000); SendCommand("AT+CIPCLOSE=0","OK"); } if (IncomingString.indexOf("LED=OFF") != -1) { digitalWrite(LED,LOW); mySerial.println("AT+CIPSEND=0,20"); delay(100); mySerial.println("

LED Apagado

"); delay(1000); SendCommand("AT+CIPCLOSE=0","OK"); } if(IncomingString.indexOf("LDR") != -1) { char valueStr[4]; sprintf(valueStr,"%04d",LDR_value); Serial.println(valueStr); mySerial.println("AT+CIPSEND=0,4"); delay(100); mySerial.println(valueStr); delay(1000); SendCommand("AT+CIPCLOSE=0","OK"); } } } boolean SendCommand(String cmd, String ack){ mySerial.println(cmd); // Send "AT+" command to module if (!echoFind(ack)) // timed out waiting for ack string return true; // ack blank or ack found } boolean echoFind(String keyword){ byte current_char = 0; byte keyword_length = keyword.length(); long deadline = millis() + TIMEOUT; while(millis() < deadline){ if (mySerial.available()){ char ch = mySerial.read(); Serial.write(ch); if (ch == keyword[current_char]) if (++current_char == keyword_length){ Serial.println(); return true; } } } return false; // Timed out }