Stasiun cuaca saku

Ya, stasiun cuaca adalah tentang sesuatu yang mengukur sejumlah besar parameter dari arah dan kekuatan angin ke tingkat radiasi matahari, tetapi tidak ada istilah yang lebih cocok, jadi Anda harus menyesatkan. Tapi soal ukuran, semuanya adil.


Perangkat itu, mungkin, tidak memiliki banyak nilai komersial, karena bahkan dalam jumlah komponen, itu lebih rendah daripada banyak Cina, dan tidak hanya barang yang memiliki fungsi serupa.

DIY juga sulit untuk disebutkan karena hal-hal seperti kebutuhan untuk memesan papan sirkuit tercetak dengan penyolderan berikutnya komponen kecil / bebas timah, yang sangat mengurangi jumlah orang yang ingin mengulangi perangkat.

Stasiun cuaca itu sendiri diciptakan sebagai sesuatu, saya ingin berpikir, estetika, kompak dan dapat dengan cepat menilai suhu + kelembaban di sekitar, dan begitu sensor yang dipilih juga dapat mengetahui tentang tekanan, maka ini juga. Semuanya terlihat seperti ini (dapat diklik):




Dibandingkan:


Tentang besi.

Sebagai sensor, BOSCH-BME280 dipilih, yang memberikan parameter lingkungan yang diperlukan bahkan menurut I2C, bahkan menurut SPI, delapan kaki dalam casing LGA tanpa timbel berukuran 2,5 x 2,5 mm - relatif murah, kecil. Awalnya, sensor yang lebih canggih direncanakan dari seri BME680 yang sama, yang, selain suhu, kelembaban dan tekanan atmosfer, menurut lembar data, juga dapat mengevaluasi kualitas udara dengan apa yang disebut Index for Air Quality (IAQ). Tampaknya tidak buruk, tetapi ternyata IAQ hanya dapat diperoleh dengan menggunakan BSEC: Bosch Software Environmental Cluster, yang, berdasarkan pembacaan sensor dan mengubah pembacaan ini, menghitung IAQ. Tampaknya Anda dapat mengambil kesaksian sendiri dan menghitung semuanya; Tidak tentu seperti itu. Atas permintaan untuk mengukur kualitas udara, sensor memberikan ketahanan, dalam ohm.Ini memanaskan bagian dalam area sensitif kecil yang bereaksi dengan konduktivitas terhadap keberadaan zat organik yang mudah menguap - Volatile Organic Compounds (VOC), dan memberikan hasil yaitu: resistensi terhadap area ini. Pada dasarnya,beberapa pengrajin menawarkan algoritme mereka sendiri untuk menafsirkan bacaan ini tanpa BSEC, tetapi, antara lain, biaya berganda, dibandingkan dengan BME280, tidak punya pilihan.


Layar terdiri dari dua TOS-F2101, ini adalah indikator tujuh-segmen biasa warna hijau dengan katoda umum. Yang penting, ini adalah ukuran dan rumah untuk pemasangan permukaan, memungkinkan Anda untuk menempatkannya dengan cara yang tidak konvensional. By the way, ini adalah indikator planar terkecil yang ditemukan dijual, dan mereka, untuk sebagian besar, menentukan ukuran seluruh perangkat.


Mengelola semua STM32F072 dalam paket QFPN 48-pin. Dipilih, sekali lagi, berdasarkan ukuran, ketersediaan periferal dan jumlah kesimpulan yang diperlukan untuk mengendalikan indikator, yang, dalam versi ganda, untuk beberapa alasan, tidak terjadi dan kesimpulan harus sopan.


Sisanya adalah resistor, kapasitor, konverter tegangan 3,3 V, semakin sedikit - semakin baik, dalam batas wajar dan komponen TTX, tentu saja.

Konektor USB dibuat di papan tulis. Untuk kontak yang andal, ketebalan PCB harus sekitar 2 mm. Jika Anda dipandu oleh gambar pada USB Tipe-A, maka ada sedikit lebih, tetapi jika Anda memperhitungkan topeng di kedua sisi, ternyata cukup lumayan. Tentu saja, format konektor ini menyisakan lebih banyak peluang untuk kerusakan mekanis pada outlet USB, tetapi, pada umumnya, ini dapat diatasi dengan menggunakan flash drive biasa.

Tombol sentuh adalah poligon bulat di bawah gambar di papan, tombol merespons sentuhan pendek dan panjang.

Selain tampilan, papan memiliki tiga LED yang menunjukkan bacaan mana yang saat ini ditampilkan pada indikator.

Adapun perangkat lunaknya.

Program ini ditulis menggunakan CMSIS, frekuensi operasi 48 MHz dan dari sumber internal; ada satu di sini, Anda bahkan dapat menggunakan USB tanpa menggunakan kuarsa eksternal. Untuk fleksibilitas dan, mungkin, perluasan fungsi, FreeRTOS ditambahkan.

Tombol sentuh ditangani oleh pengontrol Sentuh sentuh (TSC). Karena tidak ada keyboard dari tombol sentuh di papan, atau slider, ketika bantalan sentuh digabungkan dalam satu garis, dan ada satu sensor yang menangkap sentuhan pendek dan panjang, tidak ada gunanya menggunakan perpustakaan komprehensif dari ST. Prinsip kerja sensor sensor sederhana, ada beberapa kesimpulan yang digabungkan dalam kelompok, kapasitor (Capling kapasitor) Cs terhubung ke salah satunya, kesimpulan ini menjadi contoh, kesimpulan yang tersisa dari kelompok dapat dihubungkan ke poligon sensor, yang sebenarnya juga kapasitor Cx . Pengontrol mengisi kapasitansi kapasitor TPA Cx dan kemudian muatan ini didistilasi ke dalam model Cs, operasi diulangi hingga batas tegangan tertentu pada Cs. Kapasitas sensor biasanya kecil,oleh karena itu, banyak operasi seperti itu akan diperlukan dan ada register terpisah (TSC_IOGxCR) untuk penghitungan. Jika Anda menyentuh sensor, maka kapasitansi Cx akan menjadi lebih dan siklus pengisian Cs akan lebih sedikit, maka segera diperbaiki dan sentuhan dilaporkan ke atas. Omong-omong, kapasitansi sensor mulai meningkat ketika tidak ada sentuhan langsung, sehingga sensor dapat dilindungi dari kontak fisik, misalnya dengan masker, atau Anda dapat merekam berbagai tingkat perkiraan.atau memperbaiki berbagai tingkat perkiraan.atau memperbaiki berbagai tingkat perkiraan.

Untuk berkomunikasi dengan BME280, antarmuka I2C digunakan. Implementasi I2C di STM32F072 lebih sederhana daripada di STM32F103 yang populer, antara lain, Anda tidak perlu melacak secara terpisah 1/2 / banyak byte yang diterima, cukup untuk menentukan jumlah mereka di muka (I2C_CR2.NBYTES [7: 0]). Pustaka yang sama untuk bekerja dengan sensor disediakan , dan direkomendasikan untuk digunakan oleh pabrikan sensor. Untuk membaca bacaan menggunakan perpustakaan, Anda perlu membuat dua struktur - untuk pengaturan dan data. Dalam pengaturan yang perlu Anda lakukan:

  • alamat sensor pada bus I2C
  • Fungsi baca / tulis I2C serta fungsi penundaan
  • jumlah pembacaan indikasi untuk rata-rata (Oversmpling) x1, x2, dll., untuk masing-masing parameter suhu / kelembaban / tekanan
  • koefisien penyaringan untuk ADC
  • periode penghapusan nilai parameter
  • secara umum, yang mana dari parameter dapat dibaca, misalnya, Anda dapat meninggalkan satu suhu
  • mode operasi, "normal" - dengan pembacaan berkala, "terpaksa" - mengambil pembacaan berdasarkan permintaan

Pada prinsipnya, jika mode "normal" dipilih, maka nilai aktual dari bacaan dapat diperoleh dengan menjalankan fungsi "bme280_get_sensor_data", itu akan melihat register sensor yang sesuai, membaca bacaan langsung, dan kemudian memprosesnya sesuai dengan faktor koreksi yang dicatat dalam mikrosirkuit di pabrik. Akibatnya, struktur data output akan mengandung suhu dalam derajat Celcius, kelembaban relatif dalam persen, tekanan atmosfer di Pascal. Dalam mode "paksa", hal yang sama, hanya setiap kali sebelum membaca bacaan, Anda perlu menjalankan konversi "bme280_set_sensor_mode".

Prinsip umum perangkat adalah sebagai berikut: terhubung ke USB, atau ke Power Bank dalam versi seluler. Untuk tampilan awal dan pergantian pembacaan - sentuhan singkat sensor, untuk menonaktifkan - sentuhan panjang. Pertama, suhu dalam derajat Celcius ditampilkan, kemudian kelembaban relatif dalam persen dan tekanan atmosfer dalam milimeter air raksa, karena hanya ada dua indikator, dan indikator tekanan jarang melampaui tujuh ratus, maka angka tujuh adalah virtual di sini. Jika Anda tidak menyentuh sensor untuk sementara waktu, indikator akan mati sehingga, misalnya, Anda tidak melepaskan Power Bank. Konsumsi rata-rata perangkat adalah ~ 50 mA, dan konsumen utama hanyalah indikator, jika Anda mematikannya, hitungannya masuk ke microamps.




Akibatnya, total biaya komponen pada Januari 2020 ternyata sekitar 850 rubel, ini tanpa memperhitungkan papan, itu mudah, karena pabrikan memiliki diskon Tahun Baru, dan saya memiliki kupon, tetapi ini tidak mungkin terjadi lagi dalam waktu dekat, setidaknya sampai Desember mendatang. Nah, mereka yang ingin membiasakan diri dengan sumber dapat melakukannya di sini .

Source: https://habr.com/ru/post/undefined/


All Articles