Dispositivo autónomo en arduino, que indica un aumento (disminución) de la temperatura

Introduccion


Este dispositivo está diseñado para determinar la temperatura a distancia. Como no encontré las instrucciones ya preparadas para ensamblar este dispositivo que necesitaba, y realmente no quería comprar por más de 2 mil, se decidió hacer todo en arduino (no es costoso y no es muy difícil).

Instrucciones de montaje


Para construir el proyecto necesitamos:

  • Sensor de temperatura DS18B20 de 1 metro. (Sellado)
  • Pantalla 0.96 128x64 OLED
  • Tablero de pan
  • Daddy Daddy Wire Set
  • Microcontrolador Arduino Uno
  • Resistencia

Para implementar el proyecto, necesitamos instalar el IDE de Arduino y varias bibliotecas a la vez:

  • Biblioteca OneWire Arduino
  • OLED I2C_OLED_I2C con soporte para idiomas ruso y ucraniano.
  • Temperatura de Dallas

Hablemos un poco sobre el tablero. Esta placa de pruebas se utiliza para el montaje rápido de circuitos sin soldadura y radioelementos y un cable para la conexión. Las placas de desarrollo vienen en varios tamaños, pero en la mayoría de los casos consisten en estos bloques idénticos:

imagen

El diagrama de conexión eléctrica de los enchufes se muestra en la figura de la derecha: cinco agujeros en cada lado, en cada una de las filas (en este caso 30) están conectados eléctricamente entre sí. A la izquierda y a la derecha hay dos líneas eléctricas: aquí todos los agujeros en la columna están interconectados. La ranura en el medio está diseñada para la instalación y extracción conveniente de microcircuitos en los casos. Para ensamblar el circuito, se insertan componentes de radio y puentes en los agujeros.

Después de descubrir la placa de pruebas, ahora podemos pasar a conectar los módulos. Primero, conecte la pantalla de la siguiente manera:

imagen

imagen

En este caso, conectamos 5V a "+" en la placa de pruebas (cable amarillo) y GND a "-" (cable blanco), de modo que más adelante toda la alimentación de los módulos debería conectarse a "+" y "-" en la placa de pruebas.

Luego, conecte el sensor de temperatura DS18B20 usando una resistencia como se muestra en la foto a continuación:

imagen

imagen

En nuestro caso, por conveniencia, conectamos todos los cables del sensor a la placa y conectamos el cable naranja "Dad to Dad" al Pin 10.

La mitad del trabajo está hecho, solo queda conectar dispositivos de señalización, a saber: LED x2 (rojo para alta temperatura, azul para baja) y un emisor piezoeléctrico convencional (en la gente común "tweeter"). El LED se conecta de manera muy simple, "+" es una varilla larga y menos es una varilla corta. Lo insertamos en la placa, asegúrese de conectarle una resistencia y use los cables "Dad-dad" para conectar la varilla corta del LED azul a 5 pines, y la varilla corta del LED rojo a 12 pines.

El chirriador simplemente conecta el cable negro a "-", el cable rojo a 13 pines.

Así es como debería funcionar:

imagen

Lo más importante (boceto)


#include <Wire.h> #include <Wire.h> #include <OneWire.h> #include <DallasTemperature.h> //   DS18B20 #define ONE_WIRE_BUS 10 // pin    DS18B20 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); #include <OLED_I2C.h> OLED myOLED(8, 9, 8); //  , 8 pin-SDA, 9pin-SCL extern uint8_t RusFont[]; //   extern uint8_t BigNumbers[]; //   extern uint8_t SmallFont[]; //   void setup() { pinMode(13, OUTPUT); //  pin 13   pinMode(12, OUTPUT);//  pin 12   pinMode(5, OUTPUT); //  pin 5   sensors.begin();//   myOLED.begin();//   myOLED.setFont(RusFont); } void loop() { if (sensors.getTempCByIndex(0)>70){ //  (  >70     ) digitalWrite(5,255);//   tone(13, 2500); //   2500  delay(400);//  0.4  digitalWrite(5,LOW);//   } else{ digitalWrite(5,LOW); } if (sensors.getTempCByIndex(0)<25){ //  (  <45     ) digitalWrite(12,255); //   tone(13, 2500); //   2500  delay(400); //  0.4  digitalWrite(12,LOW); //   } else{ digitalWrite(12,LOW); } if ((sensors.getTempCByIndex(0)<70) and (sensors.getTempCByIndex(0)>45)){ noTone(13); //   } sensors.requestTemperatures(); myOLED.clrScr(); //   myOLED.setFont(RusFont); myOLED.print("Ntvgthfnehf", CENTER, 0); //     myOLED.setFont(SmallFont); myOLED.print("vk.com/tupo_izi123", CENTER, 55); //   myOLED.setFont(BigNumbers); myOLED.print(String(sensors.getTempCByIndex(0) , 1), CENTER, 10); //   ,     myOLED.update(); delay(100); } 

En este boceto, configuro la temperatura por encima de 70 y por debajo de 45 grados, pero puede configurar cualquier otra (de -55 a +125 ° C).

Fotos del producto final:

imagen

Source: https://habr.com/ru/post/476900/


All Articles