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

Pengukuran dan Pencatatan Tekanan Arduino

Komponen dan persediaan

Arduino UNO
× 1
Delkin Commercial MLC SD
× 1
sensor tekanan SKU237545
× 1
data logger rtc
× 1
i2c lcd
× 1
Kotak Proyek Elektronik Plastik Penutup Bening Tahan Air 158 x 90 x 60mm
× 1
HALJIA 300Pcs M3 Nylon Black Hex Screw
× 1
ELEGOO 120pcs Kawat Dupont Warna-warni
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Proyek ini adalah hasil dari keinginan untuk merekam tekanan udara yang terpasang di reservoir untuk memeriksa efisiensi kompresor mekanis.

Bantuan dari George Kontaxis

https://www.youtube.com/watch?v=AB7zgnfkEi4&feature=youtu.be

Tampilan yang menunjukkan tanggal dan tekanan di bar &PSI

pengukur tekanan Arduino. membaca 3 tekanan

Kode

  • SKU237545 Pressure Sensor dengan lcd realtime clock dan data logging
  • menyetel jam waktu nyata
SKU237545 Pressure Sensor dengan lcd realtime clock dan data loggingC/C++
//dibuat 12 Agustus 2018 Philip Blayney &Jack Davidson menggunakan kode dari George //Kontaxis untuk Sensor Tekanan SKU237545//https://www.youtube.com/watch?v=AB7zgnfkEi4&feature=youtu.be #include " LiquidCrystal_PCF8574.h"#termasuk "RTClib.h" // jam waktu nyata#termasuk  // kartu sd #menentukan LCD_ADDRESS 0x27 // Menentukan karakteristik LCD#menentukan LCD_ROWS 2#menentukan LCD_COLUMNS 16#menentukan SCROLL_DELAY 150#menentukan BACKLIGHT 255 // inisialisasi objekLiquidCrystal_PCF8574 lcdI2C;RTC_DS1307 RTC; // tentukan objek Jam Waktu Nyataint n =1; int nilai; // Pencatat data sederhana untuk pin analog Arduino #define LOG_INTERVAL 1000 // giling antar entri (kurangi untuk mengambil lebih banyak/data lebih cepat) // berapa milidetik sebelum menulis data yang dicatat secara permanen ke disk // setel ke LOG_INTERVAL ke menulis setiap kali (paling aman) // set ke 10*LOG_INTERVAL untuk menulis semua data setiap 10 pembacaan data, Anda bisa kehilangan hingga // 10 pembacaan terakhir jika daya hilang tetapi menggunakan lebih sedikit daya dan jauh lebih cepat!#define SYNC_INTERVAL 10000 // menggiling antara panggilan ke flush() - untuk menulis data ke kartu 600000 =10 menituint32_t syncTime =0; // waktu sinkronisasi terakhir()const int chipPilih =10; // untuk pelindung data logging, kami menggunakan pin digital 10 untuk file log file baris SD cs;void error(char *str){ Serial.print(F("error:")); Serial.println(str);} void setup(void){ Serial.begin(9600); // mulai serial port Serial.println(F("tekanan membaca dari SKU237545 SENSOR")); //F =fungsi makro untuk menyimpan memori dinamis lcdI2C.begin(LCD_COLUMNS, LCD_ROWS, LCD_ADDRESS, BACKLIGHT); lcdI2C.print(F("SKU237545 SENSOR" )); lcdI2C.setCursor(0,1); lcdI2C.print(F(" bar dan psi " )); penundaan (2000); // inisialisasi kartu SD Serial.print(F("Inisialisasi kartu SD...")); // pastikan pin pemilihan chip default diatur ke // output, bahkan jika Anda tidak menggunakannya:pinMode(10, OUTPUT); if (!SD.begin(chipSelect)) { // melihat apakah kartu ada dan dapat diinisialisasi:error("Kartu gagal, atau tidak ada"); } Serial.println(F("kartu diinisialisasi.")); char namafile[] ="LOGGER00.CSV"; // buat file baru untuk (uint8_t i =0; i <100; i++) { namafile[6] =i/10 + '0'; nama file[7] =i%10 + '0'; if (! SD.exists(filename)) { // hanya membuka file baru jika tidak ada logfile =SD.open(filename, FILE_WRITE); merusak; // tinggalkan lingkaran! } } if (! logfile) { error("tidak dapat membuat file"); } lcdI2C.clear(); lcdI2C.setCursor(0,0); lcdI2C.print(F("No File " )); lcdI2C.print(nama file); Serial.print(F("Masuk ke:")); Serial.println(nama file); // sambungkan ke RTC jika (!RTC.begin()) { logfile.println("RTC gagal"); #jika ECHO_TO_SERIAL Serial.println(F("RTC gagal")); #endif //ECHO_TO_SERIAL } logfile.println("Tanggal / Waktu ,tekanan ,bar ,membaca ,psi,membaca "); penundaan(5000); lcdI2C.clear(); // Bersihkan layar LCD.} void loop(void){int sensorVal=analogRead(A1);//Serial.print("Sensor Value:");//Serial.print(sensorVal);float voltage =(sensorVal*5.0 )/1024.0;// Serial.print("Volt:");// Serial.print(tegangan); float pressure_pascal =(3.0*((float)voltage-0.475))*1000000.0; //kalibrasi di sini float pressure_bar =pressure_pascal/10e5; float pressure_psi =tekanan_bar*14.5038; Serial.print("Tekanan ="); Serial.print(tekanan_bar); Serial.print("bar"); Serial.print("psi"); Serial.print (tekanan_psi); Serial.println(); TanggalWaktu sekarang; sekarang =RTC.sekarang(); // ambil waktu tunda((LOG_INTERVAL -1) - (milis() % LOG_INTERVAL)); // penundaan untuk jumlah waktu yang kita inginkan antara pembacaan kartu sd int H =now.hour(); // Dapatkan jam sekarang dan simpan dalam bilangan bulat yang disebut h int M =now.minute(); // Dapatkan menit sekarang dan simpan dalam bilangan bulat bernama m int S =now.second(); // Dapatkan detik sekarang dan simpan dalam bilangan bulat bernama s logfile.print(now.year(), DEC); logfile.print("/"); logfile.print(sekarang.bulan(), DES); logfile.print("/"); logfile.print(sekarang.hari(), DES); logfile.print(" "); if (H<10){ // Tambahkan nol, jika perlu, seperti di atas logfile.print(0); } file log.print(sekarang.jam(), DES); logfile.print(":"); if (M<10){ // Tambahkan nol, jika perlu, seperti di atas logfile.print(0); } file log.print(sekarang.menit(), DEC); logfile.print(":"); if (S<10){ // Tambahkan nol, jika perlu, seperti di atas logfile.print(0); } file log.print(sekarang.detik(), DEC); // logfile.print('"'); Serial.println(); Serial.print(sekarang.tahun(), DEC); Serial.print("/"); Serial.print(sekarang.bulan(), DEC ); Serial.print("/"); Serial.print(now.day(), DEC); Serial.print(" "); if (H<10){ // Tambahkan nol, jika perlu, seperti di atas Serial.print(0); } Serial.print(now.hour(), DEC); Serial.print(":"); if (M<10){ // Tambahkan nol, jika perlu, seperti di atas Serial. print(0); } Serial.print(now.minute(), DEC); Serial.print(F(":")); if (S<10){ // Tambahkan nol, jika perlu, seperti di atas Serial .print(0); } Serial.print(now.second(), DEC); Serial.println(); lcdI2C.setCursor(0,0); lcdI2C.print(pressure_bar); // Cetak String ke LCD terlebih dahulu baris lcdI2C.print ("bar "); lcdI2C.print (tekanan_psi); lcdI2C.print ("psi "); lcdI2C.setCursor(0,1); //lcdI2C.print(sekarang.tahun(), DEC); // lcd tidak memiliki spasi karakter yang cukup untuk menampilkan tahun // lcdI2C.print("/"); lcdI2C.print(now.day(), DEC); lcdI2C.print("/"); lcdI2C.print(sekarang .month(), DEC); lcdI2C.print(" "); if (H<10){ // Tambahkan nol, jika perlu, seperti di atas lcdI2C.print(0); } lcdI2C.print(sekarang.jam(), DES); lcdI2C.print(":"); if (M<10){ // Tambahkan nol, jika perlu, seperti di atas lcdI2C.print(0); } lcdI2C.print(sekarang.menit(), DEC); lcdI2C.print(":"); if (S<10){ // Tambahkan nol, jika perlu, seperti di atas lcdI2C.print(0); } lcdI2C.print(sekarang.detik(), DES); logfile.print(", "); logfile.print("Tekanan ="); logfile.print(","); logfile.print(tekanan_bar); logfile.print(","); logfile.print("bar"); logfile.print(","); logfile.print(tekanan_psi); logfile.print(","); logfile.print("psi"); logfile.println();if ((millis() - syncTime)  
mengatur jam waktu nyataC/C++
//Kode oleh tronixstuff#include "Wire.h"#define DS3231_I2C_ADDRESS 0x68// Konversikan bilangan desimal normal ke desimal berkode biner decToBcd(byte val){ return( (val/10*16) + (val%10) );}// Konversikan desimal berkode biner ke angka desimal normalbyte bcdToDec(byte val){ return( (val/16*10) + (val%16) );}void setup(){ Wire.begin(); Serial.begin(9600); // atur waktu awal di sini:// DS3231 detik, menit, jam, hari, tanggal, bulan, tahun setDS3231time(00,43,14,3,14,8,18); // setel waktu yang diperlukan di sini}batalkan setDS3231time(byte detik, byte menit, byte jam, byte hariPekan, bytedayOfMonth, byte bulan, byte tahun){ // setel data waktu dan tanggal ke DS3231 Wire.beginTransmission(DS3231_I2C_ADDRESS); Kawat.tulis(0); // set input berikutnya untuk memulai pada detik register Wire.write(decToBcd(second)); // setel detik Wire.write(decToBcd(menit)); // setel menit Wire.write(decToBcd(jam)); // setel jam Wire.write(decToBcd(dayOfWeek)); // set hari dalam seminggu (1=Minggu, 7=Sabtu) Wire.write(decToBcd(dayOfMonth)); // atur tanggal (1 hingga 31) Wire.write(decToBcd(bulan)); // setel bulan Wire.write(decToBcd(tahun)); // setel tahun (0 hingga 99) Wire.endTransmission();}membatalkan readDS3231time(byte *second,byte *minute,byte *hour,byte *dayOfWeek,byte *dayOfMonth,byte *month,byte *year){ Wire. mulaiTransmisi(DS3231_I2C_ADDRESS); Kawat.tulis(0); // setel penunjuk register DS3231 ke 00h Wire.endTransmission(); Wire.requestFrom(DS3231_I2C_ADDRESS, 7); // meminta tujuh byte data dari DS3231 mulai dari register 00h *second =bcdToDec(Wire.read() &0x7f); *menit =bcdToDec(Wire.read()); *jam =bcdToDec(Wire.read() &0x3f); *dayOfWeek =bcdToDec(Wire.read()); *dayOfMonth =bcdToDec(Wire.read()); *bulan =bcdToDec(Wire.read()); *tahun =bcdToDec(Wire.read());}void displayTime(){ byte detik, menit, jam, dayOfWeek, dayOfMonth, bulan, tahun; // mengambil data dari DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); // kirim ke serial monitor Serial.print(jam, DEC); // mengubah variabel byte menjadi angka desimal saat ditampilkan Serial.print(":"); if (menit<10) { Serial.print("0"); } Serial.print(menit, DES); Serial.print(":"); if (kedua<10) { Serial.print("0"); } Serial.print(kedua, DES); Serial.print(""); Serial.print(hariBulan, DES); Serial.print("/"); Serial.print(bulan, DES); Serial.print("/"); Serial.print(tahun, DES); Serial.print("Hari dalam seminggu:"); switch(dayOfWeek){ kasus 1:Serial.println("Minggu"); merusak; kasus 2:Serial.println("Senin"); merusak; kasus 3:Serial.println("Selasa"); merusak; kasus 4:Serial.println("Rabu"); merusak; kasus 5:Serial.println("Kamis"); merusak; kasus 6:Serial.println("Jumat"); merusak; kasus 7:Serial.println("Sabtu"); merusak; }}void loop(){ displayTime(); // menampilkan data jam real-time pada Serial Monitor, delay(1000); // setiap detik}
LiquidCrystal_PCF8574.h
perpustakaan yang diperlukan, di bawah sketsa, sertakan perpustakaan dan tambahkan .zip, lalu pilih tempat zip diunduhhttps://github.com/mathertel/LiquidCrystal_PCF8574
RTClib.h
perpustakaan, jam waktu nyata, buka zip zip terlebih dahulu. lalu tambahkan file zip yang tersisa ke perpustakaan Andahttps://github.com/mechasolution/RTClib.h

Skema

A5 ke SCL
A4 ke SDA
5 volt ke VCC
GND ke GND kabel kuning ke A1
kabel hitam ke GND
kabel merah ke 5 volt hubungkan ke pc dan konfirmasikan kinerja yang benar

Proses manufaktur

  1. Arduino Digital Dice
  2. Pengontrol Game Arduino
  3. Animasi dan Permainan LCD
  4. Smart Shoes (Tali Otomatis dan Pembangkit Listrik)
  5. Suhu, Kelembaban, dan Tekanan BME280 pada Tampilan Berikutnya
  6. Sonar menggunakan arduino dan ditampilkan pada pemrosesan IDE
  7. Game Pixel Chaser
  8. Roda Pengukur Sederhana DIY dengan Rotary Encoder
  9. Mengontrol Kecerahan LED Menggunakan Bolt dan Arduino
  10. Komponen Keselamatan Pneumatik dan Tempat Menerapkannya