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.