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

Σχεδίαση έντασης φωτός με χρήση της Arduino και της Python's Arduino Master Library: 5 βήματα
Σχεδίαση έντασης φωτός με χρήση της Arduino και της Python's Arduino Master Library: 5 βήματα

Βίντεο: Σχεδίαση έντασης φωτός με χρήση της Arduino και της Python's Arduino Master Library: 5 βήματα

Βίντεο: Σχεδίαση έντασης φωτός με χρήση της Arduino και της Python's Arduino Master Library: 5 βήματα
Βίντεο: Security & Arduino: Wireless devices remote control 2024, Νοέμβριος
Anonim
Σχεδίαση έντασης φωτός χρησιμοποιώντας τη βασική βιβλιοθήκη Arduino και Python's Arduino
Σχεδίαση έντασης φωτός χρησιμοποιώντας τη βασική βιβλιοθήκη Arduino και Python's Arduino

Το Arduino είναι ένα οικονομικό αλλά εξαιρετικά αποδοτικό και λειτουργικό εργαλείο, ο προγραμματισμός του στο Embedded C καθιστά τη διαδικασία της δουλειάς κουραστική! Η μονάδα Arduino_Master της Python απλοποιεί αυτό και μας επιτρέπει να εκτελούμε υπολογισμούς, να αφαιρούμε τιμές σκουπιδιών και να σχεδιάζουμε ένα γράφημα για οπτική αναπαράσταση δεδομένων.

Εάν δεν γνωρίζετε ακόμη για αυτήν την ενότητα, εγκαταστήστε την χρησιμοποιώντας την εντολή pip install Arduino_Master

Μην ανησυχείτε εάν δεν γνωρίζετε πώς να χρησιμοποιήσετε αυτήν την ενότητα, επισκεφτείτε αυτόν τον σύνδεσμο => Arduino_Master

Ωστόσο, ο κωδικός για αυτό το έργο θα είναι πάντα διαθέσιμος σε αυτό το εκπαιδευτικό εγχειρίδιο.

Προμήθειες

Για αυτό το έργο, θα χρειαστείτε τα ακόλουθα:

  1. Ένα Arduino
  2. Μια αντίσταση εξαρτώμενη από το φως (LDR) και
  3. Python 3 εγκατεστημένο στον υπολογιστή σας.

Βήμα 1: Χτίζοντας το κύκλωμά σας:

Χτίζοντας το κύκλωμά σας
Χτίζοντας το κύκλωμά σας

Θα χρησιμοποιήσουμε την καρφίτσα A1 του Arduino για να λάβουμε δεδομένα εισόδου. Μπορείτε επίσης να χρησιμοποιήσετε τις καρφίτσες 5V και GND του Arduino αντί της μπαταρίας. Κάντε τη σύνδεση ως εξής:

  1. Συνδέστε το ένα άκρο του LDR στον θετικό ακροδέκτη μιας μπαταρίας 5V ή στον ακροδέκτη 5V του Arduino.
  2. Συνδέστε το άλλο άκρο του LDR παράλληλα με τον ακροδέκτη A1 και τον αρνητικό ακροδέκτη της μπαταρίας ή τον ακροδέκτη GND του Arduino.
  3. Χρησιμοποιήστε μια αντίσταση για να βεβαιωθείτε ότι όλο το ρεύμα δεν ρέει στο GND, πράγμα που θα σας είχε ως αποτέλεσμα να μην λάβετε ένα αρκετά ισχυρό σήμα για να αισθανθείτε στον τερματικό Α1 του Arduino. (Χρησιμοποιώ αντίσταση 10k ohm).

Βήμα 2: Προγραμματισμός του Arduino σας:

Η μονάδα Arduino_Master χρησιμοποιεί Serial Monitor του Arduino για την αποστολή και λήψη δεδομένων. Το πλεονέκτημα της χρήσης αυτής της ενότητας είναι ότι, μόλις προγραμματίσετε το Arduino, μπορείτε να αλλάξετε το πρόγραμμα python μόνο για διαφορετικά έργα, καθώς ο προγραμματισμός σε python είναι συγκριτικά ευκολότερος!

Κώδικας:

// Η μεταβλητή LDR_1 χρησιμοποιείται για να δηλώσει την ακίδα A1 του Arduino.

int LDR_1 = A1;

// Τα δεδομένα που λαμβάνονται από το A1 θα αποθηκευτούν στο LDR_Value_1.

float LDR_Value_1;

Εισαγωγή συμβολοσειράς.

void setup ()

{pinMode (LDR_1, INPUT); // Το LDR_1 έχει οριστεί ως ακίδα εισόδου. Serial.begin (9600); // Το baudrate επικοινωνίας έχει οριστεί σε 9600.}

κενός βρόχος ()

{if (Serial.available ()> 0) // εάν υπάρχει διαθέσιμη είσοδος στη σειριακή οθόνη, προχωρήστε. {input = Serial.readString (); // Διαβάστε την είσοδο ως συμβολοσειρά. εάν (εισαγωγή == "ΔΕΔΟΜΕΝΑ") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) είναι ο συντελεστής μετατροπής για να λάβετε τιμή σε Volt. Serial.println (LDR_Value_1); // Εάν η είσοδος είναι ίση με "DATA", τότε διαβάστε την είσοδο από το LDR_1 και εκτυπώστε τη στη σειριακή οθόνη. } else int i = 0; // εάν η είσοδος δεν είναι ίση με "DATA", μην κάνετε τίποτα! }

}

Βήμα 3: Προγραμματισμός Python σε γραφήματα δεδομένων από το Arduino:

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

Ανεβάστε το ακόλουθο πρόγραμμα στο Python IDE και εκτελέστε το:

Κάντε αυτό για διαφορετικές εντάσεις φωτός και χρησιμοποιώντας το γράφημα βγάλτε ένα συμπέρασμα πείτε για παράδειγμα εάν η ένταση είναι μικρότερη από 1, το δωμάτιο είναι πολύ σκοτεινό. Για ένταση μεταξύ 1 και 2, το δωμάτιο είναι αρκετά σκοτεινό. Για ένταση μεγαλύτερη από 2, το φως ανάβει.

# Εισαγωγή μονάδας Arduino_Master

από εισαγωγή Arduino_Master *

# συλλογή δεδομένων

δεδομένα = φίλτρο (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 30), expect_type = 'num', limit = [0, 5])

Το όριο # έχει οριστεί σε 5, επειδή χρησιμοποιούμε μπαταρία 5V.

# Σχεδιάζοντας τις τιμές

Γράφημα (δεδομένα, stl = 'dark_background', label = 'Ένταση φωτός')

Βήμα 4: Τελικό πρόγραμμα για τον έλεγχο της έντασης του φωτός σε ένα δωμάτιο

Αφού καταλήξετε σε ένα συμπέρασμα από τα δεδομένα που πήρατε, ανεβάστε το παρακάτω πρόγραμμα και φροντίστε να αλλάξετε τα όρια σύμφωνα με το συμπέρασμά σας.

# Εισαγωγή μονάδας Arduino_Master

από Arduino_Master import # συλλογή δεδομένων = φίλτρο (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expect_type = 'num', limit = [0, 5]) #classification data με βάση το συμπέρασμα info = για i στο εύρος (len (δεδομένα)): ένταση = δεδομένα εάν ένταση 1 και ένταση = 2: info.append ('Light ON') # Σχεδιάζοντας το γράφημα compGraph (δεδομένα, πληροφορίες, stl = 'dark_background', label1 = 'Ένταση φωτός', label2 = 'Κατάσταση')

Βήμα 5: Αποτέλεσμα:

Αποτέλεσμα
Αποτέλεσμα

Το πρόγραμμα θα διαρκέσει ένα ή δύο λεπτά για να εκτελεστεί αφού διαβάζετε 50 στιγμιαίες τιμές από το Arduino.

Εάν θέλετε να επιταχύνετε τη διαδικασία, δοκιμάστε να αλλάξετε την παράμετρο γραμμών της συνάρτησης ardata. Αλλά θυμηθείτε ότι όσο λιγότερες ήταν οι παρατηρήσεις, τόσο μικρότερη θα ήταν η ποιότητα των δεδομένων.

Σημείωση: Εάν το πλήρες γράφημα στην παραπάνω εικόνα δεν είναι ορατό, ανατρέξτε στο γράφημα πάνω από την ενότητα Εισαγωγή.

Συνιστάται: