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:

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:


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:


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:

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:
