#include "ArduinoLinq.hpp"
#include <DHT.h>;
using namespace ArduinoLinq;

#define DHTPIN  33  // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino
float hum;  //Stores humidity value
float temp; //Stores temperature value
int myArray[20];
/*
 #include <SPI.h>
#include <SD.h>

const int chipSelect = 10;  // Pin CS del modulo SD
int dati[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};  // Array con i dati da scrivere

void setup() {
  Serial.begin(9600);
  
  // Inizializza la comunicazione con la scheda SD
  if (!SD.begin(chipSelect)) {
    Serial.println("Errore nell'inizializzazione della scheda SD!");
    return;
  }
  Serial.println("Scheda SD inizializzata.");

  // Apri un file sulla scheda SD in modalità scrittura
  File file = SD.open("dati.txt", FILE_WRITE);
  
  if (file) {
    Serial.println("Scrittura dei dati nel file...");
    
    // Scrivi i dati nell'array nel file
    for (int i = 0; i < 10; i++) {
      file.println(dati[i]);  // Scrive ogni dato su una nuova riga
    }
    
    file.close();  // Chiude il file dopo aver scritto i dati
    Serial.println("Dati scritti con successo.");
  } else {
    Serial.println("Errore nell'aprire il file!");
  }
}

void loop() {
  // Il loop è vuoto in questo esempio, poiché scriviamo i dati una sola volta
}
*/ 
void setup() {
  Serial.begin(115200);
  Serial.println("\n\n");
  dht.begin();
    
  temp= dht.readTemperature();
  Serial.println(temp);
  Serial.print((char)176);//shows degrees character
  Serial.print("C  |  ");
  /*  
  int ints[] = {107, 1, 80, 3, 8, 20, 30, 5, 77, 102};
 int ints1[] = {0, 1, 80, 3, 9, 21, 31, 52, 7, 12};
  int maxVal = from_array(ints)
               >> max();
 
  Serial.print("Max element of the array: ");
  Serial.println(maxVal);
  
  int minVal = from_array(ints)
               >> min();
 
  Serial.print("Min element of the array: ");
  Serial.println(minVal);
 
  auto reversed = from_array(ints)
               >> reverse()
               >> to_vector();
 
  Serial.print("Reversed Array: ");
 
  for(int i=0; i<reversed.size(); ++i){
    Serial.print(reversed[i]);
    Serial.print("|");
  }
  
  auto filtered = from_array(ints)
               >> where([](int i) {return i > 30;})
               >> orderby_ascending([](int i) {return i;})
               >> to_vector();
 
  Serial.print("\nFiltered Array: ");
 
  for(int i=0; i<filtered.size(); ++i){
    Serial.print(filtered[i]);
    Serial.print("|");
  }
  Serial.print("\nIntercept: ");

  auto result = from_array(ints)
               >> intersect_with(from_array(ints1))
               >> to_vector();
  
  for(int i=0; i<result.size(); ++i){
    Serial.print(result[i]);
    Serial.print("|");
}*/
}



  
void loop() {


//int myArray[];
int i;

for (i = 0; i < 20; i++) 

{
temp= dht.readTemperature();
myArray[i]=temp;
Serial.print(i);
Serial.print("|");
Serial.println(myArray[i]);
delay(1000);

}



}