Mostrando entradas con la etiqueta ds18b20. Mostrar todas las entradas
Mostrando entradas con la etiqueta ds18b20. Mostrar todas las entradas

martes, 13 de marzo de 2018

Sensor de temperatura 2 módulos - ds18B20 Representación en OLED 128x64 SSD1306Z / GM009605 - Arduino y nRF24L01

Página principal

Sensor de temperatura
2 módulos - ds18B20
Representación en

OLED 128x64
SSD1306Z - GM009605

 
Arduino y nRF24L01
xsetaseta@gmail.com

En dos anteriores montajes, arolet.html ardusen.html había realizado un termómetro a distancia de dos módulos con el NRF24L01, y el segundo unas rutinas  en modo texto para manejar un OLED SSD1306Z.
Este montaje es la unión de los dos montaje antes mencionados.
Al tener casi todo el trabajo hecho, la unión de los dos programas no llegó a 2 horas con todo funcionando.

Esquema de los módulos emisores. (Realizado con https://easyeda.com/ )


Sensor de temperatura.


Esquema de la base de detectores. (Realizado con https://easyeda.com/ )


Circuito de la base de sensores con OLED.

Se puede observar que se muestra la temperatura de los dos sensores en la pantalla de OLED.
Debo de decir que si el módulo de temperatura se encuentra lejos, o tiene que traspasar algunas paredes, la señal se puede perder y no llegar la temperatura. En caso de que la base pida la temperatura a uno de los dos módulos y no le responda el módulo, se borra la indicación de temperatura. Esto es bueno y malo, hay veces y bastantes que no llegan los datos, dejamos de ver la temperatura, aunque hace 10 segundos la sabíamos. Es fácil cambiar el programa para que solo se pierda la visión si hace mucho que no recibimos respuesta del sensor, pero eso te lo dejamos como trabajo.
Recomiendo ver los anteriores montajes en que está basado este montaje.
Aunque algunos se extrañen, la frecuencia de 2.4GHz no es demasiado buena para traspasar objetos, dependiendo del tipo de material pueden perder bastante señal. Con visión directa es muy buena, puede llegar muy lejos con una buena antena y poca potencia, además de permitir transmitir muchos datos.
Para casos como este yo recomiendo los módulos de 433MHz-MX-05V, son bastante mas baratos y traspasan mejor las paredes.
Hace algunos años hice estos montajes, emisor y transmisor   con módulos de 433MHz.



PROGRAMA3


Hasta pronto.
Juan Galaz


Bibliografía:

arolet.html
ardusen.html

viernes, 23 de febrero de 2018

Sensores de temperatura de 2 módulos ds18B20 y nRF24L01

Página principal

Sensor de temperatura
2 módulos
ds18B20
Arduino y nRF24L01

xsetaseta@gmail.com

Hasta ahora solo había utilizado el nRF24L01 como emisor en un módulo y receptor en otro módulo.
En este montaje el mismo módulo nRF24L01 hace de emisor y receptor, gestionándose automáticamente.
Para probar el cambio de emisor/receptor se me ocurrió hacer dos circuitos detectores de temperatura que emiten a una base de sensores.
Los sensores de temperatura solo responde a petición de la base de sensores.
El funcionamiento es el siguiente:
  • -La base de sensores emite una petición de temperatura a un sensor determinado (en este caso solo hay 2 sensores, se pueden implementar hasta 255).
  • -La base de sensores se pone en escucha esperando la respuesta del sensor.
  • -Todos los sensores escuchan la petición de la base, pero solo el numero de sensor al que ha llamado responde.
  • -El sensor al que ha preguntado se pone en modo emisión, y manda la temperatura a la base.
  • -La base escucha al sensor que emite la temperatura y nos lo manda a través del puerto serie.
La petición a cada sensor se hace cada 8 segundos aproximadamente.
Cada sensor lee la temperatura del ds18B20  cada 10  segundos aproximadamente.

La estructura de los datos es la siguiente:
Base de sensores


Emisor
Receptor
Petición
0 (Base sensores) 1/2
1 (temperatura)

Sensor




Emisor
Receptor
Respuesta
Dato1
Dato2
1/2
0 (Base sensores)
1 (temperatura)



Aunque según vemos en el programa se envían 7 datos, solo se utilizan 5.
Los otros dos se pueden emplear para control de errores u otros datos extras.




Esquema de la base de detectores. (Realizado con https://easyeda.com/ )

Circuito de la base de sensores.





Esquema de los módulos emisores. (Realizado con https://easyeda.com/ )

Sensor 1

Sensor2. Alimentado con una PowerBank y con un extensor del ds18B20

Para diferenciar el sensor 1 del sensor 2, utilizo un puente en el pin D3 del arduino, seleccionando Sensor1 a masa y Sensor2 a Vcc.

Datos proporcionados por la base de sensores.
__Base Sensores__
SENSOR_2   18.9 C
SENSOR_1   19.5 C
SENSOR_2   18.9 C
SENSOR_1   19.5 C
SENSOR_2   18.9 C
SENSOR_1   19.5 C
SENSOR_2   18.9 C
SENSOR_1   19.5 C

Todo el montaje está realizado para probar la comunicación entre los diferentes módulos nRF24L01.
En ningún momento se pensó en la autonomía de los módulos, pues siempre están activos 32mA.  (62 horas con una powerBank de 2000mAh)
El nRF24L01 se puede poner en reposo lo mismo que el arduino, pudiendo reducirse el consumo a 1mA, con lo cual aumentaría la autonomía a 80 días.
Pero para hacer esto deberíamos cambiar la concepción del circuito y del programa, pero esto es otra historia.


PROGRAMA

Hasta pronto.
Juan Galaz

martes, 15 de marzo de 2016

Arduino - Reloj - Termómetro - MAX7219

Página principal

Arduino
Reloj - Termómetro
MAX7219
Matriz de leds


En esta ocasión realizo un reloj y termómetro que muestra alternativamente los datos.
Para el reloj en tiempo real utilizo un módulo de tiempo real que utiliza el chip DS1302.
Como sensor de temperatura utilizo el sensor DS18B20.
El diseño del programa está para colocar hasta 4 módulos MAX7219 en cascada, lo que significa 8 caracteres.
Aunque en el circuito solo se coloquen 2 módulos, los datos mandados a los módulos son para 4 módulos.
En esta ocasión utilizo un buffer de 32 bytes para almacenar la representación de los módulos.
Cuando se ha realizado todas las operaciones sobre el buffer, se llama al procedimiento Refres()  que vuelca todos los datos del buffer a los leds de los módulos.



Esquema del funcionamiento del MAX7219.



Módulo LED - MAX7219
Mando a distancia - PT2272


Esquema del circuito.



Detalle de conexionado.



Montaje del circuito.

   
Reloj y termómetro funcionando.

Con el mando a distancia cambiamos la hora de la siguiente forma:
Si pulsamos el botón  C  entramos en el modo de cambio de hora, poniéndose automáticamente las horas y los minutos a cero.
Si pulsamos el botón  A aumentamos los minutos, y si pulsamos B aumentamos las horas.
Para fijar la hora se pulsa el botón C y queda ajustada la hora.

También se puede utilizar pulsadores si el reloj tiene buen acceso y se puede eliminar el mando a distancia y el receptor.

Para el manejo del DS1302 utilizo la librería DS1302 .
Si se quiere ir al sitio de la librería es :  http://www.rinkydinkelectronics.com/library.php

Debemos tener muy en cuenta el consumo del circuito cuando aumentamos el brillo. Para una representación normal de dos números con el brillo al mínimo (0) , el consumo es de 50 mA todo el circuito. Pero si ponemos el brillo al máximo (15) el consumo aumenta a 300 mA.
El consumo máximo de cada matriz de leds a su máximo brillo y encendidos los 64 leds ronda los 300mA, un consumo considerable.
Debemos tener cuidado de no alimentar los módulos de leds directamente del arduino si colocamos el brillo al máximo.
De cualquier manera debemos colocar condensadores de desacoplo en la alimentación y alejar un poco el módulo receptor de las matrices de leds, producen interferencias y reducen la cobertura del mando a distancia.

En un próximo montaje colocare todos los componentes en un circuito impreso, quedando todo el circuito compacto.


PROGRAMA

Saludos.
Juan Galaz

Bibliografía:

http://seta43.blogspot.com.es/2015/11/marcador-controlado-por-bluetooth.html
http://www.prometec.net/scroll-max7219/
http://www.rinkydinkelectronics.com/library.php

domingo, 21 de febrero de 2016

Arduino power low. Termómetro máximos y mínimos con gráfica DS18B20 LCD Nokia PCD8544.

Página principal


Arduino
Termómetro máximos y mínimos con gráfica
DS18B20
LCD Nokia PCD8544
Atmega328 power low

Estaba realizando otro montaje para predecir el tiempo atmosférico y me salio este montaje, un termómetro con máximos y mínimos con gráficos. Debía crear una gráfica en un LCD PCD8544 para determinar la probabilidad de lluvia, y como sabeis me gusta realizar mis propias rutinas, y evitar cálculo con comas flotantes, además de intentar reducir lo máximo el tamaño del programa. Lo de reducir el tamaño del programa viene de lejos, cuando programaba micros y había que exprimir la poca memoria que había. La tendencia de la programación  de este tiempo, es utilizar librerías donde no se entiende lo que hacen, pero por lo contraría reducen el tiempo de desarrollo del proyecto aumentando considerablemente el tamaño del programa.
También he querido reducir lo máximo el consumo del circuito, para poder alimentarlo mediante pilas o baterías. Para esto he revisado dos de mis anteriores montajes , http://seta43.duckdns.org/ardurab.html  y  http://seta43.duckdns.org/arduraa.html  ,donde explico formas para poner en bajo consumo al arduino.
Como en muchos de mis montajes he querido poner todo el conjunto del programa en un único fichero, de esta forma no se necesita ninguna librería aparte.

El programa funciona de la siguiente manera:
  • Al iniciar el programa se realiza una toma de temperatura, colocando la temperatura máxima y mínima a dicho valor.
  • Se ponen a cero todos los valores de la gráfica.

En el bucle principal:
  • Se toma una temperatura, se muestra en el LCD.
  • Se compara con las temperaturas de máximos y mínimos par cambiar si es el caso.
  • Se calcula la diferencia  con el anterior valor de temperatura para añadirse a los valores de la gráfica.
  • El arduino se pone en modo de dormir hasta el próximo despertar, que está puesto a 1S.


Esquema del circuito.


Montaje de circuito. Fig. 1


Montaje de circuito. Fig. 2

void watchdogOn()

MCUSR = MCUSR & B11110111;
WDTCSR = WDTCSR | B00011000;
//WDTCSR = B00000101; //0.5S
WDTCSR = B00000110; //1S
//WDTCSR = B00100001; //8S

// Activa the watchdog timer interupt.
WDTCSR = WDTCSR | B01000000;
MCUSR = MCUSR & B11110111;
}
Si queremos modificar el tiempo en el cual el arduino se despierta para realizar una toma de temperatura,
modificamos la rutina watchdogOn() , donde existe 3 posibilidades 0,5mS , 1S y 8 Segundos.


Modelo
Voltios
Consumo
Arduino nano
3,31V
4,31mA
Arduino mini
2,4V
1mA
Arduino mini 3,3V
1,67mA(picos 8mA)
Arduino mini 5V
3,3mA(picos de 17mA)
Arduino mini 3V
1,4mA

Podemos observar que el consumo del arduino mini a 2,4V es de 1mA , aunque creo que podría ser menor si se quitan todos lo componentes que tiene el propio arduino.
Aún así alimentado el montaje con dos pilas de 1,5V y 1500mA, y haciendo una media de 1.2 mA, la autonomía es de alrededor de 52 días.

PROGRAMA

Saludos.
Juan Galaz


Bibliografía:
http://seta43.duckdns.org/ardurab.html
http://seta43.duckdns.org/arduraa.html
http://www.gammon.com.au/forum/?id=11497
http://www.surprisingedge.com/low-power-atmegatiny-with-watchdog-timer/
http://blog.dosbotones.com/2011/09/reducir-el-consumo-de-arduino.html
http://www.sparkfun.com/tutorials/309
http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/
http://www.engblaze.com/hush-little-microprocessor-avr-and-arduino-sleep-mode-basics/
http://www.fiz-ix.com/2012/11/low-power-arduino-using-the-watchdog-timer/
http://jeelabs.org/2009/05/16/power-consumption-more-savings/

jueves, 17 de diciembre de 2015

SERVER WEB CON ESP8266 Y ARDUINO NANO Servidor de temperatura ds18B20

Página principal

SERVER WEB CON ESP8266 Y ARDUINO NANO
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 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




 
Esquema del circuito.


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 

Consola.


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/


jueves, 12 de marzo de 2015

Servidor de temperatura con ESP8266 Y ARDUINO

SERVER WEB CON ESP8266 Y ARDUINO
Servidor de temperatura
ds18B20


Existe una versión nueva que funciona con un arduino Nano.
Versión actual 17/12/2015 - Arduino NANO - SERVER WEB con ESP8266 - Servidor de temperatura-ds18B20. http://seta43.blogspot.com.es/2015/12/server-web-con-esp8266-y-arduino-nano.html

El otro día me llego el modulo ESP8266 con el cual se puede tener acceso a wifi mediante comandos AT y utilizando un puerto serie. El modulo por si solo tiene un microcontrolador de 32 y el chip de wifi, por lo que puede trabajar sin ningún chip adicional, existe hasta un lenguaje para trabajar con el, pero eso esta fuera de mi montaje, yo lo voy a utilizar para controlarlo mediante el arduino.
Este montaje me ha llevado mucho tiempo, muchos dolores de cabeza, mas de lo que yo creí.

-El primer problema con el modulo es su alimentación, funciona con 3.3V , lo normal en estos dispositivos. Lo normal sería utilizar los 3.3V que nos proporciona el arduino, pero lo que ocurre con este dispositivo, es que puede llega a consumir hasta 215mA, y esto no los puede entregar la placa de arduino. Existen dos opciones, utilizar un alimentador externo de 3.3V, o emplear un viejo truco de electrónicos, el utilizar la caída de tensión (0.7V) de los diodos de silicio. He empleado dos diodos en serie que producen una caída de tensión de 1,4V que restados a los 5V del arduino nos proporciona una tensión de 3.6V con la que podemos alimentar el módulo. Normalmente esta tipo de módulos tiene una cierta tolerancia en cuanto a la alimentación, el que no se quiera arriesgar que utilice otro diodo en serie, bajando de esta forma la alimentación a 2.9V. He colocado un condensador en los 3.6V para aplanar la alimentación.
-El segundo problema que nos encontramos es el adaptar la señal del módulo ESP8266 que funciona a 3.3V con el del arduino que funciona a 5V. En teoría el módulo admite los niveles del arduino sin ningún tipo de adaptador, y así funcionaba con el arduino duemilanove, pero con el MEGA no funcionaba, por lo que tuve que hacer el adaptador de niveles con resistencias.
Ahora ya tenemos alimentado el módulo y adaptada la señal TX3 del arduino para que se comunique bien con el módulo. La señal TX del modulo se conecta directamente a la entrada RX3 del arduino, no hace falta ningún adaptador.
En un primer momento quería realizar el montaje con un arduino duemilanove utilizando la emulación del puerto serie mediante software, utilizando la librería SoftwareSerial, pero me fue imposible por varias razones. El buffer que utiliza esta librería es de 64 bytes, se puede aumentar modificando el fichero SoftwareSerial.h , y cambiando la linea #define _SS_MAX_RX_BUFF 64, por la cantidad que queramos. Pero no llegaba a la cantidad necesaria para que funcionara bien. Para comprobar esto y hacer practicas con los comandos podemos probar este código, y veremos lo que pasa cuando la cantidad de datos que manda el modulo son muchos, no los puede procesar.

Programa para arduino uno utilizando emulación serie mediante software.
#include <SoftwareSerial.h>
SoftwareSerial BT1(3, 2); // RX | TX

void setup()
  {  Serial.begin(9600);
     BT1.begin(9600);
  }

void loop()
  {
     if (BT1.available())
         { char c = BT1.read() ;
           Serial.print(c);
         }
     if (Serial.available())
         {  char c = Serial.read();
            BT1.print(c);
         }
   }

Respuesta de la tarjeta módulo ESP8266 a una petición web mediante la emulación serie mediante software.
+IPD,3,342:GET /HolaArduino HTTP/1.1
Host: 192.168.1.102:4040
User-Agetoa01i ;:. o11r/0Iel0
e /,ltxl,lixq,;8c-g:-s0n;5;.c-o:idtCcnel
Podemos observar como se pierden los datos cuando los datos mandados por el módulo son muchos. Si aumentamos el buffer se pierden menos, pero ni siquiera podemos ver el OK de final de transmisión.
Os aconsejo la página http://www.prometec.net/arduino-wifi/ , donde explica como se realiza la conexión a un router, y vemos los problemas que tiene.
Después de muchos dolores de cabeza, decidí el utilizar el arduino MEGA que tiene 4 puertos serie. Utilizando el puerto 3 por hardware del arduino MEGA se realizara todo el montaje, donde los bytes no se pierden, y se puede realizar todas la pruebas con normalidad.

Programa arduino MEGA para practicar los comandos AT del módulo ESP8266
void setup() {
  // initialize both serial ports:
  Serial.begin(9600);
  Serial3.begin(9600);
}

void loop()
{
 
  if (Serial3.available())
  {
    int inByte = Serial3.read();
    Serial.write(inByte);
   }

  if (Serial.available())
  {
    int inByte = Serial.read();
    Serial3.write(inByte);
   }
}
Para ver los comandos traducidos del módulo ESP8266 recomiendo la página http://granabot.es/modulo-wifi-esp8266/  donde están traducidos al español, es una muy buena página.
Ya tenemos comunicado el módulo ESP8266 a el arduino MEGA, y todas las ordenes AT funcionan perfectamente. Todo no puede ser perfecto, algunas veces el módulo se bloquea y no funciona el reseteo por software, hay que buscar un método para que sea por hardware.
He 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.
El programa.
Lo primero que debemos hacer con el módulo es realizar la conexión con el router.
//  WIFI_SSID  WIFI_CLAVE
String cmd="AT+CWJAP=\"setamodem\",\"contraseña\"\r\n";

int connectWiFi()
{
  int error;
    error=0;
    Serial.println("WIFI_CONECTAR"); 
    Serial3.println("AT+RST");  readS(4000);
    if(!sendOrden("AT+CWMODE=1\r\n","OK","AT+CWMODE=1",200)) error++; 
    if(!sendOrden(cmd,"OK","setamodem",2000)) error++;
    if(!sendOrden("AT+CWMODE=3\r\n","OK","AT+CWMODE=3",200)) error++;  
    if(!sendOrden("AT+CIFSR\r\n","OK","AT+CIFSR",200)) error++;  
    if(!sendOrden("AT+CIPMUX=1\r\n","OK","AT+CIPMUX=1",200)) error++;  
    if(!sendOrden("AT+CIPSERVER=1,4040\r\n","OK","AT+CIPSERVER",200)) error++;
    if(!sendOrden("AT+CIPSTO=30\r\n","OK","AT+CIPSTO=15",200)) error++;
    Serial.println("FIN_WIFI");
    return(error);
}
En esta función se realizan todos los pasos para la conexión, y verifica que no existe error.
El error se devuelve en la función, que el programa lo procesa activando el pin 13 del arduino si se encuentra conectado al router. Es la forma de verificar visualmente la conexión mediante un Led.
De vez en cuando el módulo ESP8266 no responde, y se desconecta del router, esto hay que monitorizarlo, y volver a conectarse si está desconectado.

Monitorización de la conexión cada 30 segundos.
delay(1); time--;
if(time<1)
      {     
       time=30000;
       //dectecta si sigue conectado
        if(!sendOrden("AT+CWJAP?\r\n","OK","conectado",200))
             if(connectWiFi())
               {
                 Serial.println("Reseteo HART");
                 digitalWrite(ledReset, LOW);
                 delay(800);
                 digitalWrite(ledReset, HIGH);          
               }
      }
Como voy voy a realizar un servidor web que visualice la temperatura de varios sensores ds18B20 , utilizo la monitorización cada 30 segundos para realizar la toma de temperatura de los sensores.
En el bucle principal del programa se chequea los datos que proceden del módulo ESP8266. Cuando aparece la cadena +IPD , se procesa la petición, sirviendo la página web.

Chequeo de los datos que proceden del módulo ESP8266.
if (Serial3.available())
         {         
          digitalWrite(ledPin, LOW);        
          readS(200);      
          z=response.indexOf("+IPD");
          if(z>0)
              {                         
                Serial.print("Encontrado +IPD en ");  Serial.println(z);
                Serial.print("IPD="); ipd = response.substring(z+5,z+6).toInt(); Serial.println(ipd);
                //espera al OK de fin de cabecera
                sendOrden("","OK","ipd",200);    
                paginaWeb(ipd);
                readS(200);              
              }
          digitalWrite(ledPin, HIGH);                 
         } 

Visión en un navegador
Montaje eléctrico
La explicación del programa es fácil, pero la realización es difícil, los tiempos de respuesta del módulo son variables, y se tiene que esperar hasta que el módulo responda.
Y para colmo el módulo se bloquea y se desconecta con facilidad si mandas varias peticiones web a la vez.
Esta es mi experiencia con el módulo ESP8266, un dolor de cabeza, espero que le sirva a alguien.

Saludos.
Juan Galaz
Bibliografía:


domingo, 1 de febrero de 2015

Añadiendo dos sensores de temperatura DS18B20

Añadiendo dos sensores de temperatura DS18B20

El  DS18B20 es un sensor de temperatura que puede tener una resolución de 12bits.
Lo bueno de este sensor es que funciona con solo dos cables, se alimenta del propio bus de datos, y podemos tener en varios en el mismo cable de dos hilos. Recomiendo leer varios tutoriales sobre el funcionamiento del sistema de comunicaciones OneWire, http://en.wikipedia.org/wiki/1-Wire .


Conexionado del DS18B20.


DS18B20 conectado con dos cables.


Montaje con los dos sensores de temperatura DS18B20



PROGRAMA


Saludos
Juan Galaz