BROTH3RCAST

Codice Arduino (inizializzazione sensori, lettura valori, invio valori)

May 27th, 2021 (edited)
467
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*DICHIARAZIONE GENERALI*/
  2. #include "Wire.h"
  3.  
  4. #define uS_TO_S_FACTOR 1000000
  5. #define TIME_TO_SLEEP  60
  6. RTC_DATA_ATTR int bootCount = 0;
  7. /**/
  8.  
  9. /*DICHIARAZIONE SENSORI*/
  10. #include "Seeed_BME280.h"
  11. BME280 bme280;
  12.  
  13. #include "Adafruit_VEML6070.h"
  14. Adafruit_VEML6070 uv = Adafruit_VEML6070();
  15.  
  16. #include "Adafruit_CCS811.h"
  17. Adafruit_CCS811 ccs;
  18.  
  19. #define sound 35
  20.  
  21. float lati = 41.9702;
  22. float longi = 12.532;
  23. /**/
  24.  
  25. /*DICHIARAZIONE CONNESSIONI*/
  26. #include "WiFi.h"
  27. const char* ssid = "MASTER24";
  28. const char* password = "Gas2018.LeonD";
  29. const char* host = "192.168.1.77";
  30. /**/
  31.  
  32.  
  33. void setup() {
  34.   Serial.begin(115200);
  35.  
  36.   /*CONNESSIONE AL WIFI*/
  37.   Serial.print("Connessione in corso al wifi: ");
  38.   Serial.println(ssid);
  39.   WiFi.begin(ssid, password);
  40.   while (WiFi.status() != WL_CONNECTED) {
  41.     delay(500);
  42.     Serial.print(".");
  43.   }
  44.   Serial.println("");
  45.   Serial.println("Connessione riuscita");
  46.   /**/
  47.  
  48.   /*INIZIALIZZAZIONE SENSORI*/
  49.   uv.begin(VEML6070_1_T);
  50.   pinMode(32, OUTPUT);
  51.   digitalWrite(32, LOW);
  52.   if (!ccs.begin()) {
  53.     Serial.println("Errore inizializzazione CCS811 controlla cablaggio o esegui debug");
  54.     while (1);
  55.   }
  56.   while (!ccs.available());
  57.   pinMode(35, INPUT);
  58.   if (!bme280.init()) {
  59.     Serial.println("Errore inizializzazione BME280 controlla cablaggio o esegui debug");
  60.   }
  61.   /**/
  62.  
  63.   /*INIZIALIZZAZIONE DEEP-SLEEP E OROLOGIO*/
  64.   ++bootCount;
  65.   esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  66.   /**/
  67. }
  68.  
  69. void loop() {
  70.   float temperatura = bme280.getTemperature();
  71.   float pressione   = bme280.getPressure();
  72.   float altitudine  = bme280.calcAltitude(pressione);
  73.   float umidita     = bme280.getHumidity();
  74.   float valuv         = uv.readUV();
  75.   float co2;
  76.   float tvoc;
  77.   if (ccs.available()) {
  78.     if (!ccs.readData()) {
  79.       co2         = ccs.geteCO2();
  80.       tvoc        = ccs.getTVOC();
  81.     }
  82.   }
  83.   float suono       = analogRead(sound);
  84.  
  85.   Serial.print("Temperatura in °C: ");
  86.   Serial.println(temperatura);
  87.   Serial.print("Pressione in Pascal: ");
  88.   Serial.println(pressione);
  89.   Serial.print("Umidità in %: ");
  90.   Serial.println(umidita);
  91.   Serial.print("Altitudine stimata in m: ");
  92.   Serial.println(altitudine);
  93.   Serial.print("Radiazione ultravioletta: ");
  94.   Serial.println(valuv);
  95.   Serial.print("CO2 presente nell'aria in ppm: ");
  96.   Serial.println(co2);
  97.   Serial.print("Polveri sottili nel'aria in ppm: ");
  98.   Serial.println(tvoc);
  99.   Serial.print("Inquinamento acustico in dB: ");
  100.   Serial.println(suono);
  101.   Serial.print("Latitudine dispositivo: ");
  102.   Serial.println(lati);
  103.   Serial.print("Longitudine dispositivo: ");
  104.   Serial.println(longi);
  105.   Serial.println("");
  106.   Serial.println("");
  107.   /**/
  108.  
  109.   /*INVIO DATI AL DATABASE*/
  110.   Serial.print("Connessione al database: ");
  111.   Serial.println(host);
  112.  
  113.   WiFiClient client;
  114.   const int httpPort = 80;
  115.   if (!client.connect(host, httpPort)) {
  116.     Serial.println("Connessione fallita");
  117.     return;
  118.   }
  119.   String url = "/website2/insert_final.php?";
  120.   url += "mac="; url           += WiFi.macAddress();
  121.   url += "&temperatura="; url += temperatura;
  122.   url += "&pressione=";   url += pressione;
  123.   url += "&altitudine=";  url += altitudine;
  124.   url += "&umidita=";     url += umidita;
  125.   url += "&uvval=";       url += valuv;
  126.   url += "&co2=";         url += co2;
  127.   url += "&tvoc=";        url += tvoc;
  128.   url += "&suono=";       url += suono;
  129.   url += "&lat=";        url += lati;
  130.   url += "&log=";       url += longi;
  131.  
  132.   Serial.print("Invio richiesta: ");
  133.   Serial.println(url);
  134.   client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");
  135.  
  136.   unsigned long timeout = millis();
  137.   while (client.available() == 0) {
  138.     if (millis() - timeout > 5000) {
  139.       Serial.println(">>> Client Timeout !");
  140.       client.stop();
  141.       return;
  142.     }
  143.   }
  144.   while (client.available()) {
  145.     String line = client.readStringUntil('\r');
  146.     Serial.print(line);
  147.   }
  148.   Serial.println(" e connessione chiusa");
  149.   /**/
  150.   esp_deep_sleep_start();
  151. }
Add Comment
Please, Sign In to add comment