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.
Joselu
Mensajes: 20
Registrado: 13 Feb 2018, 08:49
Agradecido: 1 vez
Agradecimiento recibido: 9 veces

Re: Presentación

Mensaje sin leer por Joselu »

Naguissa escribió: 15 Feb 2018, 14:04

No, si te fijas:

- De los puntos, la mayoría es 'cómo preparar el IDE' o 'cómo poner en modo programación el ESP'. Una vez preparado el IDE y tengas 'por la mano' poner en modo programación el ESP, es muy sencillo; casi igual que un Arduino. De hecho, te comenté el NodeMCU porque es exactamente igual que un Arduino, tiene un USB que se encarga hasta de detectar cuando lo programas y cambia automáticamente de modo.

- Lo que es el bloque de código, son la función de cargar la config y la de grabarla (ésta puede ser que ni te haga falta, si subes el archivo directamente desde el IDE). Luego hay un include y la inicialización del setup(). Y es algo larga porque hay cierto control de errores y comentarios.

- El resto del programa, es el que actualmente usas con el Leonardo. Quizá tengas que cambiar los nombres de los pines que uses.

Eso sí, luego hay unas diferencias:

- Quitar todos los comandos AT, ya no son necesarios.

- Substituirlos por funciones que uses; ¿podrías decirme como y para qué usas el ESP desde el Leonardo?



Sobre quitar cosas como el teclado, te entiendo. De hecho, esto de usar el ESP directamente yo lo veo como una manera de quitar el Leonardo y las conexiones, además de los comandos AT, que además de mas o menos aparatoso son poco fiables.


De nada! :)
Hola, el tema es que no puedo prescindir del Leonardo, porque en realidad es un modulo que viene ya con el SIM800 y los relés, lo necesito para modificar los códigos de acceso por medio de un SMS en cualquier momento, es este modulo:
Imagen
Tengo muy avanzado el codigo para el Leonardo, es una variación del que publican en la wiki del fabricante añadiendo algunas otras funciones del GSM800, con un teclado matricial para el acceso, pero me interesa mas por wifi o bluetooth, por eso lo único que tendría que hacer el ESP8266, es sustituir al teclado, y realmente funciona, el problema es el que he puesto antes, que cuando se reinicia no guarda las configuraciones de esos comandos y no se conecta al móvil por TCP, pero no quiero sustituir al Leonardo, ya que funciona bien, y lo único que quiero es que se conecte al ESP por Serial, en este modulo el Serial1 ya viene conectado al SIM800, y tienes un gran control sobre el, activar los relés con llamadas perdidas, cambiar los códigos por sms, que te envíe uno si entra alguien no autorizado, incluso autorizar los números de telefono que quieras que tengan acceso y bloquear al resto.
Por eso no puedo prescindir de el
Saludos, ya te contare si soy capaz de sacar algo en claro, gracias por las molestias que te estas tomando

Tags:
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 484
Registrado: 04 Jul 2016, 11:17
Agradecido: 102 veces
Agradecimiento recibido: 134 veces

Re: Presentación

Mensaje sin leer por Naguissa »

¡Ah! ¡Eso es otra cosa!


Entonces no es necesario lo del IDE.

Para este caso, lo que yo haría sería codifificar los datos de la WiFi en el Arduino y:

- Fácil: Usar los comandos AT para hacer funcionar el ESP.

- Complejo pero mas estable: Diseña un programa para el ESP que haga justo lo que deseas de él y se comunique como tu quieras con el Leonardo.


En tu caso, yo tiraría por el lado fácil.

¿Qué funciones ha de realizar el ESP?


Joselu escribió: 15 Feb 2018, 18:03
Naguissa escribió: 15 Feb 2018, 14:04

No, si te fijas:

- De los puntos, la mayoría es 'cómo preparar el IDE' o 'cómo poner en modo programación el ESP'. Una vez preparado el IDE y tengas 'por la mano' poner en modo programación el ESP, es muy sencillo; casi igual que un Arduino. De hecho, te comenté el NodeMCU porque es exactamente igual que un Arduino, tiene un USB que se encarga hasta de detectar cuando lo programas y cambia automáticamente de modo.

- Lo que es el bloque de código, son la función de cargar la config y la de grabarla (ésta puede ser que ni te haga falta, si subes el archivo directamente desde el IDE). Luego hay un include y la inicialización del setup(). Y es algo larga porque hay cierto control de errores y comentarios.

- El resto del programa, es el que actualmente usas con el Leonardo. Quizá tengas que cambiar los nombres de los pines que uses.

Eso sí, luego hay unas diferencias:

- Quitar todos los comandos AT, ya no son necesarios.

- Substituirlos por funciones que uses; ¿podrías decirme como y para qué usas el ESP desde el Leonardo?



Sobre quitar cosas como el teclado, te entiendo. De hecho, esto de usar el ESP directamente yo lo veo como una manera de quitar el Leonardo y las conexiones, además de los comandos AT, que además de mas o menos aparatoso son poco fiables.


De nada! :)
Hola, el tema es que no puedo prescindir del Leonardo, porque en realidad es un modulo que viene ya con el SIM800 y los relés, lo necesito para modificar los códigos de acceso por medio de un SMS en cualquier momento, es este modulo:
Imagen
Tengo muy avanzado el codigo para el Leonardo, es una variación del que publican en la wiki del fabricante añadiendo algunas otras funciones del GSM800, con un teclado matricial para el acceso, pero me interesa mas por wifi o bluetooth, por eso lo único que tendría que hacer el ESP8266, es sustituir al teclado, y realmente funciona, el problema es el que he puesto antes, que cuando se reinicia no guarda las configuraciones de esos comandos y no se conecta al móvil por TCP, pero no quiero sustituir al Leonardo, ya que funciona bien, y lo único que quiero es que se conecte al ESP por Serial, en este modulo el Serial1 ya viene conectado al SIM800, y tienes un gran control sobre el, activar los relés con llamadas perdidas, cambiar los códigos por sms, que te envíe uno si entra alguien no autorizado, incluso autorizar los números de telefono que quieras que tengan acceso y bloquear al resto.
Por eso no puedo prescindir de el
Saludos, ya te contare si soy capaz de sacar algo en claro, gracias por las molestias que te estas tomando
Joselu
Mensajes: 20
Registrado: 13 Feb 2018, 08:49
Agradecido: 1 vez
Agradecimiento recibido: 9 veces

Re: Presentación

Mensaje sin leer por Joselu »

Naguissa escribió: 15 Feb 2018, 19:42 ¡Ah! ¡Eso es otra cosa!


Entonces no es necesario lo del IDE.

Para este caso, lo que yo haría sería codifificar los datos de la WiFi en el Arduino y:

- Fácil: Usar los comandos AT para hacer funcionar el ESP.

- Complejo pero mas estable: Diseña un programa para el ESP que haga justo lo que deseas de él y se comunique como tu quieras con el Leonardo.


En tu caso, yo tiraría por el lado fácil.

¿Qué funciones ha de realizar el ESP?



El ESP simplemente tiene que ser un AP, comunicarme con el movil con una aplicacion TCP, desde mi telefono, yo utilizo una que se llama TCP Client, y enviarle un código, el Arduino comprueba si hay datos en el Serial del ESP, y comprueba si tiene el mensaje el tamaño correcto, y guarda la clave enviada a partir de un simbolo que busca en la clave, la compara con la que tiene en la EEPROM, y que se puede cambiar por SMS, y activa el relé que va a una cerradura electronica o electromecanica (ese es otro proyecto en mente).
Esto es lo que tengo pensado, lo que no se es como programarlo, no se como viene originalmente de fabrica, o si solo responde a comandos AT, tengo pensado meterle el firmware Arduino, y en el Void setup () esto que pongo a continuación,, lo que no se es si estos comandos serian correctos, y activar algun GPIO cuando arranque para que lo detecte el arduino

esp8266.println("AT+RST"); // reset
delay(2000);
esp8266.println("AT+CWSAP=XXXXX,XXXXXX,X,3"); ///nombre de red,clave, canal y seg. WPA2_PSK
delay(2000);
esp8266.println("AT+CWMODE=2"); // configurar punto de acceso
delay(1000);
esp8266.println("AT+CIFSR");// get ip address
delay(1000);
esp8266.println("AT+CIPMUX=1"); // configurado para múltiples conexiones (este es uno de los que no se guardan al apagarse)
delay(1000);
esp8266.println("AT+CIPSERVER=1,xxxx"); // pon el server en ON en el puerto xxxx (este es el otro)
delay(1000);

Lo que me gustaría es que fuese programado en el ESP, para cuando se reiniciase guarde todos los parámetros, y no se si con el firmware de Arduino es estable, se desconfigura con facilidad , bloquea, o cambian los comandos AT, será cuestión de probar, también estoy pensando que el arduino lo reinicie cada dos horas o así, o que le envíe un comando y espere un OK por respuesta, aunque con eso no sabría si ha perdido la configuración, aunque con AT+CIPMUX?, si responde 1 OK, es que no lo ha perdido, quizá tire por ahí.
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 484
Registrado: 04 Jul 2016, 11:17
Agradecido: 102 veces
Agradecimiento recibido: 134 veces

Re: Presentación

Mensaje sin leer por Naguissa »

Una pregunta... ¿la comunicación será http? De ser así la librería WifiLib te lo resuelve todo....

Por cierto, cuando tenga un rato partiré el hilo y esta parte la pondré en el aoartadoapartado de proyectos.
Joselu
Mensajes: 20
Registrado: 13 Feb 2018, 08:49
Agradecido: 1 vez
Agradecimiento recibido: 9 veces

Re: Presentación

Mensaje sin leer por Joselu »

Naguissa escribió: 15 Feb 2018, 21:44 Una pregunta... ¿la comunicación será http? De ser así la librería WifiLib te lo resuelve todo....

Por cierto, cuando tenga un rato partiré el hilo y esta parte la pondré en el aoartadoapartado de proyectos.
Hola, creo que si es por http, (no estoy puesto en nada de esto) en realidad hay que conectarse a una IP fija que tiene el ESP, la 192.168.4.1, pero voy a probar el método de preguntar si el CIPMUX !=1, y hacer una función que vuelva a cargar esos dos comandos, ya que el resto no se modifican al reiniciarse, y son los últimos que se cargan.
Gracias, mañana lo pruebo y a ver que tal va, y pongo los resultados
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 484
Registrado: 04 Jul 2016, 11:17
Agradecido: 102 veces
Agradecimiento recibido: 134 veces

Re: Presentación

Mensaje sin leer por Naguissa »

¿Podrías indicar una URL con la herramienta que usas para crear la App?
Joselu escribió: 15 Feb 2018, 23:39
Naguissa escribió: 15 Feb 2018, 21:44 Una pregunta... ¿la comunicación será http? De ser así la librería WifiLib te lo resuelve todo....

Por cierto, cuando tenga un rato partiré el hilo y esta parte la pondré en el aoartadoapartado de proyectos.
Hola, creo que si es por http, (no estoy puesto en nada de esto) en realidad hay que conectarse a una IP fija que tiene el ESP, la 192.168.4.1, pero voy a probar el método de preguntar si el CIPMUX !=1, y hacer una función que vuelva a cargar esos dos comandos, ya que el resto no se modifican al reiniciarse, y son los últimos que se cargan.
Gracias, mañana lo pruebo y a ver que tal va, y pongo los resultados
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 sin leer por Joselu »

Hola, sigo peleando con el ESP12, no puedo utilizar Softwareserial, porque se queda bloqueado en cuanto conecto el pin TX, voy a probar con resistencias de 10k a ver si funciona, he probado con 150 omh y no hay manera, sin embargo por serial si, es raro, en cuanto a la App, es una descargada de PlayStore, y por http con el Firefox y HTML, creando una botonera de 4x4 similar a la matricial, (solo que muy cutre, y primero he probado con cuatro botones), bueno seguiré peleando con el ESP8266, le he intentado programar con Arduino, y deja de responder a los comandos AT, esto seria la mejor opción si funcionara, al final lo haré por bluetooth que es lo mas facil, el ESP hay que entenderlo bien
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 484
Registrado: 04 Jul 2016, 11:17
Agradecido: 102 veces
Agradecimiento recibido: 134 veces

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

Mensaje sin leer por Naguissa »

Has tenido en cuenta que ek ESP funciona a 3.3v, el Lonardo a 5v, y no son compatibles sin un adaptador de voltaje?
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 sin leer por Joselu »

Naguissa escribió: 17 Feb 2018, 00:17 Has tenido en cuenta que ek ESP funciona a 3.3v, el Lonardo a 5v, y no son compatibles sin un adaptador de voltaje?
Lo he puesto directo, porque hay cientos de esquemas en Internet que conectan directamente el esp8266 a arduino con softwareserial, sin resistencias ni adaptadores, pero dos módulos que he probado se bloquean al conectarlo, tiene que ser otra cosa, hoy me pondré a ver si lo consigo
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 484
Registrado: 04 Jul 2016, 11:17
Agradecido: 102 veces
Agradecimiento recibido: 134 veces

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

Mensaje sin leer por Naguissa »

Joselu escribió: 19 Feb 2018, 08:00
Naguissa escribió: 17 Feb 2018, 00:17 Has tenido en cuenta que ek ESP funciona a 3.3v, el Lonardo a 5v, y no son compatibles sin un adaptador de voltaje?
Lo he puesto directo, porque hay cientos de esquemas en Internet que conectan directamente el esp8266 a arduino con softwareserial, sin resistencias ni adaptadores, pero dos módulos que he probado se bloquean al conectarlo, tiene que ser otra cosa, hoy me pondré a ver si lo consigo
Espera, espara! Puedes quemar el ESP!!!

El Leonardo funciona a 5V pero el ESP no es tolerante a ello!

Como mínimo, pon un divisor de tensión en los pines de entrada del ESP, para no freírlo.

He intentado buscar el nivel mínimo de un pin a 1 para el Leonardo pero no lo encuentro; normalmente con 3.3v debería ya detectar un 1, así que no creo que haya problema en las salidas del ESP.


El esquema de un divisor de tensión para tu uso:
Divisor tension entre Leonardo y ESP
Divisor tension entre Leonardo y ESP
divisor tension.png (6.02 KiB) Visto 11189 veces
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje