Mundarija:

Attiny85 Termómetro OLED: 5 qadam
Attiny85 Termómetro OLED: 5 qadam

Video: Attiny85 Termómetro OLED: 5 qadam

Video: Attiny85 Termómetro OLED: 5 qadam
Video: Как использовать LM35 для измерения температуры в градусах Цельсия, Фаренгейта и Кельвина 2024, Oktyabr
Anonim
Attiny85 Termometr OLED
Attiny85 Termometr OLED
Attiny85 Termometr OLED
Attiny85 Termometr OLED

Bu har qanday temperatura uchun eng oddiy va eng muhimi. Bu ATmega328p va ATtiny85 -ni ishlatganda, siz o'zingizning shaxsiy ma'lumotlaringizni bir vaqtning o'zida ishlatishingiz mumkin.

Umumiy funktsiyalarning umumiy ta'rifi, shuningdek, umumiy dasturlar va dasturlarning umumiy tavsifi.

Ta'minotlar

1 x ATtiny85

1 x Arduino UNO/PRO/etc (ATTiny dasturi)

1 x 128x64 o'lchamli I2C OLED

1 x DHT22 harorat sensori

1 x qarshilik 4.7MOhm (1/4 Vt)

1 x 0,1uF elektr kondansatkichi

1 x Fuente de 3.3V - 5V 10+ x o'tish moslamalari

1 -qadam: Del Funcionamiento tavsifi

OLED, ishlab chiqarish, uy -ro'zg'or xavfsizligi, uyqu, uyali aloqa, uyqu, uzilish, vaqtni uzib qo'yish kabi muhim vazifalarni bajaradi. la batería.

Dasturni qayta ishga tushirish jarayoni: "Haroratning harorati" -"Haroratning eng yuqori darajasi" -"Apagar ATtiny" -"Reiniciar al presionar botón".

Ma'lumot uchun, shahar hokimi, agar mavjud bo'lsa, kutubxonaga kirgizib bo'lmaydi. Adafruit (IDE -da taqsimlanmagan) va kutubxona ma'lumotlari Github yoki boshqa ma'lumotlar bazasi, ma'lumotlar bazasi, ma'lumotlar bazasi, ma'lumotlar bazasi va boshqa modifikatsiyalari bo'yicha DHT sensorlar kutubxonasi.

Bu eng muhimi, siz o'zingizni qiziqtirgan narsalarga ega bo'lishingiz mumkin. Shaxsiy ravishda, u interaktiv ma'lumotlarni himoya qiladi.

2 -qadam: O'chirish moslamalari

O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish

Dastur ATTiny85 uchun eng zarur bo'lgan elektron sxemalar bilan ta'minlangan. Dastur Arduino dasturining asosiy chizig'i bo'lib, ArduinoISP -ni eskizlari, arxivlar -> Ejemplos -> 11. ArduinoISP. Agar siz ATTiny85 -da Arduino -ni o'rnatib qo'ysangiz, bu kondansatkichni o'chirib qo'yadi.

Al -ATtiny, Arduino -ni boshqaradi. Arduino y el ATtiny85 bilan aloqa o'rnatilmagan bo'lsa, u holda siz bir vaqtning o'zida bir nechta ma'lumotni ishlatishingiz mumkin.

Umumiy ma'lumotlar 13 -banddan so'ng, ATTiny -da hech qanday qiyinchilik tug'dirmaydi.

Kuzatuvlar las imágenes. SDA del ATyiny es el 0 y el SCL/CLK es el 2. Nuestro DHT bilan aloqa 4 -bandda.

3 -qadam: Dastur

Birinchidan, "Arduino Internet -provayder sifatida" tanlangan dastur. ATtiny -ni o'rnatib bo'lmaganda, ATtinyCore de Spence Konde -ni o'rnatish mumkin emas. Bu hech qanday muammo tug'dirmaydi, shuning uchun u hech qanday muammo tug'dirmaydi.

BOD -ni sozlash, OptiBoot -ning 8 MGts chastotali ulanishi. 1 MGts chastotali I2C -ni ulash mumkin emas, chunki u 16 MGts chastotali tashqi qurilmalar, raqamli texnologiyalar va iste'mol qilinadigan energiyani o'z ichiga oladi.

U Tiny4kOLED -ni arxivga yozib qo'ydi. "Font8x16.h" formatidagi arxiv fayllari 117 -raqamli ma'lumotni o'z ichiga oladi, bu esa har bir kishi uchun juda yaxshi.

0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

Aloqa uchun eskizlar kerak bo'ladi.

#include #include #include #define I_PINB PCINT3 #dein I_PIN PB3 #I_VECTOR PCINT0_vect #define adc_disable () (ADCSRA & = ~ (1 << aden)) disable = "" adc = "" converterIN # #DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE) ni aniqlang; const uint8_t kengligi = 128; const uint8_t balandligi = 64; o'zgaruvchan bool = false; / * * * Interrupt ishlovchisi * */ISR (PCINT_VECTOR) {// uzilish har doim uyqudan qaytadi, agar (digitalRead (I_PIN) == YUQORI) {o'girilgan = rost bo'lsa; // bayroqni ekranni qayta chizish uchun o'rnating}} void setup () {cli (); // PCMSK uzilishlarini o'chirish | = (1 << I_PINB); GIMSK | = (1 << PCIE); pinMode (I_PIN, INPUT); sei (); // uzilishlarni yoqish adc_disable (); // quvvatni tejash, konvertorni o'chirish set_sleep_mode (SLEEP_MODE_PWR_DOWN); // uyqu turini chuqur uyquga qo'ying oled.begin (kenglik, balandlik, o'lcham (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // oled ob'ektini ishga tushirish oled.setFont (FONT8X16); // bu shrift boshqasiga qaraganda yaxshiroq ko'rinadi drawScreen (); oled.on (); kechikish (2000); dht.begin (); aylandi = rost; // ekran chizish uchun bayroq} void sleep () {sleep_enable (); uyqu_cpu (); } void loop () {if (burilgan) {cli (); // uzilishlarni o'chirish oled.on (); float h = dht.readHumidity (); // keshni kechiktirishni tiklash uchun noto'g'ri o'qish (2200); // yuklanishini kuting 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"); // ~ belgisi kutubxonada ° gradusli belgining kechikishiga o'xshab o'zgartirildi (5000); // 5 soniya davomida ko'rsatish oled.off (); o'girildi = noto'g'ri; sei (); // yana uzilishlarni biriktiring} sleep (); // har doim oxirida uxlang} void drawScreen () {// ramkani asosiy matnga (uint8_t y = 0; y <8; y ++) {oled.setCursor (0, y); oled.startData (); uchun (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, kengligi - 2); oled.sendData (0b11111111); oled.endData (); uchun (uint8_t y = 1; y <(balandligi - 8) / 8; y ++) {oled.setCursor (0, y); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000000, kengligi - 2); oled.sendData (0b11111111); oled.endData (); } oled.setCursor (0, (balandlik - 8) / 8); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b10100000, kengligi - 2); oled.sendData (0b11111111); oled.endData (); oled.setCursor (4, 1); oled.print ("Harorat:"); oled.setCursor (4, 3); oled.print ("Hum:"); oled.setCursor (4, 5); oled.print ("Sens:"); }

4 -qadam: Xulosa

Xulosalar
Xulosalar
Xulosalar
Xulosalar

Bu juda muhim emas, lekin siz ATTiny85 -ni ishlatib bo'lmaysiz, lekin bu sizning vazifangizni bajarishga yordam beradi. Shaxsiy hisob -kitoblar uyqu rejimida ham, uyquda ham cheklanmagan. Dixozamente, ATtiny dasturining eng yaxshi dasturi

OLED pantallas kutubxonasi mavjud. Adafruit -ning kutubxonasi hech kimga ma'lum emas, chunki bu aniq emas, shuning uchun ham, bu erda ham bor

Bu juda muhim vazifadir. 3000 mA / s (NiMH yoki LiIon) dan keyin 500 dyuymni tashkil qiladi. Sensorni to'g'ridan -to'g'ri o'chirib qo'yish kerak bo'lsa -da, bu hech qanday xavf tug'dirmaydi

Texnologiya Texnologiyalari.com saytida siz o'zingiz xohlaganingizcha, bu sizning xohishingizga ko'ra, shahar hokimi tomonidan boshqariladi. Muvaffaqiyatli va tez -tez ishlatib bo'lmaydigan narsa

5 -qadam: Havolalar 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…

embeddedthoughts.com/2016/06/06/attiny85-i…

www.instructables.com/id/ATtiny85-Interrup…

www.technoblogy.com/show?WNM

www.technoblogy.com/show?2F5D

Tavsiya: