Retenční nádrž V1

#include <HCSR04.h>
#include <Wire.h>
//#include <ACROBOTIC_SSD1306.h>
#include "SSD1306.h"
#include <ESP8266WiFi.h>

#define SDA D2
#define SCL D1

//SSID of your network
char ssid[] = "Brno4";
//password of your WPA Network
char pass[] = "*****";


const char* host = "api.thingspeak.com"; // Informace pro připojení k thingspeak.com 
const char* APIkey = "******";
const int httpPort = 80;
int mezikrok = 0;

SSD1306 display(0x3c, SDA, SCL);

HCSR04 hc(D6, D5); // Initialize Pin D6, D5



int distance;


void setup()
{
  Serial.begin(115200);
  Serial.println("Meric-vzdalenosti");

  display.init();
  display.flipScreenVertically();
  display.setFont(ArialMT_Plain_10);
  display.drawString(0, 0, "init");

  display.display();

  delay(200);                // wait 200 ms

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);
}


void loop()
{

 
Serial.print("Connecting");

 for (int i=0; i <= 10; i++){
    if (WiFi.status() != WL_CONNECTED){
        delay(500);
        Serial.print(".");
    }else {
      Serial.println();
      Serial.print("Connected, IP address: ");
      Serial.println(WiFi.localIP());

      Serial.print("Signal: ");
      Serial.println(WiFi.RSSI());
      break; // exit connecting
    }
 } 
  
  


  distance = hc.dist();      /*je to int takže bez desetin*/
  Serial.print("CIDLO HCSR04: ");
  if (distance>27&&distance<650) { // když je čislo odpojene ukazuje 689, 688cm... ,.. asi se na nem tvoří rosa často ukazuje 23,25,až 27... nejvyse je ladina když ukazuje 29.
      Serial.print(distance);
      Serial.println(" cm");   
      
      display.clear();
      display.drawCircle(5,5,5);
      display.setFont(ArialMT_Plain_24);
      display.drawString(0, 25, String(distance));
      display.drawString(50, 25, "cm");
      display.display();
      delay(100);      
      display.fillCircle(5,5,5); 
      display.display();
      display.drawString(0, 25, String(distance)); 

      display.setFont(ArialMT_Plain_10);
      display.drawString(40, 0, "wifi:");
      display.setFont(ArialMT_Plain_24);
      display.drawString(70, 0, "   ");
      display.display();
      display.drawString(70, 0, String(WiFi.RSSI()));
      display.display(); 
      
      delay(1000);

      
      
      if (mezikrok==0){
        
        
                  mezikrok=150; 
      
                  /*Thinkspeak*/
                  Serial.println("--THINGSPEAK--");
                  WiFiClient client;
                  char charVal[12];
             
                  dtostrf(distance, 8, 0, charVal);                // Konverze vyčtené teploty do stringu 
                                                             // (hodnota, počet míst, počet desetinných míst,
            
            
                  if (!client.connect(host, httpPort)) {
                    Serial.println("connection failed");
                    return;
                  }
                  String url = "/update?key=";                // Vytvoření URL pro odeslání informace o teplotě
                  url += APIkey;
                  url += "&field1=";
                  url += charVal;       
             
                  Serial.print("Requesting URL: ");
                  Serial.println(url);
            
                  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                             "Host: " + host + "\r\n" +
                             "Connection: close\r\n\r\n");
                  delay(10);
                  Serial.println();
                  Serial.println();
                  while (client.available()) {
                    String line = client.readStringUntil('\r');
                    Serial.print(line);                        // tisk informací přijatých ze serveru
                  
                  }
                     
      }
      Serial.print("Mezikrok:");
      Serial.println(mezikrok);
      mezikrok-- ;  

      display.setFont(ArialMT_Plain_10);
      display.drawString(90, 25, "i=");
      display.drawString(100, 25, "   "); 
      display.display();
      display.drawString(100, 25, String(mezikrok));
      display.display();  
      
  }else {
    
      Serial.println("ERROR CIDLA ");
      /*
      display.setFont(ArialMT_Plain_10);
      display.clear();
      display.drawString(0, 0, "ERROR CIDLA");
      display.display();
      */
      display.setFont(ArialMT_Plain_10);
      display.drawString(40, 0, "wifi:");
      display.display();
      display.setFont(ArialMT_Plain_24);
      display.drawString(70, 0, "   ");
      display.display();
      display.drawString(70, 0, String(WiFi.RSSI()));
      display.display();
      delay(200);
      
   }
  

   

  delay(1000);

}

 

 

tato verze opravuje zákmity při měření – asi způsobeno kondenzaci vody na čidle. Čislo je 29cm nad hladinou, senzor měřil střídavě 23,70,24,70,23,70 … (obecně 22,23cm ukazuje jako nejnižší hodnotu – když jsem dal na čidlo třeba ruku).

 

 

 

iNSTALACE v nádrži – zde vidět maximální hladina

 

Instalace provedena 10/2021 – tak uvidíme jak dlouho to vydrží v té vlhkosti 😉

 

1 komentář u „Retenční nádrž V1“

Napsat komentář