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:

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:


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:


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:

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:
