Lembrete de distanciamento social - Coronavirus
Componentes e suprimentos
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| Sensor ultrassônico - HC-SR04 (genérico) | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| Potenciômetro rotativo (genérico) | | × | 1 | |
| Fios de jumpers (genérico) | | × | 1 | |
| Uma caixa transparente para colocar tudo | | × | 1 | |
Aplicativos e serviços online
Sobre este projeto
O que é?
Razoavelmente, a abordagem mais confiável para desacelerar a disseminação do coronavírus é manter-se afastado de outras pessoas; Prevenção é melhor que a cura. No entanto, seria irritante virar a cada trinta segundos e ver se alguém estava se aproximando de você. Seria útil se houvesse um dispositivo que pudesse alertar outras pessoas para se manterem longe de você. Esse é o propósito do projeto:alertar outras pessoas para manter uma distância de 2 metros de você. É um 2 em 1, pois o termistor não é usado apenas para adicionar precisão à medição de distância (a velocidade do som muda dependendo da temperatura), mas também significa que - usando um botão ou um sensor de toque para alternar entre os modos - pode ter dois modos:alertar se alguém se aproximar de você (Modo 1) e medir a temperatura e a distância (Modo 2). O modo de medição mostra a temperatura e a distância no LCD.
Como funciona?
- O Arduino mede a temperatura.
- A temperatura é usada para calcular a distância com maior precisão.
Se o Arduino estiver no Modo 1:
- Se a distância for entre 2m e 1m, a luz de fundo do LCD acende e o LCD mostra "Mantenha-se afastado" e a distância que a pessoa está.
- Se a distância for de 1m - 50 cm, a luz de fundo do LCD pisca e o LCD mostra "Afaste-se"
- Se a distância for inferior a 50 cm, a luz de fundo é desligada e ligada duas vezes por segundo e o LCD mostra "FIQUE LONGE!"
Se o Arduino estiver no Modo 2, o LCD mostra a distância na parte superior e a temperatura na parte inferior da tela.
Para proteger os componentes da chuva, coloquei meia garrafa de plástico que pode ser empurrada para cima quando chove.
Pode ser preso (usando dois pedaços de barbante) e facilmente removido do fundo de uma mochila.
O sensor de toque é usado para alternar entre os modos.
Como faço para construir?
Conecte os componentes de acordo com o diagrama de circuito abaixo.
Depois de fazer isso, importe as bibliotecas na seção chamada 'Código' - o que você pode fazer (assumindo que você abriu o IDE do Arduino) indo para 'Sketch' -> 'Incluir Biblioteca' -> 'Adicionar Biblioteca .ZIP. .. 'e selecionando a biblioteca (que deve ser um arquivo .zip). Ambas as bibliotecas são necessárias para o código funcionar.
Quando tudo isso estiver feito, você pode fazer o upload do código abaixo.
Código
O código Arduino
Faça upload para o Arduino. #include #include #define trigPin 7 # define echoPin 6 # define buzzer 9 # define backlight 10LiquidCrystal lcd (12, 11, 5, 4, 3 , 8); UltraSonicDistanceSensor distanceSensor (trigPin, echoPin); int tempReading; double tempK; float tempC; int arredondado; int temp_round; modos booleanos voláteis =0; distância dupla; configuração de vazio () {lcd.begin (16, 2); attachInterrupt (0, changeMode, FALLING); pinMode (2, INPUT); pinMode (campainha, OUTPUT); pinMode (luz de fundo, SAÍDA); digitalWrite (luz de fundo, ALTO); backlightOn ();} void loop () {tempReading =analogRead (A0); tempK =log (10000,0 * ((1024,0 / tempReading - 1))); tempK =1 / (0,001129148 + (0,000234125 + (0,0000000876741 * tempK * tempK)) * tempK); tempC =tempK - 273,15; distance =distanceSensor.measureDistanceCm (tempC); temp_round =redondo (tempC); if (modos ==1) {backlightOn (); if (distância> =300 || distância <=0) {arredondado =0; lcd.clear (); lcd.print ("Fora do intervalo"); lcd.setCursor (0, 1); lcd.print ("Temperatura:" + String (temp_round) + "C"); } else {arredondado =redondo (distância); lcd.clear (); lcd.print ("Distância:"); lcd.print (arredondado); lcd.print ("cm"); lcd.setCursor (0, 1); lcd.print ("Temperatura:" + String (temp_round) + "C"); }} else {if (distance> =300 || distance <=0) {rounded =0; lcd.clear (); backlightOff (); } else {arredondado =redondo (distância); if (distância> =200) {backlightOff (); lcd.clear (); } else if (distance <=200 &&distance> 100) {backlightOn (); lcd.clear (); lcd.print ("Por favor, mantenha-se afastado"); lcd.setCursor (0, 1); lcd.print ("Distância:"); lcd.print (arredondado); lcd.print ("cm"); } else if (distance <=100 &&distance> 50) {backlightOn (); lcd.clear (); lcd.print ("Manter afastado"); lcd.setCursor (0, 1); lcd.print ("Distância:"); lcd.print (arredondado); lcd.print ("cm"); atraso (200); zumbido(); backlightOff (); atraso (100); unbuzz (); backlightOn (); atraso (100); } else if (distance <=50) {backlightOn (); lcd.clear (); lcd.print ("FIQUE LONGE!"); lcd.setCursor (0, 1); lcd.print ("Distância:"); lcd.print (arredondado); lcd.print ("cm"); atraso (200); zumbido(); backlightOff (); atraso (200); unbuzz (); backlightOn (); atraso (200); zumbido(); backlightOff (); atraso (200); unbuzz (); backlightOn (); }}} delay (700);} void changeMode () {modes =! modes;} void backlightOn () {digitalWrite (backlight, HIGH);} void backlightOff () {digitalWrite (backlight, LOW);} void buzz () {digitalWrite (buzzer, HIGH);} void unbuzz () {digitalWrite (buzzer, LOW);}
arduino-lib-hc-sr04-master.zip
https://github.com/Martinsos/arduino-lib-hc-sr04 LiquidCrystal.zip
https://github.com/arduino-libraries/LiquidCrystal Esquemas
coronavirus_distancing_WQxTcxgmYm.fzz