Bij sunset lampen aan en 22:40 weer uit
10 berichten
• Pagina 1 van 1
- bertgroothuis
- Berichten: 23
- Geregistreerd: 24 Jul 2020, 14:55
Bij sunset lampen aan en 22:40 weer uit
Hallo allemaal,
In mij Home Lights project wil ik bij sunset de lampen aan zetten en om (ongeveer) 22:40 weer uit zetten.
Nu doe ik dat handmatig maar wil dat automatiseren.
Ik heb een sketch gevonden. Zie sketch.
Het resultaat in de seriële monitor geeft bijvoorbeeld 17:40 als zonsondergang.
Deze waarde wil ik in een variabele zetten en zo de tijd vergelijken tot aan 22:40 om de lampen weer uit te doen.
Ik kom er niet uit of ik dat in deze notitie (17:50) of moet omreken naar milliseconden.
Diverse sketches van internet gehaald maar daar word ik niet echt wijzer van.
Graag advies en misschien een voorbeeld waar ik verder mee kan.
Hartelijk dank.
Bert
In mij Home Lights project wil ik bij sunset de lampen aan zetten en om (ongeveer) 22:40 weer uit zetten.
Nu doe ik dat handmatig maar wil dat automatiseren.
Ik heb een sketch gevonden. Zie sketch.
Het resultaat in de seriële monitor geeft bijvoorbeeld 17:40 als zonsondergang.
Deze waarde wil ik in een variabele zetten en zo de tijd vergelijken tot aan 22:40 om de lampen weer uit te doen.
Ik kom er niet uit of ik dat in deze notitie (17:50) of moet omreken naar milliseconden.
Diverse sketches van internet gehaald maar daar word ik niet echt wijzer van.
Graag advies en misschien een voorbeeld waar ik verder mee kan.
Hartelijk dank.
Bert
- Code: Alles selecteren
//======================================================================================================================
// SolarCalculator Library for Arduino example sketch: SunriseSunset.ino
//
// Calculate the times of sunrise, solar noon, and sunset for a given date and location.
//
// Tested with Arduino IDE 1.8.19 and Arduino Uno
//======================================================================================================================
#include <SolarCalculator.h>
void setup()
{
Serial.begin(9600);
// Date
int year = 2023;
int month = 11;
int day = 14;
int urentiental;
int urenenkel;
int minutentiental;
int minutenenkel;
int urentotaal;
// Location
double latitude = 52.2;
double longitude = 6.1;
int utc_offset = 1;
double transit, sunrise, sunset;
// Calculate the times of sunrise, transit, and sunset, in hours (UTC)
calcSunriseSunset(year, month, day, latitude, longitude, transit, sunrise, sunset);
// Get the approximate times (minimum program size) (iterations = 0)
//calcSunriseSunset(year, month, day, latitude, longitude, transit, sunrise, sunset, SUNRISESET_STD_ALTITUDE, 0);
// Print results
char str[6];
Serial.println();
Serial.println(hoursToString(sunrise + utc_offset, str));
Serial.println(hoursToString(transit + utc_offset, str));
Serial.println(hoursToString(sunset + utc_offset, str));
Serial.println();
}
void loop()
{
}
// Rounded HH:mm format
char * hoursToString(double h, char *str)
{
int m = int(round(h * 60));
int hr = (m / 60) % 24;
int mn = m % 60;
str[0] = (hr / 10) % 10 + '0';
str[1] = (hr % 10) + '0';
str[2] = ':';
str[3] = (mn / 10) % 10 + '0';
str[4] = (mn % 10) + '0';
str[5] = '\0';
return str;
}
Advertisement
Re: Bij sunset lampen aan en 22:40 weer uit
Bert, je doet helemaal niets in de loop.
Hoe denk je dat de controller dan iets kan vergelijken en er eventueel een actie op kan ondernemen?
Het main programma zou er in jip en janneke taal bijvoorbeeld zo uit kunnen zien:
1 Haal de tijd van internet (of een andere bron)
2 vergelijk de van internet gehaalde tijd met de ingestelde tijden.
3 is de internet tijd gelijk aan de aan tijd, doe dan de lampen aan.
4 is de internet tijd gelijk aan de uit tijd, doe dan de lampen uit.
5 ga naar het begin van het main programma (wat gelijk staat aan dit is het einde van de instucties)
suc7 met je zoektocht.
Hoe denk je dat de controller dan iets kan vergelijken en er eventueel een actie op kan ondernemen?
Het main programma zou er in jip en janneke taal bijvoorbeeld zo uit kunnen zien:
1 Haal de tijd van internet (of een andere bron)
2 vergelijk de van internet gehaalde tijd met de ingestelde tijden.
3 is de internet tijd gelijk aan de aan tijd, doe dan de lampen aan.
4 is de internet tijd gelijk aan de uit tijd, doe dan de lampen uit.
5 ga naar het begin van het main programma (wat gelijk staat aan dit is het einde van de instucties)
suc7 met je zoektocht.
- bertgroothuis
- Berichten: 23
- Geregistreerd: 24 Jul 2020, 14:55
Re: Bij sunset lampen aan en 22:40 weer uit
Hoi Frits1956,
Je hebt gelijk. Ik gebruik een DS1302 voor de tijd. Dat heb ik in een andere sketch werkend. Ik ben niet compleet geweest merk ik.
Deze 2 twee sketches wil ik dan samenvoegen tot 1 waar dan de tijd word vergeleken. In bovenstaande sketch wil ik in de loop een vergelijking toevoegen om te testen op de tijd en zodoende de lamp aan en later weer uit te kunnen zetten.
Wat mij niet lukt is om een vergelijking te maken die op deze tijden test. Dat wil ik testen in deze sketch. en dat later samenvoegen. Elk dingetje wil ik eigenlijk apart testen om het overzicht te houden. Ik ben geen pro in programmeren.
Ik hoop dat het zo wat duidelijker is.
Groet Bert.
Je hebt gelijk. Ik gebruik een DS1302 voor de tijd. Dat heb ik in een andere sketch werkend. Ik ben niet compleet geweest merk ik.
Deze 2 twee sketches wil ik dan samenvoegen tot 1 waar dan de tijd word vergeleken. In bovenstaande sketch wil ik in de loop een vergelijking toevoegen om te testen op de tijd en zodoende de lamp aan en later weer uit te kunnen zetten.
Wat mij niet lukt is om een vergelijking te maken die op deze tijden test. Dat wil ik testen in deze sketch. en dat later samenvoegen. Elk dingetje wil ik eigenlijk apart testen om het overzicht te houden. Ik ben geen pro in programmeren.
Ik hoop dat het zo wat duidelijker is.
Groet Bert.
Re: Bij sunset lampen aan en 22:40 weer uit
Allereerst een opmerking over de DS1302. Mijn ervaring is dat deze niet gelijk loopt.
Verder lijkt het erop dat je de sunset tijd van internet afhaalt. Dat zou inhouden dat je een internet verbinding hebt.
Als je een internet verbinding hebt, waarom gebruik je de tijd van dat internet dan niet?
Verder lijkt het mij onzin om naar een string te converteren. Je hebt allerlei int variabelen. Prima om mee te rekenen en te vergelijken lijkt mij.
suc7
Verder lijkt het erop dat je de sunset tijd van internet afhaalt. Dat zou inhouden dat je een internet verbinding hebt.
Als je een internet verbinding hebt, waarom gebruik je de tijd van dat internet dan niet?
Verder lijkt het mij onzin om naar een string te converteren. Je hebt allerlei int variabelen. Prima om mee te rekenen en te vergelijken lijkt mij.
suc7
- Harm J Seef
- Berichten: 38
- Geregistreerd: 20 Jul 2022, 14:40
Re: Bij sunset lampen aan en 22:40 weer uit
Wellicht is het ook wel zo handig om even pas op de plaats te maken, en goed na te denken over waar je precies mee bezig bent, en vooral wat je wil.
Ja, het is inderdaad mogelijk om op internet te kijken hoe laat het is, om vervolgens via een lengte- en breedtegraad-berekening en datum te herleiden,
zodat berekend kan worden hoe laat de zon op een jouw locatie -plus/min zomertijd- ondergaat,
om daarmee een buitenlamp aan te zetten. Dit wordt een ‘Astro-timer’ genoemd.
Ik denk dat een schemersensor in combinatie met een schakelklok veel eenvoudiger is.
De schakelklok gaat om 15:00 aan. De klokbediende schemerschakelaar staat in serie met de buitenlamp.
Om 22:40 schakelt de klok alles uit. That’s all folks!
Natuurlijk is programmeren leuker. Gebruik dan een LDR als sensor, en een DCF-RTC als klok.
Voor het programmeren van schakeltijden in een computer, wordt meestal gebruik gemaakt van een epoch-counter.
Dit is in feite een secondenteller die om 24:00 gereset wordt.
Vanuit een RTC kan de huidige hh:mm-tijd teruggerekend worden naar een epochtijd.
22:40 = (22 * 60 * 60 ) + (40 * 60) = 79200 + 2400 = 81600
if ( EpochTime > 81600) { Light = false }
Succes met je project.
Ja, het is inderdaad mogelijk om op internet te kijken hoe laat het is, om vervolgens via een lengte- en breedtegraad-berekening en datum te herleiden,
zodat berekend kan worden hoe laat de zon op een jouw locatie -plus/min zomertijd- ondergaat,
om daarmee een buitenlamp aan te zetten. Dit wordt een ‘Astro-timer’ genoemd.
Ik denk dat een schemersensor in combinatie met een schakelklok veel eenvoudiger is.
De schakelklok gaat om 15:00 aan. De klokbediende schemerschakelaar staat in serie met de buitenlamp.
Om 22:40 schakelt de klok alles uit. That’s all folks!
Natuurlijk is programmeren leuker. Gebruik dan een LDR als sensor, en een DCF-RTC als klok.
Voor het programmeren van schakeltijden in een computer, wordt meestal gebruik gemaakt van een epoch-counter.
Dit is in feite een secondenteller die om 24:00 gereset wordt.
Vanuit een RTC kan de huidige hh:mm-tijd teruggerekend worden naar een epochtijd.
22:40 = (22 * 60 * 60 ) + (40 * 60) = 79200 + 2400 = 81600
if ( EpochTime > 81600) { Light = false }
Succes met je project.
- bertgroothuis
- Berichten: 23
- Geregistreerd: 24 Jul 2020, 14:55
Re: Bij sunset lampen aan en 22:40 weer uit
Hoi Harm,
Dank je. Is het mogelijk om de tijd, bijvoorbeeld 22:40, om te zetten naar een getal? Daar heb ik naar lopen zoeken maar kan niets zinnigs vinden.
Gr. Bert
Dank je. Is het mogelijk om de tijd, bijvoorbeeld 22:40, om te zetten naar een getal? Daar heb ik naar lopen zoeken maar kan niets zinnigs vinden.
Gr. Bert
Re: Bij sunset lampen aan en 22:40 weer uit
Bert, er gaan 60 seconden in een minuut zoals je wel weet en 60 minuten in een uur.
Zoals harm laat zien is 22:40u gelijk aan 81600 seconden na middernacht...... Zie daar je getal
Zoals harm laat zien is 22:40u gelijk aan 81600 seconden na middernacht...... Zie daar je getal
- bertgroothuis
- Berichten: 23
- Geregistreerd: 24 Jul 2020, 14:55
Re: Bij sunset lampen aan en 22:40 weer uit
Dat klopt Frits,
De zonsondergang heeft geen constante tijd. De uitkomst van de SolarCalculator geeft een bepaalde tijd. Bijvoorbeeld 17:05 voor de zonsondergang.
Als ik deze zonsondergang om kan zetten naar een getal kan dat vergelijken om de lampen aan te doen.
En om daar een omrekenslag in te maken kan ik niet vinden.
De tijd om de lampen uit te doen is dan wel constant en daar neem ik dan de waarde 81600 voor.
De zonsondergang heeft geen constante tijd. De uitkomst van de SolarCalculator geeft een bepaalde tijd. Bijvoorbeeld 17:05 voor de zonsondergang.
Als ik deze zonsondergang om kan zetten naar een getal kan dat vergelijken om de lampen aan te doen.
En om daar een omrekenslag in te maken kan ik niet vinden.
De tijd om de lampen uit te doen is dan wel constant en daar neem ik dan de waarde 81600 voor.
- Harm J Seef
- Berichten: 38
- Geregistreerd: 20 Jul 2022, 14:40
Re: Bij sunset lampen aan en 22:40 weer uit
Bert, je mist even de clou. Astro-timers stammen uit begin van de 20e eeuw, toen de halfgeleiders nog ontwikkeld moesten worden.
Om altijd op tijd de nachtverlichting in portieken en trappenhuizen in te schakelen, werden mechanische astro-schakelklokken gebruikt.
Inmiddels is deze techniek achterhaald door de schemer-schakelaar.
Astro-timers worden in bepaalde engelse gemeenten nog steeds gebruikt omdat de lokale wetgeving dat eist. Zoek maar eens op internet onder ‘astro timer’.
Zoals je inmiddels vastgesteld hebt, heeft de zonsondergang (en opgang) geen vaste tijd.
Om de buitenlamp in te schakelen kun je een schemerschakelaar gebruiken.
Dit kan als digitale schemerschakelaar (Aan=donker), of als een ADC-waarde van een aangesloten ldr.
Zoek maar eens op ‘arduino ldr’.
Na 15:00, ofwel EpochTime = (15 x 60 x 60=) 54000, maak je variabele SwitchLdr= true.
if (Epoch > 54000) { SwitchLdr = true}
Voor een ldr als schemerschakelaar gebruik je een analoge ingang.
if (AdcLdr > 123) { Sunset = true ; } else { Sunset = false; }
De buitenlamp wordt aangestuurd vanuit een digitale uitgang.
if (Sunset == true && SwitchLdr == true) { BuitenLamp = HIGH;} else {Buitenlamp = LOW;}
Na 22.40 wordt de buitenlamp uitgeschakeld.
if (Epoch > 81600) { SwitchLdr = false;}
Om altijd op tijd de nachtverlichting in portieken en trappenhuizen in te schakelen, werden mechanische astro-schakelklokken gebruikt.
Inmiddels is deze techniek achterhaald door de schemer-schakelaar.
Astro-timers worden in bepaalde engelse gemeenten nog steeds gebruikt omdat de lokale wetgeving dat eist. Zoek maar eens op internet onder ‘astro timer’.
Zoals je inmiddels vastgesteld hebt, heeft de zonsondergang (en opgang) geen vaste tijd.
Om de buitenlamp in te schakelen kun je een schemerschakelaar gebruiken.
Dit kan als digitale schemerschakelaar (Aan=donker), of als een ADC-waarde van een aangesloten ldr.
Zoek maar eens op ‘arduino ldr’.
Na 15:00, ofwel EpochTime = (15 x 60 x 60=) 54000, maak je variabele SwitchLdr= true.
if (Epoch > 54000) { SwitchLdr = true}
Voor een ldr als schemerschakelaar gebruik je een analoge ingang.
if (AdcLdr > 123) { Sunset = true ; } else { Sunset = false; }
De buitenlamp wordt aangestuurd vanuit een digitale uitgang.
if (Sunset == true && SwitchLdr == true) { BuitenLamp = HIGH;} else {Buitenlamp = LOW;}
Na 22.40 wordt de buitenlamp uitgeschakeld.
if (Epoch > 81600) { SwitchLdr = false;}
- bertgroothuis
- Berichten: 23
- Geregistreerd: 24 Jul 2020, 14:55
Re: Bij sunset lampen aan en 22:40 weer uit
Hoi Harm,
Ik zal dat gaan uitzoeken.
Bedankt.
Gr.Bert
Ik zal dat gaan uitzoeken.
Bedankt.
Gr.Bert
10 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: iopijolo en 9 gasten