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

Arduino DIY Light Meter With BH1750 Sensor: 6 βήματα (με εικόνες)
Arduino DIY Light Meter With BH1750 Sensor: 6 βήματα (με εικόνες)

Βίντεο: Arduino DIY Light Meter With BH1750 Sensor: 6 βήματα (με εικόνες)

Βίντεο: Arduino DIY Light Meter With BH1750 Sensor: 6 βήματα (με εικόνες)
Βίντεο: Measure Light Lux or Intensity with BH1750L Light Sensor Module 2024, Ιούλιος
Anonim
Image
Image
Arduino DIY Light Meter With BH1750 Sensor
Arduino DIY Light Meter With BH1750 Sensor

Σε αυτό το Instructable θα σας δείξω πώς να φτιάξετε έναν μετρητή φωτός με μια μεγάλη οθόνη Nokia 5110 LCD χρησιμοποιώντας το Arduino.

Η οικοδόμηση ενός μετρητή φωτός είναι μια μεγάλη μαθησιακή εμπειρία. Όταν ολοκληρώσετε την κατασκευή αυτού του έργου, θα έχετε καλύτερη κατανόηση για το πώς λειτουργούν οι μετρητές φωτός και θα δείτε στην πράξη πόσο ισχυρή μπορεί να είναι η πλατφόρμα Arduino. Με αυτό το έργο ως βάση και την εμπειρία που αποκτήσατε, θα μπορείτε εύκολα να δημιουργήσετε πιο σύνθετα έργα στο μέλλον. Μπορείτε να χρησιμοποιήσετε αυτό το έργο για να παρακολουθείτε τις συνθήκες φωτισμού του εργασιακού σας περιβάλλοντος, των φυτών σας και ούτω καθεξής. Χωρίς άλλη καθυστέρηση, ας ξεκινήσουμε!

Βήμα 1: Αποκτήστε όλα τα μέρη

Πάρτε όλα τα μέρη
Πάρτε όλα τα μέρη

Τα μέρη που απαιτούνται για την κατασκευή αυτού του έργου είναι τα εξής:

  • Arduino Uno ▶
  • BH1750 ▶
  • Nokia 5110 LCD ▶
  • Small Breadboard ▶
  • Καλώδια ▶

Το κόστος του έργου είναι περίπου $ 12.

Βήμα 2: Ο αισθητήρας φωτός BH1750

Ο αισθητήρας φωτός BH1750
Ο αισθητήρας φωτός BH1750

Ο αισθητήρας έντασης φωτός BH1750 είναι υπέροχος και πολύ εύκολος στη χρήση αισθητήρας. Αυτός ο πίνακας ξεμπλοκαρίσματος διαθέτει ενσωματωμένο μετατροπέα AD 16 bit ο οποίος μπορεί να εξάγει άμεσα ένα ψηφιακό σήμα, δεν χρειάζεται περίπλοκοι υπολογισμοί.

Αυτός ο πίνακας είναι καλύτερος από ένα LDR που βγάζει μόνο τάση. Με τον αισθητήρα φωτός BH1750 η ένταση μπορεί να μετρηθεί απευθείας με το πολυμετρητή, χωρίς να χρειάζεται να κάνετε υπολογισμούς. Τα δεδομένα που εξάγονται από αυτόν τον αισθητήρα εξάγονται απευθείας σε Lux (Lx).

Ο αισθητήρας χρησιμοποιεί τη διεπαφή I2C, οπότε είναι πολύ εύκολος στη χρήση με το Arduino. Χρειάζεται μόνο να συνδέσετε 2 καλώδια.

Επίσης η τιμή του αισθητήρα είναι πολύ χαμηλή, είναι περίπου 2 $.

Μπορείτε να το αποκτήσετε εδώ: ▶

Βήμα 3: Nokia 5110 LCD

Image
Image
Δημιουργία του μετρητή φωτός
Δημιουργία του μετρητή φωτός

Το Nokia 5110 είναι η αγαπημένη μου οθόνη για τα έργα μου Arduino.

Το Nokia 5110 είναι μια βασική οθόνη γραφικών LCD που προοριζόταν αρχικά ως οθόνη κινητού τηλεφώνου. Χρησιμοποιεί τον ελεγκτή PCD8544, ο οποίος είναι ελεγκτής/οδηγός CMOS LCD χαμηλής ισχύος. Εξαιτίας αυτού, αυτή η οθόνη έχει εντυπωσιακή κατανάλωση ενέργειας. Χρησιμοποιεί μόνο 0,4mA όταν είναι ενεργοποιημένο αλλά ο οπίσθιος φωτισμός είναι απενεργοποιημένος. Χρησιμοποιεί λιγότερο από 0,06mA όταν βρίσκεται σε κατάσταση ύπνου! Αυτός είναι ένας από τους λόγους που κάνουν αυτήν την οθόνη την αγαπημένη μου. Το PCD8544 διασυνδέεται με μικροελεγκτές μέσω μιας διεπαφής σειριακού διαύλου. Αυτό καθιστά την οθόνη πολύ εύκολη στη χρήση με το Arduino.

Χρειάζεται μόνο να συνδέσετε 8 καλώδια και να χρησιμοποιήσετε την ακόλουθη βιβλιοθήκη:

Αυτή η εντυπωσιακή βιβλιοθήκη αναπτύχθηκε από τον Henning Karlsen, ο οποίος κατέβαλε τεράστια προσπάθεια για να βοηθήσει την κοινότητα Arduino να προχωρήσει με τις βιβλιοθήκες του.

Έχω ετοιμάσει ένα λεπτομερές σεμινάριο για τον τρόπο χρήσης της οθόνης LCD Nokia 5110 με το Arduino. Έχω επισυνάψει αυτό το βίντεο σε αυτό το Instructable, θα παράσχει χρήσιμες πληροφορίες σχετικά με την οθόνη, οπότε σας ενθαρρύνω να το παρακολουθήσετε προσεκτικά.

Το κόστος της οθόνης είναι περίπου $ 4.

Μπορείτε να το αποκτήσετε εδώ:

Βήμα 4: Δημιουργία του μετρητή φωτός

Δημιουργία του μετρητή φωτός
Δημιουργία του μετρητή φωτός

Ας συνδέσουμε τώρα όλα τα μέρη μαζί.

Στην αρχή συνδέουμε τη μονάδα αισθητήρα BH1750 Light. Έχει μόνο 5 ακίδες αλλά θα συνδέσουμε 4 από αυτές.

Σύνδεση του αισθητήρα τάσης

Το Vcc Pin πηγαίνει στο 5V του Arduino

Το GND Pin πηγαίνει στο GND του Arduino

Το SCL Pin πηγαίνει στο Analog Pin 5 του Arduino Uno

Το SDA Pin πηγαίνει στο Analog Pin 4 του Arduino Uno

Η καρφίτσα διεύθυνσης παραμένει χωρίς σύνδεση

Το επόμενο βήμα είναι να συνδέσετε την οθόνη LCD Nokia 5110.

Σύνδεση της οθόνης LCD Nokia 5110

Το RST πηγαίνει στο Digital Pin 12 του Arduino

Το CE πηγαίνει στο Digital Pin 11 του Arduino

Το DC πηγαίνει στο Digital Pin 10 του Arduino

Το DIN πηγαίνει στο Digital Pin 9 του Arduino

Το CLK πηγαίνει στο Digital Pin 8 του Arduino

Το VCC πηγαίνει στο Arduino 3.3V LIGHT πηγαίνει στο Arduino GND (οπίσθιος φωτισμός ενεργοποιημένος)

Το GND πηγαίνει στο Arduino GND

Τώρα που έχουμε συνδέσει όλα τα μέρη μαζί, το μόνο που έχουμε να κάνουμε είναι να φορτώσουμε τον κώδικα. Εμφανίζεται μια οθόνη Splash για μερικά δευτερόλεπτα και στη συνέχεια μπορούμε να αρχίσουμε τη μέτρηση της έντασης φωτός σε πραγματικό χρόνο!

Βήμα 5: Ο Κώδικας του Έργου

Image
Image
Δοκιμή του Έργου
Δοκιμή του Έργου

Ο κώδικας του έργου αποτελείται από 3 αρχεία.

splash.cui.c

ui.c

BH1750LightMeter.ino

Κωδικός - Εικόνα οθόνης εκτόξευσης

Στο πρώτο αρχείο splash.c, υπάρχουν οι δυαδικές τιμές της οθόνης splash που εμφανίζεται στην οθόνη Nokia 5110 LCD όταν εκκινείται το έργο. Παρακαλούμε δείτε το συνημμένο βίντεο που έχω ετοιμάσει για να δείτε πώς να φορτώσετε τα προσαρμοσμένα γραφικά σας στο Arduino Project σας.

Κωδικός ui.c - Το περιβάλλον εργασίας χρήστη

Στο αρχείο ui.c, υπάρχουν οι δυαδικές τιμές της διεπαφής χρήστη που εμφανίζονται μετά την εμφάνιση του splash screen από το έργο. Παρακαλούμε δείτε το συνημμένο βίντεο που έχω ετοιμάσει για να δείτε πώς να φορτώσετε τα προσαρμοσμένα γραφικά σας στο Arduino Project σας.

Κωδικός UVMeter.ino - Κύριο Πρόγραμμα

Ο κύριος κώδικας του έργου είναι πολύ απλός. Πρέπει να συμπεριλάβουμε τη βιβλιοθήκη Nokia 5110. Στη συνέχεια δηλώνουμε μερικές μεταβλητές. Αρχικοποιούμε την οθόνη και εμφανίζουμε την οθόνη splash για 3 δευτερόλεπτα. Μετά από αυτό, εκτυπώνουμε το εικονίδιο ui μία φορά και διαβάζουμε την τιμή από τον αισθητήρα 150 χιλιοστά του δευτερολέπτου. Όλη η μαγεία συμβαίνει στη λειτουργία βρόχου:

void loop () {int stringLength = 0; uint16_t lux = lightSensor.readLightLevel (); // Διαβάστε το φως του αισθητήρα = String (lux); // Μετατροπή σε συμβολοσειρά stringLength = light.length (); // Πρέπει να γνωρίζουμε το μήκος συμβολοσειράς lcd.clrScr (); lcd.drawBitmap (0, 0, ui, 84, 48); printLight (stringLength); // Εκτύπωση της συμβολοσειράς στην οθόνη lcd.update (); καθυστέρηση (150)? }

Έχω επισυνάψει τον κώδικα σε αυτό το Instructable. Για να κατεβάσετε την τελευταία έκδοση του κώδικα, μπορείτε να επισκεφθείτε την ιστοσελίδα του έργου:

Βήμα 6: Δοκιμή του έργου

Δοκιμή του Έργου
Δοκιμή του Έργου
Δοκιμή του Έργου
Δοκιμή του Έργου

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

Όπως μπορείτε να δείτε στις συνημμένες φωτογραφίες, το Light Meter λειτουργεί μια χαρά. Αυτό το έργο είναι μια μεγάλη επίδειξη του τι είναι ικανό το υλικό και το λογισμικό ανοιχτού κώδικα. Μέσα σε λίγα λεπτά μπορεί κανείς να χτίσει ένα τόσο εντυπωσιακό έργο! Αυτό το έργο είναι ιδανικό για αρχάριους και όπως είπα στην αρχή, αυτό το έργο είναι μια μεγάλη μαθησιακή εμπειρία. Θα ήθελα πολύ να ακούσω τη γνώμη σας για αυτό το έργο. Το θεωρείτε χρήσιμο; Υπάρχουν βελτιώσεις που μπορούν να εφαρμοστούν σε αυτό το έργο; Δημοσιεύστε τα σχόλια ή τις ιδέες σας στην παρακάτω ενότητα σχολίων!

Συνιστάται: