Senarai apa yang kita perlukan:
- Digispark Attiny85
- paparan Oled 128x64 I2C
- Sensor suhu ds18b20
- Resistor 4.7 Kom 0.25 W
- Programmer ISP atau Arduino Papan nama firmware Attiny85 Digispark
- Tablet plastik dengan klip kertas atau lembaran plastik nipis
- wayar
- Dupont 2.54 mm penyambung "wanita"
- Butang 2 pcs.
- Papan litar kecil atau trim kecil
- besi pematerian
- Solder, rosin
- gunting
- pisau perkeranian
- Gun gam panas
- Gam panas
Langkah 1 Memilih Komponen.
Sebagai pengawal utama kita akan menggunakan Diginyark Attiny85. Terdapat beberapa jenis mereka. Kami memerlukan papan dengan penyambung USB mikro. Selebihnya tidak akan sesuai dengan kes menonton.
Untuk memaparkan, kami memerlukan paparan Oled 128x64 I2C. Mereka datang dalam pelbagai warna: putih, biru, biru dengan kuning. Saya menarik perhatian awak! Istilah "dua warna" dalam keterangan atau tajuk skrin ini bermaksud jalur satu warna di bahagian atas skrin dan warna kedua keseluruhan skrin yang tinggal, dan bukan keupayaan untuk memaparkan dua warna dengan skrin ini! Semua skrin jenis ini memaparkan hanya satu warna, atau di atas satu jalur satu warna di bahagian bawah - yang lain. Seperti, contohnya, yang saya akan gunakan. Bar di atas adalah kuning; seluruh skrin berwarna biru. Anda boleh memilih mana-mana warna yang anda suka.
Kami juga memerlukan sensor suhu bersepadu DS18B20. Ia tidak dipilih secara kebetulan. Pertama, DS18B20 berkomunikasi dengan mikrokontroler melalui talian komunikasi satu wayar menggunakan protokol antara muka 1-Wire. Dalam kes kita, ini penting, kerana kesimpulan Attiny85 tanpa sensor adalah sedikit. Kedua, sensor ini adalah digit, iaitu, ia mengambil semua pengukuran itu sendiri dan hanya menghantar data suhu tanpa menghabiskan sumber pengkomputeran Attiny85.
Bagi yang lain, saya fikir tidak akan ada soalan, jadi mari kita teruskan untuk membuat kes itu.
Langkah 2 Perhimpunan perumahan.
Kes menonton akan dibuat daripada plastik nipis. Saya mempunyai tablet plastik dengan klip kertas di tangan saya. Ia cukup sukar untuk memegang bentuknya, dan pada masa yang sama ia boleh dipotong dengan gunting biasa dan pisau pejabat. Dia datang dengan sempurna.Jika tidak, anda boleh membeli tablet di kedai bekalan pejabat atau cari plastik yang betul untuk menggantikan tablet. Kami membuat tanda pada plastik mengikut skema:
Potong semua garis pepejal. Dotted - sedikit potong dengan pisau perkeranian. Garis putus-putus adalah garis lipat. Seperti yang anda faham, inilah susunan kiub biasa. Seterusnya, anda perlu menyolder wayar ke skrin, lebih baik untuk mengambil pelbagai warna dan menulis yang membawa kepada apa. Lekat skrin pada pelekat panas-mencair di tengah, supaya bahagian depannya keluar dari belakang. Seperti yang anda dapat lihat, kami telah menutup peletakan pin skrin. Oleh itu, ia perlu menulisnya. Saya sedikit menyerahkan kepada pisau, dan dengan itu memotong bahagian bawah badan. Tidak ada yang salah dengan itu, semuanya boleh terpaku. Tetapi lebih baik untuk tidak mengulangi kesilapan saya.
Hasilnya sepatutnya seperti ini:
Pada kes ini sudah siap. Anda masih boleh memotong penutup belakang daripada plastik yang sama, tetapi ini adalah pilihan.
Langkah 3 Kami solder.
Kes kami adalah kecil, dan kami perlu menjejalkan banyak di sana. Oleh itu, kami mengambil sekeping papan litar tidak lebih daripada 2.8 x 2.8 mm dan solder dalam dua butang, sensor ds18b20, perintang dan beberapa kenalan. Mengikut skim berikut:
Ia tidak perlu untuk wayar solder terus ke Attiny, kerana perlu memutuskan semua perkara untuk firmware. Hasilnya sepatutnya seperti ini:
Butang diperlukan untuk menetapkan masa. Kuasa boleh diambil dari port USB komputer. Menggabungkan tambah dan tolak, masing-masing:
Sekiranya anda ingin melakukan tanpa wayar, anda perlu mencari bateri lithium-ion kecil. Contohnya:
Bateri ini sesuai di dalam kes itu. Ia hanya perlu menyediakan kesimpulan untuk caj bateri.
Langkah 4 Menyediakan programmer.
Diginyark Attiny85 boleh diprogramkan melalui penyambung USB mikro di papan, menggunakan Arduino IDE sebagai persekitaran pengaturcaraan. Tetapi pada masa yang sama anda perlu mengorbankan 2 KB memori untuk pemuat but. Attiny 85 mempunyai sejumlah 8 KB Flash. Lakaran saya tidak sesuai dengan pemuat but, jadi saya perlu program melalui programmer ISP. Saya tidak mempunyai programmer seperti itu, tetapi terdapat papan Arduino Uno, yang saya akan gunakan sebagai programmer. Jika anda mempunyai programmer ISB, anda boleh melangkau item ini. Buka Arduino IDE dan isikan lakaran kami yang dipanggil ArduinoISP ke Arduino Uno kami. Anda boleh menemuinya seperti Fail - Contoh - Arduino ISP. Lakaran itu bermula dengan petunjuk bagaimana menghubungkan Arduino ke pengawal diprogramkan. Daripada Arduino Uno, boleh ada papan Arduino yang lain.
// 10: set semula hamba
// 11: MOSI
// 12: MISO
// 13: SCK
Skim sambungan ke Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Langkah 5 Menyediakan persekitaran pengaturcaraan.
Untuk mengedit firmware dan mengisi lakaran dalam Attiny 85, anda perlu menyediakan bukan sahaja pengaturcara, tetapi juga persekitaran pengaturinya sendiri. Untuk melakukan ini, pasang Arduino IDE dari laman web rasmi Arduino.cc, dan juga pasang Addiny yang digunakan untuk mikrokontroler melalui Pengurus Papan.
Lancarkan IDE Arduino, kemudian Fail - Tetapan - dalam URL Pengurus Pengurus Tambahan bidang, tampal pautan:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
klik OK (anda boleh memasukkan beberapa pautan yang dipisahkan oleh koma dalam bidang ini). Alat Seterusnya - Pengurus Dewan - Lembaga dalam bidang penapis, masukkan Attiny dan klik pada "attiny oleh David A. Mellis". Klik Pasang dan tunggu muat turun selesai. Sekarang dalam menu Alat, pilih:
Lembaga - Attiny 25/45/85
Pemproses - Attiny 85
Jam - dalaman 16
dan pilih port siri yang mana programmer ISP atau Arduino disambungkan sebagai programmer.
Saya cuba banyak perpustakaan yang berbeza untuk bekerja dengan skrin. Pada pendapat saya, yang paling mudah dan bekerja pada Attiny85: TinyOzOLED.
Sensor suhu memerlukan perpustakaan OneWire.
Pasang kedua-dua perpustakaan ini. Anda boleh memasang perpustakaan pihak ketiga secara langsung dalam persekitaran pengaturcaraan. Tanpa membongkar arkib yang dimuat turun, dalam Arduino IDE, pilih menu Skrin - Sambungkan Perpustakaan. Di bahagian paling atas senarai juntai bawah, pilih Item pustaka Tambah .Zip. Dalam dialog yang muncul, pilih perpustakaan yang ingin anda tambah. Buka menu Skrin - Sambungkan Perpustakaan. Di bahagian paling bawah senarai juntai bawah, anda harus melihat sebuah perpustakaan baru. Sekarang perpustakaan boleh digunakan dalam program. Jangan lupa reboot IDE Arduino selepas semua ini.Jika itu tidak membantu, cuma pasang fail arkib ke folder "pustaka" yang terletak di dalam folder dengan Arduino IDE dipasang.
Langkah 6 Edit dan isikan lakaran.
Sensor suhu berfungsi mengikut protokol One Wire dan mempunyai alamat unik untuk setiap peranti - kod 64-bit. Sumber-sumber Attiny tidak mencukupi untuk mencari kod ini setiap kali. Oleh itu, anda mesti menyambungkan sensor terlebih dahulu ke mana-mana papan Arduino, isi lakaran yang terdapat dalam Fail - Contoh - Dallas Temperature - OneWireSearch menu. Seterusnya, jalankan Alat - Monitor Pantas. Arduino perlu mencari sensor kami, tulis alamat dan bacaan suhu semasa. Kami menyalin atau hanya menulis alamat sensor kami. Buka lakaran Attiny85_Oled_SPI_Term_2, cari garisan:
tambah bait [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Kami menulis alamat sensor anda di antara pendakap, menggantikan alamat sensor saya. Selepas itu, sambungkan Attiny ke programmer atau Arduino sebagai programmer (ini diterangkan di Langkah 4) dan isikan lakaran. Ia masih mencabut programmer dan menyambung semuanya mengikut skema dalam 3 langkah. Perhimpunan ternyata seperti ini:
Skrin kecil, adalah mustahil untuk meletakkan kedua-dua masa dan suhu supaya kelihatan. Oleh itu, jam mengubah masa dengan bacaan suhu setiap 10 saat.