Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sensor ultrassônico com alarme, LCD e temperatura

Componentes e suprimentos

Arduino UNO
× 1
Adafruit LCD padrão - 16x2 branco em azul
× 1
Sensor ultrassônico - HC-SR04 (genérico)
× 1
Maxim Integrated DS18B20 Termômetro digital de 1 fio de resolução programável com resolução programável
× 1
Resistor 4,75 k ohm
× 1
SparkFun Botão de pressão 12 mm
× 1
Potenciômetro de volta única - 10k ohms
× 1
Buzzer
1 LED e 1 Buzzer na mesma saída, tome cuidado com mAmp !! A campainha que uso é de 8mAmp.
× 1
LEDs
1 LED verde, 1 amarelo e 1 vermelho.
× 3
Resistor 221 ohm
× 3
Breadboard (genérico)
× 1
Fios de jumpers (genérico)
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto






Este projeto me dá as informações de que preciso sobre o nível de água em um reservatório de água. Quando o nível está baixo, o LED verde está LIGADO. Quando o nível é médio, o LED amarelo acende. Quando o nível está ALTO, o LED vermelho pisca ao mesmo tempo com o som da campainha. A distância do sensor ao nível da água é medida pelo sensor ultrassônico e é impressa no LCD junto com a temperatura naquele tanque. Este projeto é parte de um projeto maior. A segunda parte será 6 LEDS perseguidos montados em um círculo para indicar que a bomba está bombeando. Veja:https://create.arduino.cc/projecthub/MichDragstar/arduino-uno-or-trinket-pro-5v-6-chasing-leds-with-pot-and-pb-23a1d7 A 3ª parte dará partida na bomba quando o nível estiver alto e pare a bomba quando o nível estiver baixo. (em construção) Para o projeto real eu uso um sensor ultrassônico à prova d'água, isso não mudará a fiação ou o código. Não sei o que acontece com as leituras quando o sensor está úmido (umidade), então esse projeto é apenas para me dar informações, o 3º projeto é usado para as atividades de bomba e será feito por contatos magnéticos.
  #include  // Carregar Biblioteca de Cristal Líquido # include  #include  #define ONE_WIRE_BUS 6 // O fio de dados está conectado ao pino 6 no Arduino OneWire oneWire (ONE_WIRE_BUS); // Configurar uma instância oneWire para se comunicar com qualquer dispositivo OneWire // (não apenas ICs de temperatura Maxim / Dallas) Sensores de temperatura Dallas (&oneWire); // Passe nossa referência oneWire para Dallas Temperature.LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // Cria um Objeto de Cristal Líquido chamado LCDint trigPin =9; // Pino de disparo do sensor conectado ao pino 9int do Arduino echoPin =7; // Pino de eco do sensor conectado ao pino 7int do Arduino myCounter =0; // declare sua variável myCounter e defina como 0float pingTime; // tempo para o ping viajar do sensor para o alvo e returnfloat targetDistance; // Distância até o alvo em centímetrosfloat speedOfSound =776.5; // Velocidade do som em milhas por horavoid setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); LCD.begin (16, 2); // Diga ao Arduino para iniciar seu LCD 16x2 LCD.setCursor (0, 0); // Define o cursor do LCD para o canto superior esquerdo, coluna 0, linha 0 LCD.print ("Distância:"); // Imprimir mensagem na primeira linha sensores.begin (); // Inicie a biblioteca pinMode (8, OUTPUT); // pino 8, 10, 13 pinos de saída pinMode (10, OUTPUT); pinMode (13, OUTPUT);} void loop () {digitalWrite (trigPin, LOW); // Configura o pino de acionamento para baixo delayMicroseconds (2000); // Deixa o sinal estabilizar digitalWrite (trigPin, HIGH); // Define trigPin high delayMicroseconds (15); // Atraso em estado alto digitalWrite (trigPin, LOW); // o ping foi enviado delayMicroseconds (10); // Atraso em estado alto pingTime =pulseIn (echoPin, HIGH); // pingTime em microceconds pingTime =pingTime / 1000000; // converte pingTime em segundos dividindo por 1000000 (microssegundos em um segundo) pingTime =pingTime / 3600; // converter o tempo de ping em horas dividindo por 3600 (segundos em uma hora) targetDistance =speedOfSound * pingTime; // Será em milhas, já que declaramos a velocidade do som em quilômetros por hora; embora vamos convertê-lo de volta para centímetros targetDistance =targetDistance / 2; // Lembre-se de que o ping viaja até o alvo e volta do alvo, então você deve dividir por 2 para a distância real do alvo. targetDistance =targetDistance * 160934.4; // Converter milhas em centímetros multiplicando por 160934,4 sensores.requestTemperatures (); // Envie o comando para obter as leituras de temperatura LCD.setCursor (10, 0); // Coloque o cursor na décima coluna da primeira linha LCD.print (""); // Imprime espaços em branco para limpar a linha LCD.setCursor (10, 0); // Defina o Cursor novamente para a décima coluna da primeira linha LCD.print ((int) (targetDistance + 0,5)); // Imprime a distância medida LCD.print ("cm"); // Imprime suas unidades LCD.setCursor (0, 1); // Coloque o cursor na primeira coluna da segunda linha LCD.print (""); // Imprime espaços em branco para limpar a linha LCD.setCursor (0, 1); // Defina o Cursor novamente para a primeira coluna da segunda linha if (targetDistance> 40) {LCD.print ("LEV LOW"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((char) 223); LCD.print ("C"); } else if (targetDistance <40 &&targetDistance> 20) {LCD.print ("LEV MED"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((char) 223); LCD.print ("C"); } else (targetDistance <20); {LCD.print ("LEV HIGH"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((char) 223); LCD.print ("C"); } atraso (2000); if (targetDistance> 40) {digitalWrite (13, HIGH); // LED verde aceso} else {digitalWrite (13, LOW); // LED verde apagado} if (targetDistance <40 &&targetDistance> 20) {digitalWrite (8, HIGH); // LED amarelo aceso} else {digitalWrite (8, LOW); // LED amarelo apagado} if (targetDistance <20) {digitalWrite (10, HIGH); // Atraso aceso do LED vermelho (2000); digitalWrite (10, BAIXO); // LED vermelho apagado} else {digitalWrite (10, LOW); // LED vermelho OFF}}  

Código

  • Arquivo sem título
Arquivo sem título C / C ++
 #include  // Carregar Biblioteca de Cristal Líquido # include  #include  #define ONE_WIRE_BUS 6 // O fio de dados está conectado ao pino 6 no Arduino OneWire oneWire (ONE_WIRE_BUS ); // Configurar uma instância oneWire para se comunicar com qualquer dispositivo OneWire // (não apenas ICs de temperatura Maxim / Dallas) Sensores de temperatura Dallas (&oneWire); // Passe nossa referência oneWire para Dallas Temperature.LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // Cria um Objeto de Cristal Líquido chamado LCDint trigPin =9; // Pino de disparo do sensor conectado ao pino 9int do Arduino echoPin =7; // Pino de eco do sensor conectado ao pino 7int do Arduino myCounter =0; // declare sua variável myCounter e defina como 0float pingTime; // tempo para o ping viajar do sensor para o alvo e returnfloat targetDistance; // Distância até o alvo em centímetrosfloat speedOfSound =776.5; // Velocidade do som em milhas por horavoid setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); LCD.begin (16, 2); // Diga ao Arduino para iniciar seu LCD 16x2 LCD.setCursor (0, 0); // Define o cursor do LCD para o canto superior esquerdo, coluna 0, linha 0 LCD.print ("Distância:"); // Imprimir mensagem na primeira linha sensores.begin (); // Inicie a biblioteca pinMode (8, OUTPUT); // pino 8, 10, 13 pinos de saída pinMode (10, OUTPUT); pinMode (13, OUTPUT);} void loop () {digitalWrite (trigPin, LOW); // Configura o pino de acionamento para baixo delayMicroseconds (2000); // Deixa o sinal estabilizar digitalWrite (trigPin, HIGH); // Define trigPin high delayMicroseconds (15); // Atraso em estado alto digitalWrite (trigPin, LOW); // o ping foi enviado delayMicroseconds (10); // Atraso em estado alto pingTime =pulseIn (echoPin, HIGH); // pingTime em microceconds pingTime =pingTime / 1000000; // converte pingTime em segundos dividindo por 1000000 (microssegundos em um segundo) pingTime =pingTime / 3600; // converter o tempo de ping em horas dividindo por 3600 (segundos em uma hora) targetDistance =speedOfSound * pingTime; // Será em milhas, já que declaramos a velocidade do som em quilômetros por hora; embora vamos convertê-lo de volta para centímetros targetDistance =targetDistance / 2; // Lembre-se de que o ping viaja até o alvo e volta do alvo, então você deve dividir por 2 para a distância real do alvo. targetDistance =targetDistance * 160934.4; // Converter milhas em centímetros multiplicando por 160934,4 sensores.requestTemperatures (); // Envie o comando para obter as leituras de temperatura LCD.setCursor (10, 0); // Coloque o cursor na décima coluna da primeira linha LCD.print (""); // Imprime espaços em branco para limpar a linha LCD.setCursor (10, 0); // Defina o Cursor novamente para a décima coluna da primeira linha LCD.print ((int) (targetDistance + 0,5)); // Imprime a distância medida LCD.print ("cm"); // Imprime suas unidades LCD.setCursor (0, 1); // Coloque o cursor na primeira coluna da segunda linha LCD.print (""); // Imprime espaços em branco para limpar a linha LCD.setCursor (0, 1); // Defina o Cursor novamente para a primeira coluna da segunda linha if (targetDistance> 40) {LCD.print ("LEV LOW"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((char) 223); LCD.print ("C"); } else if (targetDistance <40 &&targetDistance> 20) {LCD.print ("LEV MED"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((char) 223); LCD.print ("C"); } else (targetDistance <20); {LCD.print ("LEV HIGH"); LCD.print (sensores.getTempCByIndex (0)); LCD.print ((char) 223); LCD.print ("C"); } atraso (2000); if (targetDistance> 40) {digitalWrite (13, HIGH); // LED verde aceso} else {digitalWrite (13, LOW); // LED verde apagado} if (targetDistance <40 &&targetDistance> 20) {digitalWrite (8, HIGH); // LED amarelo aceso} else {digitalWrite (8, LOW); // LED amarelo apagado} if (targetDistance <20) {digitalWrite (10, HIGH); // Atraso aceso do LED vermelho (2000); digitalWrite (10, BAIXO); // LED vermelho apagado} else {digitalWrite (10, LOW); // LED vermelho OFF}} 

Esquemas

lcd_pot_led_buzz_pb_distsens_temp_EHVdF6S1L7.fzz

Processo de manufatura

  1. Controle de acesso com QR, RFID e verificação de temperatura
  2. Meça temperaturas com um sensor DS18B20 de 1 fio e Raspberry Pi
  3. Sensor de temperatura Python e Raspberry Pi
  4. Temperatura do Raspberry Pi e sensor de luz
  5. Aeroponia com Raspberry Pi e sensor de umidade
  6. Sensor de temperatura Raspberry Pi
  7. Sensor Portenta e Termopar (com MAX6675)
  8. Sensor DHT11 com LEDs e um alto-falante Piezo
  9. Despertador simples com DS1302 RTC
  10. Sensor de fluxo e temperatura Lab-On-Chip