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..
#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.
#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?
#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();
}
}
}
}
}