Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Descripción Del Funcionamiento
- Hatua ya 2: Circuitos
- Hatua ya 3: Programación
- Hatua ya 4: Hitimisho
- Hatua ya 5: Viungo Y Lecturas Relacionados
Video: Attiny85 Termómetro OLED: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Hesabu hii inajumuisha muda mfupi tu na njia rahisi ya kufanya kazi kwa kweli, kwa sababu ya habari zaidi na maoni ya watu. Puede realizarse con un ATmega328p, pero lo interesante de esta versión es utilizar un ATtiny85 cuyo tamaño y consumo de batería convergen en un dispositivo pequeño y portátil.
Maelezo yanayoendelea ya kujifurahisha, ambayo yanaweza kutekelezwa kwa mzunguko wa mwisho na kukamilisha mpango wa jumla wa vyuo vikuu kwa ujumla.
Vifaa
1 x Mchanganyiko85
1 x Arduino UNO / PRO / nk (programador del ATtiny)
1 x 128x64 pantalla I2C OLED
1 x Sensorer temperatura DHT22
1 x Resistencia 4.7MOhm (1 / 4W)
1 x Capacitor umeme 0.1uF
1 x Fuente de 3.3V - 5V 10+ x Jumpers
Hatua ya 1: Descripción 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 consumo for extender la vida de la bateriya.
Programu ya hivi karibuni inaweza kutekelezwa hivi karibuni: Maadili ya juu -> Zaidi ya hali ya juu -> Apagar ATtiny -> Reiniciar al presionar botón.
Para cada uno de estos pasos dejaremos la meya parte del trabajo a las librerías ya existentes, por lo que no reinventaremos la rueda. Maktaba ya sensorer ya DHT ya bure ya Adafruit (inayoweza kutolewa kwa IDE) na Tiny4kOLED ya data inayotokana na Github ya kila siku, kumbukumbu, msingi wa data, idema, necesitaremos modificarla un poco luego.
El método de reinicio puede ser tanto un boton como dos placas metálicas que se tocan para encender el equipo. Kwa kibinafsi, yeye hujiunga na operesheni ya las placas metálicas más interactivo.
Hatua ya 2: Circuitos
Katika picha ya kwanza inaweza kujumuishwa kwa mahitaji ya programu ya ATtiny85. Primeramente se debe programar al Arduino (el capacitor debe estonctado) con sketch ArduinoISP, que se encuentra en Archivos -> Ejemplos -> 11. ArduinoISP. Una vecho heo este sebe colocar el capacitor for evitar que nuestro Arduino se reinicie al programar el ATtiny85.
El ATtiny se puede alimentar directamente del Arduino. Kwa hivyo utumiaji wa utaftaji wa habari zaidi unaweza kuwa na dhamana ya hali ya juu (GND) del Arduino na el ATtiny85.
Colocar un boton entre el pin 13 del Arduino y el 2 del ATtiny puede facilitar el hacer pruebas of que la pantalla no puede estar conectada cuando se programama al ATtiny.
Como se observa en las kuvat Pini ya SDA del ATyiny es el 0 y el SCL / CLK es el 2. Nuestro DHT inajumuisha mkutano wa 4.
Hatua ya 3: Programación
Primeramente, debemos seleccionar "Arduino as ISP" como el programador. Si aún no han instalado la placa para el ATtiny, recomiendo instalar la placa ATtinyCore de Spence Konde. Esta placa no me generonaing to the problema of the compilación durante la realización del proyecto.
Kwa sababu ya kusanidi sanamu ya BOD, unaweza kutumia 8MHz kwa OptiBoot ya ndani. Utumiaji wa 1MHz kwa njia ya mawasiliano kwa I2C haitafahamika kama 16MHz kwa nje, ambayo inaweza kutekelezwa kwa kila siku, kwa sababu inawezeshwa na serikali.
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
Muendelezo wa ajunto el sketch necesario para el proyecto.
#jumuisha # pamoja na # pamoja # #jumlisha #fafanua I_PINB PCINT3 #fafanua I_PIN PB3 #fafanua I_VECTOR PCINT0_vect #fafanua adc_disable () (ADCSRA & = ~ (1 << aden)) Disable = "" adc = "" converter #fafanua DHTPIN 4 #fafanua DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE); const uint8_t upana = 128; urefu uint8_t = 64; bool tete imegeuka = uwongo; / * * * Kidhibiti cha kukatiza * * / ISR (PCINT_VECTOR) {// kukatiza kila wakati hupona kutoka kwa usingizi ikiwa (digitalRead (I_PIN) == JUU) {turned = true; // weka bendera kuchora tena skrini}} usanidi batili () {ehl (); // kuzima hukatisha PCMSK | = (1 << I_PINB); GIMSK | = (1 << PCIE); pinMode (I_PIN, INPUT); jinsi (); // kuwasha kukatiza adc_disable (); // kuokoa nguvu kuzima kigeuzi set_sleep_mode (SLEEP_MODE_PWR_DOWN); // weka aina ya usingizi kwa usingizi mzito oled. kuanza (upana, urefu, saizi ya (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // kuanza kitu kilichopakwa oled.setFont (FONT8X16); // font hii inaonekana bora kuliko ile nyingine ya kutekaScreen (); oled juu ya (); kuchelewa (2000); kuanza (); akageuka = kweli; // bendera ya kuchora skrini} usingizi batili () {sleep_enable (); lala_cpu (); } kitanzi batili () {ikiwa (imegeuzwa) {ehl (); // kuzima hukatiza oled. kwenye (); kuelea h = dht.readHumidity (); // kusoma kwa uwongo kuweka upya ucheleweshaji wa cache ya dht (2200); // subiri dht kupakia h = dht.readHumidity (); kuelea t = dht. soma Joto (); kuelea i = dht.computeHeatIndex (t, h, uwongo); Mshale uliowekwa oled (55, 1); alama ya oled (t); alama ya oled ("~ C"); Mshale uliowekwa oled (55, 3); alama ya oled (h, 0); alama ya oled ("%"); Mshale uliowekwa oled (55, 5); alama ya oled (i); alama ya oled ("~ C"); // alama ilibadilishwa kwenye maktaba ili kuonekana kama kucheleweshwa kwa alama ya digrii (5000); // onyesha kwa sekunde 5 oled.off (); akageuka = uongo; sei (); // ambatisha hukatiza tena} kulala (); // daima nenda kulala mwisho} batili DrawScreen () {// inachora fremu maandishi kuu ya (uint8_t y = 0; y <8; y ++) {oled.setCursor (0, y); kuanzaData (); kwa (uint8_t x = 0; x <128; x + = 2) {oled.sendData (0b10101010); oled.sendData (0b01010101); } oled.endData (); } oled.setCursor (0, 0); kuanzaData (); oled.sendData (0b11111111); oled.repeatData (0b00000101, upana - 2); oled.sendData (0b11111111); oled.endData (); kwa (uint8_t y = 1; y <(urefu - 8) / 8; y ++) {oled.setCursor (0, y); kuanzaData (); oled.sendData (0b11111111); oled. kurudiaData (0b00000000, upana - 2); oled.sendData (0b11111111); oled.endData (); } oled.setCursor (0, (urefu - 8) / 8); kuanzaData (); oled.sendData (0b11111111); oled.repeatData (0b10100000, upana - 2); oled.sendData (0b11111111); oled.endData (); Mshale uliowekwa oled (4, 1); alama ya oled ("Temp:"); Mshale uliowekwa oled (4, 3); alama ya oled ("Hum:"); Mshale uliowekwa oled (4, 5); alama ya oled ("Sens:"); }
Hatua ya 4: Hitimisho
Pesar de su tamaño insignificante, el ATtiny85 ofrece una amplia gama de aplicaciones en las que podemos implementar of this controlador de bajo costo sin perder funcionalidad. Utu wa kibinafsi hautafahamika kuwa na uwezo wa kudhibiti uwezo wa kudhibiti usingizi wa kulala kwa watu wanaopenda kulala. Dichozamente, el programama ha entrado en nuestro ATtiny
Zipo otras librerías para las pantallas OLED. La librería GFX de Adafruit no me permitió comparing for this que decidí buscar algo precisamente for the ATTiny, kwa sasa kuna mambo yote yatakayowezekana kutafutwa kwa watafiti
El consumo del dispositivo es muy bajo. Thinkando un uso constante, he medido y estimado la vida para una batería de 3000mAh (NiMH o LiIon) en 500 días. El consumo podría reducirse aún más desconectando la pantalla y el sensor directamente desde un pin del ATtiny, pero no lo he considerado necesario
Según Technoblogy.com in ATTiny puede operar en un consumo tan bajo como el mostrado en the primera image, pero it este proocto he obtenido un consumo meor que corresponde al de la segunda imagen. El consumo de la batería continúa siendo lo suficientemente bajo como para ser un proyecto ukweli
Hatua ya 5: Viungo Y Lecturas Relacionados
www.technoblogy.com/show?KX0&fbclid=IwAR0qu…
github.com/SpenceKonde/ATTinyCore
www.electroschematics.com/am2302-dht22-dat…
ww1.microchip.com/downloads/en/DeviceDoc/A…
embedded Thoughts.com/2016/06/06/attiny85-i…
www.instructables.com/id/ATtiny85-Interrup…
www.technoblogy.com/show?WNM
www.technoblogy.com/show?2F5D
Ilipendekeza:
ATTiny85 Inayovaliwa Vibrating Shughuli Kufuatilia Kuangalia na Kupanga Programu ATtiny85 Na Arduino Uno: Hatua 4 (na Picha)
Utazamaji wa Kutetemeka kwa Shughuli inayoweza kuvaliwa Kufuatilia Kuangalia na Kupanga Programu ATtiny85 Na Arduino Uno: Jinsi ya kufanya saa ya ufuatiliaji wa shughuli inayoweza kuvaliwa? Hii ni kifaa kinachoweza kuvaliwa iliyoundwa kutetemeka wakati hugundua vilio. Je! Unatumia wakati wako mwingi kwenye kompyuta kama mimi? Je! Umekaa kwa masaa bila kujua? Basi kifaa hiki ni f
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa Hatua (hatua 8): Hatua 8
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa hatua (hatua-8): transducers za sauti za ultrasonic L298N Dc umeme wa umeme wa adapta na pini ya kiume ya dc Arduino UNOBreadboard Jinsi hii inavyofanya kazi: Kwanza, unapakia nambari kwa Arduino Uno (ni mdhibiti mdogo aliye na dijiti na bandari za analog kubadilisha msimbo (C ++)
Jinsi ya Kutumia Magari ya Stepper Kama Encoder ya Rotary na OLED Onyesha kwa Hatua: 6 Hatua
Jinsi ya Kutumia Magari ya Stepper Kama Encoder ya Rotary na OLED Onyesha kwa Hatua: Katika mafunzo haya tutajifunza jinsi ya kufuatilia hatua za gari za stepper kwenye OLED Onyesho. Tazama video ya maonyesho. Sifa ya mafunzo ya Asili huenda kwa mtumiaji wa youtube " sky4fly "
Flappy Bird kwenye ATtiny85 na OLED Onyesha SSD1306: Hatua 6 (na Picha)
Flappy Bird kwenye ATtiny85 na OLED Onyesha SSD1306: Halo kila mtu, Leo nitakuonyesha kiini cha msingi cha ndege ambacho nimeunda, na jinsi unaweza kufanya mchezo sawa. Kwa kweli nitaenda kupitia nambari yangu na wewe na kuelezea jinsi inavyofanya kazi kila hatua. Mchezo huu umejengwa kwa ru
Kadi ya Biashara / Dashibodi ya Mchezo: Skrini ya ATtiny85 na OLED: Hatua 5 (na Picha)
Kadi ya Biashara / Dashibodi ya Mchezo: Skrini ya ATtiny85 na OLED: Halo kila mtu! Leo nitakuonyesha jinsi unaweza kuunda kadi yako ya biashara / koni ya mchezo / chochote unachofikiria ambacho kinaonyesha onyesho la nyuma la I2C OLED na ATtiny85 Microprocessor. Katika hii ya kufundisha nitakuambia jinsi PCB ambayo ninastahili