in , ,

Termómetro Digital Remoto (Domótica)

¿Qué temperatura habrá en el cuarto de los niños? ¿Arrancará el coche con este frío? ¿Está fresca esta botella de vino? ¿Este refrigerador funciona bien? ¿Qué temperatura tiene el invernadero? Las preguntas que nos hacemos a diario y que involucran a la temperatura llegan a ser incontables. Es muy económico y sencillo comprar un termómetro digital y llevarlo contigo donde vayas para saber qué temperatura hace. Pero cuando la temperatura a controlar se encuentra a más de mil metros de donde tú estás, la situación se pone más compleja. Si no puedes estar en el lugar ni en el momento de la medición, la solución está muy cerca de ti. Ya has aprendido a construir el instrumento de medición de calor y también hemos visto todo acerca de las redes RS485. Llegó la hora de ensamblar las ideas y poner en marcha el sistema remoto de control de temperatura que necesitas.

Según Wikipedia, el término Domótica proviene de la unión de las palabras domus (que significa casa en latín) y tica (de automática, palabra en griego, que significa “que funciona por sí sola”). Además agrega que se entiende por Domótica al conjunto de sistemas capaces de automatizar una vivienda, aportando servicios de gestión energética, seguridad, bienestar y comunicación, y que pueden estar integrados por medio de redes interiores y exteriores de comunicación, cableadas o inalámbricas, y cuyo control goza de cierta ubicuidad, desde dentro y fuera del hogar. Se podría definir como la integración de la tecnología en el diseño inteligente de un recinto.

Automatizar una casa y hacer que funcione por sí sola de manera inteligente puede interpretarse de innumerables maneras. No existe un “piso” que determine de manera fehaciente dónde comienza el concepto de inteligencia de un sistema, es decir, cuál sería la funcionalidad mínima que debería tener. Por lo tanto, si este fundamento no está definido, mucho menos lo estará la forma en que deba hacerse. En función de esto debes tener en cuenta que es el ojo del observador, y no un estándar definido, el que cuantifica la magnitud de automación de un sistema. Un ejemplo claro de esto es Manolo, mi vecino, que se imagina enormes y poderosos ordenadores que hacen funcionar un sencillo interruptor crepuscular.

Desde X-10 o RS485 hasta ZigBee, pasando por USB, WiFi o FireWire, puedes elegir a tu conveniencia la arquitectura y la tecnología de la capa física que utilizarás en la red de tu casa automatizada. Puedes definir la capa Física con los medios que tengas a tu alcance o según tus preferencias; también puedes hacerlo con la capa de Comunicación y de Aplicación (las tres categorías comprendidas dentro del modelo de referencia de la OSI). Todos los sistemas tienen virtudes y desventajas, y si lo que deseas es aprender a descubrir esta fascinante rama de la tecnología, tienes una Web llena de ejemplos y datos técnicos. En este artículo aprovecharás el termómetro I2C que ya has conocido, y a través del estándar RS485 lo incorporarás a lo que podrá considerarse tu primera experiencia en el mundo de la Domótica. Luego, si deseas, puedes comprar (a miles de euros) un sistema completo de automatización del hogar, o puedes optar por seguir disfrutando del que ya tienes. Lo importante es que con este artículo aprenderás un poquito más acerca de lo que ya eres capaz de construir tú mismo.

Completando el circuito del Termómetro I2C
Si comparas la imagen del circuito que te mostramos aquí con la del Termómetro por I2C ya publicado, notarás el agregado del MAX487 que, como te explicamos antes, es compatible pin a pin con el MAX485 y con el económico SN75176, que es el que utilizaremos en el proyecto de este artículo.

Circuito completo del Termómetro con conectividad RS485

No profundizaremos en la explicación del funcionamiento del programa, ni del estándar RS485, sino que te invitamos a que leas sus respectivos artículos para ayudarte a comprender acerca de lo que aquí se habla y explica.

Agregados al programa del PIC
Hasta ahora habíamos utilizado 37 líneas en el programa inicial del termómetro I2C que cargamos en el microcontrolador. Es decir, aún disponemos de 13 líneas para agregar al firmware y permitir la incorporación de nuestro termómetro a una red RS485.

Lo primero que tenemos que agregar son las declaraciones de los parámetros de trabajo de una de las secciones internas del microcontrolador conocida con el nombre USART (acrónimo de Universal Synchronous/Asynchronous Receiver Transmitter, cuyo equivalente en castellano sería Transmisor y Receptor Sincrónico/Asincrónico Universal). Se trata de un periférico para la transmisión de datos en formato serie, que utiliza técnicas de transmisión sincrónica o asincrónica, según se configure el periférico. Nosotros utilizaremos el modo asincrónico, a una velocidad de 38400 bps.
También vamos a sumar al listado del firmware una nueva variable que llamaremos ACCIÓN (debido a su desempeño dentro de la comunicación entre el ordenador y el termómetro).

Definición de la comunicación serie en el encabezado del Firmware

Escuchar: uno de los pilares del funcionamiento de la red
Una vez que el firmware haya ejecutado la rutina de medición de temperatura y la haya mostrado en el display, procederemos a “escuchar” durante medio segundo la posible actividad existente en la red RS485. Si durante ese lapso de tiempo “nadie nos llama”, la rutina reiniciará el ciclo. Esta compleja e inteligente operación se realiza en Protón Lite mediante una sola línea de código:

A pesar de que la ayuda (Help) del programa es muy buena, repasemos brevemente la instrucción, ya que es una de las bases del buen funcionamiento de la red: la instrucción HSERIN indica que vamos a recepcionar datos seriales con la USART del microcontrolador, en los pines asignados para tal fin. 500 son los milisegundos que esperará la USART en estado de recepción antes de continuar con su trabajo y abandonar la instrucción. Es decir, en este punto el programa se detiene y “escucha” durante medio segundo. Si no recepciona ningún dato útil en ese periodo de tiempo, saltará (cual si fuese una instrucción GOTO) hacia la etiqueta que tiene a continuación del tiempo de espera, que en nuestro caso es 500 milisegundos. La etiqueta o label es INICIO, por lo que saltará a reiniciar el ciclo.

Si, en cambio, durante ese lapso de tiempo recibe algún dato útil, lo cargará en la variable ACCIÓN en forma de dato decimal mediante el fragmento de código [DEC ACCION]. Si esto ocurre, el programa no retornará a la etiqueta INICIO sino que seguirá hacia la siguiente línea para procesar el dato recibido y almacenado en la variable ACCIÓN. En síntesis, el programa entra en un intervalo de escucha durante un tiempo determinado. Si no escucha nada, reinicia el ciclo del programa. Si en cambio escucha algo útil, lo almacena en una variable y sigue su curso para procesar el dato ingresado.

Estructura de la instrucción HSERIN

Una vez obtenido el dato y cargado éste en la variable, nos fijamos si es nuestro “nombre”, es decir, controlamos si el ordenador nos está llamando a nosotros o si está hablando con otros terminales conectados a la red. En nuestro caso le asignaremos a nuestro termómetro el nombre “89”. ¿Por qué 89? Por azar, porque te dará suerte en la Lotería, y porque es cualquier número comprendido dentro de un BYTE (0-255). Con una sencilla instrucción de condicionamiento IF – THEN comprobaremos el valor almacenado en la variable, y si es nuestro nombre, continuaremos con la siguiente línea del programa. Si no es nuestro nombre, haremos caso omiso al valor leído y retornaremos a reiniciar el ciclo de lectura de temperatura con la instrucción GOTO INICIO. De la real comprensión y ejecución de las instrucciones detalladas dependerá el buen funcionamiento de la red.
Si el dato recibido coincide con nuestro nombre sabremos que tenemos un trabajo por hacer: transmitirle al ordenador la información que tenemos almacenada en las variables que guardan los datos de temperatura leída. Para este proceso debemos seguir una secuencia muy elemental que vemos a continuación:

Recepción del dato a través de la instrucción HSEROUT

En esta etapa final, el primer paso es vaciar la variable ACCIÓN para que, cuando se repita el ciclo de instrucciones, esté vacía y no quede cargada con el dato residual de la llamada a nuestra unidad. Si esto sucediera, el microcontrolador quedaría enviando, a cada paso del programa por ese sector de instrucciones, la información allí almacenada sin que el ordenador se lo haya pedido. Esto provocaría sin dudas una colisión permanente de datos que dejaría a la red inutilizada. Luego, activamos el SN75176 para transmisión, ponemos en estado lógico alto el pin correspondiente del microcontrolador, según el esquema (PORTB 0), y esperamos un lapso de tiempo de 100 milisegundos hasta que los circuitos internos del SN75176 efectivamente entren en modo transmisión. Debes tener en cuenta que si no esperas este tiempo, el microcontrolador estará enviando datos mientras el transceptor (el SN75176) aún se encuentra a la escucha o tornando su funcionamiento hacia el modo de transmisión, es decir, aún cuando se encuentra en una fase indeterminada de funcionamiento. Una vez pasado este tiempo, el ordenador estará esperando los datos que le enviemos. Atención en este punto: “nadie transmite cuando se le antoja”. Los dispositivos conectados a la red transmitirán sólo cuando el ordenador les indique hacerlo. Mientras tanto estarán haciendo sus respectivos procesos: esperando un llamado o estudiando si fue a uno de ellos a quien el ordenador llamó. Por lo tanto, la red estará libre de intercambio de datos, y el ordenador aguardará la llegada de nuestros datos (porque fue a nosotros a quienes llamó).

Para transmitir los datos utilizamos la instrucción HSEROUT de una manera muy simple: transmitiendo BYTE a BYTE los datos que se encuentran entre comas:

HSEROUT [DEC C, 44, F]

La instrucción transmite los valores de las variables en forma decimal gracias a la utilización del modificador DEC. Cuando éste no es utilizado, se transmite el símbolo o caracter ASCII que corresponde a dicho número. El 44 es la coma (símbolo gramatical).

Determinación de temperaturas bajo cero y terminadas en 0,5°C

La variable F se transmite de igual forma e indica si la información decimal de temperatura a mostrar termina en cero o en cinco. Una vez transmitidos todos los datos, el sistema vuelve al estado de recepción colocando en estado bajo al PORTB 0 y esperando 10 milisegundos a que el SN75176 haga efectivo el estado de recepción. Luego de esta acción final, el ciclo se reinicia y vuelve a repetirse hasta desconectar la energía al sistema.

Programa a utilizar en el ordenador
Al igual que con el software empleado para desarrollar el firmware del microcontrolador, la aplicación que hará funcionar nuestra red puede realizarse con cualquiera de las múltiples opciones gratuitas que se encuentran en la Web. En nuestro caso, y manteniendo una línea de coherencia (continuar trabajando en BASIC), hemos optado por utilizar Visual Basic 6 Working Model. Si tienes la versión completa de este software, podrás crear tus propios archivos ejecutables (.EXE) para distribuir y hasta comercializar tus proyectos. La apariencia final que puede adquirir la aplicación dependerá del gusto personal de cada realizador.

Imagen del ejemplo que te presentamos

Si decides incorporar varios termómetros al bus I2C o a la red RS485, tal vez necesites varias presentaciones simultáneas. Nosotros te mostramos el ejemplo para una sola medición, con la inclusión de una sencilla indicación en dígitos de la temperatura en formato de texto. Para una mejor impresión visual colocamos inmediatamente arriba un gráfico que varía en función del tiempo de medición transcurrido y que muestra la evolución de la temperatura a través de los minutos y las horas. Solicitando datos cada 1 minuto, la visualización del gráfico se torna más amplia y no se pierde su derrotero tan rápidamente.

El ejemplo propuesto en la imagen muestra de manera clara varias etiquetas con texto fijo, un Picture Box donde se graficará la evolución de las mediciones, y un espacio para la representación numérica del último dato de temperatura leído. Se trata de un termómetro ideal para un criadero de animales, donde la temperatura nunca será superior a 65°C ni menor a 0°C. También es una buena opción para el monitoreo inteligente de la temperatura interior de nuestra casa o de alguna dependencia específica dentro de ella.

Otra ampliación muy útil sería colocar dentro del Picture Box (o debajo de él) el lapso de tiempo que ocupa la línea dibujada por el registro obtenido. De esta forma podemos informarnos de la temperatura que había en el lugar una o dos horas antes. El método comentado ahorraría la utilización de un RTC (DS1307 o similar) y muchas líneas de código.

Al programa que hemos desarrollado a modo de ejemplo puedes descargarlo desde aquí. La aplicación se basa en solicitar (mediante una única instrucción formada por un byte) el valor de temperatura que esté registrando el sistema ubicado en la locación remota. Este “trabajo” se realiza periódicamente cada un intervalo de tiempo que tú predefines al desarrollar la aplicación funcional en el ordenador.

La transmisión de datos dentro del bus se realizará a 38400 bps. Cada un minuto (60000 milisegundos), el puerto serie le enviará al termómetro (a través de la interfaz RS232-RS485) la instrucción para que éste le responda con la información esperada. Cada un minuto, el software colocará en estado bajo al terminal RTS de la salida RS232, para que el MAX232 lo transforme en un valor TTL de estado alto y para que, de esta forma, se active la transmisión del MAX485 (SN75176 en nuestro caso). Una vez realizada esta operación de colocar la interfaz en modo transmisión, se procederá a transmitir la instrucción que recibirá el módulo o el terminal en el lugar donde se encuentre instalado. La información enviada será un solo byte, al que enviaremos en 20 oportunidades para asegurarnos de que sea escuchado en el destino deseado. Todo lo explicado se efectiviza en VB6 con las instrucciones mostradas en el siguiente gráfico:

Ejemplo del manejo de datos a través del puerto serie

Cuando Proton+ LITE recibe la información enviada, ésta debe estar seguida de un carácter “no numérico”. Es decir, si deseamos enviar desde el ordenador un valor comprendido entre 0 y 255, éste debe ir acompañado inmediatamente después de un caracter ASCII no numérico. Si enviamos la información 34 sin otro dato adicional, el firmware del microcontrolador quedará esperando indefinidamente el final de la instrucción con un caracter “no numérico” cualquiera. Un envío correcto sería 34X, 34B o 34$, etc. Para nuestra aplicación decidimos utilizar 89# como instrucción maestra que le indicará al microcontrolador que le estamos solicitando el dato de temperatura. (Observa la imagen anterior para ayudarte a comprender)
Este dato se cargará en la variable “buferentrada” y luego será utilizado por el programa para visualizarlo tanto en forma numérica como en forma gráfica (gráfico generado dentro del Picture Box). Si además tuviéramos otro termómetro, podríamos nombrarlo y otorgarle la instrucción 78; o 56=. Pero cualquiera sea la instrucción enviada en forma de byte, deberá estar terminada por un caracter “no numérico” para ser interpretada por el firmware empleado en el microcontrolador.
Esto ejemplifica el orden que puede llevar un protocolo de comunicación RS485:

  • Se abre el bus y se pone la interfaz en transmisión, colocando el terminal RTS del COM1 en estado bajo.
  • Se transmite el byte, seguido de un caracter no numérico: 89# (en reiteradas oportunidades para asegurar su llegada al módulo de destino).
  • Se pasa el bus a modo recepción y se espera a que el módulo 89 responda con la información almacenada.
  • Si hubiese más de un módulo “colgado” del bus, éstos serían interrogados (cuando dispongamos ) dentro del programa más apropiado.

De esta forma, y organizando los tiempos de interrogación y respuesta de los módulos conectados al bus, nos aseguramos de que nunca habrá colisión de datos, ni errores de transmisión o recepción.

En el video puedes ver en marcha el programa, la interfaz, y el termómetro armado sobre un protoboard. La consulta de datos se realiza en el video cada 100 milisegundos para poder mostrar de manera rápida cómo se ven los cambios de temperatura, tanto en el gráfico como en el texto.

Para finalizar, podemos agregar que la aplicación mostrada es la implementación más elemental de un protocolo de comunicación. Existen tantos métodos como cantidad de información que se quiera intercambiar a través del bus. Otro método podría incluir la dirección o nombre del módulo interrogado para que el mismo responda indicándole al ordenador que se encuentra listo para recibir una instrucción (para los casos en que el terminal pueda recibir varias instrucciones diferentes).

Si dispones de las versiones completas de los programas utilizados, podrás ampliar las prestaciones del sistema consultando al módulo remoto acerca del estado en que se encuentra el relé RL1 (activado o no) para saber si la ventilación (o calefacción) se ha puesto en funcionamiento, por ejemplo.
Por supuesto que abordaremos la mayor cantidad de opciones posibles en futuras aplicaciones para que puedas ver y experimentar el intercambio de datos a través del bus RS485. Nuestro próximo objetivo será trabajar con Audio: potenciómetros digitales y preamplificadores con controles de tono, ambos manejados por I2C y conectados vía RS485 para lograr una súper-consola de audio que jamás hayas soñado. ¿Te interesa? ¡Pues, te esperamos!

Reportar

¿Qué te pareció?

Escrito por Mario

23 Comments

Leave a Reply
  1. Que buen Artículo, justo lo que necesitaba!!

    Lo voy a volver a leer y planteo aqui mis dudas, muchas gracias Mario por el artículo 😉

  2. A mi me parece un excelente articulo. Con esto resolveremos nuestras dudas sobre la temperatura de todos los dias. Sin necesidad de acudir al estado de tiempo en paginas o entros.

    Bueno y esperemos sean pronto las nuevas aplicaciones que mario nos dice que juntaran en un futuro.

    Si quieres una pelea o ser mi alumno entra a: http://tu-papo.elbruto.es

    Saludos a todos.

  3. Por ahí debo de tener un proyecto que por hobby hice. Era un lm35 conectado al PIC12f683 y este conectado a una PC con Linux, el programa esta hecho en C++. Este programa lo que hace es:

    1.- Pide 4 lecturas la PIC via RS232
    2.- Filtra las lecturas por si hay un error de ruido en alguna de las lecturas
    3.- Guarda el resultado en una base de datos (mysql) con hora y fecha de lectura
    4.- Genera una página web donde presenta los datos de la temperatura actual y los máximos y mínimos que han ocurrido en las lecturas

    Otro programa accede a la base de datos y genera una gráfica de como se ha comportado la temperatura a lo largo del día y también es mostrado en la página.

    Tomando en cuenta lo que haz hecho voy a rescatar el proyecto y los archivos para en mis tiempos libres ir agregando una red de sensores para la casa.

    Saludos y gracias por el artículo

  4. offtopic:

    por al amor de neil armstrong alguien me puede decir como cambiar mi imagen de avatar ?
    he visto a muchos invitados con imagenes alguien me dice como ?
    de antemano gracias

  5. Tengo una consulta, como se explico en el artículo se evita las colisiones en el bus mediante la transmision de datos solo cuando el servidor lo pida, pero si quiero que el Microcontrolador me envie un mensaje cuando ocurra determinado evento, por ejemplo cuando alguien entre a una habitación de la casa y el sensor de movimiento lo detecte, entonces la unica forma que veo que se haga esto es que el servidor este enviando constantemente mensajes de forma secuencial a todos los dispositivos conectados al bus RS485, y que se envien tambien las respuestas a los eventos secuencialmente. Aqui habria que tener un manejo de ciclos muy cuidadosos, ya que si ocurre un evento y no coincide con la llamada del server, se podria perder la informacion.

    Otra pregunta, los microcontroladores atmel de la famila 8051 (como el 89c52) trabajan con transmisión serial utilizando niveles TTL, para conectarlo al bus RS485 necesito el MAX487 como en el esquema para el pic?

    Muchas gracias por el artículo, es realmente muy util.

    Saludos

  6. Gracias Mario una vez mas excelente!
    Me cuesta un poco comprender como es que se sincronizan el receptor y el transmisor, (estoy mas acostumbrado a un tipo de transmisión "hand shake").

    1- cuando el microcontrolador manda un dato a la PC , digamos "72" , y en el BUS hay otro modulo q casualmente tiene el nombre "72" , no interpretara este que la PC intenta comunicarse con el ?

    2- ¿Como sabe el transmisor que el receptor esta listo para recibir la información?

    3- En el caso de que se necesite transmitir mas de un byte, por ejemplo toda una estructura de datos, o bien una matrix de la cual no se conoce el tamaño , como sabe el receptor que ya recibió todos los datos?

    • 1) El micro solo responde 72 mas otras cosas en respuesta al llamado de la PC, de modo que los demás siguen escuchando (LISTEN).
      Un esclavo no puede enviar un mensaje a otro esclavo; ni tampoco puede enviar un mensaje al maestro si éste no se lo ha pedido previamente.
      2) Todos los receptores están siempre listos para recibir información, y solo cuando lo hacen es que cambian a modo transmisión y la PC a modo recepción.
      3) Primero siempre se conoce la longitud de bytes a enviar, si fuera una matriz RGB (de una cámara) para seguir tu ejemplo es conocida ya que un electronico sabe con que elementos está trabajando ya que debe consultar todas las hojas de datos para hacer su diseño.
      Lo que no sabes es que el paquete de datos transmitido es muy parecido en ambos casos pero desde la PC al micro tiene esta forma
      [SLAVE_ID ] [LEN] [ ] [ ] . . . [ ] [CRC HI] [CRC LO]
      Slave_ID es la identificación del esclavo
      LEN la longitud en bytes
      luego van los bytes indicados por [ ]
      CRC es la redundancia cíclica que en otras palabras es una forma de detectar si el mensaje recibido es igual al mensaje enviado. De no serlo se rechaza y de acuerdo a la complejidad del protocolo de comunicación utilizado se le pide al nodo que lo retransmita, tantas veces como permita un tiempo límite o TIMEOUT supeado el cual se aborta la secuencia.

      • Gracias por tu respuesta Robocardo!
        Tu respuesta me ayuda a comprender mejor , aun asi me quedan un par de dudas :
        1) En que parte del código se incluye todo el protocolo "[SLAVE_ID ] [LEN] [ ] [ ] . . . [ ] [CRC HI] [CRC LO]"
        2) como es eso que un slave no puede comunicarse con otro slave o con el master ? no podría establecer comunicación entre 2 de mis módulos con la Pc apagada? o generar alertas desde los distintos módulos a la PC ?

        Saludos!

  7. Muchas gracias por el articulo, muy interesante…
    Alguien me podria ayudar con un modulo efectivo de radiotransmicion, que alcance mas de 30m, lo que quisiera hacer es un control de switches a distancia

  8. Cada vez es mas interesante pero mas complejo y difícil de digerir, lo imprimiere también el articulo anterior y lo leeré con calma cuando me traslade a la universidad el lunes =)

    De tu articulo anterior la parte del el filtrado con el tiroides y la vuelta de alambre, no la puede explica aparte es interesante…
    ^_^ muy contento con esta sección de neoteo.

  9. Hola a tod@s !
    He estado (y estoy aún) algo complicado con los tiempos repartiéndolos entre el trabajo diario, la confección de nuevos artículos y mi vida personal, pero prometo responder a la brevedad los mensajes de consultas. Espero sepan comprenderme y esperarme.
    Todo lo que esté a mi alcance en conocimientos lo voy a estar volcando por aquí. Seguramente habrá cosas que no sepa, les diré "no sé" y es probable que me ponga a estudiarlas. Dénse una vuelta seguido por aquí. Apenas pueda, me pongo a responder todo.
    Saludos Cordiales y gracias por estar ahí ! 🙂

  10. Estimado señor Mario Sacco:

    Soy Uruguayo y si bien soy recibido en Ingenieria electrica y electronica en esto del control por PC soy nuevo ya que he tenido que reinventarme dado que con 49 años de edad me jubilaron por incapacidad fisica ( problemas en la columna vertebral ) y como vera el unico trabajo que puedo realizar por mi incapacidad es con una computadora
    De ahi es que surge este interes en el control por el puerto serie de la PC en redes RS-485 usando la PC como maestro y los microcontroladores PIC como esclavos para desarrollar sistemas para domotica o industriales (tipo Scadas) con formularios de control en la PC realizados en VB 6.0 o VB 2005 o 2008.Net como le exprese anteriormente soy nuevo en todo esto y hay muy poca informacion en internet sobre el tema y al encontrar esta pagina y con una persona como usted que se ve que conoce mucho del tema y desea compartir su conocimiento para ayudar a personas como uno que recien empieza en este tema,esto es excelente! y gracias de su parte.Mis dudas sobre el proyecto son las siguientes:Usted da un ejemplo de red RS-485 pero con un solo microcontrolador (PIC) y explica que desde la computadora es donde se controla todo el transito que va a existir en la red y en el ejemplo realizado en VB 6.0 explica que manda a pedirle al PIC la informacion de la temperatura que recogio del sensor cada ( 60.000 milisegundos) o sea 1 minuto y hasta ahi voy entendiendo ahora la pregunta es:yo necesito hacer un control igual que el del ejemplo pero con 1 PC (maestro) y 8 microcontroladores PIC 16F628A en una red RS-485 y aca es donde empieza el problema si imaginaramos que cada PIC tuviese conectado un sensor de temperatura al mismo tendriamos en la red 8 PIC con 8 lecturas diferentes tomadas de 8 sensores,ahora bien cuando realizo el programa en la PC si para pedirle informacion al PIC 1 como usted hizo en el ejemplo lo hago con intervalos de tiempos de 1 minuto ( 60.000 milisegundos) como temporizo los otros 7 pedidos de informacion desde la PC hacia los otros 7 microcontroladores PIC para que me manden la informacion de la temperatura recogida por el sensor correspondiente para que no colisionen los pedidos de informacion en la red y el programa se tranque o deje de funcionar por ejemplo: Si al PIC 1 le doy 1 minuto para pedirle informacion al PIC 2,3,4,5,6,7,8,como temporizo los pedidos de informacion desde la PC para que nada colisione? ejemplo: PIC Nº2 2 minutos,PIC Nº3,3 minutos asi hasta llegar al PIC Nº8 esta es mi pregunta es asi que se realiza el programa de pedido de informacion desde la PC poniendo distintas temporizaciones a cada pedido de informacion?
    Como realizo esta interfaz ya sea en VB 6.0,2005 o 2008 .Net?

    Es lo que nadie explica en estos proyectos como temporizar los pedidos de informacion desde la PC cuando tengo por ejemplo 8 PIC conectados en una red RS-485 para que esta funcione bien y nada colisione

    Tal vez la pregunta que le estoy haciendo es muy basica pero sepa comprender que recien comienzo con esto y no he encontrado informacion en internet que lo explique detalladamente
    Agradeceria si fuera posible me lo pudiera explicar sin ningun compromiso de su parte y cuando usted pueda ya que no encuentro en ningun lado la respuesta a este tema,y como le explique antes lo necesito para trabajar (imaginese ser jubilado en Uruguay) si uno no ayuda la jubilacion con alguna entrada extra de dinero la cosa se hace muy dificil y en caso que decidiera no ayudarme o no poder hacerlo por motivos personales de su parte,agradeceria si me pudiera pasar el nombre de algun otro tecnico que lo pueda hacer o decirme de algun libro a comprar (en idioma español) que trate todos estos temas y asi yo aprenderlo y no importunarlo mas a usted o a otras personas

    Espero sepa comprender mi situacion y ojala usted pueda asesorarme sobre lo planteado
    PD;Por ultimo me olvidaba de otra situacion que se puede dar y es que si ademas desde esos 8 microcontroladores PIC tuviera conectada el encendido de luces en cada uno de ellos y esto lo haria de botones realizados en el mismo formulario en VB donde recibo la informacion de las 8 mediciones de temperatura un boton de encender y apagar luz por cada PIC como tambien introduzco estos mandatos desde la PC hacia el microcontrolador de encender o apagar luz mientras la PC automaticamente segun la temporizacion que le di esta pidiendo al microcontrolador PIC en ese momento que le mande lecturas de la temperatura en los 8 microcontroladores PIC entonces esta es la otra pregunta:como incluyo en el programa realizado en VB estos mandatos de encender o apagar luz sin que colisione nada y todo funcione bien ( ya que estos mandatos los ejecuto en cualquier momento.

    No se si he sido claro con las preguntas espero que si y entienda cuales son mis dudas

    no le estoy pidiendo que me realice un programa para mi exclusivamente

    solo le estoy pidiendo si me da una idea de como hacer una red de estas caracteristicas temporizando todo para que nada colisione ni en la PC ni en su puerto serie ni en la red RS-485 compuesta por 8 microcontroladores PIC

    Agradezco su tiempo

    La excelente informacion que brinda a travez de esta pagina y como le dije antes ojala pueda ayudarme ya que no se consigue informacion al respecto o dirigirme a otro tecnico que lo haga o algun libro en español que trate del tema ( se ve que usted es una persona muy ocupada y no quiero abusar de su tiempo ) Sin mas me despido de usted,su familia y la gente de Neoteo

    PD:Solo le pido en cuanto pueda si me manda un correo a mi direccion josepe8@yahoo.com.ar si puede o no ayudarme y en caso de no poder igual gracias por todo pero agradezco que me lo informe a mi correo asi seguire buscando quien me puede ayudar
    Desde Uruguay Juan Pettinari

  11. Es bastante interesante el tema, se podran conectar varios sensores de temperatura en el mismo circuito con tiempos entre cada uno y de ser asi podra el PIC tomar lecturas independientes y almacenarlos para enviarlos de tal forma en la secuencia que los analiza, ejemp. sensor 1, sensor 2, sensor 3, sensor 4, o de otra forma : Cosina, baño, recamara niños, recamara niñas, sala, Etc. Etc.
    y las pueda recibir el programa Remoto de tal forma ,,,

  12. alguien sabe como usando la red wifi que tengo activada todo el día en casa, puedo descargar los datos con de un emisor que ubique en la parte externa de la casa para determinar temperatura, precipitación, presión brillo solar, rayos UV, y con ello preveer aguaceros fuertes o alertas de alta radiación UV? que sensores usar y como hacerlo, mil gracias. inicialmente me interesa con urgencia el medidor de lluvia que envie datos a mi router y el programa que los lea en el PC, nuevamente gracias.

  13. hola mario.
    gracias por compartir con nosotros tus proyectos.
    me gustaria confeccionar el termometro digital remoto, pero no manejo muy bien el diseño del esquema electrico a PCB, Mario o algún foreno seria tan amable de pasarmelo¿?.
    gracias

Responder a dds Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Weaponizers: Destrucción robótica en la tele

Elevated: Alucinante animación 3D en solo 4K