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

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

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

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

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

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

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

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

001#define BLYNK_PRINT Serial
002 
003#include <Wire.h>
004#include <DS3231.h>
005#include <SPI.h>
006#include <ESP8266WiFi.h>
007#include <BlynkSimpleEsp8266.h>
008 
009#include <OneWire.h>
010#include <DallasTemperature.h>
011#define ONE_WIRE_BUS 12
012OneWire oneWire(ONE_WIRE_BUS);
013DallasTemperature sensors(&oneWire);
014 
015char auth[] = "*********************************";
016 
017 
018char ssid[] = "*********";
019char pass[] = "********";
020 
021 
022 
023long CT;
024long i;
025 
026 
027 
028 
029long s;
030long m;
031long h;
032 
033DS3231 clock;
034RTCDateTime dt;
035 
036 
037#define ledr D5 //
038#define ledg D9
039#define leduv D10
040 
041#define ledb D0
042#define led10 D7
043#define led3 D8
044 
045#define rain D3
046#define par D4
047 
048 
049int sli10 = 0;
050int sli3 = 0;
051int slir = 0;
052int slig = 0;
053int slib = 0;
054int sliuv =0;
055 
056BLYNK_WRITE(V2)
057{sli10 = param.asInt();}
058 
059BLYNK_WRITE(V3)
060{sli3 = param.asInt();}
061 
062BLYNK_WRITE(V4)
063{slib = param.asInt();}
064 
065BLYNK_WRITE(V5)
066{slir = param.asInt();}
067 
068BLYNK_WRITE(V6)
069{slig = param.asInt();}
070 
071BLYNK_WRITE(V7)
072{sliuv = param.asInt();}
073 
074 
075int b1 = 0;
076BLYNK_WRITE(V9)
077{b1 = param.asInt();}
078 
079int b2 = 0;
080BLYNK_WRITE(V8)
081{b2 = param.asInt();}
082 
083int b = 0;
084BLYNK_WRITE(V1)
085{b = param.asInt();}
086 
087int ir;
088int ig;
089int ib;
090int i3;
091int i10;
092int iuv;
093 
094 
095BLYNK_CONNECTED() {
096    Blynk.syncAll();
097}
098 
099void setup()
100{
101  // Debug console
102  Serial.begin(115200);
103   
104  Wire.begin();
105   clock.begin();
106 
107sensors.begin();
108 
109 
110  Blynk.begin(auth, ssid, pass);
111  // You can also specify server:
112  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);
113  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);
114 
115   // clock.setDateTime(2020, 22, 01, 20, 27, 20);
116 
117   
118 
119    pinMode(ledr, OUTPUT);
120    pinMode(ledg, OUTPUT);
121    pinMode(ledb, OUTPUT);
122 
123    pinMode(led3, OUTPUT);
124    pinMode(led10, OUTPUT);
125    pinMode(leduv, OUTPUT);
126   
127    pinMode(rain, OUTPUT);
128    pinMode(par, OUTPUT);
129 
130 
131digitalWrite(rain, HIGH);
132digitalWrite(par, HIGH);
133 
134 
135    
136}
137 
138void loop()
139{
140 
141 
142   
143  Blynk.run();
144 
145dt = clock.getDateTime();
146s = (dt.second);
147m = (dt.minute);
148h = (dt.hour);
149 
150CT = (h * 3600) + (m * 60) + (s);
151 
152 
153digitalWrite (rain, b1);
154digitalWrite (par, b2);
155 
156if (b==0)
157{
158analogWrite(ledg, slig);
159analogWrite(ledb, slib);
160analogWrite(ledr, slir);
161analogWrite(led3, sli3);
162analogWrite(led10, sli10);
163analogWrite(leduv, sliuv);
164}
165 
166 
167 
168 
169if (b==1)
170{
171 
172if (h < 12){ 
173  
174 i3 = map (CT, 25200, 43200, 0 , sli3);
175 ir = map (CT, 26000, 43200, 0 , slir);
176 ig = map (CT, 27000, 43200, 0 , slig);
177 i10 = map(CT, 29000, 43200, 0 , sli10);
178 ib = map (CT, 30800, 43200, 0 , slib);
179 iuv = map(CT, 29000, 43200, 0 , sliuv);
180}
181else
182{
183 
184 i3 = map (CT, 64800, 79500, sli3 , 0);
185 ir = map (CT, 64800, 80000, slir , 0);
186 ig = map (CT, 64800, 77000, slig , 0);
187 i10 = map(CT, 64800, 72000, sli10 ,0);
188 ib = map (CT, 64800, 70800, slib , 0);
189 iuv = map(CT, 64800, 70500, sliuv ,0);
190}
191 
192 
193 i10 = constrain (i10, 0 , sli10);
194  i3 = constrain (i3 , 0 , sli3) ;
195  ir = constrain (ir , 0 , slir) ;
196  ig = constrain (ig , 0 , slig) ;
197  ib = constrain (ib , 0 , slib) ;
198 iuv = constrain (iuv, 0 , sliuv) ;
199 
200 
201analogWrite(ledg, ig);
202analogWrite(ledb, ib);
203analogWrite(ledr, ir);
204analogWrite(led3, i3);
205analogWrite(led10,i10);
206analogWrite(leduv,iuv);
207  
208}
209 
210 
211 
212String (ggg);
213sensors.requestTemperatures();
214ggg = (sensors.getTempCByIndex(0));
215 
216if (s>10){
217 
218Blynk.virtualWrite(V10,ggg);
219}
220else{
221// Blynk.virtualWrite(V10,i10);
222Blynk.virtualWrite(V10,( String(clock.dateFormat("H:i", dt)))); 
223}
224 
225 
226Serial.println (ggg);
227 
228Serial.print (CT);
229 
230// delay (1000);
231}

 

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

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

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

Алекс! Супер! 

b707
Offline
Зарегистрирован: 26.05.2017

Marchenko пишет:

Алекс! Супер! 

кто это?

morgan_black
Offline
Зарегистрирован: 27.11.2020

Интересно бы по комплектующим более подробную информацию получить.

iStarCom
Offline
Зарегистрирован: 21.06.2020

Неплохо так получилось

iStarCom
Offline
Зарегистрирован: 21.06.2020

b707 пишет:

Marchenko пишет:

Алекс! Супер! 

кто это?

Походу Гайвер)

alexhaf
Offline
Зарегистрирован: 01.02.2019

Добрый вечер! Увидел ваш проект и хотел спросить, что умеет он? Закат рассвет + температура?

kardasei
Offline
Зарегистрирован: 29.09.2019

а есть схема для сборки данного контроллера?