Hola Visitante

Autor Tema: Proyecto: Sensor de temperatura Online  (Leído 2515 veces)

Berni69

  • Administrator
  • *****
  • Mensajes: 25
    • Ver Perfil
Proyecto: Sensor de temperatura Online
« en: Julio 01, 2011, 09:27:14 am »
Buenos dias a todos, hoy voy a intenetar explicar como hacerse un temometro online, para ello necesitaremos un PC con puerto de serie, y conexion a internet, un pic y un sensor LM-60

Para hacer la parte física del termómetro necesitamos:
Diodo 1n4148
PIC 18F2550
SENSOR LM60
LED de cualquier tipo
XTAL 16Mhz
C x2 22pF
MAX232
C x4 1uF
C 10uF
R 100M
R 3.3K
R x2 1K
DB9 Male
Más adelante subire el esquema y una pequeña mejroa para adaptar la Vref del conversor analogico

Tambien necesitaremos el programador de pics para cargarle este Hexadecimal:
www.bitsdelocos.es/temp/main.hex
Este programa lee la entrada analoigca del pueeto  AN0 del pic y la envia por el puerto del RS232

En la parte del ordenador, debeis programar algo al estilo:
Código: (csharp) [Seleccionar]
  private void timer1_Tick(object sender, EventArgs e)
        {
            int i;
            if (serialPort1.IsOpen)
            {
                if (serialPort1.BytesToRead > 0)
                {
                    try
                    {
                        i = serialPort1.ReadByte();
                        textBox1.Text += i.ToString()+\"\\\\n\";
                        textBox1.Refresh();
                        // string SQL=\"SELECT Temp FROM Temperatura WHERE index = '0' \";


                        string SQL = \"UPDATE Temperatura SET Temperatura.Temp=@temp , Temperatura.STATUS='ON' WHERE Temperatura.index=0 \";


                        connection.Open();
                        data.UpdateCommand = new MySqlCommand(SQL, connection);
                        data.UpdateCommand.Parameters.AddWithValue(\"@temp\", i.ToString());
                        //data.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;

                        data.UpdateCommand.ExecuteNonQuery();
                        //cmd.ExecuteNonQuery();
                        connection.Close();
                    }
                    catch { }

                }

            }
        }



Para que os reciba la informacion y os envie una query a la base de datos. Yo en este caso he usado la web www.db4free.com que me proporciona una pequeña base de datos y acceso desde el exterior, ya que 1and1 no me permite acceder a ellas.

A este pequeño codigo en C# hay que añadirle una subrutina que cambie a ºC la informacion que recibe por el puerto de serie ya que ahora solo marca valores que se corresponden a la tension que le llega del LM-60

Y finalmente una sencilla web en php me lee los valores de la base de datos y los saca por pantalla:
www.bitsdelocos.es/temp/temp.php

Código: (php) [Seleccionar]





Temperatura



Temperatura:$dbhost=\"db4free.net\"; 
$dbusuario=\"USER_DB\";
                     
$dbpassword=\"PASS\";
                     
$db=\"NOMBRE_DB\";       

$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);
mysql_select_db($db, $conexion);
$consulta=mysql_query(\"select * from Temperatura where Temperatura.index=0\",$conexion) or die( \"Error en $consulta: \" . mysql_error() );
$app=mysql_fetch_array($consulta);
echo $app['Temp'].\"

\";

echo \"Estado:\".$app['STATUS'];
mysql_close($conexion);
?>





Y este es el pequeño proyecto que he realizado, mas adelante esta planeado de que cuando suba de una determinada temperatura emita un senyal de algun tipo, un led encendido, un rele para encender el ac, un led infrarojo que emita para intentar encender el ac,...

Si teneis ideas de este tipo proponedlas a ver si entre todos sacamos algo en claro XD