Ciao, sono Edoardo.
Non so quale codice inserire per far funzionare il Display TM1637 che mi mostri la temperatura e umidità. Mi potete dare una mano? (dovrei usare il DHT1 visto che ne ho 2). So che il codice è parecchio incasinato ma avrei solo bisogno delle stringhe per far funzionare il display
#include "DHT.h"
#include "TM1637Display.h"
const int limite = 1000; // limite del sistema
#define DHT1PIN 6
#define DHT2PIN 5
#define DHT1TYPE DHT11 // DHT 11
#define DHT2TYPE DHT11 // DHT 11
DHT dht1(DHT1PIN, DHT1TYPE);
DHT dht2(DHT2PIN, DHT2TYPE);
#define CLK 3
#define DIO 4
TM1637Display display(CLK, DIO);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
{
display.setBrightness(0x0f);
}
pinMode (9, OUTPUT); // direzione del pin buzzer di allarme
pinMode (12, OUTPUT); // direzione del pin led ROSSO (allarme)(gas)
pinMode (7, OUTPUT); // direzione del pin led Arancione (pre-allarme)
pinMode (8, OUTPUT); // direzione del pin led VERDE (acceso)
pinMode (13, OUTPUT); //direzione del pin
pinMode (2, OUTPUT); // direzione del pin led ROSSO (allarme) (termometro)
pinMode (11, OUTPUT);
pinMode (1, OUTPUT);
pinMode (A5, OUTPUT);
pinMode (A4, OUTPUT);
pinMode (A3, OUTPUT);
Serial.begin (9600); // avvio del monitor seriale
Serial.println("DATI!");
dht1.begin();
dht2.begin();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
int gas = analogRead(A0); // rilevo il valore dal pin A0
Serial.println(gas); // stampo su monitor seriale
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (gas > 0)
{
digitalWrite(8, HIGH); // accende il LED BLU
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ((gas >= 0) && (gas <= 100)) // Se il sensore rileva un valore compreso tra 0 e 100...
{
digitalWrite(1, HIGH); // accende il LED VERDE
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ((gas >= 100) && (gas <= 350)) // Se il sensore rileva un valore compreso tra 200 e 350...
{
digitalWrite(7, HIGH); // accende il LED ARANCIONE
delay(500); // aspetta un secondo
digitalWrite(7, LOW); // spegne il LED ARANCIONE
delay(500); // aspetta un secondo
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (gas > 350) // se il gas supera il limite...
{
digitalWrite(12, HIGH); // accende il LED ROSSO
delay(500); // aspetta un secondo
digitalWrite(12, LOW); // spegne il LED ROSSO
delay(500); // aspetta un secondo
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (gas > 350) // se il gas supera il limite...
{
tone(9,400,1000); // Accende buzzer di allarme
delay(1000); // Aspetta un secondo (cambia nota)
tone(9,650,1000); // Accende buzzer di allarme
delay(1000); // Aspetta un secondo (cambia nota)
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else
{
digitalWrite(12, LOW); // altrimenti non fa nulla
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
delay(3000);
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();
if (isnan(t1) || isnan(h1))
{
Serial.println("Failed to read from DHT #1");
}
else {
Serial.print("Umidità 1: ");
Serial.print(h1);
Serial.print(" %\t");
Serial.print("Temperatura 1: ");
Serial.print(t1);
Serial.println(" C");float t1 = dht1.readTemperature();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
delay(2000);
float h2 = dht2.readHumidity();
float t2 = dht2.readTemperature();
if (isnan(t2) || isnan(h2))
{
Serial.println("Failed to read from DHT #2");
}
else {
Serial.print("Umidità 2: ");
Serial.print(h2);
Serial.print(" %\t");
Serial.print("Temperatura 2: ");
Serial.print(t2);
Serial.println(" C");
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
display.showNumberDec(("t1"), false, 2,2);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (t1 >= 35 )
{
digitalWrite(2, HIGH); // accende il LED ROSSO
delay(500); // aspetta un secondo
digitalWrite(2, LOW); // spegne il LED ROSSO
delay(500); // aspetta un secondo
}
// if (t1 <= 0 )
//{
// digitalWrite(11, HIGH); // accende il LED ROSSO
// delay(500); // aspetta un secondo
// digitalWrite(11, LOW); // spegne il LED ROSSO
// delay(500); // aspetta un secondo
//}
if ((t1 >= 0) && (t1 <= 30)) //TEMPERATURA NORMALE
{
digitalWrite(11, HIGH); // accende il LED VERDE
}
if (t1 >= 34)
{
digitalWrite(11, LOW); // spegne il LED VERDE
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ((t2 >= 0) && (t2 <= 30)) ///TEMPERATURA NORMALE
{
digitalWrite(13, HIGH); // accende il LED
}
if (t2 >= 34)
{
digitalWrite(13, LOW); // spegne il LED VERDE
}
if (t2 >= 35 )
{
digitalWrite(A5, HIGH); // accende il LED ROSSO
delay(500); // aspetta un secondo
digitalWrite(A5, LOW); // spegne il LED ROSSO
delay(500); // aspetta un secondo
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (h1 >= 80 ) //UMIDITA'
{
digitalWrite(A4, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(A4, LOW); // spegne il LED
delay(500); // aspetta un secondo
}
if (h2 >= 80 ) //UMIDITA'
{
digitalWrite(A3, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(A3, LOW); // spegne il LED
delay(500); // aspetta un secondo
}
}