Isi kandungan:

JAWS: Stesen Cuaca Yang Lain: 6 Langkah
JAWS: Stesen Cuaca Yang Lain: 6 Langkah

Video: JAWS: Stesen Cuaca Yang Lain: 6 Langkah

Video: JAWS: Stesen Cuaca Yang Lain: 6 Langkah
Video: TERDAMPAR 6 TAHUN DI SEBUAH PULAU DI SAMUDRA HINDIA - Alur Cerita Film Robinson Crusoe 1997 2024, Julai
Anonim
JAWS: Menyiapkan Barang Kita
JAWS: Menyiapkan Barang Kita
JAWS: Menyiapkan Barang Kita
JAWS: Menyiapkan Barang Kita
JAWS: Menyiapkan Barang Kita
JAWS: Menyiapkan Barang Kita

Cukup mudah untuk membuat JAWS seperti itu.

Anda mendapatkan sensor anda, anda menyatukannya di papan, dan anda mula menggunakan perpustakaan yang disertakan dengan sensor.

Mari kita mulakan dengan penyediaan program.

Oleh kerana saya berbahasa Belanda (penutur asli) semua data dan banyak pemboleh ubah yang saya gunakan adalah dalam bahasa Belanda. Jadi sekarang anda berpeluang belajar bahasa lain …

Apa yang kita mahukan dari JAWS?

Mudah: kami mahu menonton skrin yang menunjukkan kepada kami waktu, tarikh, ephemerides (matahari terbit, matahari terbenam, panjang hari dan siang astronomi).

Di sebelahnya, lebih baik melihat suhu di dalam dan di luar, kelembapan relatif dan titik embun, dan tekanan udara.

Untuk mempermudah keadaan, saya menggunakan suhu selsius untuk suhu dan hPa (= mBar) untuk tekanan. Oleh itu, tiada siapa yang harus mengira kembali dari Fahrenheit atau pound per persegi panjang…

Pada masa ini, hanya data ini yang tersedia…

Pada masa akan datang, saya akan menambah kelajuan udara, arah angin dan pemendakan.

Ideanya ialah saya akan mempunyai pondok cuaca di luar dan semua data akan dihantar lebih dari 2.4GHz ke unit dalaman.

Langkah 3: JAWS: Perisian

JAWS: Perisian
JAWS: Perisian

Untuk mendapatkan perisian kami, kebanyakan boleh didapati dengan perpustakaan yang ada.

Di JAWS saya menggunakan yang berikut:

  1. SPI.h: Perpustakaan asal dari Arduino untuk protokol 4 wayar. Ia digunakan untuk perisai TFT
  2. Adafruit_GFX.h dan MCUfriend_kbv.h: kedua-duanya digunakan untuk grafik dan skrin. Ini menjadikannya sangat mudah untuk menulis teks, melukis garis dan kotak pada skrin TFT.
  3. dht.h: untuk DHT kami: perpustakaan ini boleh digunakan untuk DHT11 (yang biru) dan DHT22.
  4. Wire.h: perpustakaan Arduino untuk memudahkan komunikasi bersiri. Ia digunakan untuk jam dan kad SD.
  5. SD.h: Sekali lagi asli Arduino, untuk menulis dan membaca dari kad SD.
  6. TimeLord.h: yang ini saya gunakan untuk menjaga masa, mengira matahari terbenam atau matahari terbit dari kedudukan geografi mana pun. Ia juga menetapkan waktu untuk DST (musim panas atau musim sejuk).

Mari mulakan dengan jam.

Semasa membaca jam, anda memerlukan pemboleh ubah yang anda dapat dari daftar yang berlainan di dalam modul jam. Apabila kita menjadikannya lebih daripada sekadar nombor, kita dapat menggunakan baris berikut:

const int DS1307 = 0x68; const char * days = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};

const char * months = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};

n

Dengan TimeLord, kami mendapatkannya sebagai data, untuk tempat saya: (Lokeren, Belgium)

TimeLord Lokeren; menetapkannya Lokeren. Position (51.096, 3.99); garis bujur dan garis lintang

Lokeren. TimeZone (+ 1 * 60); GMT +1 = +1 x 60 minit

Lokeren. DstRules (3, 4, 10, 4, 60); DST dari bulan ke-3, minggu ke-4 hingga bulan ke-10, minggu ke-4, + 60 minit

int jaar = tahun +2000;

byte sunRise = {0, 0, 12, hari bulan, bulan, tahun}; mula mengira setiap hari dari 00 jam

byte sunSet = {0, 0, 12, hari bulan, bulan, tahun}; sama seperti di atas

byte maan = {0, 0, 12, hari bulan, bulan, tahun}; sama seperti di atas

fasa apungan;

Dari sini, pengiraan dibuat.

fasa = Lokeren. MoonPhase (maan);

Lokeren. SunRise (sunRise);

Lokeren. SunSet (sunSet);

Lokeren. DST (sunRise);

Lokeren. DST (sunSet);

int ZonOpUur = sunRise [tl_hour];

int ZonOpMin = sunRise [tl_minute];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minute];

Ini adalah contoh bagaimana perkara dikira dalam TimeLord. Dengan perpustakaan ini, anda mendapat waktu matahari terbit dan terbit yang tepat (cantik).

Pada akhirnya, saya akan meletakkan keseluruhan program dengan Instructable ini. Cukup lurus ke hadapan.

Langkah 4: Lebih Banyak Perisian …

Lebih Banyak Perisian …
Lebih Banyak Perisian …
Lebih Banyak Perisian …
Lebih Banyak Perisian …

Lebih banyak mengenai perisian …

Kami mempunyai tiga bahagian besar dalam perisian.

1) Kami mendapat beberapa data mentah dari sensor kami yang berbeza: dari jam kami, DHT dan BMP180. Itu input kami.

2) Kita perlu menerjemahkan data ke (1 dan 0) kepada sesuatu yang masuk akal. Untuk ini, kami menggunakan perpustakaan dan pemboleh ubah kami.

3) Kami mahu membaca dan menyimpan data kami. Itulah keluaran kami. Untuk penggunaan segera, kami mempunyai LCD-TFT kami, untuk penggunaan kemudian, kami mempunyai data tersimpan pada kad SD kami.

Dalam gelung kami (), kami mendapat banyak "GOTO": kami melompat ke perpustakaan yang berbeza. Kami mendapatkan data kami dari salah satu sensor, mendapatkan data dan menyimpannya di (kebanyakan) pemboleh ubah data terapung. Kami memilih nama pemboleh ubah kami dengan bijak, bukan dengan x atau y tetapi dengan nama seperti "tempOutside" atau "pressure" atau perkara seperti itu. Untuk menjadikannya lebih mudah dibaca. OK, ini menjadikannya sedikit lebih berat pada penggunaan pemboleh ubah dan lebih banyak memakan memori.

Inilah helahnya: apabila membuat pemboleh ubah kita dapat dilihat di layar, ia hanya meletakkannya pada kedudukan yang betul.

Dua perpustakaan yang digunakan di sini, Adafruit_GFX.h dan MCUfriend_kbv.h mempunyai set kerja yang bagus untuk menggunakan warna, fon dan kemampuan untuk melukis garis. Sebagai contoh pertama, saya menggunakan skrin 12864 dengan perpustakaan ini, kemudian saya menukarnya di layar tft. Yang harus saya lakukan ialah meletakkan kotak, segi empat tepat dan garis, dan memastikan bahawa data keluar di tempat yang betul. Untuk itu, anda boleh menggunakan setCursor dan tft. Write sebagai arahan. Mudah melakukannya. Warna boleh ditetapkan sebagai pemboleh ubah juga, terdapat banyak contoh di perpustakaan bagaimana memilihnya.

Untuk menulis pada kad SD, kami juga memerlukan beberapa helah mudah.

Sebagai contoh, kami membaca data kami dari jam sebagai jam, minit dan saat yang terpisah. Suhu adalah suhu DHT dan suhu DHTT, untuk membezakan antara dalaman dan luaran.

Apabila kami ingin meletakkannya pada kad SD, kami menggunakan rentetan: kami memulakan setiap gelung sebagai rentetan kosong:

pemboleh ubah = ""; Kemudian kami dapat mengisinya dengan semua data kami:

variablestring = variablestring + jam + ":" + minit + ":" + saat. Ini memberikan rentetan seperti jam 12:00:00.

Oleh kerana kami menulisnya sebagai fail TXT (lihat SD.h di Arduino.cc), untuk pemboleh ubah seterusnya kami menambahkan tab, jadi lebih mudah untuk mengimportnya di Excel.

Jadi kita sampai ke: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.

Dan sebagainya.

Langkah 5: Beberapa Tangkapan Skrin …

Beberapa Tangkapan Skrin …
Beberapa Tangkapan Skrin …
Beberapa Tangkapan Skrin …
Beberapa Tangkapan Skrin …
Beberapa Tangkapan Skrin …
Beberapa Tangkapan Skrin …

Untuk memastikan kami tidak "membebani" set data kami, saya menulis data hanya sekali setiap 10 minit. Memberi kami 144 penyertaan setiap hari. Saya rasa tidak buruk.

Dan tentu saja, anda boleh terus memproses data tersebut: anda boleh membuat purata, anda dapat mencari maksima dan minimum, anda dapat membandingkan dengan tahun-tahun lalu …

Pejabat yang dijumpai biasanya membuat rata-rata siang dan malam, untuk suhu: waktu siang bermula jam 8 pagi, dan berlangsung hingga 8:00 malam.

Untuk angin, tekanan dan hujan, purata diambil dari tengah malam hingga tengah malam.

Langkah 6: Selesai?

Selesai?
Selesai?
Selesai?
Selesai?

Tidak begitu… Seperti yang saya katakan, saya akhirnya mahu sensor kelajuan angin dan arah angin berfungsi dengan JAWS yang lain.

Pembinaan kecil yang saya buat setinggi 4m. Ahli meteorologi mendapat kelajuan angin dari ketinggian 10m. Agak terlalu tinggi untuk saya …

Saya harap anda seronok membaca ini!

Adafruit-GFX dijelaskan di sini:

MCUFRIEND_kbv.h terdapat di sini:

Maklumat lanjut mengenai BMP 120 (sama seperti BMP085):

Mengenai DHT22:

Disyorkan: