Position du Soleil et SalatTime pour Arduino
Position du Soleil et heures de prière pour Arduino
Calcul de la position du soleil
Le code suivant (trois fichiers) permet de faire le calcul de la position du soleil à n'importe quelle heure de la journée, de l'année, du lieu.Il contient une librairie (mainroutines) comportant les fonctions nécessaires au calcul mais aussi les coordonnées de la ville :
[code] const double latitude = 34.88*deg2rd; const double longitude = -1.31*deg2rd; const int TimeZoneTown = 1; const int Convention = 1; const int DST = 0; [/code]
Il comporte aussi les fonctions
GetDate()
et
GetHeure()
qui permettent de spécifier la date et l'heure d'observation.
Ils peuvent être modifiées comme on le verra dans un prochain blog pour utiliser une RTC afin de prendre directement l'heure et la date de l'horloge.
Le calcul de la position du soleil se fait par l'appel de la fonction
Calc_hazClick();
le code ne compile pas sur codebender mais marche très bien avec l'IDE de l'Arduino.
Le résultat pour le 6 juillet à 10h est le suivant :
lat=34.8800010681 long=-1.3099999427
latitude=34°52'48.0038450000" longitude=-1°-18'-35.9997940000"
Conv 1
6/7/2016
6/7/2016
10:0:0
Date=6/7/2016Heure=9.00DST does not apply1
az=273.42° (orgine Sud) ie : azimut 273°25'0.1831054700"
------az=93.42° (orgine Nord) ie -180 : azimut 93°25'0.1281738300"
h=46.98° ie altitude 46°58'35.1855470000"
A comparer avec la version PC qui donne des résultats à peine plus précis (calcul en double précision : double 64 bits au lieu de float 32 bits de l'Arduino).
Cela suffit amplement pour connaître correctement la position du soleil.
Cela suffit amplement pour connaître correctement la position du soleil.
_____________________________________________________________
__ Lieu : Algérie, Tlemcen latitude= 34°52'48" longitude= -1°-18'-36" Convention 1
latitude=34.88° longitude=-1.31°
__ Date : Jeudi 6/7/2016 à 9.00833333333333 h UT *DST does not apply* TZ (include DST)=1
T=0.165116368164879 JC
Soleil Longitude L=104.731736033691° ie 06h58'56"
theta0=59.9020313587971° ie 03h59'36"
theta=58.5920313587971° ie heure sidérale 03h54'22"
RA=105.991297501229° ie 07h03'58"
delta=22.6231272290966° ie DE 22°37'23"
tau=-47.3992661424321° ie angle horaire -3h-9'-36"
az=273.515069036948° (orgine Sud) ie : azimut273°30'54"
------az=93.5150690369481° (orgine Nord) ie -180 : azimut 93°30'54"
h=47.0992260396189° ie altitude 47°05'57"
Applications :
Station météo connectée
Orientation des panneaux photovoltaïques (PV)
Automatisation de l'ouverture et de la fermeture des stores
lat=34.8800010681 long=-1.3099999427
latitude=34°52'48.0038450000" longitude=-1°-18'-35.9997940000"
Conv 1
6/7/2016
6/7/2016
T=0.1651197814 JC à 12h GMT
T=0.1651199579 JC à 12h9'43.1027980000"
meridien/Zuhr=13.1577348709 ie : 13h9'27.8455350000"
Fajr =4:12
Chourouk=5:58
Zuhr =13:9
Asr =16:57
Maghrib =20:25
Isha =22:0
Applications :
Station météo connectée
Orientation des panneaux photovoltaïques (PV)
Automatisation de l'ouverture et de la fermeture des stores
Calcul des horaires de prière
Afin de calculer les horaires de prière, il suffit d'appeler la routine
ComputeSalatTime();
comme suit
[code]
// SalatTime without RTC
#include "mainroutines.h" void setup()
{
Serial.begin(115200);
// Init SalatTime
STinit();
ComputeSalatTime();
}
//----------------------------------------------------------------------------
void loop()
{
}
[/code]lat=34.8800010681 long=-1.3099999427
latitude=34°52'48.0038450000" longitude=-1°-18'-35.9997940000"
Conv 1
6/7/2016
6/7/2016
T=0.1651197814 JC à 12h GMT
T=0.1651199579 JC à 12h9'43.1027980000"
meridien/Zuhr=13.1577348709 ie : 13h9'27.8455350000"
Fajr =4:12
Chourouk=5:58
Zuhr =13:9
Asr =16:57
Maghrib =20:25
Isha =22:0
Baraka Allah fik. Merci pour le partage.
RépondreSupprimerc génial mercii bcp monsieur barak allah fik =)
RépondreSupprimerSalam merci pour avoir partager mais jai un probleme a chaque fois que je verifie sa ne se compile pas et je sai pas pourquoi si tu peux me rependre le plus tot possible je te serai reconaissante merci
RépondreSupprimerenvoyer votre erreur pour que je vois ce qui ne va pas.
SupprimerContactez moi directement par email
merci beaucoup
RépondreSupprimerJazak Allah Khair.
RépondreSupprimerAs-salamu alaykum.
RépondreSupprimerI do not know english. I use google translation. I'm sorry for that. I want to use your SalatTime-Arduino-oled project. But I live in the country (Turkey) did not get the right result. In our country, the "Presidency of Religious Affairs" has a method of calculating prayer times. I think this method is prepared according to the Hanefi school. Here you can see daily prayer times.
https://namazvakitleri.diyanet.gov.tr/en-us/
I live in my country, Turkey. I live in Istanbul. Can you set the project to run in this location?
I also couldn't set the sunrise time in the system. Can you do something about it?
I pray for your salvation. Thank you so much.