Daftar Isi:

Stasiun Cuaca Mini Dengan Attiny85: 6 Langkah (dengan Gambar)
Stasiun Cuaca Mini Dengan Attiny85: 6 Langkah (dengan Gambar)

Video: Stasiun Cuaca Mini Dengan Attiny85: 6 Langkah (dengan Gambar)

Video: Stasiun Cuaca Mini Dengan Attiny85: 6 Langkah (dengan Gambar)
Video: The Smallest And Cheapest Microcontroller Attiny85 How To Use It ||Tomson Electronics 2024, Juli
Anonim
Stasiun Cuaca Mini Dengan Attiny85
Stasiun Cuaca Mini Dengan Attiny85
Stasiun Cuaca Mini Dengan Attiny85
Stasiun Cuaca Mini Dengan Attiny85
Stasiun Cuaca Mini Dengan Attiny85
Stasiun Cuaca Mini Dengan Attiny85

Dalam instruksi terbaru Indigod0g menggambarkan stasiun cuaca mini yang bekerja cukup baik, menggunakan dua Arduino. Mungkin tidak semua orang ingin mengorbankan 2 Arduino untuk mendapatkan pembacaan kelembaban dan suhu dan saya berkomentar bahwa itu mungkin untuk melakukan fungsi serupa dengan dua Attiny85. Saya kira berbicara itu mudah, jadi saya lebih baik menaruh uang saya di tempat mulut saya.

Sebenarnya, jika saya menggabungkan dua instruksi sebelumnya, saya menulis:

Antarmuka LCD 2-Kawat untuk Arduino atau Attiny dan Menerima dan mengirim data antara Attiny85 (Arduino IDE 1.06)maka sebagian besar pekerjaan sudah selesai. Hanya perlu menyesuaikan perangkat lunak sedikit.

Saya memilih solusi lcd dua kawat dengan register geser, daripada LCD I2C karena pada Attiny register geser lebih mudah diimplementasikan daripada bus I2C. Namun… jika Anda misalnya ingin membaca sensor tekanan BMP180 atau BMP085, Anda tetap memerlukan I2C untuk itu sehingga Anda juga dapat menggunakan LCD I2C. TinyWireM adalah perpustakaan yang bagus untuk I2C pada Attiny (tetapi membutuhkan ruang ekstra).

BOM Pemancar: DHT11 Attiny85 10 k resistor modul pemancar 433MHz

Penerima modul penerima Attiny85 10k resistor 433 MHz

Tampilan 74LS164 register geser 1N4148 dioda 2x1k resistor 1x1k variabel resistor sebuah layar LCD 2x16

Langkah 1: Stasiun Cuaca Mini Dengan Attiny85: Pemancar

Stasiun Cuaca Mini Dengan Attiny85: Pemancar
Stasiun Cuaca Mini Dengan Attiny85: Pemancar
Stasiun Cuaca Mini Dengan Attiny85: Pemancar
Stasiun Cuaca Mini Dengan Attiny85: Pemancar
Stasiun Cuaca Mini Dengan Attiny85: Pemancar
Stasiun Cuaca Mini Dengan Attiny85: Pemancar
Stasiun Cuaca Mini Dengan Attiny85: Pemancar
Stasiun Cuaca Mini Dengan Attiny85: Pemancar

Pemancar adalah konfigurasi yang sangat dasar dari Attiny85 dengan resistor pull up pada jalur reset. Modul pemancar terpasang ke pin digital '0' dan pin data DHT11 menempel ke pin digital 4. Pasang kabel 17,2 cm sebagai antena (untuk antena yang jauh lebih baik lihat langkah 5). Perangkat lunaknya adalah sebagai berikut:

//akan bekerja pada Attiny//RF433=D0 pin 5

//DHT11=D4 pin 3 // library #include //Dari Rob Tillaart #include dht DHT11; #define DHT11PIN 4 #define TX_PIN 0 //pin di mana pemancar Anda terhubung //variabel float h=0; mengapung t=0; int transmisi_t = 0; int transmisi_h = 0; int transmisi_data = 0; void setup() { pinMode(1, INPUT); man.setupTransmit(TX_PIN, MAN_1200); } void loop() { int chk = DHT11.read11(DHT11PIN); h=DHT11.kelembaban; t=DHT11.suhu; // Saya tahu, saya menggunakan 3 variabel integer di sini // di mana saya bisa menggunakan 1 // tapi itu hanya agar lebih mudah untuk mengikuti transmit_h=100* (int) h; transmisi_t=(int) t; transmit_data=transmit_h+transmit_t; man.transmit(transmit_data); penundaan (500); }

Perangkat lunak ini menggunakan kode Manchester untuk mengirim data. Ini membaca DHT11 dan menyimpan suhu dan kelembaban dalam 2 pelampung terpisah. Karena kode Manchester tidak mengirim pelampung, tetapi bilangan bulat, saya memiliki beberapa opsi:1- membagi pelampung menjadi dua bilangan bulat masing-masing dan mengirimnya2- mengirim setiap pelampung sebagai bilangan bulat3- mengirim dua pelampung sebagai satu bilangan bulatDengan opsi 1 saya perlu menggabungkan bilangan bulat menjadi mengapung lagi di penerima dan saya harus mengidentifikasi bilangan bulat mana, membuat kode bertele-teleDengan opsi 2 Saya masih perlu mengidentifikasi bilangan bulat mana untuk kelembaban dan mana untuk suhu. Saya tidak bisa pergi dengan urutan sendirian jika satu bilangan bulat hilang dalam transmisi, jadi saya perlu mengirim pengenal yang dilampirkan ke bilangan bulat. Dengan opsi 3, saya hanya dapat mengirim satu bilangan bulat. Jelas ini membuat pembacaan sedikit kurang akurat - dalam 1 derajat - dan seseorang tidak dapat mengirim di bawah suhu nol, tetapi itu hanya kode sederhana dan ada cara untuk itu. Untuk saat ini hanya tentang prinsip. Jadi yang saya lakukan adalah mengubah pelampung menjadi bilangan bulat dan saya mengalikan kelembaban dengan 100. Kemudian saya menambahkan suhu ke kelembaban yang dikalikan. Mengingat fakta bahwa kelembaban tidak akan pernah 100%, angka maksimal yang akan saya dapatkan adalah 9900. Mengingat fakta bahwa suhu juga tidak akan di atas 100 derajat, angka maksimalnya adalah 99, oleh karena itu angka tertinggi yang akan saya kirim adalah 9999 dan mudah dipisahkan di sisi penerima. Tentu saja perhitungan saya di mana saya menggunakan 3 bilangan bulat berlebihan karena dapat dengan mudah dilakukan dengan 1 variabel. Saya hanya ingin membuat kode lebih mudah diikuti. Kode sekarang dikompilasi sebagai:

Ukuran sketsa biner: 2, 836 byte (dari maksimum 8, 192 byte) sehingga cocok dengan Attiny 45 atau 85CATATAN perpustakaan dht.h yang saya gunakan adalah yang dari Rob Tillaart. Perpustakaan itu juga cocok untuk DHT22. Saya menggunakan versi 1.08. Namun Attiny85 mungkin memiliki masalah membaca DHT22 dengan versi perpustakaan yang lebih rendah. Telah dikonfirmasi kepada saya bahwa 1,08 dan 1,14 -meskipun bekerja pada Arduino biasa- mengalami kesulitan membaca DHT22 pada Attiny85. Jika Anda ingin menggunakan DHT22 pada Attiny85, gunakan versi 1.20 dari perpustakaan ini. Itu semua berkaitan dengan waktu. Versi 1.20 dari perpustakaan memiliki membaca lebih cepat. (Terima kasih atas pengalaman pengguna itu Jeroen)

Langkah 2: Stasiun Cuaca Mini Dengan Attiny85: Penerima

Stasiun Cuaca Mini Dengan Attiny85: Penerima
Stasiun Cuaca Mini Dengan Attiny85: Penerima

Sekali lagi Attiny85 digunakan dalam konfigurasi dasar dengan pin Reset ditarik tinggi dengan resistor 10 k. Modul Penerima terpasang ke pin digital 1 (pin 6 pada chip). LCD terpasang pada pin digital 0 dan dua. Pasang kabel antena 17,2 cm. Kodenya sebagai berikut:

#termasuk

#sertakan LiquidCrystal_SR lcd(0, 2, TWO_WIRE); #define RX_PIN 1 //= pin fisik 6 void setup() { lcd.begin(16, 2); lcd.rumah(); man.setupReceive(RX_PIN, MAN_1200); man.beginReceive(); }void loop() { if (man.receiveComplete()) { uint16_t m = man.getMessage(); man.beginReceive(); lcd.print("Lembab: "); lcd.print(m/100); lcd.setCursor(0, 1); lcd.print("Suhu"); lcd.print(m%100); } }

Kodenya cukup sederhana: bilangan bulat yang ditransmisikan diterima dan disimpan dalam variabel 'm'. Dibagi dengan 100 untuk memberikan kelembapan dan modulo 100 memberikan suhu. Jadi, misalkan bilangan bulat yang diterima adalah 33253325/100=333325 % 100 =25Kode ini dikompilasi sebagai 3380 byte dan oleh karena itu hanya dapat digunakan dengan attiny85, bukan dengan 45

Langkah 3: Stasiun Cuaca Mini Dengan Attiny85/45: Tampilan

Stasiun Cuaca Mini Dengan Attiny85/45: Tampilan
Stasiun Cuaca Mini Dengan Attiny85/45: Tampilan
Stasiun Cuaca Mini Dengan Attiny85/45: Tampilan
Stasiun Cuaca Mini Dengan Attiny85/45: Tampilan

Untuk tampilan sebaiknya saya mengacu pada instruksi saya pada tampilan dua kabel. Singkatnya, tampilan 16x2 umum menggunakan register geser sehingga dapat beroperasi dengan dua pin digital. Tentu saja jika Anda lebih suka menggunakan tampilan siap I2C, yaitu mungkin juga, tetapi Anda perlu menerapkan protokol I2C pada Attiny. Protokol Tinywire dapat melakukan itu. Meskipun beberapa sumber mengatakan bahwa itu mengharapkan jam 1 Mhz, saya tidak punya masalah (dalam proyek lain) untuk menggunakannya pada 8MhzAnyway saya hanya tidak repot-repot di sini dan menggunakan register geser.

Langkah 4: Stasiun Cuaca Mini Dengan Attiny85/45: Kemungkinan/Kesimpulan

Stasiun Cuaca Mini Dengan Attiny85/45: Kemungkinan/Kesimpulan
Stasiun Cuaca Mini Dengan Attiny85/45: Kemungkinan/Kesimpulan
Stasiun Cuaca Mini Dengan Attiny85/45: Kemungkinan/Kesimpulan
Stasiun Cuaca Mini Dengan Attiny85/45: Kemungkinan/Kesimpulan
Stasiun Cuaca Mini Dengan Attiny85/45: Kemungkinan/Kesimpulan
Stasiun Cuaca Mini Dengan Attiny85/45: Kemungkinan/Kesimpulan

Seperti yang dikatakan, saya membuat instruksi ini untuk menunjukkan bahwa seseorang dapat membuat stasiun cuaca mini dengan dua attiny85 (bahkan dengan satu attiny85+ 1 attiny45). Ini hanya mengirimkan kelembaban dan suhu, menggunakan DHT11. Namun, Attiny memiliki 5 pin digital untuk digunakan, 6 bahkan dengan beberapa tipu daya. Oleh karena itu dimungkinkan untuk mengirim data dari lebih banyak sensor. Dalam proyek saya - seperti yang terlihat pada gambar di stripboard dan pada PCB profesional (OSHPark) - Saya mengirim/menerima data dari DHT11, dari LDR dan dari PIR, semuanya menggunakan dua attiny85's Keterbatasan dalam menggunakan attiny85 sebagai penerima adalah penyajian data dalam gaya yang mencolok. Karena memori terbatas: Teks seperti 'Suhu, Kelembaban, tingkat cahaya, subjek yang mendekat' akan mengisi ruang memori yang berharga dengan cukup cepat. Namun demikian, tidak ada alasan untuk menggunakan dua Arduino hanya untuk mengirim/menerima suhu dan kelembapan. Selain itu, dimungkinkan untuk membuat pemancar tidur dan hanya membuatnya bangun untuk mengirim data katakan setiap 10 menit dan dengan demikian memberi makan dari sel tombol. Jelas, tidak hanya data suhu atau kelembaban yang dapat dikirim tetapi seseorang dapat memiliki serangkaian pemancar kecil yang mengirim pembacaan kelembaban tanah juga, atau tambahkan anemometer, atau pengukur hujan

Langkah 5: Stasiun Cuaca Mini: Antena

Stasiun Cuaca Mini: Antena
Stasiun Cuaca Mini: Antena

Antena adalah bagian penting dari setiap pengaturan 433Mhz. Saya telah bereksperimen dengan antena 'batang' standar 17,2 cm dan memiliki godaan pendek dengan antena koil, Apa yang tampaknya bekerja paling baik adalah antena koil dimuat yang mudah dibuat. Desainnya dari Ben Schueler dan rupanya dimuat di majalah 'Elektor'. PDF dengan deskripsi 'Antena 433 MHz berpendingin udara' ini mudah diikuti. (Link hilang, cek disini)

Langkah 6: Menambahkan BMP180

Menambahkan BMP180
Menambahkan BMP180

Ingin menambahkan sensor tekanan barometrik seperti BMP180? periksa instruksi saya yang lain tentang itu.

Direkomendasikan: