Se sei già registrato           oppure    

Orario: 01/07/2025 03:47:02  

 

Energia Alternativa ed Energia Fai Da Te > Arduino

Pagine: (2)   [1]   2    (Ultimo Msg)


Scheda lavastoviglie, Sostituiamo scheda con arduino
FinePagina

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 30/06/2017 09:36:33

Recentemente ho utilizzato Arduino per sostituire la scheda di una lavastoviglie
Con arduino + 4/5 rele e 1 o 2 pulsanti e facilmente sostituibile

Il tutto funziona da pulsante e o smartphone tramite wifi

E possibile inserire e modificare programmi a piacimento


I vari rele attivano i vari componenti per X minuti/secondi

Lavaggio carico acqua sapone riscaldamento scarico e rigenerazione resine.






---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

farstar1965

Avatar
KiloWatt


Gruppo:Utente
Messaggi:293

Stato:



Inviato il: 30/06/2017 11:50:45

E non ci fai vedere niente ?



---------------
Più impari più ti rendi conto di quanto sei ignorante.

 

RAUNARDE
GigaWatt


Gruppo:Utente
Messaggi:1225

Stato:



Inviato il: 30/06/2017 15:19:57

cavoli posta posta interessante!!!

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 01/07/2017 06:01:20

Lo schema credo lo intuite facilmente i rele sono comandati da arduino (carico acqua e pressostato in serie se replicate) come protezione ce un sensore di temperatura dht22 o potete mettere quello che preferite che limita a 65 75 gradi in base al programma scelto comunque mai > 75 il ciclo di rigenerazione io per comodita l ho inserito insieme all attuatore sapone x usare 4 invece di 5 rele niente impedisce di usare gli altri rele se li avete bastano poche righe a seguire il codice modifico 2 parametri x escludere possibili errori da parte del sensore e posto



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

Riccardo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:2930

Stato:



Inviato il: 01/07/2017 07:05:15

Bella idea Vincent,in futuro puoi inserirlo nella domotica e potresti farla partire quando il tuo software(Super Solar) gli da il comando di batteria al 100% o da remoto



---------------
Q.CELLS Q.PEAK 4575W sud-est
Solar Frontier CIS 850W sud-ovest
Inverter PIP5048MST
Batterie:LifePo4 Seplos MASON-48280-DIY EVE280AK 28,6 kWh
Scaldabagno Ferroli 30l 1500w
Scaldabagno Ariston 80l 1200w

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 01/07/2017 07:24:55

e per quello sto sviluppando un server separato sul pc impostato a priorita da 1 a 10 cioe stacca prima 10 poi 9 fino a che basta solo il solare o comunque non piu di X da batteria poi in esubero riattiva tutto

#include <ESP8266WebServer.h>

#include <dummy.h>

#include <ESP8266WiFi.h>
#include <DHT.h>
//#include "DHT.h"

#define DHTPIN D3
//////////////////////
// WiFi Definitions //
//////////////////////la passwordwi wi
//dht DHT;
//const int DHT22_PIN =4;
const char WiFiAPPSK[] = "password";
//#define DHTTYPE DHT22   // DHT 22
//DHT dht(DHTPIN, DHTTYPE);
/////////////////////
// Pin Definitions //
/////////////////////
//const int LED_PIN = D5; // Thing's onboard, green LED
//const int ANALOG_PIN = A0; // The only analog pin on the Thing
//const int DIGITAL_PIN = 12; // Digital pin to be read
#include <DHT.h>
#include "DHT.h"

#define DHTPIN D3
//////////////////////
// WiFi Definitions //
//////////////////////la passwordwi wi
//dht DHT;
//const int DHT22_PIN =4;
//const char WiFiAPPSK[] = "password";
#define DHTTYPE DHT22   // DHT 22
DHT dht(DHTPIN, DHTTYPE);
/////////////////////
// DHT Sensor

// Initialize DHT sensor.


// Temporary variables

const int lavaggio = D5;

const int riscalda = D6;

const int scarico = D7;

const int pulsante = D8;


const int sapone = D1;


long orologio1 = 0;

long orologio2 = 0;

int intervallo = 60;

bool escludisensore = false;



#define SER_SIZE 256 //dimensione massima del buffer

static uint8_t bufferRegolatore[SER_SIZE + 1] = ""; //buffer che conterrà i byte letti dalla seriale.
int serind; //indice per il buffer.
String output;
char carattere;
String stringa;
String programma;
int tempset;
WiFiServer server(80);

void setup()
{
  tempset=50;
  
//  initHardware();
  setupWiFi();
  server.begin();
  dht.begin();
//  serial.begin(9600)
Serial.begin(9600);
 intervallo = 60;
//dht.begin();
 pinMode(lavaggio, OUTPUT);
  pinMode(riscalda, OUTPUT);
  pinMode(scarico, OUTPUT);
  pinMode(pulsante,INPUT);
  pinMode(sapone, OUTPUT);
  

  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
    digitalWrite(sapone, 1);
    
 Serial.println("");
  Serial.print("ESP8266 avviato, Gestione Lavastoviglie…..");
 
  orologio1 = 0;
  delay(10);
programma = "1";
escludisensore = false;


}

void loop()
{
//Serial.println(temp());

//  QPIRI();

//  Leggi_in();

 // Datiout();

Serial.println("-Av-");
if (programma == "1")
  Lavastoviglie();
  
  if (programma == "2")
  Lavastoviglie_p2();

if (programma == "3")
  Lavastoviglie_p3();
  
  if (programma == "4")
  Lavastoviglie_p4();
  
  if (programma == "5")
   rigenerazione();
  

if (temp() >tempset){
  Serial.println("-Spegnomento resistenza-");
   digitalWrite(riscalda, 1);

  }
  
  Serial.println("-Ex-");

int vpul;
vpul=digitalRead(pulsante);


if (vpul== HIGH){
  orologio2=orologio2 + 1;
  
  Serial.println("-Pulsante premuto") ;
  
   if ((orologio2 > 3 )and (stringa == "avvia")){
    orologio2=0;
  stringa = "pausa";
  
  Serial.println("-pausa-------") ;
  delay(1000);
  }
  
  if ((orologio2 > 3 )and (stringa != "avvia")){
  stringa = "avvia";
  orologio2=0;
  Serial.println("-Avvio ciclo") ;
  delay(1000);
  }
  delay(900);
  }
  if (vpul== LOW){
 
  orologio2=0;
  Serial.println("-Reset pull") ;
 
  }
 
  
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Read the first line of the request
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();

  // Match the request
  int val = -1; // We'll use 'val' to keep track of both the
  // request type (read/set) and value if set.
  if (req.indexOf("/pausa") != -1)
    stringa = "pausa"; // Will write LED low
  else if (req.indexOf("/reset") != -1)
    stringa = "reset"; // Will write LED high
  else if (req.indexOf("/avvia") != -1)
    stringa = "avvia"; // Will print pin reads
 else if (req.indexOf("/stop") != -1)
    stringa = "stop";// Will print pin reads

    if (req.indexOf("/p1") != -1)
    programma = "1"; // Will write LED low
      if (req.indexOf("/p2") != -1)
    programma = "2"; // Will write LED low
     if (req.indexOf("/p3") != -1)
    programma = "3"; // Will write LED low
     if (req.indexOf("/p4") != -1)
    programma = "4"; // Will write LED low
if (req.indexOf("/p5") != -1)
    programma = "5"; // Will write LED low

if (req.indexOf("/sapone") != -1)
     digitalWrite(sapone, 0);    
  if (req.indexOf("/riscalda") != -1)
     digitalWrite(riscalda, 0);
  if (req.indexOf("/lavaggio") != -1)
     digitalWrite(lavaggio, 0);
 if (req.indexOf("/scarico") != -1)
     digitalWrite(scarico, 0);

      if (req.indexOf("/t50") != -1){
     tempset=50;
     escludisensore=false;}
  if (req.indexOf("/t65") != -1){
     tempset=65;
     escludisensore=false;}
 if (req.indexOf("/t75") != -1){
     tempset=75;
     escludisensore=false;}
 
//escludisensore
     if (req.indexOf("/escludisensore") != -1){
     escludisensore=true;
     tempset=temp();
     }
   
  // Otherwise request will be invalid. We'll say as much in HTML

  // Set GPIO5 according to the request
  //if (val >= 0)
  //  digitalWrite(LED_PIN, val);

  //client.flush();

  // Prepare the response. Start with the common header:
  String s = "HTTP/1.1 200 OK\r\n";
  s += "Content-Type: text/html\r\n\r\n";
  s += "<!DOCTYPE HTML>\r\n<html>\r\n";
  //s +="<script> function SendData(){  xmlhttpPost(""/avvio"")""}""</script>";
  // If we're setting the LED, print out a message saying we did
  //if (val >= 0)
  //{
  //  s += "LED is now ";
  //  s += (val) ? "on" : "off";
  //}
  //else if (val == -2)
  //{ // If we're reading pins, print out those values:
  //  s += "Analog Pin = ";
   // s += String(analogRead(ANALOG_PIN));
  //  s += ""; // Go to the next line.
  //  s += "Digital Pin 12 = ";
    //s += String(digitalRead(DIGITAL_PIN));
  // }
 // else
 // {
 //   s += "Invalid Request. Try /led/1, /led/0, or /read.";
 // }
//  QPIRI();
  Serial.println("Current:" + orologio1);
  s +="Programma:" ;
  s += programma;
  s += "Orologio:" ;
  s += orologio1; 
  s += " Minuti:" ;
  int minuti = orologio1 / 60;
   s += minuti;

s += " Temperatura:" ;
if (temp()>100){
     s += "Errore sensore";   }
        else {
 s += temp();}
 
      s += "";
if (escludisensore==true){
  s += "ATTENZIONE SENSORE TEMPERATURA ESCLUSO!!!";
  }
      
s += " Temperatura settata:" ;
 s += tempset;
      s += "";

   
   int tempo = 0 ;
   if (programma =="1")
      tempo=140;
 if (programma =="2")
      tempo=240;
 if (programma =="3")
      tempo=240;
 if (programma =="4")
      tempo=360;
   if (programma =="5")
      tempo=10;
tempo= tempo - minuti;

s += " Minuti rimanenti:" ;
s +=tempo;
  s += " ";
  
//  s += "<a href='/on'>on</a> " ;
  s += "<a href=""/p1"">Programma1</a> 140 Min." ;
   s += "<a href=""/p2"">Programma2</a> 170 Min." ;
   
   s += "<a href=""/p3"">Freddo</a> 170 Min." ;

 s += "<a href=""/p4"">Impulsi</a> 200 Min." ;
   
  s += "";
   s += "<a href=""/p5"">Rigenerazione</a> 10 Min." ;
   
  s += "";

  s += "<a href=""/t50"">Temp 50</a> " ;
   
   s += "<a href=""/t65"">temp 65</a> " ;

 s += "<a href=""/t75"">temp 75</a> " ;

s += "<a href=""/escludisensore"">Escludi Sendore Temperatura</a> " ;

 //escludisensore

  
   s += "<a href=""/avvia"">AVVIA</a> " ;
  s += "<a href=""/pausa"">PAUSA</a> " ;
   s += "<a href=""/stop"">STOP</a> " ;
    s += "<a href=""/reset"">RIAVVIA</a> " ;
    
 // s += "<input type=""Button"" id=""Button1"" onclick=""SendData()"" name=""AVVIA"" value=""AVVIA"" style=""position:absolute;left:30px;top:45px;width:96px;height:35px;z-index:6;"">";


 //s += "<input type=""Button"" id=""Button1"" onclick=""location.href=""192.168.1.1/stop"" name="""" value=""STOP"" style=""position:absolute;left:30px;top:90px;width:96px;height:35px;z-index:6;"">";

 //s += "<input type=""Button"" id=""Button1"" onclick=""location.href=""192.168.1.1/reset"" name="""" value=""RESET"" style=""position:absolute;left:30px;top:135px;width:96px;height:35px;z-index:6;"">";

 //s += "<input type=""Button"" id=""Button1"" onclick=""location.href=""192.168.1.1/pausa"" name="""" value=""PAUSA"" style=""position:absolute;left:30px;top:180px;width:96px;height:35px;z-index:6;"">";



 s +=  "Stato:" + stringa;
 s += "";
  s +=  "Orologio:" + orologio1; 
  s += "</html>\n";
//------------------------------------

//------------------------------------
//s += temp() ;
//s += float(t);

 // Serial.print temp();
  //Serial.println(temp());
  // Send the response to the client
  
  client.print(s);


  // The client will actually be disconnected
  // when the function returns and 'client' object is detroyed
}

void setupWiFi()
{
  WiFi.mode(WIFI_AP);

  // Do a little work to get a unique-ish name. Append the
  // last two bytes of the MAC (HEX'd) to "Thing-":
  uint8_t mac[WL_MAC_ADDR_LENGTH];
  WiFi.softAPmacAddress(mac);
  String macID = String(mac[WL_MAC_ADDR_LENGTH - 2], HEX) +
                 String(mac[WL_MAC_ADDR_LENGTH - 1], HEX);
  macID.toUpperCase();
  String AP_NameString = "ServLavast"; // + macID;

  char AP_NameChar[AP_NameString.length() + 1];
  memset(AP_NameChar, 0, AP_NameString.length() + 1);

  for (int i = 0; i < AP_NameString.length(); i++)
    AP_NameChar[i] = AP_NameString.charAt(i);


// IPAddress Ip(192, 168, 1, 1);
 // IPAddress NMask(255, 255, 255, 0);
 IPAddress    apIP(192, 168, 1, 1); 
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));   // subnet FF FF FF 00
  WiFi.softAP(AP_NameChar, WiFiAPPSK);
}

void initHardware()
{
 // Serial.begin(115200);
  // Don't need to set ANALOG_PIN as input,
  // that's all it can be.
}




void Lavastoviglie(){
if (stringa == "stop"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" Stop");
  orologio1=0;
   intervallo = 60;
  }
if (stringa == "pausa"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  }

  if (stringa == "reset"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  orologio1=0;
   intervallo = 60;
  stringa = "avvia";
  }
  
  
if (stringa == "avvia") {

    orologio1 = orologio1 + 1;

Serial.println(orologio1 );

//Serial.print( char(13) );

if (orologio1 < 14) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" <30");
  }

  if ((orologio1 > 20) and (orologio1<1800)){
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" >30");
  }

   if  ((orologio1 > 1800) and (orologio1 < 1830)) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
  digitalWrite(sapone, 0);
  Serial.println(" >1800 <1830");
  
  }

if  ((orologio1 > 1830) and (orologio1 < 7200)) {
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 0);
  if (temp() >tempset){
  Serial.println("-Spegnomento resistenza-");
   digitalWrite(riscalda, 1);

  }
  
 
  if  ((orologio1 > 4200) and (orologio1 < 5200)) {
  digitalWrite(riscalda, 1);
  digitalWrite(sapone, 1);
  }

  if  ((orologio1 > 6300) and (orologio1 < 6500)) {
  digitalWrite(riscalda, 1);
  }
  
  }




if  (orologio1 > 7270) {
  digitalWrite(scarico, 0);
  digitalWrite(lavaggio, 1);
  digitalWrite(riscalda, 1);
}

if  ((orologio1 > 7300)and(orologio1 < 7350)) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 // stringa = "stop";
  }

 if  ((orologio1 > 7350)and(orologio1 < 8250)) {
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 0);
  if (temp() >tempset){
  Serial.println("-Spegnomento resistenza-");
   digitalWrite(riscalda, 1);

  }
 digitalWrite(sapone, 1);
 // stringa = "stop";
  } 
  if  (orologio1 > 8250) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 // stringa = "stop";
  } 
  
if  (orologio1 > 8300) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
  stringa = "stop";
  } 

  

  
delay(1000);}
  }





void Lavastoviglie_p2(){
if (stringa == "stop"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" Stop");
   intervallo = 60;
  orologio1=0;
  }
if (stringa == "pausa"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  }

  if (stringa == "reset"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  orologio1=0;
   intervallo = 60;
  stringa = "avvia";
  }
  
  
if (stringa == "avvia") {

    orologio1 = orologio1 + 1;

Serial.println(orologio1 );

//Serial.print( char(13) );

if (orologio1 < 14) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" <30");
  }

  if ((orologio1 > 20) and (orologio1<1800)){
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" >30");
  }

   if  ((orologio1 > 1800) and (orologio1 < 1830)) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 0);
  Serial.println(" >1800 <1830");
  
  }

if  ((orologio1 > 1830) and (orologio1 < 10200)) {
   
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 0);
  if (temp() >tempset){
  Serial.println("-Spegnomento resistenza-");
   digitalWrite(riscalda, 1);

  }
//900 sono 15 min
  if  ((orologio1 > 4000) and (orologio1 < 4800)) {
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  }
  
 if  ((orologio1 > 5800) and (orologio1 < 6800)) {
  digitalWrite(riscalda, 1);
  }

  if  ((orologio1 > 7800) and (orologio1 < 8800)) {
  digitalWrite(riscalda, 1);
  }

   if  ((orologio1 > 10000) and (orologio1 < 8800)) {
  digitalWrite(riscalda, 1);
  }
  
  
  }


if  (orologio1 > 10270) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 
  }

if  ((orologio1 > 10300)and(orologio1 < 11300)) {
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 0);
 digitalWrite(sapone, 1);
 if (temp() >tempset){
  Serial.println("-Spegnomento resistenza-");
   digitalWrite(riscalda, 1);

  }
 //stringa = "stop";
  }

  if  ((orologio1 > 11300)and(orologio1 < 11350)) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 //stringa = "stop";
  }
   if  (orologio1 > 11350) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 stringa = "stop";
  }


  

  
delay(1000);}
  }



  void Lavastoviglie_p3(){
if (stringa == "stop"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" Stop");
  orologio1=0;
   intervallo = 60;
  }
if (stringa == "pausa"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  }

  if (stringa == "reset"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  orologio1=0;
   intervallo = 60;
  stringa = "avvia";
  }
  
  
if (stringa == "avvia") {

    orologio1 = orologio1 + 1;

Serial.println(orologio1 );

//Serial.print( char(13) );

if (orologio1 < 14) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" <30");
  }

  if ((orologio1 > 20) and (orologio1<1800)){
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" >30");
  }

   if  ((orologio1 > 1800) and (orologio1 < 1830)) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 0);
  Serial.println(" >1800 <1830");
  
  }

if  ((orologio1 > 1830) and (orologio1 < 10200)) {
    
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  //digitalWrite(riscalda, 0);
//900 sono 15 min
  if  ((orologio1 > 4000) and (orologio1 < 4800)) {
  digitalWrite(riscalda, 1);
  digitalWrite(sapone, 1);
  }
  
 if  ((orologio1 > 5800) and (orologio1 < 6800)) {
  digitalWrite(riscalda, 1);
  }

  if  ((orologio1 > 7800) and (orologio1 < 8800)) {
  digitalWrite(riscalda, 1);
  }

   if  ((orologio1 > 10000) and (orologio1 < 8800)) {
  digitalWrite(riscalda, 1);
  }
  
  
  }



if  (orologio1 > 10270) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
  }
  
if  ((orologio1 > 10300)and(orologio1 < 11100)) {
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 0);
  if (temp() >tempset){
  Serial.println("-Spegnomento resistenza-");
   digitalWrite(riscalda, 1);

  }
 digitalWrite(sapone, 1);
 //stringa = "stop";
  }

  if  ((orologio1 > 11100)and(orologio1 < 11150)) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 //stringa = "stop";
  }
  if  (orologio1 > 11150) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 stringa = "stop";
  }
  


  

  
delay(1000);}
  }
//---------------- programma impulsi

void Lavastoviglie_p4(){
if (stringa == "stop"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" Stop");
  orologio1=0;
   intervallo = 60;
  }
if (stringa == "pausa"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  }

  if (stringa == "reset"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  orologio1=0;
   intervallo = 60;
  stringa = "avvia";
  }
  
  
if (stringa == "avvia") {

    orologio1 = orologio1 + 1;

Serial.println(orologio1 );

//Serial.print( char(13) );

if (orologio1 < 14) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" <30");
  }

  if ((orologio1 > 20) and (orologio1<1800)){
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" >30");
  }

  if ((orologio1 > 120) and (orologio1<1000)){
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 0);
  if (temp() >tempset){
  Serial.println("-Spegnomento resistenza-");
   digitalWrite(riscalda, 1);

  }
  Serial.println(" >30");
  }
  if ((orologio1 > 240) and (orologio1<280)){
  digitalWrite(lavaggio, 1);
  //digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" >30");
  }
  

   if  ((orologio1 > 1800) and (orologio1 < 1830)) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 0);
  Serial.println(" >1800 <1830");
  
  }

if  ((orologio1 > 1830) and (orologio1 < 10200)) {
    
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 0);
  if (temp() >tempset){
  Serial.println("-Spegnomento resistenza-");
   digitalWrite(riscalda, 1);

  }
//900 sono 15 min

 if  ((orologio1 > 2000 +  intervallo ) and (orologio1 < 2030 +  intervallo )and(orologio1 < 5030)) {
  digitalWrite(lavaggio, 1);
   intervallo = intervallo + 100;
   Serial.println("attesa impulso ");
  }
  if  (orologio1 > 2900) {
  digitalWrite(sapone, 1);
   Serial.println("rigen ");
  }

  

  

  if  ((orologio1 > 4000) and (orologio1 < 4800)) {
  digitalWrite(riscalda, 1);
  }
  
 if  ((orologio1 > 5800) and (orologio1 < 6800)) {
  digitalWrite(riscalda, 1);
  }

  if  ((orologio1 > 7800) and (orologio1 < 8800)) {
  digitalWrite(riscalda, 1);
  }

   if  ((orologio1 > 10000) and (orologio1 < 8800)) {
  digitalWrite(riscalda, 1);
  }
  
  
  }


if  (orologio1 > 10270) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 stringa = "stop";
  }

if  (orologio1 > 10300) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 stringa = "stop";
  }
  
}
delay(1000);}
  
void rigenerazione(){
  if (stringa == "stop"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 1);
  Serial.println(" Stop");
  orologio1=0;
   intervallo = 60;
  }
if (stringa == "pausa"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  }

  if (stringa == "reset"){
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
  Serial.println(" InPausa");
  orologio1=0;
   intervallo = 60;
  stringa = "avvia";
  }
  
  
if (stringa == "avvia") {

    orologio1 = orologio1 + 1;

Serial.println(orologio1 );

//Serial.print( char(13) );

if (orologio1 < 14) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 0);
  Serial.println(" <30");
  }

  if (orologio1 > 20){
  digitalWrite(lavaggio, 0);
  digitalWrite(scarico, 1);
 digitalWrite(sapone, 0);
  Serial.println(" >30");
  }

   if  ((orologio1 > 600)) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 0);
  digitalWrite(riscalda, 1);
   digitalWrite(sapone, 0);
  Serial.println(" rigenerazione end");
  
  }



  if  (orologio1 > 650) {
  digitalWrite(lavaggio, 1);
  digitalWrite(scarico, 1);
  digitalWrite(riscalda, 1);
 digitalWrite(sapone, 1);
 stringa = "stop";
  }
  


  

  

  
  
  
  

  
delay(1000);
  }
}


  
  
int temp() {
  // Wait a few seconds between measurements.
  delay(1000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
//    return ("Failed to read from DHT sensor!");
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);
int Temp;

 /* Temp +=("Humidity: ");
  Temp +=(h);
  Temp +=(" %\t");
  Temp +=("Temperature: ");
  Temp +=(t);
  Temp +=(" *C ");
  Temp +=(f);
  Temp +=(" *F\t");
  Temp +=("Heat index: ");
  Temp +=(hic);
  Temp +=(" *C ");
  Temp +=(hif);
  Temp +=(" *F");*/
  if (t > 30)
  Serial.println("temperatura maggiore di 30!");
  Temp =(t);
  
  return Temp;
}



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 01/07/2017 07:27:02

Da remoto non ci sono problemi e gia fatto per partire se condividi l ip XD.... ma se un hacker malintenzionato accede troverai le stoviglie brillanti....



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

Riccardo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:2930

Stato:



Inviato il: 01/07/2017 08:52:30

Se accede gli farei pagare la bolletta dell'acqua,oramai è più cara della birraFaccine/emoticon_cincin.gif



---------------
Q.CELLS Q.PEAK 4575W sud-est
Solar Frontier CIS 850W sud-ovest
Inverter PIP5048MST
Batterie:LifePo4 Seplos MASON-48280-DIY EVE280AK 28,6 kWh
Scaldabagno Ferroli 30l 1500w
Scaldabagno Ariston 80l 1200w

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 01/07/2017 09:30:41

Oppure mentre lui ci accende la lavastoviglie noi gli svuotiamo il conto e lo abboniamo a mypay di wind XD



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

Il_Salentino
GigaWatt


Gruppo:Utente
Messaggi:919

Stato:



Inviato il: 01/07/2017 14:58:19

Vincent, io sono in pensione, mi vuoi come tuo aiutante? non è richiesto compenso, mi accontento di conoscere qualcosa che ancora non conosco. Ciao



---------------
1 inverter PIP 5048MST + 12 pannelli TIANWEI 230Wp + 18 pannelli amorfi da 75Wp + 28 pacchi da 200 celle 18650 litio 600Ah
1 inverter PIP 5048MSD + 3 pannelli junko 255 Wp + 3 pannelli Tianwhei 230 Wp + 12 batterie 4 V 200 Ah
1 generatore eolico da 1000W autocostruito.
Boiler Ariston 150l

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 01/07/2017 22:28:17

Ho visto il progetto del solar tracker che stai facendo io devo ancora realizzare la struttura in metallo x 9 pannelli se hai arduino 1 fotoresistenza e 2 rele optoisolati posso darti una manno ...in effetti se hai la scheda tipo cancello scorrevole puoi notare che il finecorsa e temporizzato su quel tipo di braccio attuatore quindi con arduino 2 rele possiamo creare la logica di funzionamento che segue il sole ..pilotarlo da smartphone e con 2 micro e 1 piastra sagomata opportunamente regoli min e max inclinazione per far si che dopo 60 min del max ritorni in posizione x l alba ..questa era il mio progetto/idea x il solar tracker solo che per carenza di meteriale non ho ancora realizzato ... In compenso mi sono fatto la piscina XD riparato un lombardini diesel una notosega e risparmiato 200€ sulla lavastoviglie ecc ecc

Piano piano andiamo avanti XD
Fammi sapere se ti puo essere utile



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

Il_Salentino
GigaWatt


Gruppo:Utente
Messaggi:919

Stato:



Inviato il: 02/07/2017 12:59:32

Il solar tracker è pronto per essere montato, ho usato il motore a pistone e non la scheda del cancello scorrevole, il mio è ad anta. Ho diverso materiale di arduino che in passato volevo realizzare il powermeter, poi ho comprato anche delle fotoresistenze che volevo utilizzare arduino per l'inseguitore solare, ma ho comprato il solar tracker ed un altro inseguitore che deve arrivare che ha la centralina ed il telecomando per l'utilizzo. Siccome mi sto interessando ad abbassare la temperatura dell'inverter e sebbene oggi ho utilizzato il fono alla massima velocità, ma per farlo ho dovuto staccare le ventole, la temperatura a 60° era ed è rimasta sempre la stessa anche con il fono. Ho rimesso tutto come stava, ma ho notato che stanotte è scesa a 56°. Ho letto che sei dissposto a prendere l'aereo per risolvere problemi, io faccio di più ti vengo a prendere e vediamo se sistemiamo la temperatura dell'inverter. Dimmi quando e ti vengo a prendere. In casa ho tanto materiale che potesti fare quello che vuoi.



---------------
1 inverter PIP 5048MST + 12 pannelli TIANWEI 230Wp + 18 pannelli amorfi da 75Wp + 28 pacchi da 200 celle 18650 litio 600Ah
1 inverter PIP 5048MSD + 3 pannelli junko 255 Wp + 3 pannelli Tianwhei 230 Wp + 12 batterie 4 V 200 Ah
1 generatore eolico da 1000W autocostruito.
Boiler Ariston 150l

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 02/07/2017 13:20:38

Eh l aereo era un modo di dire xk abbiamo un aereo semi acrobatico a societa con un amico xD e io sfortunatamente non ci vado mai vuoi x il poco tempo vuoi per il cattivo tempo ma quest estate mi devo fare tutto il litorale

come riesco ad avere un po di tempo ci prendiamo un caffe ma tieni presente che oggi che e domenica ho riparato la videosorveglianza di casa XD woow



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

Il_Salentino
GigaWatt


Gruppo:Utente
Messaggi:919

Stato:



Inviato il: 02/07/2017 14:34:09

Al mare dove vai sull'adriatico o sullo ionio? io spesso in passato andavo a Campomarino o SanPietro in Bevagna. Ora al mare pur avendo Porto Cesareo a 20 Km non ci vado mai. Tu lavori alle dipendenze o sei autonomo? Io la videosorveglianza non è necessario che la riparo, funziona sempre anche con app su smarphone ho telecamere Dlink e dal sito controllo la mia abitazione.



---------------
1 inverter PIP 5048MST + 12 pannelli TIANWEI 230Wp + 18 pannelli amorfi da 75Wp + 28 pacchi da 200 celle 18650 litio 600Ah
1 inverter PIP 5048MSD + 3 pannelli junko 255 Wp + 3 pannelli Tianwhei 230 Wp + 12 batterie 4 V 200 Ah
1 generatore eolico da 1000W autocostruito.
Boiler Ariston 150l

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 02/07/2017 16:41:47

Torrw lapillo ma ancora 1 volta non ci so andato quest anno
Autonomo ma lavoro anche con ditte preferisco scegliere ma ci sonk ditte con cui ho rapporti tipo amicizia li e un altro discorso

Ieri sera sembra ci fosse qualche intruso nei paraggi 3:05 circa quindi ho posizionato le cam sulle varie vie di accesso/passaggio non si sa mai



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 
 InizioPagina
 

Pagine: (2)   [1]   2    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum