Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Περιγραφή Del Funcionamiento
- Βήμα 2: Circuitos
- Βήμα 3: Προγραμματισμός
- Βήμα 4: Συμπεράσματα
- Βήμα 5: Σύνδεσμοι Y Lecturas Relacionados
Βίντεο: Attiny85 Termómetro OLED: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Αυτό το προϊόν αποτελείται από μια απλή ένδειξη της πραγματικής θερμοκρασίας, που σχετίζεται με τη θερμοκρασία. Puede realizarse con un ATmega328p, pero lo interesante de esta versión es utilizar un ATtiny85 cuyo tamaño y καταναλώνοντας de batería convergen en un dispositivo pequeño y portátil.
Μια συνέχιση που περιγράφει τη λειτουργία, επιλέγει το κύκλωμα και την τελική εκτέλεση των προγραμμάτων και των συνολικών σχολίων του γενικού έργου.
Προμήθειες
1 x ATtiny85
1 x Arduino UNO/PRO/etc (programador del ATtiny)
1 x 128x64 pantalla I2C OLED
1 x Αισθητήρας θερμοκρασίας DHT22
1 x Resistencia 4.7MOhm (1/4W)
1 x Πυκνωτής electrolítico 0.1uF
1 x Fuente de 3.3V - 5V 10+ x άλτες
Βήμα 1: Περιγραφή Del Funcionamiento
El objetivo del proyecto es mostrar los tres valores anteriormente mencionados en la pantalla OLED, además, como objetivo secundario, e incluido el uso de la librería sleep.he interrupt.h para activar el termómetro manualmente y así reducir el καταναλώνω παράταση la batería.
Ενημερωτικό πρόγραμμα για την επεξεργασία της διαδικασίας: Leer temperatura -> Mostrar temperatura en pantalla -> Apagar ATtiny -> Reiniciar al presionar botón.
Para cada uno de estos pasos dejaremos la Mayor parte del trabajo a las librerías ya existentes, por lo que no reinventaremos la rueda. Ελεύθερη βιβλιοθήκη αισθητήρων DHT από το Adafruit (disponible en el IDE) και το Tiny4kOLED για δεδομένα που είναι διαθέσιμα για το Github ya que, από parecer, el autor original es datacute y, además, necesitaremos modificarla un poco luego.
El método de reinicio puede ser tanto un botón como dos placas metálicas que se tocan para encender el equipo. Στο προσωπικό του περιβάλλον, ο χρήστης μπορεί να ελέγξει τη λειτουργία του με τις αλληλεπιδράσεις.
Βήμα 2: Circuitos
Ενσωματωμένη εικόνα για το κύκλωμα που απαιτεί το πρόγραμμα ATtiny85. Primeramente se debe programar al Arduino (el capacitor debe estar desconectado) con el sketch ArduinoISP, que se encuentra en Archivos -> Ejemplos -> 11. ArduinoISP. Una vez hecho esto se debe colocar el capacitor para evitar que nuestro Arduino se reinicie al programar el ATtiny85.
El ATtiny se puede alimentar directamente del Arduino. Εν ολίγοις, μπορείς να χρησιμοποιήσεις τη δύναμη που θέλεις να κάνεις και να κάνεις ένα σύμπλεγμα με μάσκα (GND) del Arduino και el ATtiny85.
Colocar un botón entre el pin 13 del Arduino y el 2 del ATtiny puede διευκολύνοντας το hacer pruebas ya que la pantalla no puede estar conectada cuando se programa al ATtiny.
Como se observva en las imágenes. El pin SDA del ATyiny es el 0 y el SCL/CLK es el 2. Nuestro DHT está conectado en el pin 4.
Βήμα 3: Προγραμματισμός
Πρωταρχική, δημοφιλής επιλογή "Arduino as ISP" como el programador. Για να μην προμηθευτείτε την πλατφόρμα για το ATtiny, προτείνουμε την εγκατάσταση ATtinyCore de Spence Konde. Esta placa no me generó ningún problema compilación durante la realización del proyecto.
Μπορείτε επίσης να ρυθμίσετε τις παραμέτρους του BOD, να ενεργοποιήσετε τη λειτουργία 8MHz στο εσωτερικό και το OptiBoot. Για χρήση 1MHz για την επικοινωνία του I2C δεν είναι δυνατή σε 16MHz σε εξωτερική εξωτερική μονάδα, προσφορές για ψηφιακές συσκευές, πολύ ενεργειακά χρήσιμα σημαντικά στοιχεία.
Cabe destacar que he modificado un archivo en la librería Tiny4kOLED. El archivo modificado es "font8x16.h" y he cambiado la línea 117 por el siguiente código con el fin de cambiar el símbolo ~ por ° que usaremos en ° C.
0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
Συνεχίζοντας το σκίτσο που χρειάζεται για το πρότυπο.
#include #include #include #include #define I_PINB PCINT3 #define I_PIN PB3 #define I_VECTOR PCINT0_vect #define adc_disable () (ADCSRA & = ~ (1 << aden)) disable = "" adc = "" #define DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE); const uint8_t πλάτος = 128; const uint8_t ύψος = 64; πτητικό bool γύρισε = false; / * * * Διακοπή χειρισμού * */ISR (PCINT_VECTOR) {// η διακοπή ανακάμπτει πάντα από τον ύπνο εάν (digitalRead (I_PIN) == HIGH) {turn = true; // ρυθμίστε τη σημαία να ξανασχεδιάσει την οθόνη ξανά}} void setup () {cli (); // απενεργοποίηση διακοπών PCMSK | = (1 << I_PINB]; GIMSK | = (1 << PCIE]; pinMode (I_PIN, INPUT); sei (); // ενεργοποίηση διακοπών adc_disable (); // εξοικονόμηση ενέργειας απενεργοποιώντας τον μετατροπέα set_sleep_mode (SLEEP_MODE_PWR_DOWN). // ρυθμίστε τον τύπο ύπνου σε βαθύ ύπνο oled.begin (πλάτος, ύψος, μέγεθος (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // εκκίνηση λαδωμένου αντικειμένου oled.setFont (FONT8X16); // αυτή η γραμματοσειρά φαίνεται καλύτερη από την άλλη drawScreen (); oled.on (); καθυστέρηση (2000). dht.begin (); μετατράπηκε = αλήθεια? // σημαία για σχεδίαση οθόνης} void sleep () {sleep_enable (); sleep_cpu (); } void loop () {if (turn) {cli (); // απενεργοποίηση διακοπών oled.on (); float h = dht.readHumidity (); // false read για επαναφορά dht cache καθυστέρησης (2200); // περιμένετε dht για φόρτωση h = dht.readHumidity (); float t = dht.readTemperature (); float i = dht.computeHeatIndex (t, h, false); oled.setCursor (55, 1); oled.print (t); oled.print ("~ C"); oled.setCursor (55, 3); oled.print (h, 0); oled.print ("%"); oled.setCursor (55, 5); oled.print (i); oled.print ("~ C"); // το σύμβολο ~ άλλαξε στη βιβλιοθήκη για να μοιάζει με καθυστέρηση συμβόλου βαθμού ° (5000). // εμφάνιση για 5 δευτερόλεπτα oled.off (); γύρισε = ψευδές? sei (); // επισύναψη διακοπών ξανά} ύπνος (); // πάνε πάντα για ύπνο στο τέλος} void drawScreen () {// σχεδιάζει το πλαίσιο και το κύριο κείμενο για (uint8_t y = 0; y <8; y ++) {oled.setCursor (0, y); oled.startData (); για (uint8_t x = 0; x <128; x += 2) {oled.sendData (0b10101010); oled.sendData (0b01010101); } oled.endData (); } oled.setCursor (0, 0); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000101, πλάτος - 2); oled.sendData (0b11111111); oled.endData (); για (uint8_t y = 1; y <(ύψος - 8) / 8; y ++) {oled.setCursor (0, y); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000000, πλάτος - 2); oled.sendData (0b11111111); oled.endData (); } oled.setCursor (0, (ύψος - 8) / 8); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b10100000, πλάτος - 2); oled.sendData (0b11111111); oled.endData (); oled.setCursor (4, 1); oled.print ("Temp:"); oled.setCursor (4, 3); oled.print ("Hum:"); oled.setCursor (4, 5); oled.print ("Sens:"); }
Βήμα 4: Συμπεράσματα
A pesar de su tamaño infignificante, el ATtiny85 ofrece una amplia gama de aplicaciones en las que podemos implementar este controlador de bajo costo sin perder funcionalidad. Personalmente no esperaba que fuera potible incluir el control de pantalla y de sleep juntos debido a las limitaciones de memoria. Dichozamente, el programa ha entrado en nuestro ATtiny
Υπαρχουν otras librerías para las pantallas OLED. Ελεύθερη GFX de Adafruit δεν μου επιτρέπουν τη συλλογή για την απόφασή μου να προχωρήσουμε σε προδιαγραφές για το ATtiny, αλλά υπάρχουν ελεύθερες δυνατότητες και λύσεις που είναι ενδιαφέρουσες για τον εξερευνητή
El Consumo del dispositivo es muy bajo. Λαμβάνοντας υπόψη τη σταθερή τιμή, μπορείτε να υπολογίσετε τη μπαταρία των 3000mAh (NiMH o LiIon) και 500 ημερών. El Consumo podría reducirse aún más desconectando la pantalla y el sensor directamente desde un pin del ATtiny, αλλά no lo he takerado necesario
Según Technoblogy.com el ATtiny puede operar en un Consumo tan bajo como el mostrado en la primera imagen, pero en este proyecto he obtenido un καταναλώνει δήμαρχος που αντιστοιχεί σε de segunda imagen. El Consumo de la batería Continúa siendo lo suficientemente bajo como para ser un proyecto factible
Βήμα 5: Σύνδεσμοι Y Lecturas Relacionados
www.technoblogy.com/show?KX0&fbclid=IwAR0qu…
github.com/SpenceKonde/ATTinyCore
www.electroschematics.com/am2302-dht22-dat…
ww1.microchip.com/downloads/el/DeviceDoc/A…
embeddedthoughts.com/2016/06/06/attiny85-i…
www.instructables.com/id/ATtiny85-Interrup…
www.technoblogy.com/show?WNM
www.technoblogy.com/show?2F5D
Συνιστάται:
Μεγαλύτερο και βελτιωμένο Christmas Star Neopixel Attiny85: 3 βήματα (με εικόνες)
Μεγαλύτερο και βελτιωμένο Χριστουγεννιάτικο αστέρι Neopixel Attiny85: Πέρυσι έφτιαξα ένα μικρό τρισδιάστατο εκτυπωμένο χριστουγεννιάτικο αστέρι, δείτε https://www.instructables.com/id/Christmas-Star-LE..Φέτος έφτιαξα ένα μεγαλύτερο αστέρι από ένα σκέλος των 50 Νεοπίξελ (5V WS2811). Αυτό το μεγαλύτερο αστέρι είχε περισσότερα μοτίβα (ακόμα προσθέτω και αυτοσχεδιάζω
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: 4 βήματα (με εικόνες)
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: Πώς να φτιάξετε το φορητό ρολόι παρακολούθησης δραστηριοτήτων; Αυτό είναι ένα φορητό gadget που έχει σχεδιαστεί για να δονείται όταν εντοπίζει στασιμότητα. Περνάτε τον περισσότερο χρόνο σας στον υπολογιστή όπως εγώ; Κάθεσαι ώρες χωρίς να το καταλάβεις; Τότε αυτή η συσκευή είναι
Πώς να χρησιμοποιήσετε το Stepper Motor ως περιστροφικό κωδικοποιητή και οθόνη OLED για βήματα: 6 βήματα
Πώς να χρησιμοποιήσετε το Stepper Motor ως περιστροφικό κωδικοποιητή και οθόνη OLED για βήματα: Σε αυτό το σεμινάριο θα μάθουμε πώς να παρακολουθείτε τα βήματα του βηματικού κινητήρα στην οθόνη OLED. Παρακολουθήστε ένα βίντεο επίδειξης. Η πίστωση για το πρωτότυπο σεμινάριο πηγαίνει στον χρήστη του youtube " sky4fly "
Flappy Bird σε ATtiny85 και OLED Display SSD1306: 6 βήματα (με εικόνες)
Flappy Bird στο ATtiny85 και OLED Display SSD1306: Γεια σε όλους, σήμερα θα σας δείξω έναν βασικό κλώνο flappy bird που δημιούργησα και πώς μπορείτε να κάνετε ένα παρόμοιο παιχνίδι. Ουσιαστικά θα περάσω από τον κώδικα μαζί σας και θα σας εξηγήσω πώς λειτουργεί σε κάθε βήμα. Αυτό το παιχνίδι είναι κατασκευασμένο για να
Επαγγελματική κάρτα/Κονσόλα παιχνιδιών: ATtiny85 και οθόνη OLED: 5 βήματα (με εικόνες)
Επαγγελματική κάρτα/Κονσόλα παιχνιδιών: ATtiny85 και OLED Screen: Γεια σε όλους! Σήμερα θα σας δείξω πώς μπορείτε να φτιάξετε τη δική σας επαγγελματική κάρτα/κονσόλα παιχνιδιών/ό, τι μπορείτε να φανταστείτε που διαθέτει οπίσθια οθόνη I2C OLED και μικροεπεξεργαστή ATtiny85. Σε αυτό το Instructable θα σας πω πώς ένα PCB που σχεδιάζω