Proyecto de cerradura usando Arduino Leonardo, GSM y Wifi o Bluetooth

Proyectos hechos por una persona o muy pequeño grupo a modo personal, no proyectos industriales.
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 338
Registrado: 04 Jul 2016, 11:17
Agradecido: 95 veces
Agradecimiento recibido: 85 veces
Contactar:

Re: Proyecto de cerradura usando Arduino Leonardo, GSM y Wifi o Bluetooth

Mensaje por Naguissa » 28 Feb 2018, 19:56

Joselu escribió:
28 Feb 2018, 18:25
Hola Naguissa, lo tengo aparcado, porque me ha llegado el modulo hc-08, y estoy haciendo pruebas con el, el código sigue dándome error en esa parte, pero no he podido hacer mas pruebas, tampoco se exactamente que hay que cambiar para que no de error, ahora estoy liado con un programa para hacer apps para android, y me he hecho un teclado, pero de momento no va muy fino, solo es para que lo supieras, gracias por tu ayuda, cuando lo tenga funcionando lo colgaré en foro.
Saludos
Perdona, creía que me habías entendido.

Lo que falla es:

server.processRequest(handleFiles);


Ha de ser:

server.processRequest(processRequest);

Tranquilo, si ésto es para pasar el rato....

Tags:

Joselu
Mensajes: 20
Registrado: 13 Feb 2018, 08:49
Agradecido: 1 vez
Agradecimiento recibido: 9 veces

Re: Proyecto de cerradura usando Arduino Leonardo, GSM y Wifi o Bluetooth

Mensaje por Joselu » 02 Mar 2018, 08:51

Naguissa escribió:
28 Feb 2018, 19:56
Joselu escribió:
28 Feb 2018, 18:25
Hola Naguissa, lo tengo aparcado, porque me ha llegado el modulo hc-08, y estoy haciendo pruebas con el, el código sigue dándome error en esa parte, pero no he podido hacer mas pruebas, tampoco se exactamente que hay que cambiar para que no de error, ahora estoy liado con un programa para hacer apps para android, y me he hecho un teclado, pero de momento no va muy fino, solo es para que lo supieras, gracias por tu ayuda, cuando lo tenga funcionando lo colgaré en foro.
Saludos
Perdona, creía que me habías entendido.

Lo que falla es:

server.processRequest(handleFiles);


Ha de ser:

server.processRequest(processRequest);

Tranquilo, si ésto es para pasar el rato....
Hola Naguissa, creo que hay algún problema con la libreria ESP8266Wifi y este comando "processRequest", la librería ESP8266pro, si lo reconoce, pero me da errores en casi todo lo demás al compilar, he intentado adaptar el sketch a esa librería, pero no la entiendo muy bien.

Un saludo

Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 338
Registrado: 04 Jul 2016, 11:17
Agradecido: 95 veces
Agradecimiento recibido: 85 veces
Contactar:

Re: Proyecto de cerradura usando Arduino Leonardo, GSM y Wifi o Bluetooth

Mensaje por Naguissa » 02 Mar 2018, 08:55

Esa librería... No es la estándar, ¿verdad?


Primero revisa que tengas tu placa seleccionada en Herramientas -> Placa.
Pásame un enlace a la kibrería y pon cuanto mas código mejor, para revisar qué pasa. Y claro, copia los mensajes de error para ver qué pasa,
Joselu escribió:
02 Mar 2018, 08:51
Naguissa escribió:
28 Feb 2018, 19:56
Joselu escribió:
28 Feb 2018, 18:25
Hola Naguissa, lo tengo aparcado, porque me ha llegado el modulo hc-08, y estoy haciendo pruebas con el, el código sigue dándome error en esa parte, pero no he podido hacer mas pruebas, tampoco se exactamente que hay que cambiar para que no de error, ahora estoy liado con un programa para hacer apps para android, y me he hecho un teclado, pero de momento no va muy fino, solo es para que lo supieras, gracias por tu ayuda, cuando lo tenga funcionando lo colgaré en foro.
Saludos
Perdona, creía que me habías entendido.

Lo que falla es:

server.processRequest(handleFiles);


Ha de ser:

server.processRequest(processRequest);

Tranquilo, si ésto es para pasar el rato....
Hola Naguissa, creo que hay algún problema con la libreria ESP8266Wifi y este comando "processRequest", la librería ESP8266pro, si lo reconoce, pero me da errores en casi todo lo demás al compilar, he intentado adaptar el sketch a esa librería, pero no la entiendo muy bien.

Un saludo

Joselu
Mensajes: 20
Registrado: 13 Feb 2018, 08:49
Agradecido: 1 vez
Agradecimiento recibido: 9 veces

Re: Proyecto de cerradura usando Arduino Leonardo, GSM y Wifi o Bluetooth

Mensaje por Joselu » 02 Mar 2018, 12:35

Hola, el tema es que la libreria ESP8266Wifi.h no reconoce como un comando processRequest, sin embargo he visto que la libreria ESP8266pro.h si lo reconoce como tal, sin embargo varían muchos otros, y no se cuales serian equivalentes para modificar el codigo.

Imagen

Esta es la dirección de la libreria ESP8266pro

#######################################
# Syntax Coloring Map For ESP8266pro
#######################################

#######################################
# Datatypes (KEYWORD1)
#######################################

ESP8266pro KEYWORD1
ESP8266proClient KEYWORD1
ESP8266proServer KEYWORD1
ESP8266proConnection KEYWORD1

#######################################
# Methods and Functions (KEYWORD2)
#######################################

begin KEYWORD2
stationConnect KEYWORD2
stationDisconnect KEYWORD2
stationIP KEYWORD2
stationMAC KEYWORD2
accessPointStart KEYWORD2
accessPointStop KEYWORD2
accessPointIP KEYWORD2
accessPointMAC KEYWORD2
execute KEYWORD2
getState KEYWORD2
getLine KEYWORD2
getLineItem KEYWORD2
getLinesCount KEYWORD2
start KEYWORD2
stop KEYWORD2
processRequests KEYWORD2
closeAllConnections KEYWORD2
connectTcp KEYWORD2
connectUdp KEYWORD2
close KEYWORD2
waitResponse KEYWORD2

#######################################
# Constants (LITERAL1)
#######################################

NULL_IP LITERAL1

Sin embargo en la que yo utilizo ESP8266WIFI
No aparece ese comando, ni se cual le sustituye para modificar el sketch:
Pongo solo el enlace porque es muy larga
Estos usuarios agradecierón al autor Joselu por el mensaje:
Naguissa
Valoración: 33%

Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 338
Registrado: 04 Jul 2016, 11:17
Agradecido: 95 veces
Agradecimiento recibido: 85 veces
Contactar:

Re: Proyecto de cerradura usando Arduino Leonardo, GSM y Wifi o Bluetooth

Mensaje por Naguissa » 02 Mar 2018, 13:07

No, no, la librería a usar es la normal, no es 'pro'

La función processRequest está definida en código que puse, proyectos-personales-f23/proyecto-de-ce ... .html#p512

El problema es que se llama igual que la función de la clase del eso y hace que el error sea confuso.
Joselu escribió:
02 Mar 2018, 12:35
Hola, el tema es que la libreria ESP8266Wifi.h no reconoce como un comando processRequest, sin embargo he visto que la libreria ESP8266pro.h si lo reconoce como tal, sin embargo varían muchos otros, y no se cuales serian equivalentes para modificar el codigo.

Imagen

Esta es la dirección de la libreria ESP8266pro

#######################################
# Syntax Coloring Map For ESP8266pro
#######################################

#######################################
# Datatypes (KEYWORD1)
#######################################

ESP8266pro KEYWORD1
ESP8266proClient KEYWORD1
ESP8266proServer KEYWORD1
ESP8266proConnection KEYWORD1

#######################################
# Methods and Functions (KEYWORD2)
#######################################

begin KEYWORD2
stationConnect KEYWORD2
stationDisconnect KEYWORD2
stationIP KEYWORD2
stationMAC KEYWORD2
accessPointStart KEYWORD2
accessPointStop KEYWORD2
accessPointIP KEYWORD2
accessPointMAC KEYWORD2
execute KEYWORD2
getState KEYWORD2
getLine KEYWORD2
getLineItem KEYWORD2
getLinesCount KEYWORD2
start KEYWORD2
stop KEYWORD2
processRequests KEYWORD2
closeAllConnections KEYWORD2
connectTcp KEYWORD2
connectUdp KEYWORD2
close KEYWORD2
waitResponse KEYWORD2

#######################################
# Constants (LITERAL1)
#######################################

NULL_IP LITERAL1

Sin embargo en la que yo utilizo ESP8266WIFI
No aparece ese comando, ni se cual le sustituye para modificar el sketch:
Pongo solo el enlace porque es muy larga

Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 338
Registrado: 04 Jul 2016, 11:17
Agradecido: 95 veces
Agradecimiento recibido: 85 veces
Contactar:

Re: Proyecto de cerradura usando Arduino Leonardo, GSM y Wifi o Bluetooth

Mensaje por Naguissa » 02 Mar 2018, 13:10

P.D.: Añade los otros dos includes que hablamos antes, el de server y el de client.

Joselu
Mensajes: 20
Registrado: 13 Feb 2018, 08:49
Agradecido: 1 vez
Agradecimiento recibido: 9 veces

Re: Proyecto de cerradura usando Arduino Leonardo, GSM y Wifi o Bluetooth

Mensaje por Joselu » 06 Mar 2018, 10:49

Naguissa escribió:
02 Mar 2018, 13:10
P.D.: Añade los otros dos includes que hablamos antes, el de server y el de client.
Hola Naguissa, al final he desistido de utilizar el ESP8266, no soy capaz de solucionar ese error, he probado de mil maneras, así que he vuelto al viejo Bluetooth.
Me he hecho una aplicación para Android, (de momento estoy con el HC-06), y funciona muy bien, (los botones no salen como en el APP inventor), me salen mas a la izquierda, pero funciona que es de lo que se trata a cambio puedo poner claves de los caracteres que quiera.
Imagen

Esta es la imagen de la aplicacion en el APP Inventor, en mi movil salen los botones desplazados a la izquierda, si alguien lo sabe por favor que me lo diga.
Ya he conseguido que salgan centrados

Me falta implementar algunas cosas al código, y hacer pruebas de funcionamiento real, cosas que me funcionaban por separado, y que quiero poner poco a poco, por ejemplo que el SIM800 solo reaccione a un numero de teléfono determinado, que cuente los RING, para abrir una puerta exterior (comunitaria) y así no gastar saldo, etc....

Código: Seleccionar todo

[...]

#include <SoftwareSerial.h>
#include<EEPROM.h>
SoftwareSerial BTkeypad(2 , 4); // RX TX 
SoftwareSerial SIM800(7, 8); // RX TX
char inicio_clave;
char clave1;
char clave2;
char clave3;
char clave4;
char clave5;
int relay = 13;
int relayState = 0;
int conta = 0;
String clave = "6BB65";
String claveA = "A3Cfj478";
//int relay1 = 12;
//int relayState1 = 0;
String readString;
String CODIGO1 = "6BB65"; // Clave que se cambia por SMS
String CODIGO2 = "A3Cfj478"; /* Clave de Seguridad
(cambiar por la que se quiera)*/



void setup() {
  EEPROM.put(0,clave); //graba en la EEPROM la primera clave 
  delay(100);
  EEPROM.put(8,claveA); //graba en la EEPROM la claveA de seguridad
  delay(100);
  Serial.begin(9600);
   BTkeypad.begin(9600);
   SIM800.begin(9600);
  pinMode(relay, OUTPUT); 
}
void Recibe_nueva_clave() {
      
      inicio_clave=SIM800.read();
      if (inicio_clave=='#'){  /* toda clave va seguido 
     del carácter # cambiar por el que mas les guste*/
      //Serial.print("clave correcta");
      //Serial.print("clave correcta");
      clave1=SIM800.read();
      clave2=SIM800.read();
      clave3=SIM800.read();
      clave4=SIM800.read();
      clave5=SIM800.read();
      clave += clave1;
      clave += clave2;
      clave += clave3;
      clave += clave4;
      clave += clave5;
       }
     else if (CODIGO1 != clave){
      EEPROM.put (0, clave);
      EEPROM.get (0, clave);
      CODIGO1 = clave;
      inicio_clave = "";
      clave1 = "";
      clave2 = "";
      clave3 = "";
      clave4 = "";
      clave5 = "";
      clave = "";
      SIM800.print("OK"); /*envia a arduino OK
      para un uso posterior*/
      delay(100);
   
     }
      else { 
      SIM800.print("FAIL"); /*envia a arduino error
      para un uso posterior*/
      delay(100);
      
   }      
}


void loop() {
  if(SIM800.available() > 0){
             // funcion de recepcion de clave.
    Recibe_nueva_clave();
       }
  relayState = digitalRead(relay);
  while (BTkeypad.available()) {
    delay(3);  
    char c = BTkeypad.read();
    readString += c; 
  }
  if (readString.length() >0) {
    Serial.println(readString);
      
    if (readString == CODIGO1)  //codigo enviado por la aplicacion de Android
    {
      digitalWrite(relay, HIGH);
      delay(3000);                  // Espera 3 segundos
      digitalWrite(relay, LOW);
    readString="";
    conta=0;
    }
    else {conta++;
    }
    if (readString == CODIGO2)  //comprueba si es el codigo de seguridad
    {
      digitalWrite(relay, HIGH);
      delay(3000);                  //Espera 3 segundos
      digitalWrite(relay, LOW);
    readString="";
    conta=0;
    }
   else  {
    conta++;
    }
    if (conta<7) {
    Serial.println(conta);
    delay(500);
    readString="";
    }
    else if (conta>7) {
    Serial.println(conta);
    delay(100000); no deja meter mas codigos hasta que pasen 100 segundos
    readString="";
    conta=0;
    }
    }

 }
[...]
Pongo una captura de pantalla, de las pruebas que estoy realizando.
Imagen

Esto son pruebas con un Arduino Nano, un modulo SIM800, y un modulo HC-06, de momento reservo el Leonardo y el HC-10 para cuando funcione al 100%.

Saludos

PD. Si alguien está interesado en la apk, que me la pida por correo
Estos usuarios agradecierón al autor Joselu por el mensaje:
Naguissa
Valoración: 33%

Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje