Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

$10 Portable Arduino Weather Station (AWS)

Komponen dan persediaan

Arduino Nano R3
× 1
Sensor Suhu DHT22
× 1
bmp180
× 1
Adafruit LCD Standar - 16x2 Putih di Atas Biru
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Baru-baru ini kampus saya mengadakan pameran sains kecil-kecilan. Jadi saya diminta oleh guru saya untuk mempresentasikan proyek di kampus untuk mengajar siswa muda tentang elektronik jadi pada dasarnya saya punya dua hari untuk membuat sesuatu.

Karena kondisi iklim di sini sangat bervariasi dan saat ini suhunya berkisar antara 34-40 derajat Celcius. Jadi saya memutuskan untuk membuat stasiun cuaca.

Jadi, apa fungsi stasiun cuaca?

Stasiun cuaca adalah perangkat yang mengumpulkan data terkait cuaca dan lingkungan menggunakan banyak sensor berbeda

Sensor seperti

  • Angin
  • Kelembaban
  • Hujan
  • Suhu
  • Tekanan
  • Ketinggian

Tujuannya adalah untuk membuat stasiun cuaca portabel

Fitur yang harus dimiliki

  • Suhu
  • Kelembaban
  • Tekanan
  • Ketinggian

Langkah 1:Bahan:Saatnya Membeli Barang

Jadi, inilah hal yang kita perlukan untuk proyek

Saya sebenarnya memulai proyek di UNO Saya tetapi kemudian saya memutuskan untuk beralih ke solusi ringkas.

Saya membawa nano saat itu jadi saya harus mengikutinya, ingin sekali menggunakan mikro, karena ini yang terkecil.

Bagaimanapun meninggalkan hal-hal itu, berbicara tentang anggaran dan suku cadang di sini adalah daftarnya .

  • DHT22 Sensor suhu dan kelembapan -> $3,00
  • Sensor tekanan BMP180 (BMP280 lebih murah tapi mahal di daerah saya )> $2,00
  • Arduino Nano> $1,89
  • Menyolder
  • Layar LCD dengan Driver I2C> $3.0
  • Veroboard
  • Tajuk wanita

Untuk ujung alat yang Anda perlukan

  • Besi Solder
  • Piring Hidung
  • Kabel

Dan juga beberapa waktu

Langkah 2:Suhu dan Kelembaban- DHT22

Mengukur suhu dapat dilakukan dengan menggunakan sensor yang berbeda.

Yang populer adalah DHT22, DHT11, SHT1x

Jadi pada dasarnya, mari kita pahami bagaimana sensor ini berbeda satu sama lain dan mengapa saya menggunakan DHT22 sejak awal.

AM2302 keluaran sinyal digital terkalibrasi. Ini menerapkan teknik pengumpulan sinyal digital eksklusif dan teknologi penginderaan kelembaban, memastikan keandalan dan stabilitasnya. Elemen penginderaannya terhubung dengan komputer chip tunggal 8-bit.

Setiap sensor model ini dikompensasikan suhu dan dikalibrasi di ruang kalibrasi yang akurat dan koefisien kalibrasi disimpan dalam jenis program di memori OTP, ketika sensor mendeteksi, ia akan mengutip koefisien dari memori. Ukuran kecil &konsumsi rendah &jarak transmisi panjang (100 m) memungkinkan AM2302 cocok untuk semua jenis acara aplikasi yang keras. Baris tunggal dikemas dengan empat pin, membuat koneksi sangat nyaman.

Mari kita lihat beberapa pro dan kontra dari ketiganya.

DHT11

Kelebihan:Tidak perlu menyolder. Termurah di antara ketiganya. Dapatkan output stabil dengan cepat. Transmisi lebih dari 20m. Interferensi yang kuat.

Kontra:Perpustakaan! Tidak ada opsi resolusi. Kesalahan:Temp+/-2°C; Lembab +/-5% RH. Rentang pengukuran tidak memadai (0-50 °C). Aplikasi:Berkebun, Pertanian.

DHT22

Kelebihan:Tidak perlu menyolder. Menambahkan beberapa dolar ke DHT11 dan dapatkan peningkatan. kurva halus. Kesalahan terkecil. Kisaran besar. Transmisi lebih dari 20m. Gangguan kuat.

Kontra:Bisa lebih sensitif. Pelacakan suhu lambat. Perpustakaan dibutuhkan. Aplikasi:Pemantauan Lingkungan. SHT1x

Kelebihan:Tidak ada solder. kurva halus. Kesalahan kecil. Respon cepat. Konsumsi daya rendah. Tidur otomatis. Stabilitas dan konsistensi jangka panjang yang luar biasa.

Kontra:Dua antarmuka digital. Kesalahan kelembaban. Rentang pengukuran yang sama dengan DHT11. Perpustakaan dibutuhkan. Aplikasi:Tugas berat dan instalasi lama. Berikut adalah tiga pilihan yang relatif murah.

Koneksi

Vcc ke 5V atau 3.3V

Gnd ke Gnd

Data ke pin 2 arduino

Langkah 3:Barometer Dan Sensor Tekanan- BMP180

Bmp180 adalah sensor tekanan barometrik dengan antarmuka I2C (“Kabel”).

Sensor tekanan barometrik mengukur tekanan absolut udara di sekitarnya. Tekanan ini bervariasi dengan cuaca dan ketinggian.

modul bmp180 ini dilengkapi dengan regulator 3,3 v 662k yang saya hancurkan karena beberapa kebodohan jadi saya memasang kabel untuk melewati seluruh vcc langsung ke chip.

Catatan :Saat Melakukannya, saya membatasi diri untuk tidak menggunakan hanya 3,3 v , menggunakan voltase di atas akan merusak perangkat.

Model lain mungkin tidak memiliki pengatur tegangan 662k. jadi periksa dengan seksama .

Oke kembali lagi mari hubungkan sensor ke arduino .

Sensor terhubung ke bus i2c dari arduino yang mana nano dan Uno adalah

SDA==>A4

SCL==>A5

VCC==>3.3V

GND ==> GND

Mari kita bicara sedikit tentang tekanan dan bagaimana tekanan mengukur ketinggian dan suhu.

Tekanan atmosfer pada posisi apapun tidak konstan. Interaksi kompleks antara putaran bumi, kemiringan sumbu, dan banyak faktor lainnya mengakibatkan daerah yang bergerak dengan tekanan yang lebih tinggi dan lebih rendah, yang pada gilirannya menyebabkan variasi cuaca yang kita lihat setiap hari. Dengan mengamati perubahan tekanan, Anda dapat memprediksi perubahan cuaca jangka pendek.

Misalnya, penurunan tekanan biasanya berarti cuaca basah atau badai mendekat (sistem tekanan rendah sedang bergerak). Tekanan yang meningkat biasanya berarti cuaca cerah akan segera tiba (sistem bertekanan tinggi sedang bergerak).

Tekanan atmosfer juga bervariasi dengan ketinggian. Tekanan absolut di base camp Gunung everest (5.400 ) lebih rendah dari Delhi (216)

Karena tekanan absolut sulit untuk membandingkan pengukuran tekanan secara langsung dari satu lokasi ke lokasi lain. Kami menggunakan tekanan relatif .yaitu tekanan permukaan laut.

Mengukur ketinggian

Tekanan rata-rata atmosfer di permukaan laut adalah 1013,25 hPa (atau mbar). Ini turun ke nol saat Anda mendaki menuju ruang hampa. Karena kurva penurunan ini dipahami dengan baik, Anda dapat menghitung perbedaan ketinggian antara dua pengukuran tekanan (p dan p0) dengan menggunakan persamaan ini:

alti=44330*[1-(p/p0)^(1/5.255)]

Jika Anda menggunakan tekanan permukaan laut (1013,25 hPa) sebagai tekanan dasar (p0), output persamaan akan menjadi ketinggian Anda saat ini di atas permukaan laut.

Perhatian

Berikan suasana: Ingatlah bahwa BMP180 memerlukan akses ke udara sekitar untuk mengukur tekanannya, jadi jangan masukkan ke dalam wadah tertutup. Menyediakan lubang ventilasi kecil harus memadai.Tetapi tidak terlalu banyak udara :Di sisi lain, paparan udara atau angin yang bergerak cepat dapat menyebabkan variasi tekanan sesaat yang akan memengaruhi pembacaan Anda. Lindungi perangkat dari arus udara yang kuat.

Tetap tenang: Karena pembacaan suhu yang akurat diperlukan untuk mengukur tekanan, cobalah untuk tidak memaparkan perangkat pada perubahan suhu yang cepat, dan jauhkan dari bagian panas terdekat dan sumber panas lainnya.

Tetap kering :BMP180 sensitif terhadap kelembapan. Jangan merendamnya atau membiarkannya menyentuh air cair.

Jangan membutakannya: Anehnya, silikon di dalam BMP180 sensitif terhadap cahaya, yang dapat masuk ke perangkat melalui lubang di bagian atas chip. Untuk akurasi maksimum, lindungi chip dari cahaya sekitar.

Langkah 4:Membuat Sirkuit

Jadi kita mulai dengan membuat header untuk nano. kami benar-benar memotong tajuk perempuan dan kemudian mengarsipkannya agar terlihat seolah-olah mereka awalnya berukuran itu. Kami kemudian menyoldernya. lalu kita buat header untuk sensor DHT22

. dibutuhkan resistansi 10k untuk terhubung dari data ke ground. kami kemudian menyolder semuanya. Kemudian tiba saatnya untuk bmp180 kami menambahkan header dengan cara yang sama. Kami menggunakan 3,3 V sebagai daya. Kami menghubungkan semua bus i2c.

Kami terakhir menambahkan tampilan kami menggunakan i2c lcd jadi kami menggunakan bus yang sama yang kami gunakan untuk modul bmp180.

(Ada slot keempat di mana saya ingin menambahkan modul rtc nanti untuk juga menonaktifkan jam di mesin)

Langkah 5:Waktunya untuk Kode

Tunggu ....................

Unduh perpustakaan

bmp180

https://github.com/sparkfun/BMP180_Breakout_Arduin...

BMP180_Breakout_Arduino_Library-master.zip

Pustaka Dht22

https://github.com/adafruit/DHT-sensor-library

Untuk menginstal perpustakaan di arduino, periksa tautan ini

https://www.arduino.cc/en/Guide/Libraries

Saya telah menggunakan arduino 1.6.5 sehingga kodenya pasti akan berfungsi untuk versi ini, mungkin juga untuk versi yang lebih tinggi jika tidak berhasil, gunakan 1.6.5 sebagai versi dasar.

#include #include #include #include "DHT.h"#include

Tekanan SFE_BMP180;

#define ALTITUDE 20.56 #define I2C_ADDR 0x27 // <<- Tambahkan alamat di sini.#menentukan Rs_pin 0#menentukan Rw_pin 1#menentukan En_pin 2#menentukan BACKLIGHT_PIN 3#menentukan D4_pin 4#menentukan D5_pin 5#menentukan D6_pin 6#menentukan D7_pin 7

#menentukan DHTPIN 2 // apa digital pin yang kita sambungkan

// Batalkan komentar jenis apa pun yang Anda gunakan!//#define DHTTYPE DHT11 // DHT 11#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321DHT dht(DHTPIN, DHTTYPE);LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);float t1,t2;

void setup(){ Serial.begin(9600); lcd.begin (16,2); // <<-- LCD kami berukuran 20x4, ganti LCD Anda jika diperlukan// LCD Backlight ONlcd.setBacklightPin(BACKLIGHT_PIN,POSITIF);lcd.setBacklight(HIGH); lcd.rumah(); // pulang di LCDlcd.print("Stasiun Cuaca");delay(5000);dht.begin(); tekanan.mulai(); } void loop(){ status karakter; ganda T,P,p0,a; status =tekanan.startTemperature(); if (status !=0) { delay(status);

status =pressure.getTemperature(T); if (status !=0) { Serial.print("1"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Suhu Baro :"); lcd.setCursor(0,1); lcd.print(T,2); lcd.print("derajat C"); t1=T; delay(3000);

status =pressure.startPressure(3); if (status !=0) { // Tunggu hingga pengukuran selesai:delay(status);

status =pressure.getPressure(P,T); if (status !=0) {lcd.clear(); lcd.setCursor(0,0); lcd.print("Tekanan Abslt:"); lcd.setCursor(0,1); lcd.print(P,2); lcd.print("mb"); delay(3000);

p0 =pressure.sealevel(P,ALTITUDE); // kita berada di 1655 meter (Boulder, CO)

a =pressure.altitude(P,p0); lcd.clear(); lcd.setCursor(0,0); lcd.print("Ketinggian :"); lcd.setCursor(0,1); lcd.print(a,0); lcd.print("meter"); penundaan(3000); } } } } float h =dht.readHumidity(); // Baca suhu sebagai Celcius (default) float t =dht.readTemperature(); t2=t; lcd.clear(); lcd.setCursor (0,0); // pergi ke awal baris ke-2 lcd.print("Humidity:"); lcd.setCursor(0,1);lcd.print(h); lcd.print("%"); penundaan(3000); lcd.clear(); lcd.setCursor (0,0); // pergi ke awal baris ke-2 lcd.print("DHT Tempurature:"); lcd.setCursor(0,1); lcd.print(t); lcd.print("derajat C"); penundaan(3000); lcd.clear(); lcd.setCursor (0,0); // pergi ke awal baris ke-2 lcd.print("Suhu Rata-Rata:"); lcd.setCursor(0,1); lcd.print((t1+t2)/2); lcd.print("derajat C"); delay(3000);}

FSIULGKING9D7SD.ino


Kode

  • Cuplikan kode #1
Cuplikan kode #1Teks biasa

#include #include #include #include "DHT.h"#include

Tekanan SFE_BMP180;

#define ALTITUDE 20.56 #define I2C_ADDR 0x27 // <<- Tambahkan alamat Anda di sini. #define Rs_pin 0#define Rw_pin 1#define En_pin 2#define BACKLIGHT_PIN 3#define D4_pin 4#define D5_pin 5#define D6_pin 6#define D7_pin 7

#define DHTPIN 2 // apa pin digital kita' terhubung kembali ke

// Batalkan komentar jenis apa pun yang Anda gunakan!//#define DHTTYPE DHT11 // DHT 11#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321DHT dht(DHTPIN, DHTTYPE); LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);float t1,t2;

void setup(){ Serial.begin(9600); lcd.begin (16,2); // <<-- LCD kami berukuran 20x4, ganti LCD Anda jika diperlukan// LCD Backlight ONlcd.setBacklightPin(BACKLIGHT_PIN,POSITIF);lcd.setBacklight(HIGH); lcd.rumah(); // pulang di LCDlcd.print("Stasiun Cuaca");delay(5000);dht.begin(); tekanan.mulai(); } void loop(){ status karakter; ganda T,P,p0,a; status =tekanan.startTemperature(); if (status !=0) { delay(status);

status =pressure.getTemperature(T); if (status !=0) { Serial.print("1"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Suhu Baro :"); lcd.setCursor(0,1); lcd.print(T,2); lcd.print("derajat C"); t1=T; delay(3000);

status =pressure.startPressure(3); if (status !=0) { // Tunggu hingga pengukuran selesai:delay(status);

status =pressure.getPressure(P,T); if (status !=0) {lcd.clear(); lcd.setCursor(0,0); lcd.print("Tekanan Abslt:"); lcd.setCursor(0,1); lcd.print(P,2); lcd.print("mb"); delay(3000);

p0 =pressure.sealevel(P,ALTITUDE); // kita berada di 1655 meter (Boulder, CO)

a =pressure.altitude(P,p0); lcd.clear(); lcd.setCursor(0,0); lcd.print("Ketinggian :"); lcd.setCursor(0,1); lcd.print(a,0); lcd.print("meter"); penundaan(3000); } } } } float h =dht.readHumidity(); // Baca suhu sebagai Celcius (default) float t =dht.readTemperature(); t2=t; lcd.clear(); lcd.setCursor (0,0); // pergi ke awal baris ke-2 lcd.print("Humidity:"); lcd.setCursor(0,1);lcd.print(h); lcd.print("%"); penundaan(3000); lcd.clear(); lcd.setCursor (0,0); // pergi ke awal baris ke-2 lcd.print("DHT Tempurature:"); lcd.setCursor(0,1); lcd.print(t); lcd.print("derajat C"); penundaan(3000); lcd.clear(); lcd.setCursor (0,0); // pergi ke awal baris ke-2 lcd.print("Suhu Rata-Rata:"); lcd.setCursor(0,1); lcd.print((t1+t2)/2); lcd.print("derajat C"); delay(3000);}

Github
https://github.com/sparkfun/BMP180_Breakout_Arduino_Library/archive/master.ziphttps://github.com/sparkfun/BMP180_Breakout_Arduino_Library/archive/master.zip
Github
https://github.com/adafruit/DHT-sensor-libraryhttps://github.com/adafruit/DHT-sensor-library

Skema


Proses manufaktur

  1. Stasiun Cuaca Raspberry Pi 2
  2. Stasiun Cuaca Raspberry Pi
  3. Stasiun Cuaca V 2.0
  4. Model Rail Digital DCC Command Station Arduino dan Aplikasi Gratis
  5. 6-Shooter:Stasiun Pencampur Minuman Arduino
  6. Arduino Digital Dice
  7. Piano Sentuh Kapasitif Portabel
  8. Pengontrol Game Arduino
  9. Detektor Jangkauan Portabel
  10. Game Pixel Chaser