Inhaltsverzeichnis:

Smart-Stat - Gunook
Smart-Stat - Gunook

Video: Smart-Stat - Gunook

Video: Smart-Stat - Gunook
Video: GunBook standard - Sig Sauer P226 X-Five 2024, November
Anonim
Smart-Stat
Smart-Stat
Smart-Stat
Smart-Stat
Smart-Stat
Smart-Stat
Smart-Stat
Smart-Stat

Unser Produkt ermöglicht es Einzelpersonen, die Effizienz ihrer Heizungs- und Klimaanlagen in ihren Häusern zu überprüfen, indem sie die Temperatur des ein- und ausgehenden Freons auf einfache und realistische Weise misst. Dieses intelligente Gerät wird die Menschen ermutigen, mit ihren Heiz- und Kühlsystemen energieeffizientere Entscheidungen zu treffen.

Schritt 1: Erforderliche Teile

Erforderliche Teile
Erforderliche Teile
Erforderliche Teile
Erforderliche Teile
Erforderliche Teile
Erforderliche Teile

- Arduino Uno

- Steckbrett (4)

- Thermistor (2)

- 10K Widerstände (2)

- Druckknopf

- Piezo-Summer

- LCD Bildschirm

- Potentiometer

- Drähte (25)

- Micro-USB- oder USB-Anschluss

Schritt 2: Wire Breadboard für Temperatursensor

Draht-Steckbrett für Temperatursensor
Draht-Steckbrett für Temperatursensor

Ein TMP-Thermistor ist eine Art Temperatursensor, der die Spannung am Sensor misst, wenn sich die Umgebungstemperatur ändert. Dieser spezielle Sensor hat drei Pins - einen positiven, Masse und ein Signal. Dieser Sensor ist ein linearer Sensor, und eine Temperaturänderung von einem Grad Celsius entspricht einer Änderung von 10 Millivolt am Sensorausgang.

Verfahren:

1) Schließen Sie Ihren Temperatursensor wie in der Abbildung oben gezeigt an. Der mittlere Draht wird mit A0 verbunden.

2) Schließen Sie Ihren zweiten Temperatursensor auf ähnliche Weise wie den ersten an, und das mittlere Kabel wird an A1 angeschlossen.

Schritt 3: Piezo-Summer

Piezo-Summer
Piezo-Summer

Ein Piezo-Summer ist ein Gerät, das den Benutzer warnt, wenn seine Heizungs-, Lüftungs- und Klimaanlage nicht in Spitzenzeiten arbeitet. Der akustische Alarm informiert den Benutzer über ein Problem.

Verfahren:

1) Schließen Sie den Summer wie in der Abbildung oben gezeigt an die Platine an.

Schritt 4: Schaltflächen hinzufügen

Schaltflächen hinzufügen
Schaltflächen hinzufügen

- Der Taster ist ein Bauteil, das beim Drücken zwei Punkte in einem Stromkreis verbindet.

- In unserem Produkt wechselt die Taste zwischen der Anzeige der Temperatur und der Effizienz aus den Daten, die die Temperatursensoren sammeln.

Verfahren

1) Schließen Sie die Taste wie in der Abbildung oben gezeigt an.

Schritt 5: Verbinden Sie das LCD mit dem separaten Steckbrett und der Stromversorgung

LCD mit separatem Steckbrett und Strom verbinden
LCD mit separatem Steckbrett und Strom verbinden

Die LCD-Flüssigkristallanzeige ist ein einfacher Bildschirm, der dem Benutzer mitteilen kann, wenn etwas mit den Heizungs-, Lüftungs- und Klimaanlagen seines Hauses nicht stimmt. Ex. läuft nicht effizient, Systemausfall

Das mitgelieferte Diagramm hilft Ihnen, den Bildschirm richtig mit der Platine zu verbinden.

Schritt 6: Code

a = arduino('com3', 'uno', 'Bibliotheken', 'BeispielLCD/LCDAddon'); % erstellt ein Arduino-Objekt, das die ExampleLCD/LCDAddon-Bibliothek angibt.

lcd = addon(a, 'BeispielLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'}); % erstellt das LCD-Objekt und gibt die auf dem Arduino-Gerät konfigurierten Pins an.

initializeLCD(lcd, 'Zeilen', 2, 'Spalten', 16); % initialisiert den LCD-Bildschirm

setpref('Internet', 'SMTP_Server', 'smtp.gmail.com');

setpref('Internet', 'E_Mail', '[email protected]'); % E-Mail-Konto, von dem aus gesendet werden soll

setpref('Internet', 'SMTP_Benutzername', 'bwnanney'); % Absender-Benutzername

setpref('Internet', 'SMTP_Password', 'Morill1204'); % Absender-Passwort

props = java.lang. System.getProperties;

props.setProperty('mail.smtp.auth', 'true');

props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');

props.setProperty('mail.smtp.socketFactory.port', '465');

b=ReadDigitalPin(a, 'D9'); % lesen einen digitalen Pin (einen digitalen Sensor)

Lesen = ReadVoltage (a, 'A0'); % Lesen Sie die Spannung am analogen Thermistor ab, der an Pin A0. angeschlossen ist

read2= readVoltage(a, 'A2'); % Lesen Sie die Spannung am analogen Thermistor ab, der an Pin A2. angeschlossen ist

while true % durchläuft die vorhandene Anweisung solange wie true

b=ReadDigitalPin(a, 'D9'); % lesen einen digitalen Pin (einen digitalen Sensor)

Lesen = ReadVoltage (a, 'A0'); % Lesen Sie die Spannung am analogen Thermistor ab, der an Pin A0. angeschlossen ist

if reading>= 0.6 && reading< 0.68 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 64 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>= 0.68 && reading<0.69 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 66 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>= 0.69 && reading<0.7 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 68 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>=0.7 && reading<0.71 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 70 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>=0.71 && reading<0.72 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 72 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>=0.72 && reading<0.73 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 74 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>= 0,73 && reading<0,74 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 76 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>= 0,74 && reading<0,75 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 78 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>= 0,75 && reading<0,76 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 80 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>= 0.76 && reading<0.77 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 82 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>= 0.77 && reading<0.8 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 84 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

playTone(a, 'D10', 880, 0.25) % spielt eine Note (a, Pin, Frequenz, Dauer)

Pause(0.3) % Pausen nach der Note für die eingestellte Dauer

playTone(a, 'D10', 880, 0.25) % spielt eine Note (a, Pin, Frequenz, Dauer)

Pause(0.3) % Pausen nach der Note für die eingestellte Dauer

playTone(a, 'D10', 880, 0.25) % spielt eine Note (a, Pin, Frequenz, Dauer)

Pause(0.3) % Pausen nach der Note für die eingestellte Dauer

playTone(a, 'D10', 880, 0.25) % spielt eine Note (a, Pin, Frequenz, Dauer)

Pause(0.3) % Pausen nach der Note für die eingestellte Dauer

playTone(a, 'D10', 987, 0.25) % spielt eine Note (a, Pin, Frequenz, Dauer)

Pause(0.3) % Pausen nach der Note für die eingestellte Dauer

playTone(a, 'D10', 987, 0.25) % spielt eine Note(a, Pin, Frequenz, Dauer)

Pause(0.3) % Pausen nach der Note für die eingestellte Dauer

playTone(a, 'D10', 880, 0.12) % spielt eine Note(a, Pin, Frequenz, Dauer)

Pause(0.1) % Pausen nach der Note für die eingestellte Dauer

playTone(a, 'D10', 740, 0.12) % spielt eine Note(a, Pin, Frequenz, Dauer)

Pause(0.1) % Pausen nach der Note für die eingestellte Dauer

playTone(a, 'D10', 587, 0.25) % spielt eine Note(a, Pin, Frequenz, Dauer)

Pause(0.3)

sendmail('[email protected]', 'Heizungs- und Kühleinheit muss gewartet werden!!!', …

„Das Heiz- und Kühlsystem arbeitet ineffizient. Bitte lassen Sie das Gerät so schnell wie möglich von einem Techniker warten.') % Sendet eine E-Mail an das angegebene E-Mail-Konto

elseif reading>= 0.8 && reading<0.85 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Temp 86 F'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading>= 0.85 && reading<2 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD(lcd, 'HEISSES HEISSES BABY!!!'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

end % endet if-Anweisung

while b==0 % durchläuft die bestehende Anweisung solange false

b=ReadDigitalPin(a, 'D9'); % lesen einen digitalen Pin (einen digitalen Sensor)

read2= readVoltage(a, 'A2'); % Lesen Sie die Spannung am analogen Thermistor ab, der an Pin A2. angeschlossen ist

if reading2>= 0.6 && reading2< 0.68 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 80%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0.68 && reading2<0.69 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 90%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0.69 && reading2<0.7 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 95%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>=0.7 && reading2<0.71 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 97%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>=0.71 && reading2<0.72 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 100%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>=0.72 && reading2<0.73 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 95%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0,73 && reading2<0,74 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 90%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0,74 && reading2<0,75 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 85%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0,75 && reading2<0,76 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 80%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0.76 && reading2<0.77 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD(lcd, 'Effizienz 75%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0.77 && reading2<0.8 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 70%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0.8 && reading2<0.85 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD (LCD, 'Effizienz 65%'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

elseif reading2>= 0.85 && reading2<2 % führt bedingt einen einzelnen Satz von Anweisungen (einen Block) aus.

clearLCD(lcd) % löscht den LCD-Bildschirm

printLCD(lcd, 'ON FIRE!!!'); % Drucken Sie eine Zeichenfolge auf dem LCD.

pause(0.5) % pausiert, bevor der nächste Befehl ausgeführt wird

end % end if-Anweisung

Ende % Ende while Schleife

Ende % Ende while Schleife

Schritt 7: Diagramm

Diagramm
Diagramm

Dies ist eine grundlegende Darstellung dessen, wo die Temperatursensoren an den Auslass- und Dampfleitungen platziert werden, um die Temperatur jeder Leitung und die Differenz zwischen ihnen zu überwachen.

Empfohlen: