collapse

* Links de Robótica

* Posts Recentes

Organizar fios por josecarlos
[Hoje às 12:19]


Pendentes de compras colectivas por Hugu
[Hoje às 00:51]


Preços e fabricantes de pcb por vasco
[Ontem às 23:18]


Palavras Cruzadas por LVirtual
[Ontem às 20:54]


[Projecto] Bomba Airsoft por jm_araujo
[Ontem às 19:01]


Apresentação por Tech_JA
[23 de Setembro de 2017, 09:19]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]

Autor Tópico: Modulo esp07 webserver junto com interruptor touch screen  (Lida 748 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 337
Modulo esp07 webserver junto com interruptor touch screen
« em: 09 de Outubro de 2015, 20:12 »
Olá boa noite, comprei um modulo wifi esp 07 para exprimentar uma vez que falam tão bem do mesmo.
no entanto no código que fui fazendo cheguei a ter sucesso na primeira parte que era criar no proprio esp um webserver alojando um botão que liga e desliga o relé mostrando também o seu status...se ligado se desligado..

Código: [Seleccione]
#include <ESP8266WiFi.h>
#include <String.h>


String readString = String(30);
String statusled;
const char* ssid = "Casa";
const char* password = "964002176";
 
int led1 = 2;


WiFiServer server(80);
 
void setup() {
  Serial.begin(115200);
  delay(10);
 
 pinMode(led1, OUTPUT);

  WiFi.begin(ssid, password);
   
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
 
  }
  server.begin();
     }

 
void loop() {

 
  WiFiClient client = server.available();
 
  if (client)
    {

 while(client.connected())
 {
   if(client.available())
    {
char c= client.read();

if (readString.length() < 30){
  readString += (c);
  }
 
if (c== '\n')
  {


    if(readString.indexOf("led1") > 0) {
        digitalWrite(led1, !digitalRead(led1));
  }

  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println("");

  client.println("<!doctype html>");
  client.println("<html>");
  client.println("<head>");
  client.println("<title>Tutorial</title>");
  client.println("<meta name=\"viewport\" content=\"width=320\">");
  client.println("<meta name=\"viewport\" content=\"width=device-width\">");
  client.println("<meta charset=\"utf-8\">");
  client.println("<meta name=\"viewport\" content\"initial-scale=1.0, user-scalable=no\">");
 
 
  client.println("<head>");

 

  client.println("<body>");
 
client.println("<center>");
 
 client.println ("<font size=\"5\" face=\"verdana\" color=\"green\">Android</font>");
 client.println ("<font size=\"3\" face=\"verdana\" color=\"red\"> & </font>");
 client.println("<font size=\"5\" face=\"verdana\" color=\"blue\">Arduino</font><br />");

if(digitalRead(led1)){
  statusled = "Ligado";
  } else {
      statusled = "Desligado";
  }
 

client.println("<form action=\"http://192.168.1.88/led1?\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Led 1 - "+statusled+"</button> ");
client.println("</form> <br />");
client.println("<center>");
client.println ("<body>");
client.println("</html>");

 
readString = "";
client.stop();
  }
    }
             
    }
     }
    }


 

O código está funcional.
No entanto comecei a fazer a parte do touch que fiz separado NO ARDUINO UNO para vêr se funcionava e realmente funciona.

Código: [Seleccione]
#include <CapacitiveSensor.h>

const int led1 = 2;
const int led = 12;
const int cap1 = 4;
const int cap2 = 13;
const int ledL = 14;
const int sensibil = 100; 

CapacitiveSensor   cs = CapacitiveSensor(cap1,cap2);     

bool ligado = 0;

void setup()                   
{
  cs.set_CS_AutocaL_Millis( 0xFFFFFFFF);   

  pinMode(led1, OUTPUT); 
  pinMode(led, OUTPUT);
  analogWrite(led, ledL);
}

void loop()                   
{
  long cap =  cs.capacitiveSensor(30);

  if (cap > sensibil )
  {
    if (ligado)
    {
      ligado = !ligado;
      digitalWrite(led1, ligado);
      for (int i = 255; i > ledL; i--)   
        analogWrite(led, i);
        delay(5);
      }
    }
    else
    {
      ligado = !ligado;
      digitalWrite(led1, ligado);
      for (int i = ledL; i < 255; i++)
      {
        analogWrite(led, i);
        delay(5);
      }
    }
  }       
}


Depois ao juntar os dois códigos no esp, quando tendo aceder a ele 192.168.1.88 o server nao abre....que poderei estar a fazer de errado?

Código: [Seleccione]
#include <ESP8266WiFi.h>
#include <String.h>
#include <CapacitiveSensor.h>

const int led1 = 2 ; //circuito do led1
const int led = 12; //led indicador do interruptor do Touchscreen
const int cap1 = 4; //reistencia de 2 megas pode variar
const int cap2 = 13; // //reistencia 330ohms para o led
const int ledL = 14; // valor PWM minimo para o led quando a led1 estiver desligada
const int sensibil = 100;  // valor que varia consoante a resistencia do capl4
CapacitiveSensor   cs = CapacitiveSensor(cap1,cap2);     

bool ligado = 0;


String readString = String(30);
String statusled;
const char* ssid = "Casa";
const char* password = "96xxxxxx";
 


WiFiServer server(80);
 
void setup() {
  Serial.begin(115200);
  delay(10);
 
 pinMode(led1, OUTPUT);
 pinMode(led, OUTPUT);
 analogWrite(led, ledL);
 cs.set_CS_AutocaL_Millis( 0xFFFFFFFF);   

  WiFi.begin(ssid, password);
   
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
 
  }
  server.begin();
     }

 
void loop() {
long cap =  cs.capacitiveSensor(30);

  if (cap > sensibil )
  {
    if (ligado)
    {
      ligado = !ligado;
      digitalWrite(led1, ligado);
      for (int i = 255; i > ledL; i--)
      {
        analogWrite(led, i);
        delay(5);
      }
    }
    else
    {
      ligado = !ligado;
      digitalWrite(led1, ligado);
      for (int i = ledL; i < 255; i++)
      {
        analogWrite(led, i);
        delay(5);
      }
    }
  }       


 
 
  WiFiClient client = server.available();
 
  if (client)
    {

 while(client.connected())
 {
   if(client.available())
    {
char c= client.read();

if (readString.length() < 30){
  readString += (c);
  }
 
if (c== '\n')
  {


    if(readString.indexOf("led1") > 0) {
        digitalWrite(led1, !digitalRead(led1));
  }

  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println("");

  client.println("<!doctype html>");
  client.println("<html>");
  client.println("<head>");
  client.println("<title>Tutorial</title>");
  client.println("<meta name=\"viewport\" content=\"width=320\">");
  client.println("<meta name=\"viewport\" content=\"width=device-width\">");
  client.println("<meta charset=\"utf-8\">");
  client.println("<meta name=\"viewport\" content\"initial-scale=1.0, user-scalable=no\">");
 
 
  client.println("<head>");

 

  client.println("<body>");
 
client.println("<center>");
 
 client.println ("<font size=\"5\" face=\"verdana\" color=\"green\">Android</font>");
 client.println ("<font size=\"3\" face=\"verdana\" color=\"red\"> & </font>");
 client.println("<font size=\"5\" face=\"verdana\" color=\"blue\">Arduino</font><br />");

if(digitalRead(led1)){
  statusled = "Ligado";
  } else {
      statusled = "Desligado";
  }
 

client.println("<form action=\"http://192.168.1.88/led1?\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">led1 - "+statusled+"</button> ");
client.println("</form> <br />");
client.println("<center>");
client.println ("<body>");
client.println("</html>");

 
readString = "";
client.stop();
  }
    }
             
    }
     }
    }


 

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 753
Re: Modulo esp07 webserver junto com interruptor touch screen
« Responder #1 em: 20 de Outubro de 2015, 14:59 »
Assim será complicado de receberes ajuda, normalmente ninguém vai ler o teu código todo.

Que debug ja fizeste?