» Elektronik » Arduino »Stesen cuaca jam di Arduino

Tonton stesen cuaca di Arduino

Tonton stesen cuaca di Arduino

Selamat pagi, saya terus buat Arduino dalam masa lapangnya, dan kali ini dia menulis arahan untuk pembuatan stesen cuaca kecil. Ia akan bertindak sebagai jam dengan tarikh dan menunjukkan suhu di dalam dan di luar bilik. Sebagai pengawal utama, kami akan menggunakan Arduino UNO, tetapi satu lagi papan dengan Atmega328p di papan akan dilakukan. Untuk paparan, kami menggunakan skrin grafik WG12864B. Kami juga menyambungkan dua sensor suhu ds18b20. Di dalam rumah, kami mengambil bahagian luar yang kedua. Mari bermula.

Dalam proses pembuatan buatan sendiri kita perlu:

- Arduino UNO (Atau mana-mana papan serasi Arduino yang lain)
- Skrin grafik WG12864B
- Sensor suhu ds18b20, 2pcs
- Bekalan kuasa 6 - 12 V
- Resistor 4.7 Kom 0.25 W, 2 pcs.
- Resistor 100 ohms 0.25 W
- Kompart bateri untuk 4 bateri AAA "pinky"
- Kotak dari kartrij konsol SEGA
- pita elektrik
- menyambung wayar
- papan litar
- Butang
- pisau alat tulis
- besi pematerian
- Solder, rosin
- Pita bermuka dua

Langkah 1 Menyediakan WG12864B3.
Mereka yang tidak bekerja dengan skrin sebelum mungkin takut dengan sejumlah besar pengubahsuaian, yang kelihatan sama, dari skrin. Saya akan menerangkan sedikit. Kebanyakan skrin jenis ini berfungsi pada cip ks0107 / ks0108. Semua skrin boleh 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

Mereka kelihatan hampir sama. Tetapi mereka mempunyai sambungan sambungan yang berbeza. Saya memilih, dan saya mengesyorkan anda, WG12864B3 V2.0, tetapi jika skrin datang berbeza, atau anda tidak memilikinya, anda boleh dengan mudah menggunakannya menggunakan jadual:


Ciri-ciri ringkas:


Terdapat banyak skema sambungan yang berbeza di Internet, dan semuanya seolah-olah berfungsi. Masalahnya ialah tidak hanya skrin yang berbeza, tetapi juga dua cara untuk menyambungkannya: siri dan selari. Apabila menggunakan sambungan port bersiri, kita hanya memerlukan 3 output mikrokontroler. Dengan selanjar minimum 13. Pilihan dalam kes ini jelas, Arduino mempunyai sedikit kesimpulan. Untuk sambungan selari, rajah sambungan adalah seperti berikut:


Untuk sambungan bersiri, yang akan kami gunakan, skim ini adalah seperti berikut:

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 100 Ohm - + 5V
20 (BLK) - GND


Untuk menyesuaikan kontras, potentiometer harus berada di skrin. Terdapat skrin tanpa ia, tetapi sekarang ini jarang:


Perintang 100 ohm diperlukan supaya voltan 5 volt tidak sengaja membakar diod lampu latar.


Langkah 2 Membuat kes itu.
Untuk kes ini, ambil kotak dari awalan kartrij Sega. Sekiranya anda tidak menemui kotak ini, anda boleh menggunakan kes lain. Perkara utama ialah skrin dan Arduino sesuai di dalamnya.


Potong filem telus di atas kotak supaya tidak ada bahagian kiri:


Kemudian, menggunakan pisau perkeranian, potong saiz 37x69 untuk skrin.


Di sisi sebaliknya, di sepanjang tepi potong, kami melekatkan pita bermagnet, sebaiknya hitam:


Keluarkan kertas pelindung dari pita pelekat, dan gam skrin kami:


Dari luar ia sepatutnya kelihatan seperti ini:


Di bawah skrin, juga pada pita bermuka dua, kami mengikat Arduino, membuat potongan awal untuk port USB dan soket kuasa:


Cutout untuk soket Arduino mesti dilakukan di kedua-dua belah kotak supaya ia boleh ditutup dengan bebas:


Langkah 3 Sensor Suhu.
Kami akan menggunakan sensor suhu digital DS18B20. Menggunakannya kita mendapat ketepatan pengukuran yang besar, kesilapan tidak lebih daripada 0.5 ° C, dalam julat suhu yang luas -55 ... + 125 ° C. Di samping itu, sensor digital melakukan semua pengiraan itu sendiri, dan Arduino hanya menerima pembacaan yang siap sedia. Apabila menyambung sensor ini, jangan lupa tentang perintang tarikan, 4.7 kΩ, antara kenalan DQ dan VDD. Beberapa pilihan sambungan juga boleh dilakukan. Dengan kuasa luar, pada pendapat saya pilihan terbaik, kami akan menggunakannya:


Jika anda mahu, anda boleh menggunakan mod kuasa parasit:


Atau pilihan makanan parasit yang lebih baik:


Dengan sebarang bekalan kuasa, sensor disambung secara selari:


Kami akan meletakkan sensor mengukur suhu pada papan kecil bersama-sama dengan dua butang, yang akan kami gunakan untuk menetapkan masa dan tarikh jam:


Kawat biasa dari kedua-dua butang disambungkan ke GND, wayar dari butang pertama disambungkan ke A0, dari kedua ke A1.
Cabut pita berganda bersebelahan dengan Arduino:


Sensor, yang sepatutnya diletakkan di luar bilik, lebih baik memilih perumahan logam, habuk dan kelembapan:


Kirakan wayar panjang yang diperlukan supaya sensor dapat digantung di luar tingkap, perkara utama adalah bahawa ia tidak boleh melebihi 5 meter, jika anda memerlukan lebih banyak panjang, anda perlu mengurangkan nilai resistor pull-up.

Kawat dari bas data DQ kedua-dua sensor disambungkan ke pin 5 dari Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Langkah 4 Kuasa.
Untuk kuasa, anda boleh menggunakan bekalan kuasa dengan voltan 6 hingga 12 volt. Pada akhir dawai suar kuasa, pateri palam yang sesuai untuk soket kuasa Arduino:


Atau anda boleh meletakkan petak bateri untuk bateri empat "AAA", "merah jambu" dalam kes itu. Dan sambungkan wayar positif dari petak ke Vin Arduino, dan tolak untuk GND.

Langkah 5 Menyediakan persekitaran pengaturcaraan.
Pertama anda perlu memuat turun dan memasang Arduino IDE dengan laman rasmi

Dan juga menambah dua perpustakaan yang diperlukan untuk lakaran. OneWire - diperlukan untuk komunikasi dengan sensor ds18b20:
onewire.rar [16.75 Kb] (muat turun: 34)


U8glib - digunakan untuk memaparkan maklumat pada skrin:
u8glib.rar [906.95 Kb] (downloads: 46)


Muat turun perpustakaan. Kemudian kami membongkar arkib, dan gerakkan kandungan arkib ke folder "perpustakaan" yang terletak di dalam folder dengan Arduino IDE dipasang. Anda juga boleh menambah perpustakaan melalui Arduino IDE. Untuk melakukan ini, tanpa membongkar arkib, jalankan Arduino IDE, pilih Sketch - Connect Library dari menu Sketch. Di bahagian paling atas senarai juntai bawah, pilih item "Tambah .Zip library". Kami menunjukkan lokasi arkib yang dimuat turun. Selepas semua langkah, anda perlu memulakan semula IDE Arduino.

Langkah 6 Mengedit lakaran.
Pengesan suhu beroperasi menggunakan protokol One Wire dan mempunyai alamat unik untuk setiap peranti - kod 64-bit. Menambah perintah carian sensor untuk lakaran tidak dianjurkan. Tidak perlu memuatkan sensor cecair Arduino setiap kali.Oleh itu, pertama, meletakkan semuanya bersama-sama, isikan lakaran dalam Arduino, yang terletak dalam menu Fail - Contoh - Suhu Dallas - OneWireSearch. Kemudian jalankan Tools - Port Monitor. Arduino perlu mencari sensor kami, tulis alamat dan bacaan suhu. Alamat-alamat ini perlu dituliskan atau hanya disalin di suatu tempat. Sekarang buka lakaran Ard_Tic_Tak_WG12864B_2_x_Term_Serial, dan cari garisan:

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // alamat dalaman
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // alamat sensor luaran


Kami menggantikan alamat yang sepadan dengan lokasi sensor dengan alamat kami.
Jam tangan kami tidak menggunakan modul RTC (jam nyata), jadi anda perlu menyesuaikan jam. Untuk kemudahan, laporkan baris (saat akan muncul pada skrin):

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


Tetapkan masa yang betul melalui monitor port. Untuk melakukan ini, buka monitor port, tunggu pengukuran suhu awal untuk selesai, dan masukkan tarikh dan masa semasa dalam format "hari, bulan, tahun, jam, minit, saat." Tanpa ruang, bahagikan nombor dengan koma atau tempoh.

Jika jam tergesa-gesa, tukar nilai kepada yang lebih besar, saya cadangkan bereksperimen dengan kenaikan 100 unit. Sekiranya ketinggalan, tolak nilai dalam barisan:

jika (micros () - prevmicros & gt; 494000) {// perubahan yang lain untuk penyesuaian ialah 500,000


Secara empirikal tentukan nombor di mana jam pergi agak tepat. 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.


Fungsi atau Kecantikan?
Jumlah Pengundi: 19
8
8.3
7.7

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
3 ulasan
Penulis
Malangnya, saya tidak tahu analog paparan yang lebih murah.
Dan anggaran yang lebih banyak adalah mungkin untuk menggantikan paparan ini, mereka kelihatan dari 500 rubel.?
Untuk denyushki ini, anda boleh membeli stesen siap sedia, benar-benar cuaca, dengan petunjuk bukan sahaja suhu, tetapi juga tekanan dan kelembapan, dan dengan petunjuk arah perubahan nilai diukur! senyum
Selamat petang Dan anggaran yang lebih banyak adalah mungkin untuk menggantikan paparan ini, mereka kelihatan dari 500 rubel.?
Terima kasih!

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...