Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Ultraschallsensor mit Alarm, LCD und Temperatur

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Adafruit Standard LCD - 16x2 Weiß auf Blau
× 1
Ultraschallsensor - HC-SR04 (Generic)
× 1
Maxim Integrated DS18B20 1-Draht-Digitalthermometer mit programmierbarer Auflösung
× 1
Widerstand 4,75 kOhm
× 1
SparkFun Drucktastenschalter 12 mm
× 1
Single Turn Potentiometer - 10k Ohm
× 1
Summer
1 LED und 1 Summer am selben Ausgang, achte auf den mAmp!! Der Summer, den ich verwende, ist 8mAmp.
× 1
LEDs
1 grüne, 1 gelbe und 1 rote LED.
× 3
Widerstand 221 Ohm
× 3
Breadboard (generisch)
× 1
Jumper (generisch)
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Dieses Projekt gibt mir die Informationen, die ich über den Wasserstand in einem Wassertank benötige. Bei niedrigem Füllstand leuchtet die grüne LED. Bei mittlerem Füllstand leuchtet die gelbe LED. Wenn der Pegel HOCH ist, blinkt die rote LED gleichzeitig mit dem Summerton. Der Abstand vom Sensor zum Wasserstand wird vom Ultraschallsensor gemessen und zusammen mit der Temperatur in diesem Tank auf dem LCD ausgegeben. Dieses Projekt ist Teil eines größeren Projekts. Der zweite Teil besteht aus 6 nachlaufenden LEDs, die in einem Kreis montiert sind, um anzuzeigen, dass die Pumpe pumpt. Siehe:https://create.arduino.cc/projecthub/MichDragstar/arduino-uno-or-trinket-pro-5v-6-chasing-leds-with-pot-and-pb-23a1d7 Der 3. Teil startet die Pumpe wenn der Füllstand hoch ist und die Pumpe stoppen, wenn der Füllstand niedrig ist. (im Bau) Für das eigentliche Projekt verwende ich einen wasserdichten Ultraschallsensor, dies ändert die Verkabelung oder den Code nicht. Ich weiß nicht, was mit den Messwerten passiert, wenn der Sensor nass ist (Luftfeuchtigkeit), daher dient dieses Projekt nur der Information, das 3. Projekt wird für die Pumpenaktivitäten verwendet und wird durch Magnetkontakte durchgeführt.

 #include //LiquidCrystal.h> laden#include #include #define ONE_WIRE_BUS 6 // Datenkabel ist an Pin 6 des Arduino OneWire angeschlossen oneWire(ONE_WIRE_BUS); // Richten Sie eine oneWire-Instanz ein, um mit allen OneWire-Geräten zu kommunizieren // (nicht nur Maxim/Dallas-Temperatur-ICs)DallasTemperatursensoren(&oneWire); // Übergeben Sie unsere oneWire-Referenz an Dallas Temperature.LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // Flüssigkristallobjekt mit dem Namen LCDint trigPin =9 erstellen; // Sensor Trip-Pin mit Arduino-Pin verbunden 9int echoPin =7; // Sensor-Echo-Pin mit Arduino-Pin verbunden 7int myCounter =0; //deklarieren Sie Ihre Variable myCounter und setzen Sie sie auf 0float pingTime; // Zeit für Ping, um vom Sensor zum Ziel zu gelangen und float targetDistance zurückzugeben; // Entfernung zum Ziel in Zentimeternfloat speedOfSound =776,5; // Schallgeschwindigkeit in Meilen pro Stundevoid setup () { Serial.begin (9600); pinMode (trigPin, AUSGANG); pinMode (echoPin, EINGANG); LCD.begin (16, 2); // Sagen Sie Arduino, dass es Ihr 16x2 LCD LCD.setCursor (0, 0) starten soll; // Setzen Sie den LCD-Cursor in die obere linke Ecke, Spalte 0, Zeile 0 LCD.print("Distance:"); // Nachricht in der ersten Reihe drucken sensor.begin (); // Starten Sie die Bibliothek pinMode (8, OUTPUT); // Pin 8, 10, 13 Ausgangspins PinMode (10, OUTPUT); pinMode (13, OUTPUT);}void loop () { DigitalWrite (trigPin, LOW); // Trigger-Pin auf niedrige Verzögerung setzenMicroseconds (2000); // Signal setzen lassen digitalWrite (trigPin, HIGH); // TrigPin hohe Verzögerung einstellenMicroseconds (15); // Verzögerung im High-Zustand digitalWrite (trigPin, LOW); // Ping wurde jetzt gesendet delayMicroseconds (10); // Verzögerung im High-Zustand pingTime =pulseIn (echoPin, HIGH); //pingTime in Mikrozeconds pingTime =pingTime / 1000000; // pingTime in Sekunden umwandeln durch Division durch 1000000 (Mikrosekunden in einer Sekunde) pingTime =pingTime / 3600; // Pingtime in Stunden umwandeln durch Division durch 3600 (Sekunden in einer Stunde) targetDistance =speedOfSound * pingTime; //Dies wird in Meilen angegeben, da wir die Schallgeschwindigkeit als Kilometer pro Stunde angegeben haben; obwohl wir es zurück in Zentimeter umwandeln werden targetDistance =targetDistance / 2; // Denken Sie daran, dass Ping zum Ziel und vom Ziel zurück reist, also müssen Sie die tatsächliche Zielentfernung durch 2 teilen. Zielentfernung =Zielentfernung * 160934,4; // Meilen in Zentimeter umrechnen durch Multiplizieren mit 160934,4 sensor.requestTemperatures(); // Senden Sie den Befehl, um Temperaturmesswerte abzurufen LCD.setCursor (10, 0); // Setzen Sie den Cursor auf die zehnte Spalte der ersten Zeile LCD.print ( " "); // Leerzeichen drucken, um die Zeile zu löschen LCD.setCursor (10, 0); // Cursor wieder auf die zehnte Spalte der ersten Zeile setzen LCD.print ((int) (targetDistance + 0.5)); // Gemessenen Abstand drucken LCD.print ( "cm"); // Drucken Sie Ihre Einheiten LCD.setCursor (0, 1); // Setzen Sie den Cursor auf die erste Spalte der zweiten Zeile LCD.print ( " "); // Leerzeichen drucken, um die Zeile zu löschen LCD.setCursor (0, 1); // Cursor wieder auf die erste Spalte der zweiten Zeile setzen if (targetDistance> 40) {LCD.print("LEV LOW"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); aufrechtzuerhalten. Sonst if (targetDistance <40 &&targetDistance>20) {LCD.print("LEV MED"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } else (targetDistance <20); { LCD.print ("LEV HIGH"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } Verzögerung (2000); if (targetDistance> 40) { digitalWrite (13, HIGH); // Grüne LED AN} Else { DigitalWrite (13, LOW); // Grüne LED AUS} if (targetDistance <40 &&targetDistance>20) {digitalWrite (8, HIGH); // Gelbe LED AN} Else { DigitalWrite (8, LOW); // Gelbe LED AUS} if (targetDistance <20) { DigitalWrite (10, HIGH); // Rote LED EIN-Verzögerung (2000); digitalWrite (10, NIEDRIG); // Rote LED AUS} else { DigitalWrite (10, LOW); //Rote LED AUS}} 

Code

  • Unbenannte Datei
Unbenannte DateiC/C++
#include //LiquidCrystal.h laden#include #include #define ONE_WIRE_BUS 6 // Datenkabel wird an Pin 6 des Arduino OneWire oneWire(ONE_WIRE_BUS .) angeschlossen ); // Richten Sie eine oneWire-Instanz ein, um mit allen OneWire-Geräten zu kommunizieren // (nicht nur Maxim/Dallas-Temperatur-ICs)DallasTemperatursensoren(&oneWire); // Übergeben Sie unsere oneWire-Referenz an Dallas Temperature.LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // Flüssigkristallobjekt mit dem Namen LCDint trigPin =9 erstellen; // Sensor Trip-Pin mit Arduino-Pin verbunden 9int echoPin =7; // Sensor-Echo-Pin mit Arduino-Pin verbunden 7int myCounter =0; //deklarieren Sie Ihre Variable myCounter und setzen Sie sie auf 0float pingTime; // Zeit für Ping, um vom Sensor zum Ziel zu gelangen und float targetDistance zurückzugeben; // Entfernung zum Ziel in Zentimeternfloat speedOfSound =776,5; // Schallgeschwindigkeit in Meilen pro Stundevoid setup () { Serial.begin (9600); pinMode (trigPin, AUSGANG); pinMode (echoPin, EINGANG); LCD.begin (16, 2); // Sagen Sie Arduino, dass es Ihr 16x2 LCD LCD.setCursor (0, 0) starten soll; // Setzen Sie den LCD-Cursor in die obere linke Ecke, Spalte 0, Zeile 0 LCD.print("Distance:"); // Nachricht in der ersten Reihe drucken sensor.begin (); // Starten Sie die Bibliothek pinMode (8, OUTPUT); // Pin 8, 10, 13 Ausgangspins PinMode (10, OUTPUT); pinMode (13, OUTPUT);}void loop () { DigitalWrite (trigPin, LOW); // Trigger-Pin auf niedrige Verzögerung setzenMicroseconds (2000); // Signal setzen lassen digitalWrite (trigPin, HIGH); // TrigPin hohe Verzögerung einstellenMicroseconds (15); // Verzögerung im High-Zustand digitalWrite (trigPin, LOW); // Ping wurde jetzt gesendet delayMicroseconds (10); // Verzögerung im High-Zustand pingTime =pulseIn (echoPin, HIGH); //pingTime in Mikrozeconds pingTime =pingTime / 1000000; // pingTime in Sekunden umwandeln durch Division durch 1000000 (Mikrosekunden in einer Sekunde) pingTime =pingTime / 3600; // Pingtime in Stunden umwandeln durch Division durch 3600 (Sekunden in einer Stunde) targetDistance =speedOfSound * pingTime; //Dies wird in Meilen angegeben, da wir die Schallgeschwindigkeit als Kilometer pro Stunde angegeben haben; obwohl wir es zurück in Zentimeter umwandeln werden targetDistance =targetDistance / 2; // Denken Sie daran, dass Ping zum Ziel und vom Ziel zurück reist, also müssen Sie die tatsächliche Zielentfernung durch 2 teilen. Zielentfernung =Zielentfernung * 160934,4; // Meilen in Zentimeter umrechnen durch Multiplizieren mit 160934,4 sensor.requestTemperatures(); // Senden Sie den Befehl, um Temperaturmesswerte abzurufen LCD.setCursor (10, 0); // Setzen Sie den Cursor auf die zehnte Spalte der ersten Zeile LCD.print ( " "); // Leerzeichen drucken, um die Zeile zu löschen LCD.setCursor (10, 0); // Cursor wieder auf die zehnte Spalte der ersten Zeile setzen LCD.print ((int) (targetDistance + 0.5)); // Gemessenen Abstand drucken LCD.print ( "cm"); // Drucken Sie Ihre Einheiten LCD.setCursor (0, 1); // Setzen Sie den Cursor auf die erste Spalte der zweiten Zeile LCD.print ( " "); // Leerzeichen drucken, um die Zeile zu löschen LCD.setCursor (0, 1); // Cursor wieder auf die erste Spalte der zweiten Zeile setzen if (targetDistance> 40) {LCD.print("LEV LOW"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); aufrechtzuerhalten. Sonst if (targetDistance <40 &&targetDistance>20) {LCD.print("LEV MED"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } else (targetDistance <20); { LCD.print ("LEV HIGH"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } Verzögerung (2000); if (targetDistance> 40) { digitalWrite (13, HIGH); // Grüne LED AN} Else { DigitalWrite (13, LOW); // Grüne LED AUS} if (targetDistance <40 &&targetDistance>20) {digitalWrite (8, HIGH); // Gelbe LED AN} Else { DigitalWrite (8, LOW); // Gelbe LED AUS} if (targetDistance <20) { DigitalWrite (10, HIGH); // Rote LED EIN-Verzögerung (2000); digitalWrite (10, NIEDRIG); // Rote LED AUS} else { DigitalWrite (10, LOW); //Rote LED AUS}}}

Schaltpläne

lcd_pot_led_buzz_pb_distsens_temp_EHVdF6S1L7.fzz

Herstellungsprozess

  1. Zutrittskontrolle mit QR, RFID und Temperaturüberprüfung
  2. Messen Sie Temperaturen mit einem 1-Draht-DS18B20-Sensor und Raspberry Pi
  3. Python- und Raspberry Pi-Temperatursensor
  4. Raspberry Pi Temperatur- und Lichtsensor
  5. Aeroponik mit Raspberry Pi und Feuchtigkeitssensor
  6. Raspberry Pi-Temperatursensor
  7. Portenta- und Thermoelement-Sensor (mit MAX6675)
  8. DHT11-Sensor mit LEDs und einem Piezo-Lautsprecher
  9. Einfacher Wecker mit DS1302 RTC
  10. Lab-On-Chip-Durchfluss- und Temperatursensor