Свет для аквариума + WIFI + расцвет/закат

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

Светильник для аквариума (полюдариума) .

расцвет и закат , происходит в определённое время прописанное в скетче , это можно изменить.

а так-же длительность расцвета и заката , от полной темноты до заданной яркости длиться примерно 2 часа

заданная яркость ,это установленные показатели яркости всех диодов в приложении blynk https://blynk.io/

при этом расцвет происходит плавно, начиная с теплого света пероходя в холодный и uv , соответственно закат это переход с установленных параметров в полную темноту , с понижением яркости начиная с коротких синих волн и заканчивая красным закатом.

видео https://www.instagram.com/p/B9MSUlyoUaQ/


#define BLYNK_PRINT Serial

#include <Wire.h>
#include <DS3231.h>
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 12
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

char auth[] = "*********************************";


char ssid[] = "*********";
char pass[] = "********";



long CT;
long i;




long s;
long m;
long h;

DS3231 clock;
RTCDateTime dt;


#define ledr D5 // 
#define ledg D9
#define leduv D10

#define ledb D0
#define led10 D7
#define led3 D8

#define rain D3
#define par D4


int sli10 = 0;
int sli3 = 0;
int slir = 0;
int slig = 0;
int slib = 0;
int sliuv =0;

BLYNK_WRITE(V2)
{sli10 = param.asInt();}

BLYNK_WRITE(V3)
{sli3 = param.asInt();}

BLYNK_WRITE(V4)
{slib = param.asInt();}

BLYNK_WRITE(V5)
{slir = param.asInt();}

BLYNK_WRITE(V6)
{slig = param.asInt();}

BLYNK_WRITE(V7)
{sliuv = param.asInt();}


int b1 = 0;
BLYNK_WRITE(V9)
{b1 = param.asInt();}

int b2 = 0;
BLYNK_WRITE(V8)
{b2 = param.asInt();}

int b = 0;
BLYNK_WRITE(V1)
{b = param.asInt();}

int ir;
int ig;
int ib;
int i3;
int i10;
int iuv;


BLYNK_CONNECTED() {
    Blynk.syncAll();
}

void setup()
{
  // Debug console
  Serial.begin(115200);
  
  Wire.begin(); 
   clock.begin();

sensors.begin();


  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);

   // clock.setDateTime(2020, 22, 01, 20, 27, 20);

  

    pinMode(ledr, OUTPUT);
    pinMode(ledg, OUTPUT);
    pinMode(ledb, OUTPUT);

    pinMode(led3, OUTPUT);
    pinMode(led10, OUTPUT);
    pinMode(leduv, OUTPUT);
  
    pinMode(rain, OUTPUT);
    pinMode(par, OUTPUT);


digitalWrite(rain, HIGH);
digitalWrite(par, HIGH);


   
}

void loop()
{


  
  Blynk.run();

dt = clock.getDateTime();
s = (dt.second);
m = (dt.minute);
h = (dt.hour);

CT = (h * 3600) + (m * 60) + (s);


digitalWrite (rain, b1);
digitalWrite (par, b2);

if (b==0)
{ 
analogWrite(ledg, slig);
analogWrite(ledb, slib);
analogWrite(ledr, slir);
analogWrite(led3, sli3);
analogWrite(led10, sli10);
analogWrite(leduv, sliuv);
}




if (b==1)
{

if (h < 12){  
 
 i3 = map (CT, 25200, 43200, 0 , sli3);
 ir = map (CT, 26000, 43200, 0 , slir);
 ig = map (CT, 27000, 43200, 0 , slig);
 i10 = map(CT, 29000, 43200, 0 , sli10);
 ib = map (CT, 30800, 43200, 0 , slib);
 iuv = map(CT, 29000, 43200, 0 , sliuv);
}
else
{

 i3 = map (CT, 64800, 79500, sli3 , 0);
 ir = map (CT, 64800, 80000, slir , 0);
 ig = map (CT, 64800, 77000, slig , 0);
 i10 = map(CT, 64800, 72000, sli10 ,0);
 ib = map (CT, 64800, 70800, slib , 0);
 iuv = map(CT, 64800, 70500, sliuv ,0); 
} 


 i10 = constrain (i10, 0 , sli10);
  i3 = constrain (i3 , 0 , sli3) ;
  ir = constrain (ir , 0 , slir) ;
  ig = constrain (ig , 0 , slig) ;
  ib = constrain (ib , 0 , slib) ;
 iuv = constrain (iuv, 0 , sliuv) ;


analogWrite(ledg, ig);
analogWrite(ledb, ib);
analogWrite(ledr, ir);
analogWrite(led3, i3);
analogWrite(led10,i10);
analogWrite(leduv,iuv);
 
}



String (ggg);
sensors.requestTemperatures();
ggg = (sensors.getTempCByIndex(0));

if (s>10){

Blynk.virtualWrite(V10,ggg);
}
else{
// Blynk.virtualWrite(V10,i10); 
Blynk.virtualWrite(V10,( String(clock.dateFormat("H:i", dt))));  
}


Serial.println (ggg);

Serial.print (CT);

// delay (1000);
}

 

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

библиотеки https://yadi.sk/d/GZWz7JdYa4vpYg