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

Monitor Tekanan Udara Presisi: Barometer Arduino UNO & Nano dengan Indikator Dual

Komponen dan Perlengkapan

Tentang Proyek Ini

Menggunakan Arduino UNO dan Nano untuk menampilkan Tekanan Udara pada tampilan analog 12 inci (300m) menggunakan 3 motor stepper.

Ada pilihan 2 desain indikator: modern dan klasik.

Tekanan Udara dalam hPa (HektoPascal) ditampilkan pada indikator utama besar dan diperbarui setiap 10 menit.

Ada 2 indikator sekunder, satu menunjukkan perubahan tekanan dalam 6 jam terakhir dan yang lain menunjukkan perubahan tekanan dalam 3 jam terakhir.

Indikator 3 jam memiliki resolusi yang ditingkatkan sebesar 0.5 hPa karena digunakan untuk prakiraan cuaca. Ada LED untuk menunjukkan saat rentang diperpanjang digunakan pada ketiga tampilan dan juga LED untuk menunjukkan prakiraan cuaca dari tampilan 3 jam.

Di dalam kotak, dua layar LCD 20x4 menampilkan info dari setiap mikroprosesor.

Tampilan tekanan udara utama dan indikator 6 jam dikontrol oleh RTC. Jam ini juga memberikan pulsa 1 jam untuk indikator 3 jam.

Langkah 1: Perbandingan dengan Barometer Analog Konvensional

Sebagian besar barometer analog hanya menggunakan tekanan udara sebagai indikasi untuk memprediksi cuaca dan Anda harus mengingat untuk mengatur penunjuk yang dapat dipindahkan dan mencatat waktu saat itu diatur untuk melihat perubahan tekanan udara.

Cuaca cukup ditulis di sekitar indikator dan dibaca dari penunjuk. Prakiraan cuaca sedikit lebih rumit karena Anda harus menggunakan penunjuk kedua dan mencatat setiap perubahan selama periode 3 jam. Anda harus menghafal kombinasi tekanan saat ini dan tekanan naik/turun untuk mendapatkan prakiraan Anda.

Barometer saya secara terus-menerus memantau perubahan tekanan selama periode 3 jam dan 6 jam dan menampilkan bacaan ini pada 2 indikator terpisah.

Langkah 2: Demo Barometer Memprediksi Badai

Animasi time-lapse ini menunjukkan bagaimana jarum Barometer dan LED prakiraan bereaksi terhadap badai yang akan datang.

Langkah 3: Indikator Rentang Diperpanjang

Ketiga indikator memiliki rentang diperpanjang. Ini memungkinkan resolusi tampilan yang lebih besar pada indikator untuk cuaca normal. Dalam kondisi cuaca ekstrem, indikator beralih ke rentang diperpanjang.

Bacaan Tekanan Melebihi Rentang DiperpanjangJika bacaan tekanan melebihi rentang + atau - maka kedua LED akan menyala untuk memperingatkan Anda bahwa bacaan atau perubahan ekstrem telah terjadi. Indikator sebenarnya masih akan menunjukkan bacaan misalnya pada indikator 3 jam jika bacaan -10 maka indikator akan menunjuk ke 0 dengan kedua LED menyala. Jika bacaan 3 jam -11 maka indikator akan menunjuk ke -1 dengan kedua LED menyala. Anda hanya menambahkan 10 ke bacaan.

Langkah 4: Tampilan Informasi LCD

Tampilan 3 Jam menampilkan bacaan 3 jam dan informasi pada indikator 3 jam. Ini juga menunjukkan prakiraan cuaca berdasarkan bacaan saat ini dan 3 jam terakhir.

Tampilan 6 Jam menampilkan bacaan indikator barometer utama dan juga bacaan 6 jam.

Langkah 5: Memprediksi Cuaca

Prakiraan cuaca pada barometer saya menggunakan 8 LED.

Menggunakan tekanan udara saat ini dan tingkat perubahan selama 3 jam terakhir cuaca diprediksi pada LED.

Saya telah mengunjungi sejumlah situs cuaca dan telah mengumpulkan info berikut tentang memprediksi cuaca dengan barometer.

Memprediksi Cuaca dengan Barometer

Lebih spesifik, barometer dengan bacaan dalam hPa dapat ditafsirkan dengan cara ini:

Jika bacaan di atas 1022 hPa

Tekanan naik atau stabil berarti cuaca cerah terus berlanjut.Tekanan yang perlahan jatuh berarti cuaca cerah.Tekanan yang jatuh dengan cepat berarti kondisi berawan dan lebih hangat.

Jika jatuh antara 1009–1022 hPa

Tekanan naik atau stabil berarti kondisi saat ini akan berlanjut.Tekanan yang perlahan jatuh berarti sedikit perubahan dalam cuaca.Tekanan yang jatuh dengan cepat berarti kemungkinan hujan, atau salju jika cukup dingin.

Jika bacaan di bawah 1009 hPa

Tekanan naik atau stabil menunjukkan cuaca menjadi cerah dan lebih dingin.Tekanan yang perlahan jatuh menunjukkan hujanTekanan yang jatuh dengan cepat menunjukkan badai akan datang.

Menggunakan info di atas barometer saya menerapkan logika berikut untuk memprediksi cuaca.

Langkah 6: Startup Barometer

Pada awalnya saat dinyalakan, pengujian LED dilakukan.

Setelah selesai jarum akan melangkah ke pengaturan awal mereka siap untuk dikalibrasi.

Langkah 7: Pengaturan Awal RTC

RTC perlu diatur ke waktu yang benar.Saya mengaturnya ke UTC dan tidak mengubah ke waktu panas. Sebelum menyesuaikan waktu catat nilai "Disp" dalam kasus ini -5. Ini adalah nilai jarum 6 jam dan akan diperlukan nanti dalam pengaturan.

Langkah 8: Pengaturan Awal Jarum 6 Jam

Setelah RTC diatur jarum barometer dan tekanan udara 6 jam perlu diatur.

Langkah 9: Pengaturan Awal Jarum Barometer Utama

Sekarang tampilan 6 jam benar jarum barometer utama perlu diatur ke tekanan laut yang dibulatkan pada baris ke 3 pada LCD utama.

Langkah 10: Pengaturan Awal Jarum 3 Jam

Pengaturan jarum 3 jam dilakukan oleh empat tombol Hijau, Putih, Biru dan Kuning pada papan Vero.

Langkah 11: Modul dan Komponen

Di mana mungkin proyek ini menggunakan modul yang sudah jadi untuk menghemat waktu konstruksi dan desain.

Mikroprosesor

Proyek ini menggunakan 2 mikroprosesor sebuah Atmega 328(UNO) dan sebuah Arduino Nano. Saya menggunakan kombinasi ini karena saya sudah memiliki 328 yang dibuat dari proyek lain dan karena ruang yang terbatas pada papan Vero ditambahkan Nano juga.

Daya

Barometer menggunakan sekitar 65mA dan ini akan sedikit bertambah setiap kali motor melangkah selama beberapa detik setiap 10 menit hingga satu jam

Modul AMS117 pada proyek ini adalah 3.3v dan digunakan untuk memberi daya pada modul BMP180.

Modul LM2596 Buck DC to DC Converter 3.0-40V ke 1.5-35V mengubah input 12v menjadi 5v

Modul Sensor Tekanan BMP180 2 buahBreakout BMP180 adalah sensor tekanan barometrik dengan antarmuka I2C ("Wire"). Sensor tekanan barometrik mengukur tekanan absolut udara di sekitarnya. Tekanan ini bervariasi dengan cuaca dan ketinggian.

Modul Jam Real-Time RTC

Barometer ini menggunakan Modul Jam Real-Time Presisi I2C DS3231 AT24C32.

Motor Stepper 3 buahBarometer menggunakan 3 Motor Stepper Nema 17 1A, Torsi Pegangan 13N.cm, 4-Lead, 1.8°. Saya menggunakan motor 1.8° karena langkahnya pas tepat ke dalam 360° 200 kali. Anda dapat menggunakan motor Nema 8 jika Anda ingin tetapi jangan gunakan motor 28BYJ-48-5V karena mereka tidak memiliki sudut langkah 1.8° yang diperlukan.

Tampilan LCD 2 buah

Saya telah menggunakan 2 tampilan LCD 20x4 satu untuk Barometer, jam dan tampilan 6 jam dan yang lain untuk tampilan 3 jam dan prakiraan.

Langkah 12: Modul dan Komponen Driver Motor Stepper A4988

Driver motor stepper bipolar microstepping A4988 3 buah

Penting baca bagian ini dengan hati-hati

Barometer saya diatur ke rotasi 1/16 langkah dan kode disesuaikan sesuai itu.

Papan breakout ini untuk driver motor stepper bipolar microstepping A4988 Allegro memiliki pembatas arus dapat disesuaikan, perlindungan over-current dan over-temperature, dan lima resolusi microstep yang berbeda (hingga 1/16-langkah).

Koneksi DayaDriver memerlukan sumber daya logika (3 – 5.5 V) yang terhubung di seluruh pin VDD dan GND dan sumber daya motor (8 – 35 V) yang terhubung di seluruh pin VMOT dan GND.

Koneksi MotorMotor stepper empat, enam, dan delapan kabel dapat dioperasikan oleh A4988 jika mereka terhubung dengan benar.

Ukuran Langkah (dan microstep)Motor stepper biasanya memiliki spesifikasi ukuran langkah (mis. 1.8° atau 200 langkah per revolusi), yang berlaku untuk langkah penuh. Driver microsteping seperti A4988 memungkinkan resolusi yang lebih tinggi dengan memungkinkan lokasi langkah menengah, yang dicapai dengan menggerakkan coil dengan tingkat arus menengah.

Input KontrolSetiap pulsa ke input STEP sesuai dengan satu microstep dari motor stepper dalam arah yang dipilih oleh pin DIR.

Pembatasan ArusSebelum menghubungkan motor kita harus menyesuaikan pembatasan arus driver sehingga kita yakin bahwa arus dalam batas arus motor. Kita dapat melakukannya dengan menyesuaikan tegangan referensi menggunakan potensiometer pada modul untuk mengatur VRef.

Langkah 13: Konstruksi Prototipe

Rangkaian dibuat prototipe menggunakan papan dial hardboard dengan lubang yang dibor untuk poros motor dan LED.

Langkah 14: Konstruksi Modifikasi RTC

Modul ini dilengkapi dengan baterai Lithium-Ion dapat diisi ulang lihat diagram pic. 2.

Saya menggunakan baterai tidak dapat diisi ulang (saya tidak senang dengan desain rangkaian dengan baterai lithium-iron dan risiko kebakaran terkait) jadi saya telah menghapus resistor R5 dari modul seperti di bawah. Ini menghentikan arus pengisian ke baterai.

Langkah 15: Konstruksi Memasang Modul dan Papan

Pada desain dial persegi modern semua modul dan papan dipasang pada dial. Desain dial bundar klasik akan memerlukan beberapa bagian dipasang di kotak belakang karena ada lebih sedikit ruang pada dial.

Motor ditempel dengan lelehkan panas pada blok pemasang kayu pic.1&2. Blok kayu dipotong dari lembar kayu pic.3. Kedalaman blok pemasang diatur untuk memungkinkan presaran yang benar dari poros melalui dial. Saya telah melelehkan panas blok-blok ke dial.

Papan Vero dan Tampilan LCD juga disekrup pada blok kayu yang telah ditempel ke dial menggunakan perekat dampak.

Langkah 16: Konstruksi Memasang LED

LED 3mm dipasang sehingga mereka hanya muncul di atas permukaan dial pic.1.

Langkah 17: Konstruksi Kotak Jam Dial Inggris Gaya Klasik

Kotak Jam Dial Klasik 12 inci dapat dibeli dari Ebay sebagai "hanya kotak" pic.1.

Berbagai gaya tersedia ini adalah oak dan memiliki lingkar dial yang dapat dibuka dari kotak belakang pic.2.

Langkah 18: Konstruksi Kotak Modern

Versi Bingkai Gambar

Saya telah menggunakan dua bingkai gambar yang identik dipasang satu sama lain di belakang. Bingkai ini sekitar 30cm x 30cm. 12 inci x12 inci pic.1.

Langkah 19: Konstruksi Kotak Belakang Kotak Modern

Kotak Belakang

Barometer terletak dalam kotak belakang yang lebih kecil dari bingkai dial di semua sisi kecuali atas. Tumpang tindih bingkai membantu menyembunyikan kotak belakang dan menambahkan efek bayangan pada kotak di dinding.

Langkah 20: Konstruksi Pemasangan Dinding Kotak Modern

Memasang Barometer

Untuk mengizinkan akses ke belakang Barometer saya telah memasangnya pada sepasang sarang GTV 270° terbenam. Sarang dipasang pada blok kayu yang diikat ke dinding dan memungkinkan barometer untuk diayun keluar untuk akses. Sarang juga memiliki fungsi rilis cepat jika Barometer perlu diambil untuk pemeliharaan kapan saja. Titik putar sarang diundurkan yang juga memungkinkan bagian atas kotak untuk melewati dinding saat diayun keluar.

Langkah 21: Konstruksi Pemasangan Dial Kotak Modern

Dial dan semua papan dll dapat dilepas untuk pemeliharaan dan dipegang ke kotak belakang oleh 2 baut.

Langkah 22: Konstruksi Dial

Dial terbuat dari lembar aluminium tebal 1.5mm dan dilapisi dengan plastik pelindung.

Langkah 23: Konstruksi Desain Dial

Terapkan transfer decal air slide.

Langkah 24: Konstruksi Jaru

Jaru adalah pilihan yang sangat pribadi dan ada banyak gaya berbeda untuk dipilih. Bagian terbaik adalah menemukan jaru yang cocok satu sama lain.

Langkah 25: Konstruksi Skematik

Skematik utama ditunjukkan di Pic. 1 dengan sumber daya di Pic.2.

Anda juga akan membutuhkan adaptor daya terregulasi 12v sekitar 1amp.

Langkah 26: Konstruksi Papan Vero

Tata Letak Papan Vero

Papan Vero dengan semua modul dilepas.

Langkah 27: Kode

Ada 2 bagian kode 1 untuk Kode Barometer Utama dan tampilan 6 jam dan 1 untuk tampilan 3 jam dan prakiraan cuaca.

Langkah 28: Video Time-Lapse

Video Time-Lapse menunjukkan radar hujan dan Barometer memprediksi hujan dan badai.

Ini adalah video 4K jadi Anda seharusnya dapat melihat detail penuh dari dial dan LED prakiraan.

Kode

BarometerA4988_23.inoArduino
/* Kode untuk Barometer dan tampilan 6 jam */ #include <SFE_BMP180.h> #include <Wire.h> #include <SPI.h> #include <LiquidCrystal_I2C.h> SFE_BMP180 pressure; #define ALTITUDE 118.0 LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); #include <AccelStepper.h> #define dirPin 8 #define stepPin 9 #define dirPin2 10 #define stepPin2 11 #define motorInterfaceType 1 AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin); AccelStepper stepper2 = AccelStepper(motorInterfaceType, stepPin2, dirPin2); float seaPressure = 0; float pressureNow = 0; float pressurePrevious = 0; float pressureDiff = 0; int checkStop = 0; int adjustOn = 4; int highPressureLED = 3; int lowPressureLED = 5; int hour6LowLED = 15; int hour6HighLED = 16; void setup() { pinMode(adjustOn, INPUT); pinMode(highPressureLED, OUTPUT); pinMode(lowPressureLED, OUTPUT); pinMode(hour6LowLED, OUTPUT); pinMode(hour6HighLED, OUTPUT); stepper.setMaxSpeed(1000); stepper2.setMaxSpeed(1000); lcd.begin(20,4); lcd.backlight(); lcd.setCursor(0,0); lcd.print("Barometer A988"); lcd.setCursor(0,1); lcd.print(" Version 23"); Wire.begin(); Serial.begin(9600); lcd.clear(); if (pressure.begin()) Serial.println("BMP180 init success"); else { Serial.println("BMP180 init fail"); while(1); } digitalWrite(hour6HighLED, HIGH); delay (500); digitalWrite(hour6HighLED, LOW); digitalWrite(hour6LowLED, HIGH); delay (500); digitalWrite(hour6LowLED, LOW); digitalWrite(highPressureLED, HIGH); delay (500); digitalWrite(highPressureLED, LOW); digitalWrite(lowPressureLED, HIGH); delay (500); digitalWrite(lowPressureLED, LOW); delay (500); lcd.clear(); getPressure(); lcd.setCursor(0,1); lcd.print("H"); lcd.print(0); lcd.setCursor(13,1); lcd.print("Disp"); lcd.print(0); digitalWrite(6, HIGH); digitalWrite(7, HIGH); stepper.disableOutputs(); stepper2.disableOutputs(); } void loop() { if( digitalRead(adjustOn) == HIGH) { Settings(); } readDS3231time(); if (minute == 0 || minute == 10 || minute == 20 || minute == 30 || minute == 40 || minute == 50) { getPressure(); checkStop = 1; } if(digitalRead(12)==HIGH) { setDS3231time(30, minute, hour, dayOfWeek, dayOfMonth, month, year); } } void Settings() { /* Pengaturan melalui potensiometer */ } void getPressure() { /* Membaca semua bacaan tekanan */ } 
BarometerA4988_3hour__21.inoArduino
/* Kode untuk tampilan 3 jam dan prakiraan cuaca */ #include <SFE_BMP180.h> #include <SPI.h> #include <LiquidCrystal_I2C.h> SFE_BMP180 pressure; #define ALTITUDE 125.0 LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); #include <AccelStepper.h> #define dirPin 11 #define stepPin 10 #define motorInterfaceType 1 AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin); float seaPressure = 0; float pressureNow = 0; float pressurePrevious = 0; float pressureDiff = 0; int checkStop = 0; int adjustOn = 12; int hour3LowLED = 5; int hour3HighLED = 4; int ledStormy = 8; int ledRain = 7; int ledChange = 6; int ledFair = 2; int ledDry = 13; int ledClear = 12; int ledThreat = 17; int ledNoChange = 16; void setup() { pinMode(ledStormy, OUTPUT); pinMode(ledRain, OUTPUT); pinMode(ledChange, OUTPUT); pinMode(ledFair, OUTPUT); pinMode(ledDry, OUTPUT); pinMode(ledClear, OUTPUT); pinMode(ledThreat, OUTPUT); pinMode(ledNoChange, OUTPUT); pinMode(hour3LowLED, OUTPUT); pinMode(hour3HighLED, OUTPUT); stepper.setMaxSpeed(1000); lcd.begin(20,4); lcd.backlight(); lcd.setCursor(0,0); lcd.print("Barometer A988 3 Hr"); lcd.setCursor(0,1); lcd.print(" Version 20"); if (pressure.begin()) Serial.println("BMP180 init success"); else { Serial.println("BMP180 init fail"); while(1); } digitalWrite(ledThreat, HIGH); delay (500); digitalWrite(ledThreat, LOW); digitalWrite(ledNoChange, HIGH); delay (500); digitalWrite(ledNoChange, LOW); digitalWrite(ledClear, HIGH); delay (500); digitalWrite(ledClear, LOW); digitalWrite(ledStormy, HIGH); delay (500); digitalWrite(ledStormy, LOW); digitalWrite(ledRain, HIGH); delay (500); digitalWrite(ledRain, LOW); digitalWrite(ledChange, HIGH); delay (500); digitalWrite(ledChange, LOW); digitalWrite(ledFair, HIGH); delay (500); digitalWrite(ledFair, LOW); digitalWrite(ledDry, HIGH); delay (500); digitalWrite(ledDry, LOW); digitalWrite(hour3HighLED, HIGH); delay (500); digitalWrite(hour3HighLED, LOW); digitalWrite(hour3LowLED, HIGH); delay (500); digitalWrite(hour3LowLED, LOW); lcd.clear(); getPressure(); showLCD(); getForecast(); digitalWrite(9, HIGH); stepper.disableOutputs(); } void loop() { getPressure(); getForecast(); showLCD(); } void getPressure() { /* Membaca tekanan dari BMP180 */ } void getForecast() { /* Logika prakiraan cuaca berdasarkan tekanan dan perubahan */ } void showLCD() { /* Menampilkan data ke LCD */ } 

Skematik

File skematik tersedia di bagian bawah proyek.

Proses manufaktur

  1. Barometer Aneroid: Desain, Sejarah, dan Masa Depan Pengukuran Tekanan
  2. Pendeteksi Tekanan Darah: Desain, Manufaktur, dan Tren Masa Depan
  3. Tabung Pemadam Kebakaran: Jenis, Desain, dan Tren Masa Depan
  4. Manometer Tekanan Presisi untuk Aplikasi Industri & Keselamatan
  5. Membuat Spybot Arduino yang Dikontrol melalui Bluetooth
  6. FlickMote: Remote IR Kendali Gestur untuk Rumah Cerdas
  7. DIY Arduino TV B-Gone: Remote Universal untuk Semua TV
  8. Bangun Jam Master LED Kustom dengan Alarm – Terlihat dari Jarak 12 Meter
  9. Stasiun Cuaca Kompak: Arduino Nano & ESP8266 dengan Sensor BMP280 & Tampilan OLED/Nokia LCD
  10. Find Me: Pelacak Item Cerdas dengan Arduino dan Bluetooth