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

Stasiun Cuaca Mini Menggunakan Arduino Nano

Komponen dan persediaan

Arduino Nano R3
× 1
modul DHT 11
× 1
SENSOR TEKANAN BMP-280
× 1
Layar LCD ST7735 1,44 inci
× 1
ENCLOSURE CETAK 3D
× 1
Kabel USB A ke mini USB B
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)
Printer 3D (generik)
Kawat Solder
Pita dua sisi

Aplikasi dan layanan online

Arduino IDE
Autodesk Fusion 360

Tentang proyek ini

Pendahuluan

Menangkap data fisik secara real-time selalu menarik. Dalam proyek ini, Anda tidak hanya akan dapat menangkap tiga parameter fisik dasar untuk prediksi cuaca yaitu. suhu, kelembaban, dan tekanan atmosfer, tetapi juga dapat menampilkan data waktu nyata di layar LCD.

Deskripsi dan Prinsip Kerja

Dua sensor yang digunakan dalam proyek ini adalah BMP-280 dan DHT-11. Yang pertama merasakan suhu dan tekanan atmosfer sedangkan yang terakhir merasakan kelembaban relatif. DHT-11 bisa dilakukan dengan menggunakan BME-280 (dapat mengukur kelembaban juga) daripada BMP-280, tetapi jika biaya diperhitungkan maka menggunakan kombinasi sensor yang digunakan di sini jauh lebih ekonomis untuk DIY proyek. Juga harus diperhatikan bahwa meskipun DHT-11 mampu mendeteksi suhu dan kelembapan, DHT-11 digunakan untuk penginderaan kelembapan hanya karena resolusi penginderaan suhunya +/-2° dibandingkan dengan +/-.5° untuk BMP-280. Inti dari proyek ini adalah papan pengembangan Arduino NANO. Di sini juga papan NANO telah dipilih daripada UNO yang disukai massal karena harganya yang terjangkau. Layar LCD TFT seri ST7735 1,44” digunakan sebagai tampilan untuk proyek kami. Layar yang lebih besar telah dihindari di sini agar Arduino NANO tidak kelebihan beban.

Sirkuit dan Pemrograman

Kombinasi diagram sirkuit dan diagram blok telah disediakan senyaman mungkin untuk membantu pembuat memahami konfigurasi fisik dan koneksi komponen. Tabel untuk pin-out komponen juga disediakan untuk mempermudah. Melalui diagram dan tabel, orang akan melihat bahwa pin 5V dan GND dari header ICSP pada Arduino NANO telah digunakan untuk memasok daya ke komponen bersama dengan daya terpasang dan pin ground. Ini telah dilakukan untuk menghilangkan sumber daya tambahan yang akan membuat sistem menjadi besar.

Datang ke pemrograman, di bagian pertama array perpustakaan telah dimasukkan untuk menjaga pemrograman pendek dan sederhana. Selain yang jelas, perpustakaan Wire.h dan SPI.h layak disebut karena Wire.h adalah salah satu yang memungkinkan Arduino untuk berkomunikasi dengan perangkat I2C/TWI seperti BMP-280 dan LCD ST7735 dan SPI.h menyediakan antarmuka periferal serial dengan LCD ST7735. Pada bagian kedua, sensor diinisialisasi dan tata letak, warna font, dll. LCD diatur untuk menampilkan data sesuai preferensi kita. Di bagian akhir pemrograman kami, output dari sensor diperoleh dan ditampilkan dengan penundaan yang nyaman di antara setiap pembacaan untuk menjaga semuanya tetap stabil.

Konstruksi dan Pengujian

Dalam prototipe, komponen telah disimpan modular dan terhubung menggunakan kabel jumper bukan solder. Ini tidak hanya memungkinkan pemecahan masalah dan perbaikan yang mudah, tetapi juga membuat proses perakitan tidak repot. Kasing perangkat telah dicetak 3D khusus agar sesuai dengan komponen. Kasing dilengkapi dengan ventilasi yang tepat untuk memaparkan sensor ke besaran ukur dan menghilangkan panas yang dihasilkan oleh sistem yang jika tidak akan mengganggu elemen penginderaan. Perangkat ini ditenagai melalui tipe AUSB yang sama ke tipe B mini USB yang digunakan untuk memprogram Arduino. Prototipe telah diuji di dalam ruangan selama beberapa jam menggunakan port USB PC dan pengisi daya smartphone 5V sebagai suplai. Hasilnya cukup akurat dibandingkan dengan data meteorologi online, mengingat biaya produksi dan waktu pengembangan.

Kesimpulan

Kesimpulannya dapat dikatakan bahwa proyek ini cukup ekonomis, berguna untuk sedikitnya, dan yang paling penting, menyenangkan memiliki stasiun cuaca kecil dan praktis yang pas di saku Anda.

Untuk membeli suku cadang elektronik, pesanlah dari UTSOURCE

Daftar Pustaka

· Google.com

· Arduino.cc

· Mytectutor.com


Kode

  • KODE
KODEC/C++
INI ADALAH SKETSA RELEVAN UNTUK PROYEK, PERNYATAAN KOMENTAR AKAN MENJELASKAN KERJA
#include  //sertakan perpustakaan Antarmuka Periferal Serial#include  //sertakan perpustakaan Antarmuka Dua Kawat#sertakan  // sertakan pustaka grafis Adafruit#sertakan  // sertakan pustaka TFT Adafruit ST7735#sertakan  // sertakan pustaka sensor Adafruit BMP280#sertakan "DHT.h" //sertakan sensor DHTXX library#define DHTPIN 2 //pin data DHT11 terhubung ke pin arduino D2#define DHTTYPE DHT11 //menentukan jenis sensor DHT yang digunakan#define TFT_RST 8 // Pin TFT RST terhubung ke pin arduino D8#define TFT_CS 10 // TFT Pin CS terhubung ke pin arduino D9#define TFT_DC 9 // Pin TFT DC terhubung ke pin arduino D10// inisialisasi ST7735 SERIES TFT libraryAdafruit_ST7735 tft =Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); // tentukan alamat I2C perangkat:0x76 atau 0x77 (0x77 adalah alamat default perpustakaan)#define BMP280_I2C_ADDRESS 0x76 Adafruit_BMP280 bmp280; // inisialisasi Adafruit BMP280 libraryDHT dht(DHTPIN, DHTTYPE); // inisialisasi pengaturan batal sensor DHT(void){ dht.begin(); // sinkronisasi sensor DHT tft.initR(INITR_144GREENTAB); // inisialisasi chip ST7735S, tab hitam tft.fillScreen(ST77XX_BLACK); // menyetel latar belakang hitam tft.drawFastHLine(0, 15 , tft.width(), ST77XX_CYAN);// menggambar garis pemisah horizontal pada posisi (0, 15) tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK); // atur warna teks menjadi latar belakang putih dan hitam tft.setTextSize(1); // menyetel ukuran teks menjadi 1 //tft.setCursor(4, 0); // pindahkan kursor ke posisi (4, 0) pixel //tft.print("ARDUINO + ST7735 TFT"); tft.setCursor(25, 5); // pindahkan kursor ke posisi (25, 5) pixel tft.print("CUACA BUDDY"); // inisialisasi sensor BMP280 if( bmp280.begin(BMP280_I2C_ADDRESS) ==0 ) { // kesalahan koneksi atau alamat perangkat salah! tft.setTextColor(ST77XX_RED, ST77XX_CYAN); // atur warna teks menjadi latar belakang merah dan hitam tft.setTextSize(2); // mengatur ukuran teks menjadi 2 tft.setCursor(5, 76); // pindahkan kursor ke posisi (5, 76) pixel tft.print("Connection"); tft.setCursor(35, 100); // pindahkan kursor ke posisi (35, 100) pixel tft.print("Error"); sementara(1); // tetap disini } tft.drawFastHLine(0, 55, tft.width(), ST77XX_CYAN); // menggambar garis pemisah horizontal pada posisi (0, 55)piksel tft.drawFastHLine(0, 95, tft.width(), ST77XX_CYAN); // menggambar garis pemisah horizontal pada posisi (0, 195) piksel tft.setTextColor(ST77XX_RED, ST77XX_BLACK); // atur warna teks menjadi latar belakang merah dan hitam tft.setCursor(30, 20); // pindahkan kursor ke posisi (30, 20) pixel tft.print("TEMPERATURE "); // mengatur heading untuk bagian pertama tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK); // atur warna teks menjadi cyan dan latar belakang hitam tft.setCursor(40, 60); // pindahkan kursor ke posisi (40, 60) pixel tft.print("HUMIDITY "); // pengaturan heading untuk bagian kedua tft.setTextColor(ST77XX_GREEN, ST7735_BLACK); // atur warna teks ke latar belakang hijau dan hitam tft.setCursor(40, 100); // pindahkan kursor ke posisi (40, 100) piksel tft.print("TEKANAN "); // mengatur heading untuk bagian ketiga tft.setTextSize(2); // menyetel ukuran teks menjadi 2 } // main loopvoid loop() { char _buffer[8]; // membaca suhu, kelembaban dan tekanan dari sensor BMP280 float temp =bmp280.readTemperature(); // mendapatkan suhu dalam °C float hum =dht.readHumidity(); // mendapatkan kelembapan dalam rH% float pres =bmp280.readPressure(); // mendapatkan tekanan dalam hPa // suhu cetak (dalam °C) if(temp <0) // jika suhu <0 sprintf( _buffer, "-%02u.%02u", (int)abs(temp), (int )(abs(temp) * 100) % 100 ); else // if temperature>=0 sprintf( _buffer, " %02u.%02u", (int)temp, (int)(temp * 100) % 100 );// menyetel perkiraan nilai tft.setTextColor(ST77XX_YELLOW, ST77XX_BLACK ); // atur warna teks ke latar belakang kuning dan hitam tft.setCursor(11, 34); // pindahkan kursor ke posisi (11,34) piksel tft.print(_buffer); // mencetak suhu dari sensor BMP-280 tft.drawCircle(89, 34, 2, ST77XX_YELLOW); // mencetak simbol derajat ( ° )(dapat dihilangkan jika * digunakan sebagai gantinya) tft.setCursor(95, 34); // pindahkan kursor ke posisi (95,34) piksel tft.print("C"); // mencetak simbol Celcius // 2:mencetak kelembapan (dalam %) sprintf( _buffer, "%02u ", (int)(hum)); // menyetel perkiraan nilai tft.setTextColor(ST77XX_MAGENTA, ST77XX_BLACK); // atur warna teks menjadi magenta dan latar belakang hitam tft.setCursor(45, 74); // pindahkan kursor ke posisi (45,74) piksel tft.print(_buffer); // mencetak kelembapan dari sensor DHT-11 tft.setCursor(75, 74); // pindahkan kursor ke posisi (75,74) piksel tft.print("%"); // cetak simbol persentase // 3:cetak tekanan (dalam hPa) sprintf( _buffer, "%04u.%02u", (int)(pres/100), (int)((uint32_t)pres % 100) ); // menyetel perkiraan nilai tft.setTextColor(ST77XX_ORANGE, ST77XX_BLACK); // atur warna teks menjadi oranye dan latar belakang hitam tft.setCursor(3, 112); // pindahkan kursor ke posisi (3.112) piksel tft.print(_buffer); // mencetak tekanan atmosfer dari BMP-280 tft.setCursor(91, 112); // pindahkan kursor ke posisi (91.112) piksel tft.print("hPa"); // cetak satuan tekanan atmosfer sebagai hecto pascal delay(1000); // tunggu 1 detik sebelum melakukan pembacaan sensor berikutnya }

Suku cadang dan penutup khusus

INI FILE STL UNTUK BAGIAN CETAK 3D YANG SAYA GUNAKAN

Skema

ANDA HANYA PERLU MENGIKUTI KABEL YANG DITAMPILKAN.

Proses manufaktur

  1. Stasiun Cuaca Raspberry Pi 2
  2. Stasiun Cuaca Raspberry Pi
  3. Pemantauan Cuaca Jarak Jauh Menggunakan Raspberry Pi
  4. Stasiun Cuaca V 2.0
  5. Konsol Pengeditan Photoshop DIY menggunakan Arduino Nano RP 2040
  6. Jam Array 7-Segmen
  7. $10 Portable Arduino Weather Station (AWS)
  8. eDOT - Jam Presisi dan Stasiun Cuaca Berbasis Arduino
  9. Radio FM Menggunakan Arduino dan RDA8057M
  10. Stasiun Cuaca ArduinoThingSpeak