Ir al contenido principal

►Sensor de temperatura DS1822, Arduino UNO y C#

Sensor de temperatura DS1822, Arduino UNO  y C#


Introducción

En el post anterior llamado (Sensor de temperatura DS1822 Y Arduino UNO) vimos como se puede conectar un sensor de temperatura de la familias de sensores Dallas ahora llamados maxim, otorgando información de las especificaciones del sensor, diagrama de conexión del sensor y el arduino y el código fuente para echarlo a andar anexando fotografías de lo antes mencionado

Pues bueno de esta manera ahora vamos a utilizar la información del post anterior y le añadiremos C# con la finalidad de poder ver los resultados que arroja el sensor atravez del IDE de arduino pero ahora de forma gráfica y por lo cual necesitamos c#. este lenguaje de programación lo utilizaremos en el IDE de Microsoft Visual Studio por lo tanto si no se cuenta con este IDE habra que hacer la instalación del IDE mencionado, el cual lo podemos descargar de la pagina oficial de microsoft en modo de prueba la URL es la siguiente:

Microsoft Visual Studio ☺

Herramientas a utilizar

Entonces vamos a repasar que es lo que necesitaríamos para poder hacer este proyecto
  • Arduino UNO.
  • Sensor de temperatura Dallas DS1822 (Ahora maxim).
  • Hacer las conexiones correspondientes como se dijo anteriormente en el post de (Sensor de temperatura DS1822 Y Arduino UNO)  si no has visto el post da click aqui para ver.
  •  Tener Instalado Miscrosoft Visual Studio para utilizar C#.
  • Algo muy importante y descrito en el manual del sensor Dallas (ahora maxim) esque estos sensores trabajan con tecnologia de ONE WIRE BUS por lo tanto necesitaremos una libreria para C# la cual nos ayudara a comunicarnos de manera factible con el arduino y el sensor.
  • Adicional tener conocimientos básicos de programación.

Demostración al momento de que termines este proyecto

A continuación se mostraran imágenes de las cuales cuando termines con este proyecto tendras los siguientes resultados:

las imagenes mostradas a continuacion son un recorte de la pantalla en donde se ejecuto el proyecto

 En esta imagen se alcanza a apreciar de manera grafica la ejecución de los resultados del sensor de temperatura Dallas DS1822 (ahora maxim) el cual esta conectado con arduino y esta siendo ejecutados dos códigos el que cargamos en la placa de Arduino y el que se esta ejecutando en C# el cual mas adelante explicaremos.

Lo que se puede ver en el grafico es un combo box en el cual se muestran los puertos conectados en donde se tendra que identificar donde esta el arduino, un text box con un mensaje de "se conecto el puertesito arre :)" el cual confirma que la conexion del arduino en el CPU es exitosa, y donde se muestran dos text box mas los cuales en uno se muestra la temperatura con decimales y en otro la temperatura en grados sin decimales

Nota: Se hace aclaración que este termometro esta en grados centigrados (celcius) para pasar a fahrenheit se tendria que hacer conversiones en el codigo que se carga en la placa de Arduino y en el que se ejecuta en C#


Desarrollo del proyecto 



1.- Abrir el IDE  de Visual Studio 

En este caso yo tengo Visual Studio Community 2015 


2.-Te dirigirás a archivo-->Nuevo-->Proyecto

Haras estos pasos ya que de esta manera eligieras el tipo de proyecto y en que lenguaje de programacion y que tipo de plataforma lo quieres crear si en un ejecutable aplicación de escritorio (Win forms) o pagina web aplicacion web (Web forms)


3.-

Código completo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Voltimetro
{
    public partial class Form1 : Form
    {
        String dato;
        String PuertoSeleccionado;
        public Form1()
        {
            InitializeComponent();
            String[] Puertos = SerialPort.GetPortNames();
            foreach (String Mostrar in Puertos)
            {
                comboBox1.Items.Add(Mostrar);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            serialPort1.Close();
            serialPort1.Dispose();
            Close();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            serialPort1.Close();
            serialPort1.Dispose();
            PuertoSeleccionado = comboBox1.Text;
            serialPort1.PortName = PuertoSeleccionado;
            serialPort1.Open();
            CheckForIllegalCrossThreadCalls = false;
            if (serialPort1.IsOpen == true)
            {
                label3.Text = "Se conecto el puertesito arre :)";
            }
            else
            {
                label3.Text = "No se conecto el puertesito arre :(";
                return;
            }
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            dato = serialPort1.ReadLine();
            float numero = float.Parse(dato);
            //double voltaje = Math.Round(((numero * 5) / 1023), 2);
            float num1 = numero / 100;
            // int num2 = (int)Math.Round(numero,1);
            String n = num1.ToString();

            char val = n[0];
            char val2 = n[1];
            String val3 = val.ToString()+""+val2.ToString();
            //int n2 = int.Parse(n);
            //float n3 = float.Parse("0," + n.Split('.')[0]);
            label6.Text = val3;
            label4.Text = num1.ToString();

            switch (val3)
            {
                case "0":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/0grados.png");
                    break;
                case "1":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/1grados.png");
                    break;
                case "2":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/2grados.png");
                    break;
                case "3":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/3grados.png");
                    break;
                case "4":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/4grados.png");
                    break;
                case "5":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/5grados.png");
                    break;
                case "6":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/6grados.png");
                    break;
                case "7":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/7grados.png");
                    break;
                case "8":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/8grados.png");
                    break;
                case "9":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/9grados.png");
                    break;
                case "10":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/10grados.png");
                    break;
                case "11":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/11grados.png");
                    break;
                case "12":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/12grados.png");
                    break;
                case "13":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/13grados.png");
                    break;
                case "14":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/14grados.png");
                    break;
                case "15":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/15grados.png");
                    break;
                case "16":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/16grados.png");
                    break;
                case "17":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/17grados.png");
                    break;
                case "18":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/18grados.png");
                    break;
                case "19":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/19grados.png");
                    break;
                case "20":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/20grados.png");
                    break;
                case "21":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/21grados.png");
                    break;
                case "22":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/22grados.png");
                    break;
                case "23":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/23grados.png");
                    break;
                case "24":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/24grados.png");
                    break;
                case "25":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/25grados.png");
                    break;
                case "26":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/26grados.png");
                    break;
                case "27":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/27grados.png");
                    break;
                case "28":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/28grados.png");
                    break;
                case "29":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/29grados.png");
                    break;
                case "30":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/30grados.png");
                    break;
                case "31":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/31grados.png");
                    break;
                case "32":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/32grados.png");
                    break;
                case "33":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/33grados.png");
                    break;
                case "34":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/34grados.png");
                    break;
                case "35":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/35grados.png");
                    break;
                case "36":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/36grados.png");
                    break;
                case "37":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/37grados.png");
                    break;
                case "38":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/38grados.png");
                    break;
                case "39":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/39grados.png");
                    break;
                case "40":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/40grados.png");
                    break;
                case "41":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/41grados.png");
                    break;
                case "42":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/42grados.png");
                    break;
                case "43":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/43grados.png");
                    break;
                case "44":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/44grados.png");
                    break;
                case "45":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/45grados.png");
                    break;
                case "46":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/46grados.png");
                    break;
                case "47":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/47grados.png");
                    break;
                case "48":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/48grados.png");
                    break;
                case "49":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/49grados.png");
                    break;
                case "50":
                    pictureBox1.Image = Image.FromFile("C:\\Users/LinearTech/Documents/Visual Studio 2015/Projects/Voltimetro/Voltimetro/Imagenes/50grados.png");
                    break;
                default:
                    break;
            }
        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }
    }
}





Comentarios

Entradas más populares de este blog

Bienvenidos

Este blog es una base de conocimientos de distintos proyectos tecnológicos los cuales pueden ser proyectos simples o proyectos complejos según la magnitud de los mismos. El objetivo es almacenar un conjunto de  ideas, conceptos o datos de proyectos que puedan ser consultados para reutilizarlos en nuevos proyectos o con fines de aprendizaje.