Unidad de temperatura y cronómetro con Arduino


Una ayuda para la temperatura y el temporizador de los pollos escaldados
Temperatura de arduino terminada y temporizador

Unidad de temperatura y temporizador

Hice esta unidad de temperatura y temporizador de arduino para ayudar a escaldar los pollos antes de desplumarlos. Incorpora un sensor a prueba de agua para monitorear la temperatura del agua y una cuenta regresiva para el tiempo de inmersión. Tanto la temperatura como la cuenta atrás se muestran en la pantalla de 4 dígitos.


Componentes requeridos

  • Arduino Uno (o genérico)
  • DS18D20 sensor de temperatura a prueba de agua con un cable de 1m
  • TM1637 4 digit 7 segment display
  • Caja impresa en 3D - Ver en Thingiverse
  • 4.7kΩ resistor

Primera etapa


La caja impresa en 3D

Remezclando el diseño

Basé mi diseño en una caja de Arduino Uno impresa en 3d disponible Aquí, que modifiqué en SketchUp.

La adición de un recorte para la pantalla de 4 dígitos, un agujero para el cable del sensor y el aumento de la altura de la cubierta para permitir más espacio. Aquí está el diseño final de Thingiverse

3d Impresión Arduino Uno Caja

3d Imprimiendo la caja

Segunda etapa


Cableándolo
El cableado de la temperatura y el temporizador de Arduino está terminado

El cableado de la temperatura y el temporizador de Arduino está terminado

Las conexiones

Utilizando cables de conexión dupont acortados, la energía y la tierra para el sensor de temperatura y la pantalla se soldaron a un solo cable de suministro, y la línea de datos para el sensor se soldó a la fuente de alimentación a través de la resistencia. Los cables CLK y DIO fueron acortados. Todas las conexiones fueron envueltas en plástico retráctil para evitar cualquier cortocircuito. Finalmente soldé un pin corto a cada cable para conectarlo a la UNO y uní la pantalla con mi pistola de pegamento caliente.

Fritzing diagram of circuit

Fritzing diagram of circuit


Utilicé un tablero genérico Sunfounder Arduino Uno que tenía de un proyecto anterior.

Los otros artículos, aparte de los que se compraron en Amazon.


Sunfounder genérico Arduino Uno

Sunfounder genérico Arduino Uno


Conexiones con Arduino Uno

  • Power to 5v Pin
  • Ground to ground Pin
  • Data wire to Pin 2
  • Display CLK to Pin 6
  • Display DIO to Pin 5

Tercera Etapa


Subir el código
La temperatura y el temporizador de Arduino casi han terminado

Listo para montar

La temperatura y el temporizador de Arduino están en funcionamiento

La temperatura y el temporizador de Arduino están en funcionamiento

Configurar la UNO

Copia el boceto de Arduino abajo y usando el IDE de Arduino sube al Uno.


Se necesitarán tres bibliotecas adicionales

  • OneWire
  • DallasTemperature
  • TM1637

Estos pueden ser fácilmente instalados usando las librerías de gestión en el IDE de Arduino


#include <OneWire.h>
#include <DallasTemperature.h>
#include "TM1637.h"
#define CLK 6 //Pins for TM1637       
#define DIO 5 //Pins for TM1637
TM1637 tm1637(CLK,DIO);

// Data wire is plugged into Digital Pin 2
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature DS18B20(&oneWire);
char temperatureCString[7];
char temperatureFString[7];

// Set timer duration
int second = 30;

void setup() {

  Serial.begin(115200);
  DS18B20.begin();
  tm1637.init();
  tm1637.set(BRIGHTEST); 
  // BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
  delay(500);
}

void getTemperature() {
  float tempC;
  float tempF;
  do {
    DS18B20.requestTemperatures(); 
    tempC = DS18B20.getTempCByIndex(0);
    dtostrf(tempC, 2, 0, temperatureCString);
    tempF = DS18B20.getTempFByIndex(0);
    dtostrf(tempF, 3, 2, temperatureFString);
    Serial.println(temperatureCString);
    delay(100);
  } while (tempC == 85.0 || tempC == (-127.0));
}

void loop() {
  getTemperature();
  int result = atoi(temperatureCString);
  int num1 = (result / 10) % 10;
  int num2 = result % 10;
  int num3 = second % 10;
  int num4 = (second / 10) % 10;
  tm1637.display(0,num1);
  tm1637.display(1,num2);
  tm1637.display(2,num4);
  tm1637.display(3,num3);
  tm1637.point(POINT_ON);
  if (second > 0) {
    second--;
  }else
  second = 30;
  Serial.println("Temperature has been sent");
  delay(200);
  }

Este corto pedazo de código imprime la temperatura a los primeros 2 dígitos de la pantalla y un temporizador de cuenta atrás de 30 segundos a los últimos 2 dígitos.

He descubierto que 30 segundos es más o menos lo adecuado para hacer el trabajo, pero se puede ajustar fácilmente hasta un minuto cambiando la segunda variable.

Esta cajita es de gran ayuda cuando estamos matando pollos.

Mantener el agua a la temperatura perfecta nunca ha sido tan fácil y un temporizador preciso (en lugar de contar en nuestras cabezas) es genial!