» Elektronik » Arduino »Arduino menonton dengan sensor suhu dan tanpa RTS

Arduino menonton dengan sensor suhu dan tanpa RTS

Arduino menonton dengan sensor suhu dan tanpa RTS

Selamat siang, hari ini saya akan berkongsi arahan tentang cara membuat jam dengan termometer bilik. Jam berjalan Arduino UNO, WG12864B skrin grafik digunakan untuk memaparkan masa dan suhu. Sebagai sensor suhu - ds18b20. Tidak seperti jam tangan yang lain, saya tidak akan menggunakan RTS (Jam Masa Nyata), tetapi cuba lakukan tanpa modul tambahan ini.

Untuk ini buatan sendiri Komponen berikut diperlukan:
- Arduino UNO (Atau mana-mana papan serasi Arduino lain)
- Skrin grafik WG12864B
- Sensor suhu ds18b20
- Resistor 4.7 Kom 0.25 W
- Resistor 100 ohm 0.25 W
- Kompart bateri untuk 4 bateri "jenis jari"
- Kotak yang sesuai
- Fail kecil
- Pengilat kuku (hitam atau warna badan)
- Satu plastik atau kadbod kecil nipis
- pita elektrik
- menyambung wayar
- papan litar
- Butang
- besi pematerian
- Solder, rosin
- Pita bermuka dua

Langkah 1 Menyediakan kepungan.
Oleh itu, jam tangan kita harus ditempatkan di suatu tempat. Anda perlu mencari kotak yang sesuai. Perkara utama ialah skrin WG12864B, Arduino dan papan litar kecil untuk butang yang sesuai di dalamnya. Saiz kotak minimum ialah 7 x 7 x 10 cm Jika anda menggunakan papan Arduino kecil, anda boleh memasukkannya ke kotak dan yang lebih kecil, tetapi saya akan menerangkan proses menggunakan Arduino UNO sebagai contoh. Bahan yang dibuat kotak itu sebaiknya plastik, jika, seperti lombong, ia adalah besi, ia berhati-hati menjaga penebat supaya tiada apa-apa "pergi" di dalamnya. Plastik adalah lebih baik kerana ia lebih mudah dipotong. Dengan kotak, dia adalah kes jam tangan kami, memutuskan. Kini perlu memotong tetingkap di bawah skrin berukuran 6.5x4 cm Jika kotak itu adalah besi, sangat sukar untuk melakukannya dengan teliti. Tidak kira bagaimana anda mencuba, cat akan terkelupas dan kekasaran berhampiran potongan. Oleh itu, pertama kita memotongnya, untuk ini anda boleh menggunakan "penggiling", gerudi dengan muncung untuk memotong atau pemotong penggilingan, secara umum, pilihan anda, dengan apa yang ada di tangan. Selepas itu, kami membersihkan tepi dengan fail. Kami cat semua cat terkelupas dengan cat kuku, warna yang sesuai. Hasilnya adalah sebagai berikut:


Langkah 2 Sediakan skrin grafik.
Dengan menyambung skrin, pada pandangan pertama, banyak masalah dan kesukaran timbul. Tetapi jika anda terlebih dahulu berurusan dengan jenis mereka, ia akan menjadi lebih mudah dan lebih mudah difahami. Terdapat banyak variasi dan jenis skrin pada pengawal ks0107 / ks0108.Semua skrin biasanya dibahagikan kepada 4 jenis:
Pilihan A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Pilihan B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Memaparkan AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1, QY1286464JF, 2 QY
Opsyen C: Shenzhen Jinghua Displays Co Ltd. Jm12864
Pilihan D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Senarai itu tidak lengkap, terdapat banyak daripada mereka. Yang paling biasa dan, pada pendapat saya, mudah WG12864B3 V2.0. Paparan boleh disambungkan ke Arduino melalui port siri atau selari. Apabila digunakan dengan Arduino UNO, lebih baik memilih sambungan port bersiri - maka kita hanya memerlukan 3 output mikrokontroler, dan bukan sekurang-kurangnya 13 baris apabila dihubungkan melalui port selari. Segala-galanya disambungkan dengan ringkas. Terdapat satu lagi nuansa, dua jenis pameran boleh didapati dijual, dengan potensiometer terbina dalam (untuk menyesuaikan kontras) dan tanpa itu. Saya telah memilih, dan saya menasihati anda untuk melakukan perkara yang sama dengan yang terbina dalam.


Ini mengurangkan bilangan bahagian dan masa pematerian. Ia juga bernilai meletakkan penghalang menghadkan semasa 100 Ohms untuk lampu latar. Dengan menyambung 5 volt secara langsung, terdapat risiko membakar lampu latar.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - melalui perintang - + 5V
20 (BLK) - GND

Perkara yang paling mudah adalah untuk mengumpul segala-galanya di belakang skrin dan mengeluarkan 5 wayar dari sana untuk menyambung ke Arduino UNO. Hasilnya sepatutnya seperti ini:


Bagi mereka yang masih memilih sambungan selari, saya akan memberikan jadual sambungan.


Dan susun atur untuk pilihan B skrin:


Langkah 3 Sambungkan sensor suhu.
Seperti yang saya katakan, kami akan menggunakan sensor bersepadu DS18B20 untuk mengukur suhu. Saya memilihnya untuk ketepatan pengukuran yang tinggi, kesilapannya tidak melebihi 0.5 ° C. Sensor ditentukur pada masa pembuatan; tiada tetapan tambahan diperlukan. Julat pengukuran suhu -55 ... + 125 ° C. Terdapat dua mod operasi: dengan sumber kuasa luaran dan "kuasa palsu". Apabila beroperasi dalam mod kuasa luaran, sambungannya adalah seperti berikut:


Apabila menggunakan "kuasa palsu" sensor menerima kuasa dari talian komunikasi. Dalam mod ini, dua wayar cukup untuk menyambung ds18b20 ke mikrokontroler. Kapasitor dalaman sensor dikenakan kerana tenaga pada saluran komunikasi di tingkat rendah di dalam bas. Mod pemakanan "parasit" mempunyai banyak ciri dan oleh itu saya tidak mengesyorkan menggunakannya. Tetapi jika anda masih memutuskan untuk menggunakannya, inilah diagram:


Atau anda boleh menggunakan gambarajah pendawaian yang lebih baik apabila menggunakan "kuasa palsu":


Beberapa sensor boleh dimasukkan ke dalam satu talian komunikasi. Untuk jam tangan kita sudah cukup. Kami menyambung wayar dari "DQ" ds18b20 pin ke "pin 5" Arduino UNO.

Langkah 4 Menyediakan papan dengan butang.
Untuk menetapkan masa dan tarikh pada jam tangan, kami akan menggunakan tiga butang. Untuk kemudahan, pateri tiga butang di papan litar dan kawat keluar.


Kami menyambung seperti berikut: dawai biasa untuk ketiga-tiga butang disambungkan ke "GND" Arduino. Butang pertama, ia berfungsi memasuki mod penetapan masa dan beralih dari masa ke masa dan tarikh, bersambung ke "Pin 2". Yang kedua, butang untuk meningkatkan nilai, ialah "Pin 3", dan yang ketiga, butang untuk mengurangkan nilai, ialah "Pin 4".

Langkah 5 Meletakkannya bersama-sama.
Untuk mengelakkan litar pintas, melindungi skrin. Dalam bulatan kita membungkus dengan pita elektrik, dan di bahagian belakang kita berpaut pada pita bermuka dua, dipotong ke saiz, jalur bahan penebat. Kadbod atau plastik nipis tebal sesuai. Saya menggunakan plastik dari tablet kertas. Ternyata perkara berikut:


Di bahagian depan skrin di sepanjang tepi kami melekat pita bermuka dua pada asas buih, sebaik-baiknya hitam.


Kami menyambungkan skrin ke Arduino:


Tambahan pula kami menyambung dari petak bateri ke "VIN" Arduino, tolak ke "GND". Kami meletakkannya di belakang Arduino. Sebelum memasang kes itu, jangan lupa sambungkan sensor suhu dan papan dengan butang.


Langkah 6 Sediakan dan isikan lakaran.
Sensor suhu memerlukan perpustakaan OneWire.
onewire.rar [16.75 Kb] (muat turun: 154)


Output ke skrin adalah melalui perpustakaan U8glib:
u8glib.rar [906.95 Kb] (muat turun: 156)


Untuk mengedit dan mengisi lakaran, pasang dua perpustakaan ini. Terdapat dua cara untuk melakukan ini. Cukup arahkan arkib ini dan letakkan fail-fail yang tidak terpasang di folder "perpustakaan" yang terdapat dalam folder dengan Arduino IDE dipasang.Atau pilihan kedua ialah memasang perpustakaan 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 "Tambah .Zip Library" item. 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.

Sensor suhu berfungsi mengikut protokol One Wire dan mempunyai alamat unik untuk setiap peranti - kod 64-bit. Setiap kali, mencari kod ini tidak praktikal. Oleh itu, anda mesti menyambungkan sensor terlebih dahulu ke Arduino, isi lakaran yang terdapat dalam Fail - Contoh - Suhu Dallas - 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 Arduino_WG12864B_Term, cari garisan:

byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // alamat sensor saya 


Kami menulis alamat sensor anda di antara pendakap, menggantikan alamat sensor saya.

Saham:

//u8g.setPrintPos (44, 64); u8g.print (sek); // Cetak segmen untuk memeriksa ketepatan kursus


Memaparkan detik di sebelah "Data". Ini adalah perlu untuk menetapkan masa yang tepat.
Sekiranya jam tergesa-gesa atau tertinggal, anda harus menukar nilai dalam barisan:

jika (micros () - prevmicros> 494000) {// perubahan yang lain untuk pelarasan adalah 500000


Saya secara eksperimen menentukan nombor di mana jam pergi agak tepat. Sekiranya jam tangan anda tergesa-gesa, anda perlu menambah nombor ini, jika saya berada di belakang, mengurangkannya. Untuk menentukan ketepatan kursus dan memerlukan kesimpulan detik. Selepas menentukur nombor dengan tepat, beberapa saat dapat dikomentari dan dengan itu dikeluarkan dari skrin.

Isikan lakaran.
arduino_wg12864b_term.rar [3.64 Kb] (muat turun: 314)

7
9
5.3

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

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...