Autonomes Gerät auf Arduino, das einen Temperaturanstieg (-abfall) signalisiert

Einleitung


Dieses Gerät dient zur Bestimmung der Temperatur aus der Ferne. Da ich nicht die vorgefertigten Anweisungen zum Zusammenbauen dieses Geräts gefunden habe, die ich brauchte, und eigentlich nicht für 2+ Tausend kaufen wollte, wurde beschlossen, alles auf Arduino zu machen (nicht teuer und nicht sehr schwierig).

Montageanleitung


Um das Projekt zu bauen, brauchen wir:

  • DS18B20 Temperaturfühler 1 Meter. (Versiegelt)
  • Bildschirm 0.96 128x64 OLED
  • Steckbrett
  • Papa Papa Draht Set
  • Mikrocontroller Arduino Uno
  • Widerstand

Um das Projekt zu implementieren, müssen wir die Arduino-IDE und mehrere Bibliotheken gleichzeitig installieren:

  • OneWire Arduino-Bibliothek
  • OLED I2C_OLED_I2C mit Unterstützung für Russisch und Ukrainisch.
  • Dallas Temperatur

Reden wir ein wenig über das Steckbrett. Dieses Steckbrett dient zum schnellen Zusammenbau von Schaltkreisen ohne Löten und Funkelementen sowie einem Draht zum Anschluss. Entwicklungsplatinen gibt es in verschiedenen Größen, aber in den meisten Fällen bestehen sie aus diesen identischen Blöcken:

Bild

Das elektrische Anschlussschema der Steckdosen ist in der rechten Abbildung dargestellt: Fünf Löcher auf jeder Seite in jeder der Reihen (in diesem Fall 30) sind elektrisch miteinander verbunden. Links und rechts gibt es zwei Stromleitungen: Hier sind alle Löcher in der Säule miteinander verbunden. Der Schlitz in der Mitte ist für den Einbau und die bequeme Entnahme von Mikrokreisen in den Gehäusen vorgesehen. Zur Montage der Schaltung werden Funkkomponenten und Steckbrücken in die Bohrungen gesteckt.

Nachdem wir das Steckbrett herausgefunden haben, können wir nun die Module verbinden. Schließen Sie das Display zunächst wie folgt an:

Bild

Bild

In diesem Fall haben wir 5 V an „+“ auf dem Steckbrett (gelbes Kabel) und GND an „-“ (weißes Kabel) angeschlossen, sodass später die gesamte Stromversorgung der Module an „+“ und „-“ auf dem Steckbrett angeschlossen werden sollte.

Schließen Sie anschließend den Temperatursensor DS18B20 mit einem Widerstand an, wie auf dem Foto unten gezeigt:

Bild

Bild

In unserem Fall haben wir der Einfachheit halber alle Sensordrähte an das Steckbrett angeschlossen und das orangefarbene Kabel „Dad to Dad“ an Pin 10 angeschlossen.

Die Hälfte der Arbeit ist erledigt, es müssen nur noch Signalgeräte angeschlossen werden, nämlich: x2 LED (rot für hohe Temperaturen, blau für niedrige Temperaturen) und ein herkömmlicher Piezo-Emitter (bei gewöhnlichen Leuten „Hochtöner“). Die LED ist sehr einfach angeschlossen, „+“ ist eine lange Stange und „minus“ ist eine kurze Stange. Wir stecken es in die Platine, schließen einen Widerstand an und verbinden den kurzen Stab der blauen LED mit dem 5-poligen und den kurzen Stab der roten LED mit dem 12-poligen Kabel.

Der Quietscher verbindet einfach das schwarze Kabel mit "-", das rote Kabel mit 13pol.

So sollte es funktionieren:

Bild

Das Wichtigste (Skizze)


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

In dieser Skizze stelle ich die Temperatur auf über 70 und unter 45 Grad ein, aber Sie können jede andere Temperatur einstellen (von -55 bis +125 ° C).

Fotos des Endprodukts:

Bild

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


All Articles