diff --git a/README.md b/README.md index 43d9e0e..39668d7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# LCD Display + sensors 💡💧🔆 - +# LCD Display + sensors 💡💧🔆 + ## Integrantes 👋 - -print do circuito Arduino/printscreen Arduino circuit - + +print do circuito Arduino/printscreen Arduino circuit + Link da simulação no Wokwi +Link do vídeo de explicação no Youtube

## Explicação do Projeto 📖 Um programa que mede: - O nível de luminosidade através de um LDR + + O nível de luminosidade através de um LDR 🔆 +
- O nível de umidade através do DHT + + O nível de umidade através do DHT 💦 +
- E temperatura (em °C), também através do DHT + + E temperatura (em °C), também através do DHT 🌡 + - -## Componentes do projeto 🛠️ + +## Componentes 🛠️ - +
- -## Dependências do projeto 📦 + +## Dependências 📦 - +
## Explicando o Código 🧑‍💻 - + Precisamos incluir as bibliotecas para podermos ter acesso a métodos dos quais vamos precisar para interagir com o DHT. - + Assim como também é preciso declarar, iniciando tais valores para podermos usá-los depois na aplicação. + ```c #include #include - + const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); - + #define DHTPIN A0 #define DHTTYPE DHT22 - + DHT dht(DHTPIN, DHTTYPE); int valor_ldr; ```
- -A função testaLuminozidade que retorna void, ou seja, não retorna nada, é declarada. - + +A função `testaLuminozidade()` que retorna void, ou seja, não retorna nada, é declarada. + Fazemos a leitura analógica do nosso LDR, coloamos dentro da função map, para que possamos controlar os valores de forma relativa. - + Logo, precisamos da lógica, na qual se o valor se encontra abaixo ou igual a 33 o led verde é aceso e então escrevemos no display que o ambiente está escuro - + se está com uma quantidade média de luminosidade (33 < valor analógico do ldr <= 66) o led amarelo é aceso e o beep (piezo/campainha) é tocado além de mostrar no display que o ambiente se encontra em meia luz - + caso não entre en nenhum desses casos, significa que a luminosidade está alta, então o led vermelho se acende assim como continua a tocar o beep e escreve no display ambiente muito claro - + ```c void testaLuminozidade() { lcd.clear(); @@ -122,7 +129,7 @@ void testaLuminozidade() { digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, HIGH); - + lcd.clear(); lcd.setCursor(0, 0); lcd.print("Ambiente esta"); @@ -133,7 +140,7 @@ void testaLuminozidade() { digitalWrite(13, LOW); digitalWrite(12, HIGH); digitalWrite(11, LOW); - + lcd.clear(); lcd.setCursor(0, 0); lcd.print("Ambiente a meia"); @@ -146,9 +153,9 @@ void testaLuminozidade() { digitalWrite(11, LOW); for (int i = 0; i < 5; i++){ tone(8, 500); - + } - + lcd.clear(); lcd.setCursor(0, 0); lcd.print("Ambiente muito"); @@ -158,24 +165,29 @@ void testaLuminozidade() { } ```
- -A função montaTelaHumidade que retorna void irá ler valores analógicos do DHT, em específico, a humidade - - + +A função `montaTelaHumidade()` que retorna void irá ler valores analógicos do DHT, em específico, a humidade + +Verifica o valor da umidade lida e executa diferentes ações com base em intervalos de valor. Se a umidade for inferior a 50%, será exibida uma mensagem indicando que a umidade está baixa. Se estiver entre 50% e 70%, será exibida uma mensagem indicando que a umidade está ok. Se for superior a 70%, será exibida uma mensagem indicando que a umidade está alta. + +Atualiza o display LCD com a mensagem correspondente ao nível de umidade detectado. + +Controla os LEDs conectados aos pinos 13, 12 e 11, e um buzzer conectado ao pino 8, para indicar visual e auditivamente o nível de umidade. Os LEDs e o buzzer são acionados de acordo com as condições de umidade detectadas. + ```c void montaTelaHumidade() { String string1 = "Humidade: "; float humidade = dht.readHumidity(); String string2 = "%"; String exibirHum = string1 + humidade + string2; - + if (humidade < 50){ lcd.clear(); lcd.setCursor(0, 0); lcd.print("Humidade BAIXA"); lcd.setCursor(0,1); lcd.print(exibirHum); - + digitalWrite(13, HIGH); digitalWrite(12, LOW); digitalWrite(11, LOW); @@ -187,7 +199,7 @@ void montaTelaHumidade() { lcd.print("Humidade OK"); lcd.setCursor(0,1); lcd.print(exibirHum); - + digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, HIGH); @@ -199,33 +211,37 @@ void montaTelaHumidade() { lcd.print("Humidade ALTA"); lcd.setCursor(0,1); lcd.print(exibirHum); - + digitalWrite(13, HIGH); digitalWrite(12, LOW); digitalWrite(11, LOW); tone(8, 500); } - + } ```
+ +A função `montaTelaTemp()` que retorna void irá ler valores analógicos do DHT, em específico, a temperatura -A função montaTelaTemp que retorna void irá ler valores analógicos do DHT, em específico, a temperatura - +Verifica o valor da temperatura lida e executa diferentes ações com base em intervalos de valor. Se a temperatura for inferior a 10°C, será exibida uma mensagem indicando que a temperatura está baixa. Se estiver entre 10°C e 15°C, será exibida uma mensagem indicando que a temperatura está ok. Se for superior a 15°C, será exibida uma mensagem indicando que a temperatura está alta. + +Controla os LEDs conectados aos pinos 13, 12 e 11, e um buzzer conectado ao pino 8, para indicar visual e auditivamente o nível de temperatura. Os LEDs e o buzzer são acionados de acordo com as condições de temperatura detectadas. + ```c void montaTelaTemp(){ String string1 = "Temp: "; float temperatura = dht.readTemperature(); String string2 = "C"; String exibeTemp = string1 + temperatura + string2; - + if (temperatura < 10){ lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temp. BAIXA"); lcd.setCursor(0, 1); lcd.print(exibeTemp); - + digitalWrite(13, LOW); digitalWrite(12, HIGH); digitalWrite(11, LOW); @@ -237,7 +253,7 @@ void montaTelaTemp(){ lcd.print("Temperatura OK"); lcd.setCursor(0, 1); lcd.print(exibeTemp); - + digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, HIGH); @@ -249,20 +265,19 @@ void montaTelaTemp(){ lcd.print("Temp. ALTA"); lcd.setCursor(0, 1); lcd.print(exibeTemp); - + digitalWrite(13, LOW); digitalWrite(12, HIGH); digitalWrite(11, LOW); tone(8, 500); } } - - + ```
- -A função montaTelaBlank que retorna void, servirá como uma "helper" funciton para que possamos causar delays entre as diferentes funções, limpando o display e silenciando o beep - + +A função `montaTelaBlank()` que retorna void, servirá como uma "helper" funciton para que possamos causar delays entre as diferentes funções, limpando o display e silenciando o beep + ```c void montaTelaBlank() { delay(4000); @@ -272,9 +287,9 @@ void montaTelaBlank() { } ```
- -A função setup que retorna void, no Arduíno serve para fazermos o setup da nosso projeto, dizendo para o programa quais pinos utilizaremos e em qual modo, iniciar o DHT e o display LCD, o código extra com diferentes passos para já escrever no display serve para melhorar a experiência de usuário indicando-o que o programa está sendo inicializado - + +A função `setup()` que retorna void, no Arduíno serve para fazermos o setup da nosso projeto, dizendo para o programa quais pinos utilizaremos e em qual modo, iniciar o DHT e o display LCD, o código extra com diferentes passos para já escrever no display serve para melhorar a experiência de usuário indicando-o que o programa está sendo inicializado + ```c void setup() { pinMode(13, OUTPUT); @@ -282,7 +297,7 @@ void setup() { pinMode(11,OUTPUT); pinMode(8, OUTPUT); pinMode(A1, INPUT); - + dht.begin(); lcd.begin(16, 2); @@ -294,7 +309,7 @@ void setup() { lcd.print("SETUP..."); delay (2000); lcd.clear(); - + lcd.setCursor(0, 0); lcd.print("CP2 - Edge"); delay (1000); @@ -302,7 +317,7 @@ void setup() { lcd.print("Computing"); delay (2000); lcd.clear(); - + for (int i = 0; i <= 15; i++) { lcd.setCursor(0, 0); lcd.print("Carregando..."); @@ -314,11 +329,11 @@ void setup() { } ```
- -A função loop que retorna void, no Arduíno, servirá como o ciclo de vida inteiro do projeto, é uma função que por padrão roda infinitamente até algo dentro ou fora do códgio pará-lo. - Aqui, vamos chamar nossas funções principais já declaradas para termos uma melhor leitura e manutenção do código, assim como chamar também a função -montaTelaBlank entre essas funções para termos um "reset" entre os passos da nossa aplicação - + +A função `loop()` que retorna void, no Arduíno, servirá como o ciclo de vida inteiro do projeto, é uma função que por padrão roda infinitamente até algo dentro ou fora do códgio pará-lo. + Aqui, vamos chamar nossas funções principais já declaradas para termos uma melhor leitura e manutenção do código, assim como chamar também a função + `montaTelaBlank()` entre essas funções para termos um "reset" entre os passos da nossa aplicação + ```c void loop() { testaLuminozidade(); @@ -326,14 +341,14 @@ void loop() { montaTelaHumidade(); montaTelaBlank(); - + montaTelaTemp(); montaTelaBlank(); } ``` - -
Placa Arduino/Arduino board
- + +
Placa Arduino/Arduino board
+
- -

Se encontra sob a MIT License.

+ +
Este projeto encontra sob a MIT License.
diff --git a/docs/Checkpoint 2 - Edge.mp4 b/docs/Checkpoint 2 - Edge.mp4 new file mode 100644 index 0000000..a92a4a4 Binary files /dev/null and b/docs/Checkpoint 2 - Edge.mp4 differ diff --git a/docs/dependencies.md b/docs/dependencies.md new file mode 100644 index 0000000..1564498 --- /dev/null +++ b/docs/dependencies.md @@ -0,0 +1,22 @@ +# LCD Display + sensors 💡💧🔆 + +## Componentes 🛠️ + + +
+ +## Dependências 📦 + diff --git a/docs/links.md b/docs/links.md new file mode 100644 index 0000000..8eab203 --- /dev/null +++ b/docs/links.md @@ -0,0 +1,7 @@ +# LCD Display + sensors 💡💧🔆 + +## Links 🔗 + +- Link da simulação no Wokwi +- Link do vídeo de explicação no Youtube + diff --git a/docs/members.md b/docs/members.md new file mode 100644 index 0000000..afca383 --- /dev/null +++ b/docs/members.md @@ -0,0 +1,10 @@ +# LCD Display + sensors 💡💧🔆 + +## Integrantes 👋 +