» Elektronik » Arduino »Jam dengan termometer pada Attiny

Attiny Thermometer Watch

Attiny Thermometer Watch



Halo semua dan mempunyai hari yang baik atau petang. Kali ini saya akan berkongsi arahan untuk membuat jam bilik dengan termometer. Pusat pengkomputeran jam tangan itu akan menjadi Attiny85, dipasang di papan dari Digispark. Untuk memaparkan jam - paparan Oled. Thermometer - yang terkenal ds18b20. Untuk kuasa kita mengambil li-ion 18650 (mereka boleh didapati dari bateri lama dari komputer riba). Dan tambah paparan tahap bateri. Seperti dalam semua jam tangan saya sebelumnya, kita akan lakukan tanpa modul RTC (jam masa nyata).

Kami mengumpul semua yang diperlukan:

- Digispark Attiny85 (versi USB mikro)
- ds18b20 (dalam kes plastik)
- Skrin Oled dengan resolusi 128x64, I2C
- 2pcs 18650 bateri atau bateri komputer riba Li-ion lama
- Resistor (3.3 kΩ, 4.7 kΩ, 10 kΩ)
- Plastik tipis (untuk perumahan)
- Menyambung wayar dengan warna yang berbeza
- Programmer ISP (atau mana-mana Arduino bayaran)
- Butang
- Penyambung Dupont 2.54 mm "ibu", "bapa"
- Alat tulis, pita bermuka dua, pita elektrik, hotmelt
- Segala-galanya untuk pematerian (solder besi, rosin, solder)

Langkah 1 Kes.
Kes masa depan akan dibuat daripada plastik nipis. Anda boleh membeli sekeping plastik sedemikian di kedai atau pesanan khas di aliexpress. Atau anda boleh (tidak menunggu dan tidak melihat) untuk pergi ke pejabat perkeranian dan membeli folder kertas plastik warna kegemaran anda. Ukuran jam masa depan: lebar - 40 mm, ketebalan - 30 mm, ketinggian - 70 mm. Menurut rajah di bawah, kami memotong imbasan daripada plastik:


Kami memotong sepanjang garis tebal, bengkokkan perlahan-lahan di sepanjang garis nipis. Kami memotong segi empat di tengah menggunakan pisau perkeranian, ini adalah tingkap untuk paparan. Akibatnya, kami mendapat imbasan plastik:


Kami lulus ke Attiny.

Langkah 2 Attiny + Oled.
Seperti yang saya katakan, di dalam hati kita buatan sendiri akan menjadi Attiny 85. Ia adalah yang terbaik untuk membeli cip ini, segera disalurkan ke papan bersama dengan pengatur voltan dan memanfaatkan. Diginyark Attiny85 sangat sesuai. Pilih versi dengan micro-USB di papan. Pengubahsuaian lain kepada lembaga tidak akan sesuai dengan saiznya. Ia berlaku bahawa lembaga ini dijual dengan penyambung Dupon "lelaki" yang telah dipateri. Jika ya, pateri semua penyambung. Kami mengumpul wayar berwarna. Kami memerlukan 10 sentimeter dalam pelbagai warna. Kami menyolder mereka di Attiny dan menulis wayar mana, yang kesimpulannya sepadan dengan. Kabel P0 dan P2 mestilah dipaterikan dalam dua wayar. Pasangan kedua diperlukan untuk menyambung skrin Oled. Kami mendapat yang berikut:


Saya menulis rajah berikut pada dawai:


Skrin kecil (untuk menyesuaikan pengawal), tetapi kelihatan cantik. OLED (diod pemancar cahaya organik) adalah paparan grafik. Tidak ada lampu latar, dan sebaliknya, setiap piksel adalah LED bebas. Saiz skrin - 0.96 inci.Resolusi 128x64. Disambungkan melalui bas I2C. Menggunakan hanya dua wayar untuk berhubung dengan Attiny. Mereka datang dalam pelbagai warna, memilih citarasa anda. Saya suka biru dengan jalur kuning di bahagian atas. Kami bertindak sama dengan Digispark. Sekiranya terdapat penyambung soldered - solder mereka. Solder, buat masa ini, hanya wayar kuasa:


Berhati-hatilah apabila pematerian, jangan merosakkan kabel dengan seterika penyolder pada paparan:


Kami menyambungkan papan menggunakan pita bermagnet:


Kami memateri paparan Diginyark Attiny dan Oled bersama-sama mengikut skema (warna wayar mungkin berbeza-beza, perkara utama adalah tidak bermasalah dengan kesimpulan):


Untuk kemudahan dan pesanan kami mengumpul semua wayar bersama-sama. Anda boleh memutarnya dengan pita elektrik agar tidak keliru:


Di penghujung semua wayar kami melampirkan penyambung Dupont "wanita", masukkannya ke penebat dan bungkus semuanya bersama-sama dengan pita elektrik untuk membuat penyambung. Kami juga merekodkan pinout penyambung:


Pinout sepatutnya seperti ini, kerana pada masa akan datang kita akan menyambungkan wayar untuk firmware atau unsur-unsur menonton lain ke penyambung.
Kami melekatkan struktur yang dihasilkan ke dalam kes itu, dan jangan lupa untuk melekatkan kes itu sendiri, meninggalkan satu rintihan yang tidak terpaku, untuk manipulasi lebih lanjut:


Apabila melekat, perhatikan bahawa skrin adalah walaupun:


Langkah 3 Kuasa.
Untuk kuasa kita akan menggunakan dua elemen Li-ion. Jenis 18650. Anda boleh membelinya secara berasingan. Dalam kes ini, solder mereka secara selari, mengasingkan dan output penyambung untuk sambungan dan pengecasan berikutnya:


Banyak yang mempunyai komputer riba yang lebih tua. Sama ada mereka tidak lagi bekerja atau bekerja sepanjang masa. Walaupun bateri komputer riba sudah buruk dan tidak sesuai untuk kegunaannya, ia boleh digunakan untuk semua jenis produk buatan sendiri. Dalam kes kami, untuk menonton. Kami mengambil bateri dari komputer riba:


Perkara utama ialah dia menjadi Li-ion. Kami dengan hati-hati membongkarnya, anda perlu membuka kes plastik, supaya tidak merosakkan elemen di dalamnya. Selalunya, bateri dibahagikan kepada dua elemen yang disambung secara selari. Kami membawa mereka keluar dan memisahkan satu pasangan dari yang lain:


Adalah lebih baik untuk solder ke pad kenalan:


Letakkan pasangan ini ke belakang jam tangan:


Langkah 4 Menentukan caj bateri.
Fungsi mudah jam tangan adalah untuk menunjukkan caj bateri. Kami akan menentukan tahap caj dengan voltan. Voltan minimum untuk bateri ini ialah 2.4 V. Ia tidak boleh dilepaskan lagi. Voltan maksimum ialah 4.2 V.

Pengukuran voltan pada port analog selalu berkaitan dengan beberapa voltan lain. Kita tidak boleh menggunakan pin AREF daripada mikrokontroler, yang berfungsi untuk menetapkan voltan rujukan. Ia juga mustahil untuk mengukur voltan berkenaan dengan voltan bekalan (nisbahnya akan sentiasa sama). Oleh itu, kita akan menentukan voltan yang berkaitan dengan voltan rujukan dalaman atau Vbg (voltan rujukan Bandgap). Ia adalah 1.1 V. Sekarang kita perlu mengira pembahagi voltan untuk bateri kita, supaya pada muatan maksimum (4.2 V) pembahagi mempunyai (1.1 V). Anda boleh mengira dengan formula:



Atau gunakan

R1 mengambil nilai muka 10 kOhm. Kemudian R2 kami mendapat 3.55 KOhm, yang paling sesuai dari nilai standard 3.3 KOhm, dan ambilnya. Pengukuran dibuat antara voltan dalaman dan GND, jadi perintang 3.3 KΩ disolder ke tolak, dan 10 KΩ ke tambah. Kami meletakkan perintang pada bateri, kami mengeluarkan wayar dari pembahagi.


Kami mengasingkan semua kenalan untuk mengelakkan litar pintas:


Kawat dari pembahagi akan disambungkan ke PB4.

Langkah 5 Mengukur suhu.
Pelengkap yang sangat baik untuk menonton adalah pengukuran suhu bilik. Kami akan menggunakan sensor suhu bersepadu DS18B20. Untuk bekerja dengannya, hanya satu dawai diperlukan (sangat berguna apabila menggunakan Attiny 85). Semua ukuran dibuat oleh dirinya sendiri, pengawal pusat tidak mengganggu (Attiny 85 juga mempunyai ingatan yang sangat baik dan begitu sedikit), kita hanya perlu memberikan perintah dan mendapatkan hasil. Terdapat beberapa skema yang berbeza untuk menyambungkan sensor ini, kami akan menggunakan pilihan yang optimum untuk kes ini, pada pandangan saya.Menggunakan kuasa luaran dan perintang 4.7 kΩ:


Solder wayar kecil, dan pasangkan penyambung


Kawat dari sensor DQ disambungkan ke PB 3.

Langkah 6 Button.
Kami mempunyai sedikit kesimpulan, tetapi terdapat banyak keperluan untuk jam tangan. Kami akan menggunakan satu butang untuk menetapkan masa. Kita tidak boleh bergantung kepada lebih banyak lagi. Solder wayar ke butang, satu kenalan dari itu ke GND. Campurkan dengan sensor suhu kami:


Kenalan kedua dari butang disambungkan ke PB 1.

Langkah 7 Menyediakan Persekitaran Pembangunan
Untuk kerja lebih lanjut dengan lakaran, serta pengeditan dan pengisiannya, kami memerlukan IDE Arduino. Muat turun program ini dari:

Sekarang tambahkan sokongan untuk Attiny 85 pada hari Rabu. Buka Arduion IDE dan pergi sepanjang laluan:
Fail - Tetapan - "URL Pengurus Papan Tambahan" masukkan pautan:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Klik OK.
Pergi ke:
Alat - Pengurus Lembaga - papan masukkan Attiny dan klik pada "attiny oleh David A. Mellis". Klik "Pasang" dan biarkan meletakkan kopi.
Dan kini mengenai perpustakaan. Mereka memerlukan dua:

Untuk bekerja dengan paparan Oled

Kawalan sensor suhu

Selepas memuat turun arkib ini, bungkusnya ke folder "pustaka", yang mudah dicari dengan mengikuti laluan pemasangan Arduino IDE.

Langkah 8 Programmer.
Digispark Attiny 85 adalah papan yang hebat. Direka untuk menyambung ke komputer USB. Dan ia boleh diprogramkan melaluinya. Tetapi Attiny menggunakan perisian USB, yang seterusnya mengambil 2 KB memori 8 KB. Ini tidak sesuai dengan kami, dan oleh itu kami akan menyalakan Attiny 85 melalui antara muka ISP. Dan di sini kita memerlukan seorang programmer ISP. Sekiranya tidak ada - ia tidak penting. Ambil Arduino. Dalam kes saya, Arduino UNO:


Anda boleh mengambil papan serasi lain dari baris Arduino. Kami menyambung ke komputer, buka Arduino IDE, pilih port com yang papan Arduino disambungkan, buka lakaran dalam contoh, Arduino ISP dan isikan ke papan. Kami juga memerlukan wayar untuk menyambung dengan pantas ke Attiny.


Sambungan adalah seperti berikut:

D11 - P0
D12 - P1
D13 - P2
D10 - P5

Jangan lupa tentang pemakanan Attiny.

Langkah 9 Edit dan isikan lakaran.

Muat turun lakaran

Sebelum mengisi, anda perlu mengedit lakaran.
Sensor bersepadu ds18b20, seperti yang dinyatakan sebelum ini, berfungsi menggunakan protokol One Wire. Setiap sensor mempunyai alamat 64-bit uniknya sendiri. Anda perlu mencari alamat sensor anda dan tuliskannya dalam lakaran. Buka Arduino IDE, ikuti laluan:
Fail - Contoh - Dallas Suhu - OneWireSearch.

Isikan lakaran ke Arduino. Buka monitor port. Anda harus melihat alamat semua sensor yang bersambung dan bacaan suhu mereka. Kami menulis alamat anda. Buka lakaran saya dan tukar alamat kepada anda sendiri dalam barisan:

tambah bait [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};


Untuk menyesuaikan kemajuan jam, gunakan pemalar berikut:

jika (micros () - prevmicros & gt; [b] 497000 [/ b]) 


Lebih besar nilai ini, lebih perlahan jam.
Untuk kawalan, saat dipaparkan pada skrin:

OzOled.printNumber ((panjang) sek, 0, 7); / / output detik untuk penalaan yang tepat 


Komen garis ini untuk mengalih keluar detik.
Sekarang kita sambungkan programmer atau Arduino sebagai pemrogram, pilih com-port, pilih papan kami dalam menu Alat dan tetapkan parameter berikut:
Lembaga: Attiny 25/45/85
Pemproses: Attiny 85
Jam: dalaman 16
Kemudian pilih dalam menu yang sama:
Alat - Programmer - "Arduino sebagai ISP".
Dan akhirnya:
Lakaran - Muat turun melalui pengaturcara

Langkah 10 pemasangan dan pelancaran akhir.
Matikan programmer dan sambungkan sensor, kuasa dan butang:


Sehingga kursus tepat jam dikonfigurasikan, anda boleh menutup kes itu menggunakan getah bank. Apabila selesai, anda boleh gam itu.


Tonton penilaian
Jumlah undian: 13
10
10
10

Tambah komen

    • senyumtersenyumxaxaokdontknowyahoonea
      bosawalbodohyaya-yaagresifrahsia
      maaftariandance2dance3pengampunanmembantuminuman
      berhentikawan-kawanbaikgoodgoodwiseltolaklidah
      asapbertepuk tangancraymengisytiharkanderisivejangan dengarmuat turun
      panasberalunketawa1mdamesyuaratmoskingnegatif
      not_ipopcornmenghukumbacamenakutkanmenakutkancarian
      mengejekterima kasihinito_clueumnikakutbersetuju
      burukbeeeblack_eyeblum3memerahbermegahkebosanan
      ditapiskesenanganrahsia2mengancamkemenanganyusun_bespectacled
      shokrespektloldiingatiselamat datangkrutoyya_za
      ya_dobryipembantune_huliganne_othodifludlarangantutup
9 komen
Penulis
Ide ini hebat. Saya melakukan sesuatu mengenainya. Hanya di hujung jari saya ialah pemboleh ubah 5 kΩ. Saya memasukkannya ke bahu bawah. Dan kemudian digantikan dengan kekal yang paling sesuai. Tetapi dalam arahan pembuatan, saya fikir, tulisan itu tidak perlu. Kenapa tidak melakukan pengukuran ini beberapa kali.
Saya tidak nampak keperluan menulis mengenai ujian yang membosankan dan panjang.
Tidak perlu melakukan apa-apa yang lama dan membosankan. Hidupkan perintang (2.7 ... 3) kOhm di lengan bawah, secara berurutan dengan pemotong 1 kOhm. Dari sumber kuasa laras, anda memasukkan nilai ekstrim voltan dikawal ke input, laraskan titik operasi, maka, jika dikehendaki, anda boleh mengukur rintangan trimmer dan menggantinya dengan perintang berterusan.
Penulis
Pada frekuensi 8 MHz, saya tidak cuba untuk memulakan jam dan dengan itu mengukur ketepatan kursus. Semua ukuran dibuat pada 16 dari dalam. Saya tidak boleh mengatakan tentang bulan sama ada. Setakat ini, tanpa mematikan, mereka bekerja maksimum seminggu. Eksperimen dan penambahbaikan masih dalam proses.
Penulis
Mengenai pembahagi voltan, terdapat banyak nuansa dan kesilapan. Dan penyebaran perlawanan rintangan dan penyebaran voltan rujukan. Saya cuba semua dalam amalan. Apabila menggunakan perintang 3.6 kΩ, walaupun dengan voltan bateri 3.9 V, pelabuhan analog Attiny menunjukkan 1023 (apabila ditukar kepada 100% peratus). Apabila menggunakan perintang 3.3 kΩ, nilai port analog berkurangan walaupun pada 4.1 V pada bateri. Oleh itu, saya menulis bahawa kesaksian diperoleh dengan lebih tepat, saya tidak melihat keperluan untuk menulis mengenai ujian yang membosankan dan panjang.
Penulis
Saya menetapkan jam selama seminggu, menyesuaikan kemajuannya setiap hari atau lebih kerap. Hasilnya, pada nilai 497343, mereka tergesa-gesa selama kira-kira 10 saat seminggu.
Kekerapan boleh dikurangkan. Saya tidak mengubah parameter, tidak perlu
Nah, dan apakah ketepatan jam RC 8-MHz? Sebulan?
dan mengapa Jam: dalaman 16?
Lebih baik memilih kurang, maka pembacaan lebih tepat.
Tidak lebih tepatnya, tetapi hanya voltan masukan kurang daripada rujukan. Di samping itu, dalam alasan anda, anda sama sekali tidak mengambil kira penyebaran parameter: perintang, kemungkinan besar, anda akan mempunyai lima peratus, Vbg = (1.0 ... 1.2) V. Jadi 3.3 kOhm mungkin terlalu besar, dan mungkin 3.6 kOhms akan dilakukan.
Penulis
Sekiranya anda menggunakan voltan output 3.6 kita dapat 1.11. Walaupun tidak banyak, tetapi lebih banyak voltan rujukan. Apabila menggunakan 3.3 - 1.04. Lebih baik memilih kurang, maka pembacaan lebih tepat.
Dan adakah Oh, anda betul, saya tidak memberi perhatian kepada perincian kecil ini.
Selepas melekatkan kes itu, akses kepada soket dan butang pengecasan boleh didapati dari bahagian bawah jam tangan dengan memotong penutup bawah atau tidak melekatkannya.
Kemudian R2 kami mendapat 3.55 KOhm, yang paling dekat dari nilai standard 3.3 KOhm,
Tidak sama sekali. E24 terdekat dalam julat standard ialah 3.6 kOhm. Dan dengan cara itu, bukan "KOhm, tapi" KOhm.
Sehingga kursus tepat jam dikonfigurasikan, anda boleh menutup kes itu menggunakan getah bank. Apabila selesai, anda boleh gam itu.
Bagaimanakah kami akan mengenakan bayaran kepada bateri?
Dan bagaimana untuk memanipulasi butang?

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...