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

Sensor Ultrasonik dengan Alarm, LCD, dan Suhu

Komponen dan persediaan

Arduino UNO
× 1
Adafruit LCD Standar - 16x2 Putih di Atas Biru
× 1
Sensor Ultrasonik - HC-SR04 (Generik)
× 1
Maxim Integrated DS18B20 Resolusi Termometer Digital 1-Kabel yang Dapat Diprogram
× 1
Resistor 4.75k ohm
× 1
Sakelar Tombol Tekan SparkFun 12mm
× 1
Potensiometer Putaran Tunggal- 10k ohm
× 1
Buzzer
1 LED dan 1 Buzzer pada output yang sama, jaga mAmp!! Buzzer yang saya gunakan adalah 8mAmp.
× 1
LED
1 LED Hijau, 1 Kuning, dan 1 Merah.
× 3
Resistor 221 ohm
× 3
Breadboard (generik)
× 1
Kabel jumper (generik)
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Proyek ini memberi saya info yang saya butuhkan tentang ketinggian air di tangki air. Saat level rendah, LED hijau menyala. Saat level sedang, LED kuning menyala. Ketika levelnya TINGGI, LED merah berkedip bersamaan dengan suara bel. Jarak dari sensor ke ketinggian air diukur oleh sensor ultrasonik dan dicetak ke LCD bersama dengan suhu di tangki itu. Proyek ini merupakan bagian dari proyek yang lebih besar. Bagian kedua adalah 6 LED mengejar yang dipasang dalam lingkaran untuk menunjukkan pompa sedang memompa. Lihat:https://create.arduino.cc/projecthub/MichDragstar/arduino-uno-or-trinket-pro-5v-6-chasing-leds-with-pot-and-pb-23a1d7 Bagian ke-3 akan memulai pompa ketika level tinggi dan hentikan pompa saat level rendah. (sedang dibangun) Untuk proyek nyata saya menggunakan sensor ultrasonik tahan air, ini tidak akan mengubah kabel atau kode. Saya tidak tahu apa yang terjadi dengan pembacaan ketika sensor basah (kelembaban), jadi proyek ini hanya memberi saya informasi, proyek ke-3 digunakan untuk aktivitas pompa dan akan dilakukan oleh kontak magnetik.

 #include //Load Liquid Crystal Library#include #include #define ONE_WIRE_BUS 6 // Kabel data dicolokkan ke pin 6 pada Arduino OneWire oneWire(ONE_WIRE_BUS); // Siapkan instans oneWire untuk berkomunikasi dengan perangkat OneWire// (bukan hanya IC suhu Maxim/Dallas)Sensor suhu Dallas(&oneWire); // Berikan referensi oneWire kami ke Dallas Temperature.LiquidCrystal LCD(12, 11, 5, 4, 3, 2); //Buat Objek Kristal Cair bernama LCDint trigPin =9; //Sensor Trip pin terhubung ke Arduino pin 9int echoPin =7; //Sensor Echo pin terhubung ke pin Arduino 7int myCounter =0; //deklarasikan variabel myCounter Anda dan setel ke 0float pingTime; //waktu ping melakukan perjalanan dari sensor ke target dan returnfloat targetDistance; //Jarak ke Target dalam Centimetersfloat speedOfSound =776,5; //Kecepatan suara dalam mil per hourvoid setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); LCD.begin(16, 2); //Beri tahu Arduino untuk memulai LCD LCD 16x2 Anda.setCursor(0, 0); //Set kursor LCD ke pojok kiri atas, kolom 0, baris 0 LCD.print("Jarak:"); //Cetak Pesan pada Sensor Baris Pertama.begin(); // Jalankan library pinMode(8, OUTPUT); //pin 8, 10, 13 pin keluaran pinMode(10, OUTPUT); pinMode(13, OUTPUT);}void loop() { digitalWrite(trigPin, RENDAH); // Setel pin pemicu delay rendahMicroseconds(2000); //Biarkan sinyal menyelesaikan digitalWrite(trigPin, HIGH); //Setel trigPin tunda tinggiMikrodetik(15); //Delay dalam keadaan tinggi digitalWrite(trigPin, LOW); //ping sekarang telah dikirim delayMicroseconds(10); //Delay dalam keadaan tinggi pingTime =pulseIn(echoPin, HIGH); //pingTime dalam mikrodetik pingTime =pingTime / 1000000; //mengubah pingTime menjadi detik dengan membagi 1000000 (mikrodetik dalam satu detik) pingTime =pingTime / 3600; //mengubah waktu ping menjadi jam dengan membaginya dengan 3600 (detik dalam satu jam) targetDistance =speedOfSound * pingTime; //Ini akan dalam mil, karena kami menyatakan kecepatan suara sebagai kilometer per jam; meskipun kita akan mengubahnya kembali ke sentimeter targetDistance =targetDistance / 2; //Ingat ping bergerak ke target dan kembali dari target, jadi Anda harus membaginya dengan 2 untuk jarak target yang sebenarnya. targetDistance =targetDistance * 160934.4; //Mengonversi mil ke sentimeter dengan mengalikannya dengan 160934,4 sensor.requestTemperatures(); // Kirim perintah untuk mendapatkan pembacaan suhu LCD.setCursor(10, 0); //Atur kursor ke kolom kesepuluh dari baris pertama LCD.print(" "); //Cetak kosong untuk menghapus baris LCD.setCursor(10, 0); //Setel Kursor lagi ke kolom kesepuluh dari baris pertama LCD.print((int) (targetDistance + 0.5)); //Cetak jarak terukur LCD.print("cm"); //Cetak unit Anda LCD.setCursor(0, 1); //Atur kursor ke kolom pertama dari baris kedua LCD.print(" "); //Cetak kosong untuk menghapus baris LCD.setCursor(0, 1); //Set Cursor lagi ke kolom pertama dari baris kedua if (targetDistance> 40) { LCD.print("LEV LOW "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C"); } else if (jarak target <40 &&jarak target> 20) { LCD.print("LEV MED "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C"); } else (jarak target <20); { LCD.print("LEV TINGGI"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C"); } penundaan(2000); if (Jarak target> 40) { digitalWrite (13, TINGGI); //LED Hijau NYALA } else { digitalWrite(13, LOW); //LED Hijau MATI } if (jarak target <40 &&jarak target> 20) { digitalWrite (8, TINGGI); //LED Kuning NYALA } else { digitalWrite(8, LOW); //LED Kuning MATI } if (jarak target <20) { digitalWrite(10, HIGH); //Red LED ON delay(2000); digitalWrite(10, RENDAH); //LED Merah MATI } else { digitalWrite(10, LOW); //LED Merah MATI }} 

Kode

  • File tanpa judul
File tanpa judulC/C++
#include //Load Liquid Crystal Library#include #include #define ONE_WIRE_BUS 6 // Kabel data dicolokkan ke pin 6 pada Arduino OneWire oneWire(ONE_WIRE_BUS ); // Siapkan instans oneWire untuk berkomunikasi dengan perangkat OneWire// (bukan hanya IC suhu Maxim/Dallas)Sensor suhu Dallas(&oneWire); // Berikan referensi oneWire kami ke Dallas Temperature.LiquidCrystal LCD(12, 11, 5, 4, 3, 2); //Buat Objek Kristal Cair bernama LCDint trigPin =9; //Sensor Trip pin terhubung ke Arduino pin 9int echoPin =7; //Sensor Echo pin terhubung ke pin Arduino 7int myCounter =0; //deklarasikan variabel myCounter Anda dan setel ke 0float pingTime; //waktu ping melakukan perjalanan dari sensor ke target dan returnfloat targetDistance; //Jarak ke Target dalam Centimetersfloat speedOfSound =776,5; //Kecepatan suara dalam mil per hourvoid setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); LCD.begin(16, 2); //Beri tahu Arduino untuk memulai LCD LCD 16x2 Anda.setCursor(0, 0); //Set kursor LCD ke pojok kiri atas, kolom 0, baris 0 LCD.print("Jarak:"); //Cetak Pesan pada Sensor Baris Pertama.begin(); // Jalankan library pinMode(8, OUTPUT); //pin 8, 10, 13 pin keluaran pinMode(10, OUTPUT); pinMode(13, OUTPUT);}void loop() { digitalWrite(trigPin, RENDAH); // Setel pin pemicu delay rendahMicroseconds(2000); //Biarkan sinyal menyelesaikan digitalWrite(trigPin, HIGH); //Setel trigPin tunda tinggiMikrodetik(15); //Delay dalam keadaan tinggi digitalWrite(trigPin, LOW); //ping sekarang telah dikirim delayMicroseconds(10); //Delay dalam keadaan tinggi pingTime =pulseIn(echoPin, HIGH); //pingTime dalam mikrodetik pingTime =pingTime / 1000000; //mengubah pingTime menjadi detik dengan membagi 1000000 (mikrodetik dalam satu detik) pingTime =pingTime / 3600; //mengubah waktu ping menjadi jam dengan membaginya dengan 3600 (detik dalam satu jam) targetDistance =speedOfSound * pingTime; //Ini akan dalam mil, karena kami menyatakan kecepatan suara sebagai kilometer per jam; meskipun kita akan mengubahnya kembali ke sentimeter targetDistance =targetDistance / 2; //Ingat ping bergerak ke target dan kembali dari target, jadi Anda harus membaginya dengan 2 untuk jarak target yang sebenarnya. targetDistance =targetDistance * 160934.4; //Mengonversi mil ke sentimeter dengan mengalikannya dengan 160934,4 sensor.requestTemperatures(); // Kirim perintah untuk mendapatkan pembacaan suhu LCD.setCursor(10, 0); //Atur kursor ke kolom kesepuluh dari baris pertama LCD.print(" "); //Cetak kosong untuk menghapus baris LCD.setCursor(10, 0); //Setel Kursor lagi ke kolom kesepuluh dari baris pertama LCD.print((int) (targetDistance + 0.5)); //Cetak jarak terukur LCD.print("cm"); //Cetak unit Anda LCD.setCursor(0, 1); //Atur kursor ke kolom pertama dari baris kedua LCD.print(" "); //Cetak kosong untuk menghapus baris LCD.setCursor(0, 1); //Set Cursor lagi ke kolom pertama dari baris kedua if (targetDistance> 40) { LCD.print("LEV LOW "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C"); } else if (jarak target <40 &&jarak target> 20) { LCD.print("LEV MED "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C"); } else (jarak target <20); { LCD.print("LEV TINGGI"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C"); } penundaan(2000); if (Jarak target> 40) { digitalWrite (13, TINGGI); //LED Hijau NYALA } else { digitalWrite(13, LOW); //LED Hijau MATI } if (jarak target <40 &&jarak target> 20) { digitalWrite (8, TINGGI); //LED Kuning NYALA } else { digitalWrite(8, LOW); //LED Kuning MATI } if (jarak target <20) { digitalWrite(10, HIGH); //Red LED ON delay(2000); digitalWrite(10, RENDAH); //LED Merah MATI } else { digitalWrite(10, LOW); //LED Merah MATI } }

Skema

lcd_pot_led_buzz_pb_distsens_temp_EHVdF6S1L7.fzz

Proses manufaktur

  1. Kontrol akses dengan QR, RFID, dan verifikasi suhu
  2. Ukur suhu dengan sensor DS18B20 1-kawat dan Raspberry Pi
  3. Sensor Suhu Python dan Raspberry Pi
  4. Sensor Suhu dan Cahaya Raspberry Pi
  5. Aeroponik dengan Raspberry Pi dan sensor kelembapan
  6. Sensor Suhu Raspberry Pi
  7. Portenta dan Sensor Termokopel (dengan MAX6675)
  8. Sensor DHT11 dengan LED dan Speaker Piezo
  9. Jam Alarm Sederhana dengan DS1302 RTC
  10. Sensor Aliran dan Suhu Lab-On-Chip