vendredi 8 juillet 2016

RTC, SalatTime et Arduino


Real Time Clock, heures de prière et Arduino

Code pour Arduino


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]
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:57
8/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.

Aucun commentaire:

Enregistrer un commentaire