Πίνακας περιεχομένων:

EF 230: Home System 3000 Instructable: 4 Steps
EF 230: Home System 3000 Instructable: 4 Steps

Βίντεο: EF 230: Home System 3000 Instructable: 4 Steps

Βίντεο: EF 230: Home System 3000 Instructable: 4 Steps
Βίντεο: DIY 1кВт синусоидальный инвертор 12В на 220В EGS002, jlcpcb 2024, Ιούλιος
Anonim
EF 230: Home System 3000 Instructable
EF 230: Home System 3000 Instructable

Το Home System 3000 είναι μια συσκευή που χρησιμοποιεί Arduino, αισθητήρα θερμοκρασίας, πιεζοσταθμό, οπτικό ανιχνευτή/φωτοτρανζίστορ και σερβο για να εμφανίζει τρόπους βελτίωσης της ενεργειακής απόδοσης στο σπίτι.

Βήμα 1: Αισθητήρας θερμοκρασίας

Αισθητήρας θερμοκρασίας
Αισθητήρας θερμοκρασίας

· Τρέξτε τα καλώδια τροφοδοσίας και γείωσης από

ο μικροελεγκτής στο πλάι της σανίδας ψωμιού

· Τοποθετήστε τον αισθητήρα θερμοκρασίας στην σανίδα ψωμιού και εφαρμόστε ανάλογα τα αντίστοιχα καλώδια ισχύος και γείωσης

· Παρατηρήστε ότι ο αισθητήρας θερμοκρασίας έχει τρεις προεξοχές και το μεσαίο ακροδέκτη έχει ένα καλώδιο που τρέχει από τη θύρα "A0".

· Κωδικός για αισθητήρα θερμοκρασίας:

answer = questdlg ("Παρακαλώ εκτελέστε τον κωδικό έναρξης arduino και servo", "απάντηση", "Ok", "Ok")

prompt = 'Πατήστε οποιοδήποτε πλήκτρο για να ξεκινήσετε'

παύση

prompt1 = 'Ορισμός ελάχιστης θερμοκρασίας'

x = είσοδος (προτροπή 1)

prompt2 = 'Ρύθμιση μέγιστης θερμοκρασίας'

y = είσοδος (εντολή2)

prompt3 = 'πατήστε οποιοδήποτε πλήκτρο για να ξεκινήσετε'

παύση

εικόνα

h = animatedline;

ax = gca;

ax. YGrid = 'on';

ax. YLim = [65 85];

stop = false?

startTime = datetime ("τώρα");

ενώ σταματάω

% Διαβάστε την τρέχουσα τιμή τάσης

v = readVoltage (a, 'A0');

% Υπολογίστε τη θερμοκρασία από την τάση (με βάση το φύλλο δεδομένων)

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

TempF = 9/5*TempC + 32;

% Λήψη τρέχουσας ώρας

t = ώρα δεδομένων ("τώρα") - startTime;

% Προσθήκη πόντων σε κινούμενα σχέδια

addpoints (h, datenum (t), TempF)

% Άξονες ενημέρωσης

ax. XLim = datenum ([t-seconds (15) t]);

datetick ('x', 'keeplimits')

τραβήξτε τώρα

% Ελέγξτε την κατάσταση στάσης

stop = readDigitalPin (a, 'D12');

Βήμα 2: Buzzer

Βομβητής
Βομβητής

· Σύρμα στο βομβητή που θα χρησιμοποιηθεί για να σηματοδοτήσει μια ένδειξη εξαιρετικά υψηλής ή πολύ χαμηλής θερμοκρασίας

· Δεν περνάει καλώδιο από τη θετική στήλη στη θετική πλευρά του βομβητή

· Αντ 'αυτού, ένα καλώδιο περνά από τη θετική πλευρά του βομβητή σε μια θύρα με την ένδειξη "11"

Αυτό θα χρησιμοποιηθεί αργότερα για να καλέσετε τη θέση του βομβητή στον γραπτό κώδικα.

· Κωδικός για βομβητή:

αν TempF> = y

disp («κλείστε την πόρτα είναι ζεστό»)

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

elseif TempF <= x

disp («κλείστε την πόρτα κάνει κρύο»)

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

τέλος

τέλος

Βήμα 3: Οπτικός ανιχνευτής/φωτοτρανζίστορ

Οπτικός ανιχνευτής/φωτοτρανζίστορ
Οπτικός ανιχνευτής/φωτοτρανζίστορ

· Αυτός ο αισθητήρας απαιτεί αντίσταση σε αντίθεση με τους άλλους

· Βεβαιωθείτε ότι και οι τέσσερις προεξοχές του αισθητήρα περιλαμβάνονται στον βρόχο αφού συνδέσετε τα καλώδια

· Ο αισθητήρας ανιχνεύει μια αλλαγή στο φως, που αντιπροσωπεύει την κίνηση και την καταγράφει ως είσοδο

· Κωδικός για οπτικό ανιχνευτή/φωτοτρανζίστορ:

σαφές α

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

προτροπή = 'Ορισμός ορίου επιπέδου φωτισμού'

z = είσοδος (προτροπή)

lightLevel = 0

ενώ lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

αν lightLevel> = z

answer = questdlg ("θα θέλατε να αλλάξετε το AC;", "Ναι", "Όχι")

εναλλαγή απάντησης

θήκη «Ναι»

answer2 = questdlg ("Ενεργοποίηση ή μείωση του AC;", "απάντηση", "Κάτω", "Επάνω", "Επάνω")

εναλλαγή απάντησης2

θήκη «Κάτω»

s = servo (a, 'D10');

για γωνία = 0:.1:.5

writePosition (s, angle)?

current_position = readPosition (ες);

current_position = current_position * 180;

% τρέχουσα θέση εκτύπωσης του σερβοκινητήρα

fprintf ('Η τρέχουσα θέση είναι %d / n', current_position);

Απαιτείται % μικρή καθυστέρηση, ώστε το σερβο να μπορεί να τοποθετηθεί στο

% γωνία που του είπε.

παύση (2)?

τέλος

% επαναφέρετε τον κινητήρα στη θέση 0 γωνίας

writePosition (s, 0);

σαφές s

prompt = 'Πατήστε οποιοδήποτε πλήκτρο για να συνεχίσετε'

questdlg ('AC απενεργοποιήθηκε', 'απάντηση', 'Ok', 'Ok')

θήκη 'Up'

s = servo (a, 'D10');

για γωνία =.5:.1: 1

writePosition (s, angle)?

current_position = readPosition (ες);

current_position = current_position * 180;

% τρέχουσα θέση εκτύπωσης του σερβοκινητήρα

fprintf ('Η τρέχουσα θέση είναι %d / n', current_position);

Απαιτείται % μικρή καθυστέρηση, έτσι ώστε το σερβο να μπορεί να τοποθετηθεί στο

% γωνία που του είπε.

παύση (2)?

τέλος

Βήμα 4: Servo

Servo
Servo

· Το σερβο αντιπροσωπεύει

ένα κλιματιστικό και είναι μια έξοδος της εισόδου ανίχνευσης κίνησης

· Απαιτεί θετικό καλώδιο, καλώδιο γείωσης και σύρμα από τη θύρα "D9" στο σερβο

· Κωδικός για servo:

% επαναφέρετε τον κινητήρα στη θέση 0 γωνίας

writePosition (s, 0);

σαφές s

prompt = 'Πατήστε οποιοδήποτε πλήκτρο για να συνεχίσετε'

questdlg ('AC AC εμφανίστηκε', 'απάντηση', 'Ok', 'Ok')

τέλος

τέλος

παύση

Διακοπή

τέλος

τέλος

*Ειδική σημείωση: ορισμένος από τον κωδικό για το σερβο είναι ενσωματωμένος με τον κωδικό για τον οπτικό ανιχνευτή/φωτοτρανζίστορ.

Συνιστάται: