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

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

Mensaje sin leer por Joselu »

Hola, tengo pedido un ESP32, y un Bluetooth BLE, lo que no me queda muy claro, es cual de los dos sistemas es mas seguro, ya que quiero implementarlo en una casa rural, muy lejos de mi vivienda, y que me evite desplazarme cuando pierdan las llaves, o vaya algún amigo o familiar sin avisar, de momento estoy haciendo pruebas con un ESP8266, aunque hay tantas versiones, que es un lio, de hecho con el que estoy probando,muchos de los comandos AT me dan error, y eso que utilizo el set de instrucciones del fabricante, supongo que serán los firmwares, le puse uno a 9600, para que se comunique con arduino por serie a una velocidad mas baja, espero poner algo pronto en el foro, de momento haciendo pruebas con estos micros.
Estos usuarios agradecieron al autor Joselu por el mensaje (total 2):
NaguissaDaniel
Valoración: 67%

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

Re: Presentación

Mensaje sin leer por Naguissa »

Joselu escribió: 13 Feb 2018, 12:00 Hola, tengo pedido un ESP32, y un Bluetooth BLE, lo que no me queda muy claro, es cual de los dos sistemas es mas seguro, ya que quiero implementarlo en una casa rural, muy lejos de mi vivienda, y que me evite desplazarme cuando pierdan las llaves, o vaya algún amigo o familiar sin avisar, de momento estoy haciendo pruebas con un ESP8266, aunque hay tantas versiones, que es un lio, de hecho con el que estoy probando,muchos de los comandos AT me dan error, y eso que utilizo el set de instrucciones del fabricante, supongo que serán los firmwares, le puse uno a 9600, para que se comunique con arduino por serie a una velocidad mas baja, espero poner algo pronto en el foro, de momento haciendo pruebas con estos micros.
Uffff! Veo que estás usando los comandos AT!

Pues tengo buenas y malas noticias, ambas a la vez:

Si quieres echar un ojo al manejo de comandos AT tengo un par de viejas librerías para gestionarlos:

Simple: https://github.com/Naguissa/WiFiLib
Ligado al uso de SD y multitarea cooperativa: https://github.com/Naguissa/WiFiSDCoopLib


Pero hay otra cosa que te puede interesar mas: Desechar tu Arduino y usar directamente el ESP8266 con el IDE Arduino: electronica-digital-microcontroladores- ... -t106.html

Échale un ojo a los temas sobre ESP8266 del foro, te van a interesar mucho, sobretodo si programas el ESP8266 directamente: tag/esp8266

Y la mala noticia: Al menos que yo sepa, hasta la fecha el ESP32 no se puede programar con Arduino IDE tal y como harías con el ESP8266.
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ó: 13 Feb 2018, 13:53
Uffff! Veo que estás usando los comandos AT!

Pues tengo buenas y malas noticias, ambas a la vez:

Si quieres echar un ojo al manejo de comandos AT tengo un par de viejas librerías para gestionarlos:

Simple: https://github.com/Naguissa/WiFiLib
Ligado al uso de SD y multitarea cooperativa: https://github.com/Naguissa/WiFiSDCoopLib


Pero hay otra cosa que te puede interesar mas: Desechar tu Arduino y usar directamente el ESP8266 con el IDE Arduino: electronica-digital-microcontroladores- ... -t106.html

Échale un ojo a los temas sobre ESP8266 del foro, te van a interesar mucho, sobretodo si programas el ESP8266 directamente: tag/esp8266

Y la mala noticia: Al menos que yo sepa, hasta la fecha el ESP32 no se puede programar con Arduino IDE tal y como harías con el ESP8266.
Gracias por los enlaces, pero es que tengo que utilizar el Arduino sin mas remedio, ya que una parte del código ya lo tengo funcionando en un Leonardo, en realidad el ESP8266, seria una especie de teclado inalambrico, para utilizar con un movil, pero creo que es un circuito bastante inestable, al menos el que yo estoy utilizando, solo tendría que comunicar los datos recibidos a Arduino por comunicación Serie, y que el Leonardo a través de comandos AT pueda variar algunos datos como el password, pero claro no los tiene que perder si se resetea, y tiene que ser estable, ya que va a estar muchas horas conectado, y de momento no me da mucha confianza.
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 507
Registrado: 04 Jul 2016, 11:17
Agradecido: 110 veces
Agradecimiento recibido: 134 veces

Re: Presentación

Mensaje sin leer por Naguissa »

Joselu escribió: 13 Feb 2018, 23:10
Naguissa escribió: 13 Feb 2018, 13:53
Uffff! Veo que estás usando los comandos AT!

Pues tengo buenas y malas noticias, ambas a la vez:

Si quieres echar un ojo al manejo de comandos AT tengo un par de viejas librerías para gestionarlos:

Simple: https://github.com/Naguissa/WiFiLib
Ligado al uso de SD y multitarea cooperativa: https://github.com/Naguissa/WiFiSDCoopLib


Pero hay otra cosa que te puede interesar mas: Desechar tu Arduino y usar directamente el ESP8266 con el IDE Arduino: electronica-digital-microcontroladores- ... -t106.html

Échale un ojo a los temas sobre ESP8266 del foro, te van a interesar mucho, sobretodo si programas el ESP8266 directamente: tag/esp8266

Y la mala noticia: Al menos que yo sepa, hasta la fecha el ESP32 no se puede programar con Arduino IDE tal y como harías con el ESP8266.
Gracias por los enlaces, pero es que tengo que utilizar el Arduino sin mas remedio, ya que una parte del código ya lo tengo funcionando en un Leonardo, en realidad el ESP8266, seria una especie de teclado inalambrico, para utilizar con un movil, pero creo que es un circuito bastante inestable, al menos el que yo estoy utilizando, solo tendría que comunicar los datos recibidos a Arduino por comunicación Serie, y que el Leonardo a través de comandos AT pueda variar algunos datos como el password, pero claro no los tiene que perder si se resetea, y tiene que ser estable, ya que va a estar muchas horas conectado, y de momento no me da mucha confianza.

¿Qué entradas está usando el Leonardo?

De verdad, de no ser que uses mas de una entrada analógica, librerías externas conflictivas o muchísimas entradas/salidas, me resulta difícil que un NodeMCU V2 / V3 (son prácticamente lo mismo) no te sea útil y práctico:

electronica-digital-microcontroladores- ... .html#p427


Y, para guardar esos valores que dices los ESP8266 tienen el sistema de archivos SPIFFS:

electronica-digital-microcontroladores- ... -t153.html



Cabe decir que todo ello se programa en Arduino normal (excepto las funciones de WiFi). Si quieres ver un ejemplo 'gordo' de programa con ESP8266:
- Proyecto general: https://github.com/Naguissa/watering/
- Lectura de config desde la ROM del ESP8266: https://github.com/Naguissa/watering/bl ... g.ino#L781
- Escritura de config a la ROM del ESP8266: https://github.com/Naguissa/watering/bl ... g.ino#L855


Te recomiendo echarle un ojo. Los comandos AT no están mal, pero son poco fiables. La estabilidad que da poder meter todo en el mismo microcontrolador es brutal. ¡Y con el mismo programa base! Pero claro, si no te encaja por lo que sea, no puede ser.
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ó: 14 Feb 2018, 00:25


¿Qué entradas está usando el Leonardo?

De verdad, de no ser que uses mas de una entrada analógica, librerías externas conflictivas o muchísimas entradas/salidas, me resulta difícil que un NodeMCU V2 / V3 (son prácticamente lo mismo) no te sea útil y práctico:

electronica-digital-microcontroladores- ... .html#p427


Y, para guardar esos valores que dices los ESP8266 tienen el sistema de archivos SPIFFS:

electronica-digital-microcontroladores- ... -t153.html



Cabe decir que todo ello se programa en Arduino normal (excepto las funciones de WiFi). Si quieres ver un ejemplo 'gordo' de programa con ESP8266:
- Proyecto general: https://github.com/Naguissa/watering/
- Lectura de config desde la ROM del ESP8266: https://github.com/Naguissa/watering/bl ... g.ino#L781
- Escritura de config a la ROM del ESP8266: https://github.com/Naguissa/watering/bl ... g.ino#L855


Te recomiendo echarle un ojo. Los comandos AT no están mal, pero son poco fiables. La estabilidad que da poder meter todo en el mismo microcontrolador es brutal. ¡Y con el mismo programa base! Pero claro, si no te encaja por lo que sea, no puede ser.
Hola, la verdad es que seguramente se pueda, en principio no voy a utilizar ninguna entrada analogica, pero es que ya me cuesta bastante programar en Arduino, como para hacerlo en LUA, aparte que no se si me funcionarían las librerías que utilizo, ni el modulo GSM800, en princio, el ESP8266 solo lo quiero como AP, pero es que ni siquiera guarda la configuración, cada vez que se reinicia, hay que volver a enviarle los comandos AT+CIPMUX=1 (siempre arranca con valor 0, y AT+CIPSERVER=, ahora intentare implementar en arduino una rutina que detecte si el ESP se ha reiniciado, y que le envíe estos comandos, ayer probé con AT+UTC, y si lo grababa en memoria, pero ya no me enviaba datos por Serial, y tuve que cargarle de nuevo el firmware.
Miraré esos enlaces que has puesto, aunque creo que voy a esperarme al modulo BT, porque con el HC-06 funciona perfectamente, gracias.
Estos usuarios agradecieron al autor Joselu por el mensaje:
Naguissa
Valoración: 33%
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 507
Registrado: 04 Jul 2016, 11:17
Agradecido: 110 veces
Agradecimiento recibido: 134 veces

Re: Presentación

Mensaje sin leer por Naguissa »

Es que es precisamente lo que te comentaba, NO hablo de programar en LUA o JS, sino de usar el ESP8266 como si fuese una placa Arduino, con el IDE Arduino y sus herramientas.

Sólo hay que añadir al IDE la compatibilidad con placas ESP8266: electronica-digital-microcontroladores- ... -t106.html

Luego, el mismo sketch de Arduino puedes subirlo al ESP8266. Bueno, normalmente hay que cambiar los pines usados, como con cualquier cambio de placa.

Por eso te decía, que si metes el sketch Arduino directamente en el ESP8266 no necesitas dos microcontroladores y los problemas que ello conlleva.

Además, como la ROM del ESP8266 es bastante grande, puedes usar una porción como si fuese un sistema de archivos y guardar ahí las configuraciones. E incluso subir archivos desde el propio IDE Arduino: electronica-digital-microcontroladores- ... -t153.html


Joselu escribió: 14 Feb 2018, 08:19
Naguissa escribió: 14 Feb 2018, 00:25


¿Qué entradas está usando el Leonardo?

De verdad, de no ser que uses mas de una entrada analógica, librerías externas conflictivas o muchísimas entradas/salidas, me resulta difícil que un NodeMCU V2 / V3 (son prácticamente lo mismo) no te sea útil y práctico:

electronica-digital-microcontroladores- ... .html#p427


Y, para guardar esos valores que dices los ESP8266 tienen el sistema de archivos SPIFFS:

electronica-digital-microcontroladores- ... -t153.html



Cabe decir que todo ello se programa en Arduino normal (excepto las funciones de WiFi). Si quieres ver un ejemplo 'gordo' de programa con ESP8266:
- Proyecto general: https://github.com/Naguissa/watering/
- Lectura de config desde la ROM del ESP8266: https://github.com/Naguissa/watering/bl ... g.ino#L781
- Escritura de config a la ROM del ESP8266: https://github.com/Naguissa/watering/bl ... g.ino#L855


Te recomiendo echarle un ojo. Los comandos AT no están mal, pero son poco fiables. La estabilidad que da poder meter todo en el mismo microcontrolador es brutal. ¡Y con el mismo programa base! Pero claro, si no te encaja por lo que sea, no puede ser.
Hola, la verdad es que seguramente se pueda, en principio no voy a utilizar ninguna entrada analogica, pero es que ya me cuesta bastante programar en Arduino, como para hacerlo en LUA, aparte que no se si me funcionarían las librerías que utilizo, ni el modulo GSM800, en princio, el ESP8266 solo lo quiero como AP, pero es que ni siquiera guarda la configuración, cada vez que se reinicia, hay que volver a enviarle los comandos AT+CIPMUX=1 (siempre arranca con valor 0, y AT+CIPSERVER=, ahora intentare implementar en arduino una rutina que detecte si el ESP se ha reiniciado, y que le envíe estos comandos, ayer probé con AT+UTC, y si lo grababa en memoria, pero ya no me enviaba datos por Serial, y tuve que cargarle de nuevo el firmware.
Miraré esos enlaces que has puesto, aunque creo que voy a esperarme al modulo BT, porque con el HC-06 funciona perfectamente, gracias.
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ó: 14 Feb 2018, 09:57 Es que es precisamente lo que te comentaba, NO hablo de programar en LUA o JS, sino de usar el ESP8266 como si fuese una placa Arduino, con el IDE Arduino y sus herramientas.

Sólo hay que añadir al IDE la compatibilidad con placas ESP8266: electronica-digital-microcontroladores- ... -t106.html

Luego, el mismo sketch de Arduino puedes subirlo al ESP8266. Bueno, normalmente hay que cambiar los pines usados, como con cualquier cambio de placa.

Por eso te decía, que si metes el sketch Arduino directamente en el ESP8266 no necesitas dos microcontroladores y los problemas que ello conlleva.

Además, como la ROM del ESP8266 es bastante grande, puedes usar una porción como si fuese un sistema de archivos y guardar ahí las configuraciones. E incluso subir archivos desde el propio IDE Arduino: electronica-digital-microcontroladores- ... -t153.html
Gracias Naguissa, mirare por ahí, la verdad es que no me quería complicar la vida, para mi diseño me vale que sea un simple AP, el único problema con los ESP8266 para el proyecto( ESP12 es el que yo utilizo), es que no se queda en la memoria ninguno de estos dos comandos, y cada vez que se resetea o apaga, hay que volver a introducirlos, tampoco encuentro la manera de hacerlo aunque fuese flasheando o modificando el firmware en donde vayan estos comandos grabados, los comandos son AT+CIPMUX=1 (siempre arranca a 0), Y AT+CIPSERVER=X,XX, (no recuerdo como viene configurado de fabrica, pero no me sirve), el problema es que tampoco se si programando en Arduino se queda en la flash del ESP, probare a ver, tengo varios trastos de estos, que vienen preparados con sus pulsadores, su conexión USB, y todo lo necesario, la única opción seria programarlo en la ROM, y que al arrancar fuese a buscarlo allí, tal y como dices, pero no se si con el firmware de Arduino seria aun mas inestable, el ultimo firmware que le he metido, parece bastante robusto, incluso le puedo cambiar el baudrate y funciona perfecto, y lo guarda en memoria, y aunque a mi me va bien tal y como esta, en los foros se lee mucho, que se apaga solo y se resetea de vez en cuando.
un saludo
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 507
Registrado: 04 Jul 2016, 11:17
Agradecido: 110 veces
Agradecimiento recibido: 134 veces

Re: Presentación

Mensaje sin leer por Naguissa »

Vale, el ESP12.

Pasos a seguir, para ir probando:
  1. A poder ser, realiza todo ésto con un ESP12 que no uses, ya que al cambiar el firmware te será difícil volver al anterior (se puede hacer, descargándolo de Internet y subiéndolo con una herramienta como esptool -también hay alguna con GUI para Windows-)
  2. Añade el soporte para ESP8266 en el IDE Arduino: electronica-digital-microcontroladores- ... -t106.html
  3. Opcional, pero útil: Añade soporte para subir archivos al SPIFFS del ESP8266 desde el propio IDE Arduino: electronica-digital-microcontroladores- ... -t153.html - Con ésto podrías crear un archivo en la carpeta "data" del proyecto que contenga la configuración básica.
  4. Haz un proyecto simple. Puedes usar el típico "blink", aunque deberás buscar los pines (creo recordar que si usas los números sin Ax ni Dx, coincide con el número de GPIO que aparece en el pinout. Aquí quizá deberás hacer algunas pruebas para comprobar que está correcto. Además, puedes usar el "Serial.print", te sacará la información por el mismo sitio que lo programas cuando esté ejecutándose.
  5. Mira los modos de funcionamiento (normal y flash mode, para poder programarlo): electronica-digital-microcontroladores- ... .html#p308 --- Si es el ESP12E, se conecta igual, aunque tenga mas pines en la parte inferior de las imágenes del hilo. Aquí puedes ver su datasheet y pinout.
  6. Para programar estos ESPs que no tienen USB, se ha de usar el modo Flash del punto anterior y conectar las lineas TX y RX al PC usando un USB-TTL de 3.3V. También puedes usar otro microcontrolador con USB que tengas a mano, pero ha de ser de 3.3V (el Leonardo no te sirve, es de 5V). Al programar, intenta usar alimentación externa para el ESP, pues consumen mucha energía y tienen 'picos' importantes que los adaptadores USB-TTL u otros microcontroladores usándolos como puente no aguantan.
  7. Seleccionar bien la placa en el IDE Arduino y las opciones de SPIFFS (tu placa tiene 4Mb, recomiendo que uses 1Mb de SPIFFS y 3Mb para el programa):
    ESP8266 ESP12 en Arduino IDE paso a paso - Seleccionar placa y SPIFFS
    ESP8266 ESP12 en Arduino IDE paso a paso - Seleccionar placa y SPIFFS
  8. Recuerda configurar también qué puesto serie usar, como siempre en el IDE Arduino. Compilar y subir como cualquier Arduino, pero en tu caso recordando poner el "Modo Flash". Cuando lo haya subido correctamente, quitar el modo flash y reiniciarlo (desconectar-reconectar los 3.3V). Si mantienes el puerto serie, puedes usar la consola del IDE con normalidad, aunque para evitar problemas recuerda cerrarla antes de volver a subir el programa.
  9. Si has añadido el soporte SPIFFS del punto 2, puedes subir el contenido de la carpeta 'data' de tu proyecto usando Herramientas --> ESP8266 Sketch Data Upload
  10. Un ejemplo de archivo de configuración en ese espacio SPIFFS que tiene dos líneas, la 1a con el SSID y la segunda con la contraseña, sería:

    Código: Seleccionar todo

    // Tus includes
    #include "FS.h"
    
    
    
    
    void setup() {
    	// lo que tengas
    
    	bool hasFS = SPIFFS.begin();
    	// Si deseas formatearlo en caso de que no lo esté; recomendable:
    	if (!hasFS) {
    		SPIFFS.format();
    		hasFS = SPIFFS.begin();
    	}
    }
    
    
    
    
    void loadConfig() {
    	String line;
    	unsigned int nline = 0;
    	fs::File dataFile = SPIFFS.open("/CONFIG.TXT", "r");
    	// Error
    	if (!dataFile) {
    		// Por ejemplo: Serial.println(Error opening SPIFFS:/CONFIG.TXT in ReadOnly mode - Not available.);
    		return;
    	}
    
    	// read lines from the file
    	while (dataFile.available()) {
    		line = dataFile.readStringUntil('\n');
    
    		switch (nline) {
    			case 0:
    				// line contendrá el SSID; hacer lo que se quiera con él
    				break;
    
    			case 1:
    				// line contendrá el password; hacer lo que se quiera con él
    				break;
    
    			// Por defecto, ignorar.
    		}
    		nline++;
    	}
    
    }
    
    
    void saveConfig() {
    	fs::File configFile = SPIFFS.open("/CONFIG.TXT", "w");
    	if (configFile) {
    		configFile.println(variable_con_El_SSID);
    		configFile.println(variable_con_El_password);
    	} else {
    		// ERROR
    		// Por ejemplo: Serial.println("ERROR saving CONFIG.TXT");
    	}
    }
    


Joselu escribió: 15 Feb 2018, 10:05
Naguissa escribió: 14 Feb 2018, 09:57 Es que es precisamente lo que te comentaba, NO hablo de programar en LUA o JS, sino de usar el ESP8266 como si fuese una placa Arduino, con el IDE Arduino y sus herramientas.

Sólo hay que añadir al IDE la compatibilidad con placas ESP8266: electronica-digital-microcontroladores- ... -t106.html

Luego, el mismo sketch de Arduino puedes subirlo al ESP8266. Bueno, normalmente hay que cambiar los pines usados, como con cualquier cambio de placa.

Por eso te decía, que si metes el sketch Arduino directamente en el ESP8266 no necesitas dos microcontroladores y los problemas que ello conlleva.

Además, como la ROM del ESP8266 es bastante grande, puedes usar una porción como si fuese un sistema de archivos y guardar ahí las configuraciones. E incluso subir archivos desde el propio IDE Arduino: electronica-digital-microcontroladores- ... -t153.html
Gracias Naguissa, mirare por ahí, la verdad es que no me quería complicar la vida, para mi diseño me vale que sea un simple AP, el único problema con los ESP8266 para el proyecto( ESP12 es el que yo utilizo), es que no se queda en la memoria ninguno de estos dos comandos, y cada vez que se resetea o apaga, hay que volver a introducirlos, tampoco encuentro la manera de hacerlo aunque fuese flasheando o modificando el firmware en donde vayan estos comandos grabados, los comandos son AT+CIPMUX=1 (siempre arranca a 0), Y AT+CIPSERVER=X,XX, (no recuerdo como viene configurado de fabrica, pero no me sirve), el problema es que tampoco se si programando en Arduino se queda en la flash del ESP, probare a ver, tengo varios trastos de estos, que vienen preparados con sus pulsadores, su conexión USB, y todo lo necesario, la única opción seria programarlo en la ROM, y que al arrancar fuese a buscarlo allí, tal y como dices, pero no se si con el firmware de Arduino seria aun mas inestable, el ultimo firmware que le he metido, parece bastante robusto, incluso le puedo cambiar el baudrate y funciona perfecto, y lo guarda en memoria, y aunque a mi me va bien tal y como esta, en los foros se lee mucho, que se apaga solo y se resetea de vez en cuando.
un saludo
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, 11:24 Vale, el ESP12.

Pasos a seguir, para ir probando:
  1. A poder ser, realiza todo ésto con un ESP12 que no uses, ya que al cambiar el firmware te será difícil volver al anterior (se puede hacer, descargándolo de Internet y subiéndolo con una herramienta como esptool -también hay alguna con GUI para Windows-)
  2. Añade el soporte para ESP8266 en el IDE Arduino: electronica-digital-microcontroladores- ... -t106.html
  3. Opcional, pero útil: Añade soporte para subir archivos al SPIFFS del ESP8266 desde el propio IDE Arduino: electronica-digital-microcontroladores- ... -t153.html - Con ésto podrías crear un archivo en la carpeta "data" del proyecto que contenga la configuración básica.
  4. Haz un proyecto simple. Puedes usar el típico "blink", aunque deberás buscar los pines (creo recordar que si usas los números sin Ax ni Dx, coincide con el número de GPIO que aparece en el pinout. Aquí quizá deberás hacer algunas pruebas para comprobar que está correcto. Además, puedes usar el "Serial.print", te sacará la información por el mismo sitio que lo programas cuando esté ejecutándose.
  5. Mira los modos de funcionamiento (normal y flash mode, para poder programarlo): electronica-digital-microcontroladores- ... .html#p308 --- Si es el ESP12E, se conecta igual, aunque tenga mas pines en la parte inferior de las imágenes del hilo. Aquí puedes ver su datasheet y pinout.
  6. Para programar estos ESPs que no tienen USB, se ha de usar el modo Flash del punto anterior y conectar las lineas TX y RX al PC usando un USB-TTL de 3.3V. También puedes usar otro microcontrolador con USB que tengas a mano, pero ha de ser de 3.3V (el Leonardo no te sirve, es de 5V). Al programar, intenta usar alimentación externa para el ESP, pues consumen mucha energía y tienen 'picos' importantes que los adaptadores USB-TTL u otros microcontroladores usándolos como puente no aguantan.
  7. Seleccionar bien la placa en el IDE Arduino y las opciones de SPIFFS (tu placa tiene 4Mb, recomiendo que uses 1Mb de SPIFFS y 3Mb para el programa):
    ESP8266 ESP12 en Arduino IDE paso a paso - Seleccionar placa y SPIFFS .png
  8. Recuerda configurar también qué puesto serie usar, como siempre en el IDE Arduino. Compilar y subir como cualquier Arduino, pero en tu caso recordando poner el "Modo Flash". Cuando lo haya subido correctamente, quitar el modo flash y reiniciarlo (desconectar-reconectar los 3.3V). Si mantienes el puerto serie, puedes usar la consola del IDE con normalidad, aunque para evitar problemas recuerda cerrarla antes de volver a subir el programa.
  9. Si has añadido el soporte SPIFFS del punto 2, puedes subir el contenido de la carpeta 'data' de tu proyecto usando Herramientas --> ESP8266 Sketch Data Upload
  10. Un ejemplo de archivo de configuración en ese espacio SPIFFS que tiene dos líneas, la 1a con el SSID y la segunda con la contraseña, sería:

    Código: Seleccionar todo

    // Tus includes
    #include "FS.h"
    
    
    
    
    void setup() {
    	// lo que tengas
    
    	bool hasFS = SPIFFS.begin();
    	// Si deseas formatearlo en caso de que no lo esté; recomendable:
    	if (!hasFS) {
    		SPIFFS.format();
    		hasFS = SPIFFS.begin();
    	}
    }
    
    
    
    
    void loadConfig() {
    	String line;
    	unsigned int nline = 0;
    	fs::File dataFile = SPIFFS.open("/CONFIG.TXT", "r");
    	// Error
    	if (!dataFile) {
    		// Por ejemplo: Serial.println(Error opening SPIFFS:/CONFIG.TXT in ReadOnly mode - Not available.);
    		return;
    	}
    
    	// read lines from the file
    	while (dataFile.available()) {
    		line = dataFile.readStringUntil('\n');
    
    		switch (nline) {
    			case 0:
    				// line contendrá el SSID; hacer lo que se quiera con él
    				break;
    
    			case 1:
    				// line contendrá el password; hacer lo que se quiera con él
    				break;
    
    			// Por defecto, ignorar.
    		}
    		nline++;
    	}
    
    }
    
    
    void saveConfig() {
    	fs::File configFile = SPIFFS.open("/CONFIG.TXT", "w");
    	if (configFile) {
    		configFile.println(variable_con_El_SSID);
    		configFile.println(variable_con_El_password);
    	} else {
    		// ERROR
    		// Por ejemplo: Serial.println("ERROR saving CONFIG.TXT");
    	}
    }
    



¡UFFF! me da un poco de miedito, me estudiaré todo lo que has puesto, y a ver si consigo entenderlo, se supone que al hacer esto, cuando arranque el ESP12, buscara el archivo data programado, y arrancará con esa configuración, eso es exactamente lo que quiero.
Muchas gracias, ya te contaré si consigo ponerlo en marcha, o me pongo a quemar ESPs, en realidad todo esto es por ahorrarme 20 metros de cable, y tener que dejar un teclado matricial en la calle, con el riesgo de que lo rompan o directamente se lo lleven, con el bluetooth es mucho mas sencillo, si no puedo con este micro, probaré con el HS-08 que tengo en camino, aunque he leído que tienen problemas de alcance.
Repito, muchas gracias por las molestias y un saludo
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 507
Registrado: 04 Jul 2016, 11:17
Agradecido: 110 veces
Agradecimiento recibido: 134 veces

Re: Presentación

Mensaje sin leer por Naguissa »

Joselu escribió: 15 Feb 2018, 13:35 ¡UFFF! me da un poco de miedito, me estudiaré todo lo que has puesto, y a ver si consigo entenderlo, se supone que al hacer esto, cuando arranque el ESP12, buscara el archivo data programado, y arrancará con esa configuración, eso es exactamente lo que quiero.
Muchas gracias, ya te contaré si consigo ponerlo en marcha, o me pongo a quemar ESPs, en realidad todo esto es por ahorrarme 20 metros de cable, y tener que dejar un teclado matricial en la calle, con el riesgo de que lo rompan o directamente se lo lleven, con el bluetooth es mucho mas sencillo, si no puedo con este micro, probaré con el HS-08 que tengo en camino, aunque he leído que tienen problemas de alcance.
Repito, muchas gracias por las molestias y un saludo

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! :)
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje