-->
Page 1 of 1

Arduino Uno + ESP8266 without using Serial Monitor possible?

PostPosted: Tue Feb 02, 2016 2:15 pm
by Jr Ceballos
Is it okay if I load my code in the ardunio and disconnect the arduino from the computer and plug in the power supply adapter for the arduino? Will the code still work?

Here is my code:

#include <SoftwareSerial.h>

SoftwareSerial wifi(2,3); // RX, TX
void setup()
{
Serial.begin(9600);
wifi.begin(115200);

pinMode(11,OUTPUT); //define default settings for pins here
digitalWrite(11,LOW);

sendCommand("AT+RST\r\n",2000); // reset module
sendCommand("AT+CWMODE=1\r\n",1000); // configure as access point
sendCommand("AT+CWJAP=\"rose\",\"\"\r\n",10000); //edit this line to match your network settings

sendCommand("AT+CIFSR\r\n",1000); // get ip address
sendCommand("AT+CIPMUX=1\r\n",1000); // configure for multiple connections
sendCommand("AT+CIPSERVER=1,80\r\n",1000); // turn on server on port 80
Serial.println("Server Ready");
}

void loop()
{
if(wifi.available()) // check if the esp is sending a message
{

if(wifi.find("+IPD,"))
{
delay(1000);
// get the connection id so that we can then disconnect
int connectionId = wifi.read()-48; // subtract 48 because the read() function returns
// the ASCII decimal value and 0 (the first decimal number) starts at 48
wifi.find("pin="); // advance cursor to "pin=" !)192.168.0.67/?pin=11
int pinNumber = (wifi.read()-48); // get first number i.e. if the pin 13 then the 1st number is 1
int secondNumber = (wifi.read()-48);
if(secondNumber>=0 && secondNumber<=9)
{
pinNumber*=10;
pinNumber +=secondNumber; // get second number, i.e. if the pin number is 13 then the 2nd number is 3, then add to the first number
}
pinMode(pinNumber,OUTPUT);
digitalWrite(pinNumber, !digitalRead(pinNumber)); // toggle pin
// build string that is send back to device that is requesting pin toggle
String content;
content = "Pin ";
content += pinNumber;
content += " is ";
if(digitalRead(pinNumber))
{
content += "ON";
}
else
{
content += "OFF";
}
sendHTTPResponse(connectionId,content);
//send close command
String closeCommand = "AT+CIPCLOSE=";
closeCommand+=connectionId; // append connection id
closeCommand+="\r\n";
sendCommand(closeCommand,1000); // close connection
}
}
}


String sendData(String command, const int timeout)
{
String response = "";
int dataSize = command.length();
char data[dataSize];
command.toCharArray(data,dataSize);
wifi.write(data,dataSize); // send the read character to the wifi
Serial.write(data,dataSize);
long int time = millis();
while( (time+timeout) > millis())
{
while(wifi.available())
{
// The esp has data so display its output to the serial window
char c = wifi.read(); // read the next character.
response+=c;
}
}
//Serial.print(response);
return response;
}

void sendHTTPResponse(int connectionId, String content)
{
// build HTTP response
String httpResponse;
String httpHeader;
// HTTP Header
httpHeader = "HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=UTF-8\r\n";
httpHeader += "Content-Length: ";
httpHeader += content.length();
httpHeader += "\r\n";
httpHeader +="Connection: close\r\n\r\n";
httpResponse = httpHeader + content + " ";
sendCIPData(connectionId,httpResponse);
}

/*
* Name: sendCIPDATA
* Description: sends a CIPSEND=<connectionId>,<data> command
*
*/
void sendCIPData(int connectionId, String data)
{
String cipSend = "AT+CIPSEND=";
cipSend += connectionId;
cipSend += ",";
cipSend +=data.length();
cipSend +="\r\n";
sendCommand(cipSend,1000);
sendData(data,1000);
}

String sendCommand(String command, const int timeout)
{
String response = "";
wifi.print(command); // send the read character to the wifi
long int time = millis();
while( (time+timeout) > millis())
{
while(wifi.available())
{
// The esp has data so display its output to the serial window
char c = wifi.read(); // read the next character.
response+=c;
}
}
//Serial.print(response);
return response;
}

Re: Arduino Uno + ESP8266 without using Serial Monitor possi

PostPosted: Wed Feb 03, 2016 11:10 am
by eduperez
  • This is the "Video Tutorials" section, where users are supposed to post video tutorials, not questions.
  • This is under the "ESP8266 Arduino" section, where we talk about using Arduino sketches in the ESP8266; if you are using an Arduino and an ESP8266 together, there is another forum: viewforum.php?f=8
  • Asking someone to validate your code is asking a bit too much, in my humble opinion (especially when you are asking whether it will work: why don't you just try it yourself?); you could at least have used some "code" tags to make it more legible.