Tabla de contenido:

Controlador de red de sensor de temperatura tolerante a fallas: 8 pasos
Controlador de red de sensor de temperatura tolerante a fallas: 8 pasos

Video: Controlador de red de sensor de temperatura tolerante a fallas: 8 pasos

Video: Controlador de red de sensor de temperatura tolerante a fallas: 8 pasos
Video: Todo sobre Sensor De Temperatura De Aire Acondicionado |Sintomas,Causas,Consecuencias y Soluciones. 2024, Noviembre
Anonim
Controlador de red de sensor de temperatura tolerante a fallas
Controlador de red de sensor de temperatura tolerante a fallas

Este Instructable le muestra cómo convertir una placa Arduino Uno en un controlador de propósito único para un conjunto de sensores de temperatura DS18B20 capaces de aislar automáticamente los sensores defectuosos.

El controlador puede administrar hasta 8 sensores con Arduino Uno. (Y mucho más con Arduino Mega o con una ligera modificación de software).

Paso 1: Historia detrás …

Hace un par de años configuré una red de sensores de temperatura DS18B20 en el invernadero de mi padre para mi controlador de calefacción basado en pi. Desafortunadamente, la confiabilidad del controlador era pobre principalmente debido a las frecuentes interrupciones del sensor. Probé múltiples configuraciones: energía parásita, energía directa, conectar la red a pi y conectarla a una placa personalizada basada en Atmega (cuyo propósito principal era impulsar motores de válvulas).

¡Qué peor, la confiabilidad de la red de sensores disminuyó principalmente durante las noches de invierno, mientras que casi no hubo problemas en verano! ¿Qué diablos está pasando aquí?

Para investigar qué sensor causa el problema, surgió la necesidad de encenderlos / apagarlos uno por uno o habilitar cualquier combinación de ellos.

Paso 2: cómo funciona

DS18B20 (el sensor de temperatura) utiliza un protocolo patentado de 1 cable que permite que varios sensores compartan un enlace de datos común (ese cable). Este enlace de datos común está conectado a uno de los pines GPIO de Arduino y a + 5 V a través de una resistencia pull-up; nada raro, muchos instructables cubren esta configuración.

El truco es que los cables de alimentación de cada sensor están conectados a sus propios pines GPIO (dedicados), de modo que puedan encenderse y apagarse por separado. Por ejemplo, si un sensor tiene un cable Vcc conectado al pin n. ° 3 y GND al pin n. ° 2, establecer el pin n. ° 3 en HIGH proporciona energía para el sensor (no es de extrañar) mientras que el pin n. ° 2 en LOW proporciona tierra (una pequeña sorpresa para me). La configuración de ambos pines en el modo de entrada aislará (casi) por completo el sensor y su cableado; sin importar qué falla (por ejemplo, un atajo) ocurra dentro de él, no interferirá con los demás.

(Es justo decir que conectar el cable de datos a otra cosa conectada de alguna manera a Arduino causará interferencia, pero es casi imposible en mi configuración).

Tenga en cuenta que DS18B20 consume hasta 1,5 mA, mientras que un pin Arduino puede generar / hundir hasta 40 mA, por lo que es perfectamente seguro alimentar los sensores mediante pines GPIO directamente.

Paso 3: Material y herramientas

Material

  • 1 placa Arduino UNO
  • 3 encabezados de clavija hembra: 1 × 4, 1 × 6 y 1 × 6 (o más largos, los corté de un encabezado de 1 × 40)
  • un pegamento
  • un trozo de alambre de cobre desnudo (al menos 10 cm)
  • una cinta aislante
  • consumibles de soldadura (alambre, fundente …)

Instrumentos

  • equipos de soldadura (plancha, soportes,…)
  • alicates de corte pequeños

Paso 4: Arreglen las cosas juntos

Arregle las cosas juntos
Arregle las cosas juntos

Pegue los encabezados de los pines hembra a los encabezados de la placa Arduino:

  1. Encabezado 1 × 4 junto al encabezado de clavija "analógica", de lado a lado con clavijas A0 – A4
  2. Encabezado 1 × 6 junto al primer encabezado de clavija digital, de lado a lado con clavijas 2-7
  3. Encabezado 1 × 6 junto al segundo encabezado de clavija digital, de lado a lado con clavijas 8-13

Tenga en cuenta que mis encabezados son un poco más largos … supongo que no tiene contras ni pros.

Paso 5: Conecte las cosas juntas

Conecte las cosas juntas
Conecte las cosas juntas
Conecte las cosas juntas
Conecte las cosas juntas

Cableado de la línea de bus de 1 hilo:

  1. Conecte todos los cables de los cabezales pegados en el lado "digital" (adyacente a los pines 2-13) soldando un trozo de cable desnudo a ellos
  2. Suelde el extremo de este cable al cable de clavija SCL (conectado internamente a A5)
  3. Conecte todos los cables del cabezal pegado en el lado "analógico" (pines A0-A3) soldando un trozo de cable desnudo a ellos
  4. Suelde el extremo de este cable a los cables A4 y A5 (usé A5 y A6 porque tengo una placa que tiene A6 y A7)
  5. Suelde una resistencia de 4k7 entre el otro extremo de este cable y el cable de clavija de +5 V

Notas:

  • Los pines A0-A5, aunque están marcados como "analógicos", también se pueden utilizar como pines digitales GPIO.
  • El pin SCL en el lado "digital" está conectado internamente a A5 en el lado "analógico"; conectado a los encabezados, esto forma la línea de bus de 1 cable
  • A4 (utilizado como entrada analógica) mide la tensión del bus con fines de diagnóstico. Esa es la razón por la que se conecta directamente al bus.
  • Usé A6 en lugar de A4 porque tengo una placa que tiene A6 y A7; Originalmente, quería usar A7 como maestro de bus de 1 cable, pero estos dos pines no se pueden configurar para ser GPIO digitales.
  • Para evitar una conexión incorrecta de los conectores del sensor, puede omitir / cortar el contacto no utilizado (no conectado a ningún cable) de cada conector macho e insertarlo en el orificio correspondiente en el cabezal de la clavija pegada.

Paso 6: Conexión de los sensores

Conexión de los sensores
Conexión de los sensores

Acaba de crear una matriz de ocho enchufes de 2 × 2. Puede soldar y ensamblar conectores Dupont 2 × 2 a cables de sensor y conectarlos a estos enchufes. El software configura los pines para que los pines pares sean pines GND y los pines impares sean pines Vcc. Para cada sensor, el pin Vcc es solo el pin GND + 1. Uno de los otros dos pines del zócalo 2 × 2 (uno de esos dos en el encabezado pegado y soldado) es para el cable de datos del sensor. No importa cuál uses.

Paso 7: software del controlador

Software del controlador
Software del controlador

El boceto de SerialThermometer ejecuta el controlador. Puedes encontrarlo en github. Abra y cargue usando Arduino IDE.

Paso a paso:

  1. Abra su IDE de Arduino e instale la biblioteca DallasTemperature y todas sus dependencias a través de Sketch | Incluir biblioteca | Administrar bibliotecas.
  2. Clonar el repositorio de git. Si no está familiarizado con git, descargue y descomprima este zip en cualquier lugar de su computadora.
  3. Abra el boceto de SerialThermometer en su IDE de Arduino.
  4. Conecte su placa Arduino modificada a su computadora mediante un cable USB (forma estándar)
  5. Sube el boceto usando tu IDE de Arduino
  6. Abrir Serial Monitor a través de Herramientas | Monitor en serie
  7. Debería ver la salida de diagnóstico que contiene varias mediciones físicas seguidas de lecturas de temperatura: cada toma de sensor en una sola línea. Si el recuento de sensores difiere cuando se encienden por separado y cuando se encienden todos juntos), el diagnóstico se repite hasta que se resuelve. Pero no se preocupe, ¡el diagnóstico también proporciona mediciones de temperatura!

Consulte la imagen anotada para obtener más detalles sobre la salida de diagnóstico.

Paso 8: Conclusión

Tengo la fuerte sensación de que las fallas de mi red de sensores fueron causadas por la alta capacitancia de mi cableado largo: alrededor de 10 m de cable LIYY 314 (3 × 0, 14 mm²) para cada sensor. Mis experimentos mostraron que la comunicación se interrumpe si hay una capacitancia alrededor o superior a 0.01 μF entre el bus de 1 cable y la tierra, creo que debido a que la resistencia pull-up 4k7 no puede tirar del bus a + 5 V lo suficientemente rápido para cumplir con los límites del protocolo.

En mi configuración, sucede cuando más de 3 sensores están conectados entre sí. Luego, el controlador realiza un ciclo de diagnóstico, midiendo la temperatura sensor por sensor (lo que también es genial …)

Pero también el quinto sensor (28: ff: f2: 41: 51: 17: 04: 31) se ve bastante mal (tal vez una soldadura incorrecta), ¡así que puedo investigar más!

Recomendado: