Dispositivo autônomo no arduino, sinalizando um aumento (diminuição) de temperatura

1. Introdução


Este dispositivo foi projetado para determinar a temperatura à distância. Como não encontrei as instruções prontas para montar este dispositivo de que precisava e realmente não queria comprar por mais de dois mil, foi decidido fazer tudo no arduino (não é caro e não é muito difícil).

Instruções de montagem


Para construir o projeto, precisamos:

  • Sensor de temperatura DS18B20 1 metro. (Selado)
  • Tela 0,96 128x64 OLED
  • Breadboard
  • Daddy Daddy Wire Set
  • Microcontrolador Arduino Uno
  • Resistor

Para implementar o projeto, precisamos instalar o IDE do arduino e várias bibliotecas ao mesmo tempo:

  • Biblioteca OneWire Arduino
  • OLED I2C_OLED_I2C com suporte para idiomas russo e ucraniano.
  • Temperatura de Dallas

Vamos falar um pouco sobre a tábua de pão. Esta tábua de pão é usada para montagem rápida de circuitos sem solda e radioelementos e um fio para conexão. As placas de desenvolvimento vêm em vários tamanhos, mas na maioria dos casos consistem nesses blocos idênticos:

imagem

O diagrama de conexão elétrica dos soquetes é mostrado na figura à direita: cinco orifícios de cada lado, em cada uma das linhas (neste caso, 30) são eletricamente conectados entre si. À esquerda e à direita, existem duas linhas de energia: aqui todos os orifícios da coluna estão interligados. O slot no meio foi projetado para instalação e extração conveniente de microcircuitos nos gabinetes. Para montar o circuito, componentes de rádio e jumpers são inseridos nos orifícios.

Depois de descobrirmos a tábua de pão, podemos agora conectar os módulos. Primeiro, conecte a tela da seguinte maneira:

imagem

imagem

Nesse caso, conectamos 5V a “+” na placa de ensaio (fio amarelo) e GND a “-” (fio branco), para que mais tarde toda a energia dos módulos seja conectada a “+” e “-” na placa de ensaio.

Em seguida, conecte o sensor de temperatura DS18B20 usando um resistor, como mostrado na foto abaixo:

imagem

imagem

No nosso caso, por conveniência, conectamos todos os fios do sensor à placa de ensaio e o cabo laranja "Dad to Dad" ao pino 10.

Metade do trabalho está concluído, resta apenas conectar os dispositivos de sinalização, a saber: x2 LED (vermelho para alta temperatura, azul para baixa) e um emissor piezo convencional (em pessoas comuns "tweeter"). O LED está conectado de maneira muito simples, “+” é uma haste longa e menos é uma haste curta. Nós o inserimos na placa, certifique-se de conectar um resistor a ele e use os fios "papai-papai" para conectar a haste curta do LED azul a 5 pinos e a haste curta do LED vermelho a 12 pinos.

O squeaker apenas conecta o fio preto a “-”, o fio vermelho a 13 pinos.

É assim que deve funcionar:

imagem

A coisa mais importante (esboço)


#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); } 

Neste esboço, defino a temperatura acima de 70 e abaixo de 45 graus, mas você pode definir qualquer outra (de -55 a +125 ° C).

Fotos do produto final:

imagem

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


All Articles