Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Ultrasone sensor met alarm, LCD en temperatuur

Componenten en benodigdheden

Arduino UNO
× 1
Adafruit Standaard LCD - 16x2 Wit op Blauw
× 1
Ultrasone sensor - HC-SR04 (algemeen)
× 1
Maxim Integrated DS18B20 Programmeerbare resolutie 1-draads digitale thermometer
× 1
Weerstand 4.75k ohm
× 1
SparkFun Drukknopschakelaar 12 mm
× 1
Single Turn Potentiometer - 10k ohm
× 1
Zoemer
1 LED en 1 zoemer op dezelfde uitgang, zorg voor mAmp!! De zoemer die ik gebruik is 8mAmp.
× 1
LED's
1 groene, 1 gele en 1 rode LED.
× 3
Weerstand 221 ohm
× 3
Broodplank (algemeen)
× 1
Jumperdraden (algemeen)
× 1

Apps en online services

Arduino IDE

Over dit project

Dit project geeft me de informatie die ik nodig heb over het waterpeil in een watertank. Als het niveau laag is, brandt de groene LED. Als het niveau gemiddeld is, brandt de gele LED. Wanneer het niveau HOOG is, knippert de rode LED tegelijk met het zoemergeluid. De afstand van sensor tot waterniveau wordt gemeten door de ultrasone sensor en wordt samen met de temperatuur in die tank op het LCD-scherm afgedrukt. Dit project maakt deel uit van een groter project. Het tweede deel bestaat uit 6 achtervolgende LED's die in een cirkel zijn gemonteerd om aan te geven dat de pomp pompt. Zie:https://create.arduino.cc/projecthub/MichDragstar/arduino-uno-or-trinket-pro-5v-6-chasing-leds-with-pot-and-pb-23a1d7 Het 3e deel zal de pomp starten wanneer het niveau hoog is en stop de pomp wanneer het niveau laag is. (in aanbouw) Voor het echte project gebruik ik een waterdichte ultrasone sensor, dit zal de bedrading of code niet veranderen. Ik weet niet wat er gebeurt met de metingen als de sensor nat is (vochtigheid), dus dit project is alleen bedoeld om mij informatie te geven, het 3e project wordt gebruikt voor de pompactiviteiten en zal worden gedaan door magnetische contacten.

 #include //Load Liquid Crystal Library#include #include #define ONE_WIRE_BUS 6 // Datadraad is aangesloten op pin 6 op de Arduino OneWire eendraads(ONE_WIRE_BUS); // Stel een oneWire-instantie in om te communiceren met OneWire-apparaten// (niet alleen Maxim/Dallas-temperatuur-IC's)DallasTemperature-sensoren (&oneWire); // Geef onze oneWire-referentie door aan Dallas Temperature.LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // Maak een vloeibaar kristalobject met de naam LCDint trigPin =9; // Sensor Trip-pin aangesloten op Arduino-pin 9int echoPin =7; // Sensor Echo-pin aangesloten op Arduino-pin 7int myCounter =0; // declareer uw variabele myCounter en stel deze in op 0float pingTime; // tijd voor ping om van de sensor naar het doel te reizen en terug te keren naar de doelafstand; // Afstand tot doel in Centimetersfloat speedOfSound =776.5; //Snelheid van het geluid in mijlen per uurvoid setup() {Serial.begin(9600); pinMode (trigPin, UITGANG); pinMode (echoPin, INPUT); LCD.begin (16, 2); // Vertel Arduino om uw 16x2 LCD LCD.setCursor (0, 0) te starten; // Zet de LCD-cursor in de linkerbovenhoek, kolom 0, rij 0 LCD.print ("Afstand:"); //Bericht afdrukken op sensoren op eerste rij.begin(); // Start de bibliotheek pinMode (8, OUTPUT); //pin 8, 10, 13 uitgangspinnen pinMode (10, OUTPUT); pinMode(13, OUTPUT);}void loop() {digitalWrite(trigPin, LOW); //Stel trigger pin lage vertraging Microseconden (2000); //Laat het signaal digitalWrite (trigPin, HIGH) regelen; // Stel trigPin hoge vertraging in Microseconden (15); // Vertraging in hoge staat digitalWrite (trigPin, LOW); //ping is nu verzonden delayMicroseconds (10); // Vertraging in hoge staat pingTime =pulseIn (echoPin, HIGH); //pingTime in microseconden pingTime =pingTime / 1000000; //converteer pingTime naar seconden door te delen door 1000000 (microseconden in een seconde) pingTime =pingTime / 3600; //converteer pingtime naar uren door te delen door 3600 (seconden in een uur) targetDistance =speedOfSound * pingTime; //Dit zal in mijlen zijn, aangezien we de geluidssnelheid hebben aangegeven in kilometers per uur; hoewel we het terug naar centimeters gaan converteren targetDistance =targetDistance / 2; // Onthoud dat ping naar het doel gaat en terug van het doel, dus je moet delen door 2 voor de werkelijke doelafstand. targetDistance =targetDistance * 160934,4; // Zet mijlen om in centimeters door te vermenigvuldigen met 160934,4 sensors.requestTemperatures(); // Stuur de opdracht om temperatuurmetingen te krijgen LCD.setCursor (10, 0); // Zet de cursor op de tiende kolom van de eerste rij LCD.print(" "); // Druk blanco's af om de rij LCD.setCursor (10, 0) te wissen; // Zet Cursor opnieuw op de tiende kolom van de eerste rij LCD.print((int) (targetDistance + 0.5)); // Print gemeten afstand LCD.print ("cm "); // Print uw eenheden LCD.setCursor (0, 1); // Zet de cursor op de eerste kolom van de tweede rij LCD.print(" "); // Druk blanco's af om de rij LCD.setCursor (0, 1) te wissen; //Stel de cursor opnieuw in op de eerste kolom van de tweede rij if (targetDistance> 40) { LCD.print ("LEV LOW "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.afdruk ("C"); } else if (targetDistance <40 &&targetDistance> 20) { LCD.print("LEV MED"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.afdruk ("C"); } else (targetDistance <20); { LCD.afdruk ("LEV HIGH"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.afdruk ("C"); } vertraging (2000); if (targetDistance> 40) { digitalWrite (13, HOOG); //Groene LED AAN} else {digitalWrite(13, LOW); // Groene LED UIT} if (targetDistance <40 &&targetDistance> 20) {digitalWrite (8, HIGH); //Gele LED AAN} else {digitalWrite (8, LOW); //Gele LED UIT} if (targetDistance <20) {digitalWrite (10, HIGH); // Rode LED AAN vertraging (2000); digitalWrite (10, LAAG); // Rode LED UIT} else {digitalWrite (10, LOW); // Rode LED UIT }} 

Code

  • Naamloos bestand
Naamloos bestandC/C++
#include //Load Liquid Crystal Library#include #include #define ONE_WIRE_BUS 6 // Datadraad is aangesloten op pin 6 op de Arduino OneWire oneWire(ONE_WIRE_BUS ); // Stel een oneWire-instantie in om te communiceren met OneWire-apparaten// (niet alleen Maxim/Dallas-temperatuur-IC's)DallasTemperature-sensoren (&oneWire); // Geef onze oneWire-referentie door aan Dallas Temperature.LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // Maak een vloeibaar kristalobject met de naam LCDint trigPin =9; // Sensor Trip-pin aangesloten op Arduino-pin 9int echoPin =7; // Sensor Echo-pin aangesloten op Arduino-pin 7int myCounter =0; // declareer uw variabele myCounter en stel deze in op 0float pingTime; // tijd voor ping om van de sensor naar het doel te reizen en terug te keren naar de doelafstand; // Afstand tot doel in Centimetersfloat speedOfSound =776.5; //Snelheid van het geluid in mijlen per uurvoid setup() {Serial.begin(9600); pinMode (trigPin, UITGANG); pinMode (echoPin, INPUT); LCD.begin (16, 2); // Vertel Arduino om uw 16x2 LCD LCD.setCursor (0, 0) te starten; // Zet de LCD-cursor in de linkerbovenhoek, kolom 0, rij 0 LCD.print ("Afstand:"); //Bericht afdrukken op sensoren op eerste rij.begin(); // Start de bibliotheek pinMode (8, OUTPUT); //pin 8, 10, 13 uitgangspinnen pinMode (10, OUTPUT); pinMode(13, OUTPUT);}void loop() {digitalWrite(trigPin, LOW); //Stel trigger pin lage vertraging Microseconden (2000); //Laat het signaal digitalWrite (trigPin, HIGH) regelen; // Stel trigPin hoge vertraging in Microseconden (15); // Vertraging in hoge staat digitalWrite (trigPin, LOW); //ping is nu verzonden delayMicroseconds (10); // Vertraging in hoge staat pingTime =pulseIn (echoPin, HIGH); //pingTime in microseconden pingTime =pingTime / 1000000; //converteer pingTime naar seconden door te delen door 1000000 (microseconden in een seconde) pingTime =pingTime / 3600; //converteer pingtime naar uren door te delen door 3600 (seconden in een uur) targetDistance =speedOfSound * pingTime; //Dit zal in mijlen zijn, aangezien we de geluidssnelheid hebben aangegeven in kilometers per uur; hoewel we het terug naar centimeters gaan converteren targetDistance =targetDistance / 2; // Onthoud dat ping naar het doel gaat en terug van het doel, dus je moet delen door 2 voor de werkelijke doelafstand. targetDistance =targetDistance * 160934,4; // Zet mijlen om in centimeters door te vermenigvuldigen met 160934,4 sensors.requestTemperatures(); // Stuur de opdracht om temperatuurmetingen te krijgen LCD.setCursor (10, 0); // Zet de cursor op de tiende kolom van de eerste rij LCD.print(" "); // Druk blanco's af om de rij LCD.setCursor (10, 0) te wissen; // Zet Cursor opnieuw op de tiende kolom van de eerste rij LCD.print((int) (targetDistance + 0.5)); // Print gemeten afstand LCD.print ("cm "); // Print uw eenheden LCD.setCursor (0, 1); // Zet de cursor op de eerste kolom van de tweede rij LCD.print(" "); // Druk blanco's af om de rij LCD.setCursor (0, 1) te wissen; //Stel de cursor opnieuw in op de eerste kolom van de tweede rij if (targetDistance> 40) { LCD.print ("LEV LOW "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.afdruk ("C"); } else if (targetDistance <40 &&targetDistance> 20) { LCD.print("LEV MED"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.afdruk ("C"); } else (targetDistance <20); { LCD.afdruk ("LEV HIGH"); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.afdruk ("C"); } vertraging (2000); if (targetDistance> 40) { digitalWrite (13, HOOG); //Groene LED AAN} else {digitalWrite(13, LOW); // Groene LED UIT} if (targetDistance <40 &&targetDistance> 20) {digitalWrite (8, HIGH); //Gele LED AAN} else {digitalWrite (8, LOW); //Gele LED UIT} if (targetDistance <20) {digitalWrite (10, HIGH); // Rode LED AAN vertraging (2000); digitalWrite (10, LAAG); // Rode LED UIT} else {digitalWrite (10, LOW); // Rode LED UIT } }

Schema's

lcd_pot_led_buzz_pb_distsens_temp_EHVdF6S1L7.fzz

Productieproces

  1. Toegangscontrole met QR, RFID en temperatuurverificatie
  2. Meet temperaturen met een 1-draads DS18B20-sensor en Raspberry Pi
  3. Python- en Raspberry Pi-temperatuursensor
  4. Raspberry Pi temperatuur- en lichtsensor
  5. Aerocultuur met Raspberry Pi en vochtigheidssensor
  6. Raspberry Pi-temperatuursensor
  7. Portenta- en thermokoppelsensor (met MAX6675)
  8. DHT11-sensor met LED's en een piëzo-luidspreker
  9. Multitemperatuursensor
  10. Eenvoudige wekker met DS1302 RTC
  11. Lab-on-chip stroom- en temperatuursensor