Buenas, soy Nuevo en el foro, creo que es la segunda vez que someto una pregunta. surbyte si me pudieras ayudar te lo agradecere. Realice este codigo leyendo varios documentos y utilizando codigos existentes, modificandolos a mi necesidad. Este proyecto es controlado por una aplicacion movil creada en MIT App Inventor 2 y funciona bien, ahora yo necesito que este esp8266 esp-12 reciba esta instruccion " if (req.indexOf("/gpio/ON/") != -1)" y se la reenvie a otro esp8266 para que ambos esp8266 ejecuten lo mismo y a la misma vez. E leido y buscado en todo lugar y no termino encontrando como hacerlo. Bien e tratado utilizando el esp principal como access point, webserver y demas. Siempre obtengo errors, tanto de funciones que dicen no estar definidas o que le falta in token. Verifico que las librerias esten bien y todo aparenta estar bien.
#include <ESP8266WiFi.h>
#include <Stepper.h>
IPAddress ip(192, 168, 1, 12);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
const char* ssid = "ARRIS-E3C2";
const char* password = "288A1DBA3947E540";
int dirpin = 12; // Direction Pin
int steppin = 13; // Stepping Pin
// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);
void setup() {
Serial.begin(115200);
pinMode(dirpin, OUTPUT);
pinMode(steppin, OUTPUT);
digitalWrite(12, 13);
// Connect to Wi-Fi
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
{
WiFi.config(ip, gateway, subnet);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Wi-Fi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.println(WiFi.localIP());
}
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while (!client.available()) {
delay(1);
}
// Read the first line of the request
String req = client.readStringUntil('\r');
Serial.println(req);
{
// Match the request
if (req.indexOf("/gpio/ON/") != -1) {
int i;
digitalWrite(dirpin, HIGH);
delay(1000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
}
digitalWrite(dirpin, LOW);
delay(2000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
}
}
}
}
Ahora este es el codigo que llevo semanas tratando de hacerlo trabajar y nada:
Codigo AP,
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiClient.h>
#include <Stepper.h>
IPAddress ip(192, 168, 1, 12);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
const char* ssid = "ARRIS-E3C2";
const char* password = "288A1DBA3947E540";
int dirpin = 12; // Direction Pin
int steppin = 13; // Stepping Pin
// Create an instance of the server
// specify the port to listen on as an argument
ESP8266WebServer server(80);
void handleRoot() {
server.send(200, "/gpio/ON/");
}
void setup(void) {
Serial.begin(115200);
pinMode(dirpin, OUTPUT);
pinMode(steppin, OUTPUT);
digitalWrite(12, 13);
// Connect to Wi-Fi
Serial.print(".");
WiFi.mode(WIFI_AP);
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("HotSpt IP: ");
Serial.println(myIP);
server.on("/", handleRoot);
server.begin();
Serial.println("HTTP server started");
{
WiFi.config(ip, gateway, subnet);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
// Print the IP address
Serial.println(WiFi.localIP());
}
}
void loop(void) {
server.handleClient();
// Check if a client has connected
if (!Client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while (!Client.available()) {
delay(1);
}
// Read the first line of the request
String req = Client.readStringUntil('\r');
Serial.println(req);
{
// Match the request
if (req.indexOf("/gpio/ON/") != -1) {
int i;
digitalWrite(dirpin, HIGH);
delay(1000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
}
digitalWrite(dirpin, LOW);
delay(2000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
digitalWrite(dirpin, HIGH);
delay(1000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
}
digitalWrite(dirpin, LOW);
delay(2000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
digitalWrite(dirpin, HIGH);
delay(1000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
}
digitalWrite(dirpin, LOW);
delay(2000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
digitalWrite(dirpin, HIGH);
delay(1000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
}
digitalWrite(dirpin, LOW);
delay(2000);
for (i = 0; i < 5720; i++)
{
digitalWrite(steppin, LOW);
delayMicroseconds(100);
digitalWrite(steppin, HIGH);
delayMicroseconds(100);
}
}
}
}
}
}
}
Y codigo Client,
#include <ESP8266WiFi.h>
#include <Stepper.h>
const char* ssid = "ARRIS-E3C2";
int dirpin = 12; // Direction Pin
int steppin = 13; // Stepping Pin
IPAddress host(192, 168, 1, 12);
void setup() {
Serial.begin(115200);
delay(10);
pinMode(dirpin, OUTPUT);
pinMode(steppin, OUTPUT);
digitalWrite(12, 13);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
int value = 0;
void loop() {
delay(5000);
++value;
Serial.print("connecting to ");
Serial.println(host);
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
client.print(String("HTTP/1.1\r\n") +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}
Cualquier ayuda se le agradecera.