Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Capteur à ultrasons avec alarme, écran LCD et température

Composants et fournitures

Arduino UNO
× 1
Adafruit Standard LCD - 16x2 Blanc sur Bleu
× 1
Capteur à ultrasons - HC-SR04 (Générique)
× 1
Thermomètre numérique à 1 fil à résolution programmable DS18B20 intégré maximum
× 1
Résistance 4.75k ohm
× 1
Interrupteur à bouton-poussoir SparkFun 12mm
× 1
Potentiomètre à un tour - 10k ohms
× 1
Sonnerie
1 LED et 1 buzzer sur la même sortie, attention au mAmp !! Le buzzer que j'utilise est de 8mAmp.
× 1
LED
1 LED verte, 1 jaune et 1 rouge.
× 3
Résistance 221 ohm
× 3
Planche à pain (générique)
× 1
Câbles de raccordement (générique)
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Ce projet me donne les informations dont j'ai besoin sur le niveau d'eau dans un réservoir d'eau. Lorsque le niveau est bas, la LED verte est allumée. Lorsque le niveau est moyen, la LED jaune est allumée. Lorsque le niveau est ÉLEVÉ, la LED rouge clignote en même temps que l'avertisseur sonore. La distance entre le capteur et le niveau d'eau est mesurée par le capteur à ultrasons et est imprimée sur l'écran LCD avec la température dans ce réservoir. Ce projet fait partie d'un projet plus vaste. La deuxième partie sera constituée de 6 LED de poursuite montées en cercle pour indiquer que la pompe pompe. Voir :https://create.arduino.cc/projecthub/MichDragstar/arduino-uno-or-trinket-pro-5v-6-chasing-leds-with-pot-and-pb-23a1d7 La 3ème partie démarrera la pompe lorsque le niveau est élevé et arrêtez la pompe lorsque le niveau est bas. (en construction) Pour le projet réel, j'utilise un capteur à ultrasons étanche, cela ne changera pas le câblage ou le code. Je ne sais pas ce qui se passe sur les lectures lorsque le capteur est humide (humidité), donc ce projet est uniquement pour me donner des informations, le 3ème projet est utilisé pour les activités de pompe et se fera par contacts magnétiques.

 #include //Load Liquid Crystal Library#include #include #define ONE_WIRE_BUS 6 // Le fil de données est branché sur la broche 6 de l'Arduino OneWire oneWire(ONE_WIRE_BUS); // Configurez une instance oneWire pour communiquer avec tous les périphériques OneWire// (pas seulement les circuits intégrés de température Maxim/Dallas)DallasTemperature sensor(&oneWire); // Transmettez notre référence oneWire à Dallas Temperature.LiquidCrystal LCD(12, 11, 5, 4, 3, 2); //Créer un objet à cristaux liquides appelé LCDint trigPin =9; //Broche de déclenchement du capteur connectée à la broche Arduino 9int echoPin =7 ; //Broche Echo du capteur connectée à la broche Arduino 7int myCounter =0; //déclarez votre variable myCounter et définissez-la sur 0float pingTime; //temps nécessaire au ping pour se déplacer du capteur à la cible et returnfloat targetDistance ; //Distance à la cible en centimètresfloat speedOfSound =776,5 ; //Vitesse du son en miles par hourvoid setup() { Serial.begin(9600); pinMode(trigPin, SORTIE); pinMode(echoPin, INPUT); LCD.commencer (16, 2); // Dites à Arduino de démarrer votre écran LCD 16x2 LCD.setCursor(0, 0); //Définir le curseur LCD dans le coin supérieur gauche, colonne 0, ligne 0 LCD.print("Distance:"); //Imprimer le message sur la première ligne sensor.begin(); // Démarrez la bibliothèque pinMode(8, OUTPUT); // broches 8, 10, 13 broches de sortie pinMode (10, OUTPUT); pinMode(13, OUTPUT);}void loop() { digitalWrite(trigPin, LOW); //Définir le délai faible de la broche de déclenchementMicroseconds (2000); //Laissez le signal s'installer digitalWrite(trigPin, HIGH); //Définir trigPin high delayMicroseconds(15); //Retard à l'état haut digitalWrite(trigPin, LOW); //le ping a maintenant été envoyé delayMicroseconds(10) ; //Retard à l'état haut pingTime =pulseIn(echoPin, HIGH); //pingTime en microceconds pingTime =pingTime / 1000000; //convertir pingTime en secondes en divisant par 1000000 (microsecondes dans une seconde) pingTime =pingTime / 3600; //convertir le temps de ping en heures en divisant par 3600 (secondes dans une heure) targetDistance =speedOfSound * pingTime; //Ce sera en miles, puisque nous avons déclaré la vitesse du son en kilomètres par heure ; bien que nous allons le reconvertir en centimètres targetDistance =targetDistance / 2; //N'oubliez pas que le ping se déplace vers la cible et revient de la cible, vous devez donc diviser par 2 pour la distance cible réelle. cibleDistance =cibleDistance * 160934.4 ; //Convertir les miles en centimètres en multipliant par 160934,4 capteurs.requestTemperatures(); // Envoie la commande pour obtenir les relevés de température LCD.setCursor(10, 0); //Place le curseur sur la dixième colonne de la première ligne LCD.print(" "); //Imprime des blancs pour effacer la ligne LCD.setCursor(10, 0); //Réinitialisez le curseur sur la dixième colonne de la première ligne LCD.print((int) (targetDistance + 0.5)); //Imprimer la distance mesurée LCD.print("cm "); //Imprimez vos unités LCD.setCursor(0, 1); //Place le curseur sur la première colonne de la deuxième ligne LCD.print(" "); //Imprime des blancs pour effacer la ligne LCD.setCursor(0, 1); //Redéfinissez le curseur sur la première colonne de la deuxième ligne if (targetDistance> 40) { LCD.print("LEV LOW "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } else if (targetDistance <40 &&targetDistance> 20) { LCD.print("LEV MED "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } else (distance cible <20); { LCD.print ("LEV HAUT "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } retard (2000); if (targetDistance> 40) { digitalWrite (13, HIGH); //LED verte allumée } else { digitalWrite(13, LOW); //LED verte éteinte } if (targetDistance <40 &&targetDistance> 20) { digitalWrite (8, HIGH); //LED jaune allumée } else { digitalWrite(8, LOW); //LED jaune éteinte } if (targetDistance <20) { digitalWrite(10, HIGH); //Délai d'allumage de la LED rouge (2000 ); digitalWrite(10, LOW); //LED rouge éteinte } else { digitalWrite(10, LOW); //LED rouge éteinte }} 

Code

  • Fichier sans titre
Fichier sans titreC/C++
#include //Load Liquid Crystal Library#include #include #define ONE_WIRE_BUS 6 // Le fil de données est branché sur la broche 6 de l'Arduino OneWire oneWire(ONE_WIRE_BUS ); // Configurez une instance oneWire pour communiquer avec tous les périphériques OneWire// (pas seulement les circuits intégrés de température Maxim/Dallas)DallasTemperature sensor(&oneWire); // Transmettez notre référence oneWire à Dallas Temperature.LiquidCrystal LCD(12, 11, 5, 4, 3, 2); //Créer un objet à cristaux liquides appelé LCDint trigPin =9; //Broche de déclenchement du capteur connectée à la broche Arduino 9int echoPin =7 ; //Broche Echo du capteur connectée à la broche Arduino 7int myCounter =0; //déclarez votre variable myCounter et définissez-la sur 0float pingTime; //temps nécessaire au ping pour se déplacer du capteur à la cible et returnfloat targetDistance ; //Distance à la cible en centimètresfloat speedOfSound =776,5 ; //Vitesse du son en miles par hourvoid setup() { Serial.begin(9600); pinMode(trigPin, SORTIE); pinMode(echoPin, INPUT); LCD.commencer (16, 2); // Dites à Arduino de démarrer votre écran LCD 16x2 LCD.setCursor(0, 0); //Définir le curseur LCD dans le coin supérieur gauche, colonne 0, ligne 0 LCD.print("Distance:"); //Imprimer le message sur la première ligne sensor.begin(); // Démarrez la bibliothèque pinMode(8, OUTPUT); // broches 8, 10, 13 broches de sortie pinMode (10, OUTPUT); pinMode(13, OUTPUT);}void loop() { digitalWrite(trigPin, LOW); //Définir le délai faible de la broche de déclenchementMicroseconds (2000); //Laissez le signal s'installer digitalWrite(trigPin, HIGH); //Définir trigPin high delayMicroseconds(15); //Retard à l'état haut digitalWrite(trigPin, LOW); //le ping a maintenant été envoyé delayMicroseconds(10) ; //Retard à l'état haut pingTime =pulseIn(echoPin, HIGH); //pingTime en microceconds pingTime =pingTime / 1000000; //convertir pingTime en secondes en divisant par 1000000 (microsecondes dans une seconde) pingTime =pingTime / 3600; //convertir le temps de ping en heures en divisant par 3600 (secondes dans une heure) targetDistance =speedOfSound * pingTime; //Ce sera en miles, puisque nous avons déclaré la vitesse du son en kilomètres par heure ; bien que nous allons le reconvertir en centimètres targetDistance =targetDistance / 2; //N'oubliez pas que le ping se déplace vers la cible et revient de la cible, vous devez donc diviser par 2 pour la distance cible réelle. cibleDistance =cibleDistance * 160934.4 ; //Convertir les miles en centimètres en multipliant par 160934,4 capteurs.requestTemperatures(); // Envoie la commande pour obtenir les relevés de température LCD.setCursor(10, 0); //Place le curseur sur la dixième colonne de la première ligne LCD.print(" "); //Imprime des blancs pour effacer la ligne LCD.setCursor(10, 0); //Réinitialisez le curseur sur la dixième colonne de la première ligne LCD.print((int) (targetDistance + 0.5)); //Imprimer la distance mesurée LCD.print("cm "); //Imprimez vos unités LCD.setCursor(0, 1); //Place le curseur sur la première colonne de la deuxième ligne LCD.print(" "); //Imprime des blancs pour effacer la ligne LCD.setCursor(0, 1); //Redéfinissez le curseur sur la première colonne de la deuxième ligne if (targetDistance> 40) { LCD.print("LEV LOW "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } else if (targetDistance <40 &&targetDistance> 20) { LCD.print("LEV MED "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } else (distance cible <20); { LCD.print ("LEV HAUT "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print ("C"); } retard (2000); if (targetDistance> 40) { digitalWrite (13, HIGH); //LED verte allumée } else { digitalWrite(13, LOW); //LED verte éteinte } if (targetDistance <40 &&targetDistance> 20) { digitalWrite (8, HIGH); //LED jaune allumée } else { digitalWrite(8, LOW); //LED jaune éteinte } if (targetDistance <20) { digitalWrite(10, HIGH); //Délai d'allumage de la LED rouge (2000 ); digitalWrite(10, LOW); //LED rouge éteinte } else { digitalWrite(10, LOW); //LED rouge éteinte } }

Schémas

lcd_pot_led_buzz_pb_dissens_temp_EHVdF6S1L7.fzz

Processus de fabrication

  1. Contrôle d'accès avec QR, RFID et vérification de la température
  2. Mesure des températures avec un capteur DS18B20 1 fil et Raspberry Pi
  3. Capteur de température Python et Raspberry Pi
  4. Capteur de température et de luminosité Raspberry Pi
  5. Aéroponie avec Raspberry Pi et capteur d'humidité
  6. Capteur de température Raspberry Pi
  7. Capteur Portenta et thermocouple (avec MAX6675)
  8. Réveil simple avec DS1302 RTC
  9. Capteur de débit et de température de laboratoire sur puce