Daftar Isi:
- Langkah 1: Stasiun Cuaca Mini Dengan Attiny85: Pemancar
- Langkah 2: Stasiun Cuaca Mini Dengan Attiny85: Penerima
- Langkah 3: Stasiun Cuaca Mini Dengan Attiny85/45: Tampilan
- Langkah 4: Stasiun Cuaca Mini Dengan Attiny85/45: Kemungkinan/Kesimpulan
- Langkah 5: Stasiun Cuaca Mini: Antena
- Langkah 6: Menambahkan BMP180
Video: Stasiun Cuaca Mini Dengan Attiny85: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
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
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
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
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
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
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
Ingin menambahkan sensor tekanan barometrik seperti BMP180? periksa instruksi saya yang lain tentang itu.
Direkomendasikan:
Stasiun Cuaca NaTaLia: Stasiun Cuaca Bertenaga Surya Arduino Dilakukan dengan Cara yang Benar: 8 Langkah (dengan Gambar)
Stasiun Cuaca NaTaLia: Stasiun Cuaca Bertenaga Surya Arduino Selesai dengan Cara yang Benar: Setelah 1 tahun beroperasi dengan sukses di 2 lokasi berbeda, saya membagikan rencana proyek stasiun cuaca bertenaga surya saya dan menjelaskan bagaimana hal itu berkembang menjadi sistem yang benar-benar dapat bertahan lama periode dari tenaga surya. Jika Anda mengikuti
Stasiun Cuaca DIY & Stasiun Sensor WiFi: 7 Langkah (dengan Gambar)
Stasiun Cuaca DIY & Stasiun Sensor WiFi: Dalam proyek ini saya akan menunjukkan cara membuat stasiun cuaca bersama dengan stasiun sensor WiFi. Stasiun sensor mengukur data suhu dan kelembaban lokal dan mengirimkannya, melalui WiFi, ke stasiun cuaca. Stasiun cuaca kemudian menampilkan
Stasiun Cuaca Raspberry Pi DIY Lengkap Dengan Perangkat Lunak: 7 Langkah (dengan Gambar)
Stasiun Cuaca Raspberry Pi Lengkap DIY Dengan Perangkat Lunak: Kembali pada akhir Februari saya melihat posting ini di situs Raspberry Pi. http://www.raspberrypi.org/school-weather-station-…Mereka telah membuat Stasiun Cuaca Raspberry Pi untuk Sekolah. Saya benar-benar menginginkannya! Tetapi pada saat itu (dan saya percaya masih seperti yang ditulis
Stasiun Cuaca Dengan Data Logging: 7 Langkah (dengan Gambar)
Stasiun Cuaca Dengan Data Logging: Dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana membuat sistem stasiun cuaca sendiri. Yang Anda butuhkan hanyalah pengetahuan dasar dalam elektronik, pemrograman, dan sedikit waktu. Proyek ini masih dalam tahap pembuatan. Ini hanya bagian pertama. Upgrade akan
Stasiun Cuaca 5 in 1 Acurite Menggunakan Raspberry Pi dan Weewx (Stasiun Cuaca lain Kompatibel): 5 Langkah (dengan Gambar)
Stasiun Cuaca Acurite 5 in 1 Menggunakan Raspberry Pi dan Weewx (Stasiun Cuaca Lainnya Kompatibel): Ketika saya membeli stasiun cuaca Acurite 5 in 1, saya ingin dapat memeriksa cuaca di rumah saya saat saya pergi. Ketika saya sampai di rumah dan memasangnya, saya menyadari bahwa saya harus menghubungkan layar ke komputer atau membeli hub pintar mereka