Inhaltsverzeichnis:

EF 230: Home System 3000 Anleitung - Gunook
EF 230: Home System 3000 Anleitung - Gunook

Video: EF 230: Home System 3000 Anleitung - Gunook

Video: EF 230: Home System 3000 Anleitung - Gunook
Video: Простая установка автоматики ворот Home Gate 300DC Али Экспресс своими руками. Подробная инструкция 2024, Juli
Anonim
EF 230: Home System 3000 Instructable
EF 230: Home System 3000 Instructable

Das Home System 3000 ist ein Gerät, das einen Arduino, einen Temperatursensor, einen Piezo-Summer, einen optischen Detektor/Fototransistor und einen Servo verwendet, um Möglichkeiten zur Verbesserung der Energieeffizienz zu Hause anzuzeigen.

Schritt 1: Temperatursensor

Temperatursensor
Temperatursensor

· Verlegen Sie Ihre Strom- und Erdungskabel von

der Mikrocontroller an der Seite des Brotbretts

· Setzen Sie den Temperatursensor in das Steckbrett ein und verlegen Sie die entsprechenden Strom- und Erdungskabel entsprechend

· Beachten Sie, dass der Temperatursensor drei Stifte hat und der mittlere Stift einen Draht hat, der vom Anschluss "A0" führt.

· Code für Temperatursensor:

answer = questdlg('Bitte Arduino und Servo-Startcode ausführen', 'Antwort', 'Ok', 'Ok')

Prompt = 'Drücken Sie eine beliebige Taste, um zu beginnen'

Pause

prompt1 = 'Mindesttemperatur einstellen'

x = Eingabe (Eingabeaufforderung1)

prompt2 = 'Maximaltemperatur einstellen'

y = Eingabe (Eingabeaufforderung2)

prompt3 = 'beliebige Taste drücken, um zu beginnen'

Pause

Abbildung

h = animierte Linie;

ax = gca;

ax. YGrid = 'an';

ax. YLim = [65 85];

halt = falsch;

startTime = datetime('jetzt');

während ~stop

% aktuellen Spannungswert lesen

v = readVoltage(a, 'A0');

% Temperatur aus Spannung berechnen (basierend auf Datenblatt)

TempC = (v - 0,5)*100;

TempF = 9/5*TempC + 32;

% Aktuelle Uhrzeit abrufen

t = datetime('now') - startTime;

% Punkte zur Animation hinzufügen

addpoints(h, datenum(t), TempF)

% Achsen aktualisieren

ax. XLim = Datenum([t-Sekunden(15) t]);

datetick('x', 'limits')

gezeichnet

% Stoppbedingung prüfen

stop = readDigitalPin(a, 'D12');

Schritt 2: Summer

Summer
Summer

· Draht im Summer, der verwendet wird, um einen extrem hohen oder extrem niedrigen Temperaturmesswert zu signalisieren

· Es wird kein Kabel von der Plus-Spalte zur Plus-Seite des Summers geführt

· Stattdessen wird ein Kabel von der positiven Seite des Summers zu einem Anschluss mit der Bezeichnung "11" geführt.

Dies wird später verwendet, um die Position des Summers im geschriebenen Code abzurufen.

· Code für Summer:

wenn TempF >= y

disp('Tür schließen, es ist heiß')

playTone(a, 'D11', 500, 1)

sonst TempF <= x

disp('Tür schließen, es ist kalt')

playTone(a, 'D11', 250, 1)

Ende

Ende

Schritt 3: Optischer Detektor / Fototransistor

Optischer Detektor/Phototransistor
Optischer Detektor/Phototransistor

· Dieser Sensor benötigt im Gegensatz zu den anderen Widerstände

· Stellen Sie sicher, dass alle vier Zinken des Sensors in der Schleife enthalten sind, nachdem Sie die Drähte eingesteckt haben

· Der Sensor erkennt eine Lichtänderung, die eine Bewegung darstellt, und zeichnet diese als Eingabe auf

· Code für optischen Detektor/Phototransistor:

klar a

a = arduino('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Bibliotheken', 'Servo');

Prompt = 'Lichtschwellenschwelle einstellen'

z = Eingabe (Eingabeaufforderung)

Lichtpegel = 0

während lightLevel ~= -1

lightLevel = readVoltage (a, 'A1')

if lightLevel >= z

answer = questdlg('möchte AC ändern?', 'Ja', 'Nein')

Antwort wechseln

Fall 'Ja'

answer2 = questdlg('AC hoch oder runter drehen?', 'response', 'down', 'Up', 'Up')

Antwort wechseln2

Fall 'Unten'

s = Servo(a, 'D10');

für Winkel = 0:.1:.5

writePosition(s, Winkel);

aktuelle_position = readPosition(s);

aktuelle_position = aktuelle_position * 180;

% aktuelle Position des Servomotors drucken

fprintf('Aktuelle Position ist %d\n', current_position);

% kleine Verzögerung ist erforderlich, damit das Servo am positioniert werden kann

% Winkel, der ihm gesagt wurde.

Pause(2);

Ende

% Motor auf 0-Winkelposition zurückbringen

writePosition(s, 0);

klar

Prompt = 'Drücken Sie eine beliebige Taste, um fortzufahren'

questdlg('AC abgelehnt', 'Antwort', 'Ok', 'Ok')

Fall 'oben'

s = Servo(a, 'D10');

für Winkel =.5:.1:1

writePosition(s, Winkel);

aktuelle_position = readPosition(s);

aktuelle_position = aktuelle_position * 180;

% aktuelle Position des Servomotors drucken

fprintf('Aktuelle Position ist %d\n', current_position);

% kleine Verzögerung ist erforderlich, damit das Servo am positioniert werden kann

% Winkel, der ihm gesagt wurde.

Pause(2);

Ende

Schritt 4: Servo

Servo
Servo

· Das Servo repräsentiert

eine Klimaanlage und ist ein Ausgang des Bewegungserkennungseingangs

· Es erfordert ein positives Kabel, ein Erdungskabel und ein Kabel von Port "D9" zum Servo

· Code für Servo:

% Motor auf 0-Winkelposition zurückbringen

writePosition(s, 0);

klar

Prompt = 'Drücken Sie eine beliebige Taste, um fortzufahren'

questdlg('AC aufgetaucht', 'Antwort', 'Ok', 'Ok')

Ende

Ende

Pause

brechen

Ende

Ende

*Besonderer Hinweis: Ein Teil des Codes für das Servo ist mit dem Code für den optischen Detektor/Fototransistor integriert.

Empfohlen: