Untuk dilanjutkan. Bagian sebelumnya .
Daftar isi:
Sensor tempel. Besi
Kita harus segera mengakui bahwa sensor jendela (jarak jauh) versi pertama ternyata tidak sepenuhnya berhasil dalam hal pasokan daya dan konsumsi energi. Seperti yang sudah saya tulis, saya hanya memiliki modul Arduino Pro Mini di 5 V. Dan saya menggunakan baterai Ni-MH.
Terlepas dari kenyataan bahwa saya juga menghubungkan baterai surya, seluruh struktur bekerja secara mandiri selama sekitar 25 hari. Sangat negatif, kapasitas baterai dipengaruhi oleh suhu rendah, seringkali negatif di jalan pada akhir musim dingin.
Agar semuanya bekerja lebih lama bagi Anda, lakukan penggantian berikut:
- Beli Arduino Pro Mini di 3.3V
- Gunakan baterai Li-ion Panasonic NCR18650A 3.7V, 2 pcs. sekitar $ 14 pada 3100mAh. Anda dapat mencoba baterai CR123, CR123A. Dan ingat bahwa baterai 9V (seperti Krona) adalah sumber listrik yang buruk.
Hal utama yang perlu diingat adalah baterai Anda akan bekerja di jalan, mis. pada suhu negatif, yang memperlambat proses kimia yang terjadi di dalamnya dan, dengan demikian, sangat mengurangi kapasitasnya.
Sensor DHT22 juga dapat bekerja dari 3,3 V, jadi itu cara yang harus dilakukan.
Permutasi di atas tidak akan memerlukan perubahan atau penggantian komponen lain.
Nutrisi
Saya awalnya menggunakan 4 pcs. Baterai Ni-MH terhubung secara seri dengan satu ketukan dari yang ke-3, jadi kami mendapatkan dua tegangan suplai: 4,8 V untuk sensor DHT22 dan 3,6 V untuk yang lainnya. Saya tidak menggunakan step-down (lebih tepatnya, penghancur energi) atau step-up sirkuit elektronik, hanya tegangan dan arus yang ramah lingkungan.

Panel surya terhubung seperti yang ditunjukkan. Panel surya 1.6W 5.5V 266mA dibeli seharga $ 6.64.
Dioda tipe Schottky 1N914 dan kapasitor elektrolit 50-100 μF digunakan dalam rangkaian.

Pinout dan koneksi
Mari kita lanjutkan ke kebaktian.
Sensor suhu dan kelembaban DHT22

Pinout untuk menghubungkan sensor suhu dan kelembaban DHT22:
Sisi depan DHT22 kiri ke kanan | Arduino Pro Mini | Catatan |
---|
Vcc | 3.3 - 5V | 5V direkomendasikan, daya eksternal yang lebih baik |
SDA | D2 | Dalam sketsa itu adalah DHTPIN |
NC | Tidak terhubung |
GND | GND |
Secara opsional, Anda dapat menghubungkan (mengencangkan) SDA melalui resistor 10K ke VCC.
Inisialisasi:
#define DHTPIN 2
Untuk melindungi sensor dari sinar matahari langsung, saya membuat casing untuk itu dari kaleng, menempelkannya dengan pita perekat logam reflektif.
nRF24L01 +

Pinout dari modul radio nRF24L01 + (lihat bagian atas papan di mana chip berada, sementara pin pin berada di bagian bawah):
| | | |
---|
(2) 3.3V | (4) CSN | (6) MOSI | (8) IRQ |
(1) GND | (3) CE | (5) SCK | (7) MISO |
Koneksi NRF24L01 +
Arduino Pro Mini | nRF24L01 + | Catatan |
---|
3.3V | VCC (2) | Kekuatan eksternal yang lebih baik |
pin D8 | CE (3) | chip aktifkan |
SS pin D10 | CSN (4) | pilih chip |
Pin SCK D13 | SCK (5) | Jam SPI masuk |
Pin MOSI D11 | SDI (6) | Data SPI di |
MISO pin D12 | SDO (7) | Data SPI keluar |
IRQ 8 | Output interupsi tidak terhubung |
GND | GND (1) |
Inisialisasi:
NRF24 nrf24(8, 10);
Seperti yang disarankan di forum, kapasitor elektrolitik berkapasitas kecil (10 μF) segera disolder ke terminal daya nRF24L01 +.
Saya memiliki modul radio dengan antena tambahan eksternal, "menerobos" dua dinding dengan andal.
Voltmeter
Sensor eksternal memiliki voltmeter untuk mengukur tegangan suplai baterai. Teknologi pengukuran dijelaskan oleh Scott Daniels "Secret Arduino Voltmeter - Measure Battery Voltage", 2012.
Data dibaca dari pin analog A1.

Saya memiliki resistor pembagi tegangan 100 kOhm dan 10 kOhm (Anda mungkin memiliki peringkat yang sedikit berbeda, Anda perlu mengukurnya secara akurat dengan ohmmeter).
const float r1 = 100400;
Konstanta berikut harus dikalibrasi secara individual seperti yang dijelaskan oleh Scott Daniels. Menggunakan shemka dan sketsa terpisah.
Kami mengukur dua nilai Vcc: Vcc nyata menggunakan voltmeter (pada pin AREF atau 5V) dan Vcc menggunakan fungsi kami. Kemudian kami mengganti konstanta ( 1.1 * 1023.0 * 1000
) dengan yang baru:
scale_constant = internal1.1Ref * 1023 * 1000
di mana internal1.1Ref = 1.1 * Vcc1 ( ) / Vcc2 ( )
dimana
- Vcc1 - Nilai Vcc diukur secara manual dengan voltmeter
- Vcc2 - Nilai Vcc ditentukan menggunakan fungsi kami
Nilai referensi ini akan bersifat individu untuk chip AVR tertentu dan akan tergantung pada fluktuasi suhu.
Hasilnya, saya mendapat nilai berikut:
const float typVbg = 1.082;
Karena baterai isi ulang kami akan habis dalam gelap dan diisi dari baterai surya, grafik tegangan pasokan akan terlihat gigi gergaji, "mereda" pada hari berawan:

Grafiknya nyata, diambil dari permukaan web proyek.
Majelis
Untuk merakit blok secara keseluruhan, saya kembali menggunakan papan tempat memotong roti untuk menyolder.
Saya disolder, dihubungkan oleh intuisi tanpa kabel awal, jadi saya tidak memiliki sirkuit.
Inilah yang terjadi.
