RTC, SalatTime et Arduino
Real Time Clock, heures de prière et Arduino
Code pour Arduino
Ceci est la suite du précédent post : http://baghli.blogspot.com/2016/07/position-du-soleil-et-salattime-pour.html
Le code suivant (trois fichiers) permet d'implanter une horloge à l'aide d'une RTC afin de prendre directement l'heure et la date de l'horloge, de calculer les horaires de prière et de détecter l'heure de l'Athan.
Il faut d'abord effectuer les connexions suivantes :
Il suffit de relier le module RTC à l'Arduino via la liaison I2C (SDA, SCL). Attention les pins A4, A5 sont les pins SDA, SCL obligatoirement sur la carte Arduino.
On relie aussi le 5V et le GND du module RTC à ceux de l'Arduino. Ce dernier sera alimenté par le port USB ou bien par une alim séparée sur Vin ou sur +5V.
Voici le pinout de l'Arduino Nano V3. Je choisi cette carte car c'est la moins chère sur le marché (moins de 3 USD sur ebay ou banggood).
Le programme 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 faut d'abord effectuer les connexions suivantes :
Il suffit de relier le module RTC à l'Arduino via la liaison I2C (SDA, SCL). Attention les pins A4, A5 sont les pins SDA, SCL obligatoirement sur la carte Arduino.
On relie aussi le 5V et le GND du module RTC à ceux de l'Arduino. Ce dernier sera alimenté par le port USB ou bien par une alim séparée sur Vin ou sur +5V.
Voici le pinout de l'Arduino Nano V3. Je choisi cette carte car c'est la moins chère sur le marché (moins de 3 USD sur ebay ou banggood).
Le programme contient une librairie (mainroutines) comportant les fonctions nécessaires au calcul mais aussi les coordonnées de la ville :
La convention est à choisir en fonction du pays : 0 : UOIF, 1 : Algérie... (voir librairie).
Il comporte aussi les fonctions
[code] void GetDate() { DateTime now = rtc.now(); date.a = now.year(); date.m = now.month(); date.j = now.day(); #ifdef Verbose Serial << date.j <<F ("/") << date.m << F("/") << date.a <<endl; #endif } //--------------------------------------------------------------------------- void GetHeure() { DateTime now = rtc.now(); heure.h = now.hour(); heure.m = now.minute(); heure.s = now.second(); heure.ms=0; // heure.h=12; heure.m=00; heure.s=00; #ifdef Verbose Serial << heure.h << F(":") << heure.m << F(":") << heure.s <<endl; #endif } [/code]
qui permettent de lire la date et l'heure du calcul à partir de la RTC.
Ce qui donne le fonctionnement suivant :
lat=34.8800010681 long=-1.3099999427
latitude=34°52'48.0038450000" longitude=-1°-18'-35.9997940000"
Conv 1
8/7/2016 16:56:51
8/7/2016
T=0.1651745414 JC à 12h GMT
T=0.1651747226 JC à 12h9'55.0160980000"
meridien/Zuhr=13.1643514633 ie : 13h9'51.6652680000"
Fajr =4:14
Chourouk=6:0
Zuhr =13:10
Asr =16:57
Maghrib =20:25
Isha =21:59
8/7/2016 16:56:52
SalatT.m[4] =59
SalatT.m[3] =25
SalatT.m[2] =57
Recherche de 16:57
8/7/2016 16:56:53
8/7/2016 16:56:54
8/7/2016 16:56:55
8/7/2016 16:56:56
8/7/2016 16:56:57
8/7/2016 16:56:58
8/7/2016 16:56:59
8/7/2016 16:57:0
Athan 2 2 : Asr, 3 : Maghrib...
SalatT.m[4] =59
SalatT.m[3] =25
SalatT.m[2] =57
Recherche de 16:57
8/7/2016 16:57:1
8/7/2016 16:57:2
8/7/2016 16:57:3
...
8/7/2016 16:57:578/7/2016 16:57:58
8/7/2016 16:57:59
8/7/2016 16:58:0
SalatT.m[4] =59
SalatT.m[3] =25
Recherche de 20:25
8/7/2016 16:58:1
8/7/2016 16:58:2
8/7/2016 16:58:3
...
Vous pouvez télécharger le code sur :
https://codebender.cc/sketch:341753
Applications :
Horloge de calcul des horaires de prières
Athan
Calendriers
Ceci est un doua3ware, c'est-à-dire que, si vous êtes musulman, merci de prier pour mon salut.
Barakallah
RépondreSupprimer