SERVER WEB CON ESP8266 Y ARDUINO NANO
Servidor de temperatura
ds18B20
Servidor de temperatura
ds18B20
Este montaje es la continuación de mi anterior montaje SERVER WEB CON ESP8266 Y ARDUINO MEGA .
Para entender este montaje conviene leer el anterior
Cuando realice el montaje con arduino Mega, siempre me quedó el motivo por el cual no funcionaba en un arduino normal.
Después de investigar, descubrí el motivo, y era la poca memoria RAM de que dispone el arduino normal.
Mirando por internet encontré la página http://booleanbite.com/web/optimizacion-de-memoria-de-nuestro-codigo-de-arduino/ donde explicar la forma de optimizar la memoria RAM del arduino.
La primera es colocar F delante de las cadenas que se impriman. Serial.print(F("Hola Mundo"));
La segunda es utilizar prog_char en vez de char en cadenas de caracteres que no se vayan a modificar.
Lo que se consigue es que estas cadenas se almacenen en la memoria de programa, liberando RAM.
Otra de las cosas que he cambiado es utilizar cadenas de caracteres en vez de String , de esta forma se reduce bastante el tamaño del programa.
He utilizado alguna que otra trampa para adaptar señales TTL de 3.3V a 5V utilizando solo una resistencia de 330 ohmios.
He asumido que existe la resistencia de 1K entre las señales RX y TX del adaptador usb/serie a el arduino, y de esta forma poder conectar el ESP8266 al arduino, y de está forma poder utilizar la comunicación hardware del arduino.
Importante, mientras este conectado el ESP8266 al arduino, no se puede programar el arduino, por lo cual debeis desconectar los pin TX y RX del ESP8266 al programar el arduino.
Para obtener 3.3V he utilizado dos diodos en serie que reducen la tensión de 5V a 3.6V .
Para saber que IP tiene nuestro servidor de temperatura, y luego dejarlo como IP estática en nuestro router, hacemos un chequeo de nuestra red.
En Linux y como root. |
nmap -sP 192.168.0.1-254 Starting Nmap 6.00 ( http://nmap.org ) at 2015-12-17 06:55 UCT Nmap scan report for 192.168.0.1 Host is up (0.00079s latency). MAC Address: xx:67:xx:19:D9:1A (Unknown) Nmap scan report for 192.168.0.150 Host is up. Nmap scan report for 192.168.0.151 Host is up (0.077s latency). MAC Address: xx:91:xx:34:46:C3 (Hangzhou Yulong Conmunication Co.) Nmap scan report for 192.168.0.160 Host is up (0.099s latency). MAC Address: 18:FE:34:9C:CB:C1 (Unknown) Nmap done: 254 IP addresses (4 hosts up) scanned in 48.12 seconds |
Prototipo del circuito.
Montaje eléctrico.
Montaje eléctrico.
Si queremos ver lo que ocurre, debemos de conectar una consola (convertidor_ USB->serie_TTL). Ping 10 RX y 11 TX. |
WIFI_CONECTAR _ok_AT+CWMODE=1 _error_setamodem2 _ok_setamodem2 _ok_AT+CWMODE=3 _ok_AT+CIFSR AT+CIFSR 192.168.4.1 192.168.0.157 OK _ok_AT+CIPMUX=1 _ok_AT+CIPSERVER _ok_AT+CIPSTO=15 FIN_WIFI ERRORES de conexion=0 _ok_conectado 22,3 22,1 |
Visión de los distintos sensores (hasta 4) en un navegador.
El primer sensor está a temperatura ambiente, el segundo en el congelador.
PROGRAMA
Saludos.
Juan Galaz
Bibliografía:
SERVER WEB CON ESP8266 Y ARDUINO MEGA
http://granabot.es/modulo-wifi-esp8266/
http://www.prometec.net/arduino-wifi/
http://83.56.32.125/esp8266.html
http://seta43.duckdns.org/electro.html
http://arduino-pda-control.blogspot.com.es/
http://booleanbite.com/web/optimizacion-de-memoria-de-nuestro-codigo-de-arduino/
buenas tardes compañeros, me pasa algo con mi ESP8266, al llevar en linea aproximadamente 5 horas deja de responder y la ip es inaccesible .. alguna idea de como solucionarlo ??
ResponderEliminarAlgunas veces el módulo se bloquea y no funciona el reseteo por software, hay que buscar un método para que sea por hardware.
ResponderEliminarHe utilizado es utilizar el pin 12 del arduino para resetear el módulo, este se resetea cuando se pone a cero el pin RST del ESP8266, por seguridad los he unido mediante una resistencia de 1K.
Mira mi montaje:
http://seta43.duckdns.org/arwifi.html
Donde expongo todos los problemas que tuve con el ESP8266, el montaje fue un dolor de cabeza.