Pages: 1 2 [3] 4 5 6   Go Down
Author Topic: domotique arduino : 8 relais + 3 DS18B20 + email + téléinfo + NTP + delesteur  (Read 17422 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Quote
ou peut-il le faire tout seul même si déjà planté ?

Il faut utilisé un watchdog. C'est un timer qui attend un signal à période régulière. Si le signal n'arrive pas sous le delai choisi, l'arduino reboot automatiquement.

Quote
Threshold value   Constant name   Supported on
15 ms   WDTO_15MS   ATMega 8, 168, 328, 1280, 2560
30 ms   WDTO_30MS   ATMega 8, 168, 328, 1280, 2560
60 ms   WDTO_60MS   ATMega 8, 168, 328, 1280, 2560
120 ms   WDTO_120MS   ATMega 8, 168, 328, 1280, 2560
250 ms   WDTO_250MS   ATMega 8, 168, 328, 1280, 2560
500 ms   WDTO_500MS   ATMega 8, 168, 328, 1280, 2560
1 s   WDTO_1S   ATMega 8, 168, 328, 1280, 2560
2 s   WDTO_2S   ATMega 8, 168, 328, 1280, 2560
4 s   WDTO_4S   ATMega 168, 328, 1280, 2560
8 s   WDTO_8S   ATMega 168, 328, 1280, 2560

Code:
#include <avr/wdt.h>

int t = 0;

void setup() {
  //wdt_enable(WDTO_2S);
  
  Serial.begin(9600);
  setupWatchdog();
  Serial.println("Setup complete");
  
}

void loop() {
  
  Serial.println(t);
  t = t + 200;
  delay(t);
  
  wdt_reset();
  
}

void setupWatchdog()
{
cli();
wdt_reset();
MCUSR &= ~(1<<WDRF);
WDTCSR = (1<<WDCE) | (1<<WDE);
WDTCSR = (1<<WDIE) | (0<<WDP3) | (1<<WDP2) | (1<<WDP1) | (0<<WDP0);
sei();
}

EDIT1 : Le watchdog est réglé sur 1 seconde, je crois, et comme je ne retrouve plus mes billes...
EDIT2 : Le code est fonctionnel, mais il faut savoir que le bootloader par defaut ne gère pas le watchdog, il faut donc le changer. En testant le code, j'ai une rallonge de cycle d'environ 20/30 ms...(visible avec t = t + 20;)


@+

Zoroastre.
« Last Edit: January 25, 2012, 04:17:43 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Un watchdog est une bascule ou un interrupteur qui recoit à intervalle régulière un signal de vie. Si le signal n'arrive pas, on reset le programme.

En cas de gros plantage hardware et si effectivement tu veux te prémunir plutôt de ces cas là, documentes toi sur le NE555 (ou 555 timer). C'est un timer hardware qui peut agir directement sur le reset de l'arduino via un petit montage avec une diode, capa et résistances.. Tu envoies régulièrement un signal digital pour remettre à zero le timer du 555.

Le timer est à calculer par contre, la valeur des resistances et de la capa sont la clé ...voir le second lien smiley-wink

http://www.practicalarduino.com/news/id/471
http://www.playwitharduino.com/?p=291

@+

Zoroastre.
« Last Edit: January 26, 2012, 03:17:03 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

En l'etat de mes connaissances sur le sujet et si mes informations sont toujours à jour, je dirais :

Le watchdog intégré à l'arduino à l'avantage de pouvoir être positionner à plusieurs endroits du code (routine critique par exemple). Cette methode semble avoir été adopté par plusieurs utilisateurs.
Cependant, elle réclame une modification du bootloader, celui par defaut génère des problèmes de timing, elle n'a pas à mon gout de retours suffisant des utilisateurs (fonctionnement à long terme).Elle n'est pas recommandé par avr, elle modifie les fuses de l'arduino (modification interne des paramètres de fonctionnement du microcontrolleur).

Le watchdod hardware, quant à lui, a pour avantage d'être externalisé. C'est un reset complet de la carte qui est effectué. Cependant, les résistances et le condensateur doivent être calculé selon deux paramètres bien distinct. Tout d'abord, le temps entre deux contrôles du bon fonctionnement de la carte. Ensuite, les temps de charge et décharge du condensateur. Ce dernier calcul imposera un delais au niveau du programme.

Il peut découler de ces deux aspects, un troisième qui est celui des composants s'articulant autour de l'arduino. Car certains composants apprecieront plus un reset hardware qu'un reset soft (et inversement).

A ce jour, j'ai testé le watchdog interne sans modification du bootloader. Le truc c'est que mon programme est fonctionnel et a peu de chance de planter...
Il faudrait quasiment génerer un programme qui plante à coup sur dans un laps de temps raisonnable (Avis au amateur  smiley-eek-blue ) afin de pouvoir réellement testé le chien de garde.

A choisir, la methode du 555 est certainement plus sûr, peu couteuse et facilement modifiable/ajustable.

Pour finir, je dirais qu'à mon humble avis, chaque projet devrait posséder un watchdog et que l'une ou l'autre méthode devrait faire le sujet d'une expertise plus poussée tant cette fonctionnalité est interessante et utile.

@+

Zoroastre.
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
Full Member
***
Karma: 0
Posts: 175
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

  La page web a un peu grossi donc elle est en cours d'amaigrissement pour s'afficher en pleine page et sur un smartphone.

  Y a t il un courageux équipé d'un 2560 + W5100 (encore mieux LCD HD44780 4*20 + 8 relais + téléinfo + ds18b20) qui serait d'accord pour tester ce sketch ? Juste pour me donner son avis et des conseils  smiley

PS : même si une (ou aucune) option présente, le fait de me donner un avis sur la présentation peut suffire.



A voir : DS18B20 bloqué sur 85°C - test à poursuivre du v21 - présentation
           Précision : Là il n'est pas branché sur la téléinfo





 
« Last Edit: January 28, 2012, 11:37:54 am by bluemax2001 » Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A voir : DS18B20 bloqué sur 85°C
85° avec des 18B20 c'est typique d'un probleme de ligne 1wire, les 18B20 sont alimentés en parasite ?
quelle distance ?
Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Si si on suit. Et comme tu te débrouilles trés bien tout seul...  smiley-lol

Reste plus qu'à mettre tout çà dans une jolie boite et préparer un full Tuto.

@+

Zoroastre.
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
Full Member
***
Karma: 0
Posts: 175
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je ne suis pas seul, sinon je serais au même point que sur le précédent forum smiley-cry

Pour la boite, je vais faire dans une boite de dérivation IP55 même si je n'ai pas encore l'idée définitive pour placer le LCD.

J'utilse (prix à venir) :
- Arduino Mega 2560
- W5100...........................15,09
- Téléinfo : - 6N138+74LS132+ divers composants
                - SFH620-a + 2 résistances (en test) ******1€
- LCD 4*20 HD44780..............6€
- 2 DS18B20.......................2€
- Relais complet******************9,06€ (ebay)
- DS1307.......................... 1,50€ les 5 chips (ou 6,76 complet avec pile)
- Télécommande..................6,42€
- proto shield mega + pins femelles longues   .......acheté avec mega 2560 + 2€ les pins
- prises RJ11.......................5€ les 10
- alim. externe 5v mini 5A.......11€
- fil stap..........................3,40€ les 16

Fpin (sauf composant elec. dif.)
« Last Edit: February 23, 2012, 11:11:46 am by bluemax2001 » Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 175
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Logged

Belguim (Messancy)
Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour, Bluemax2001.

Quote
J'ai découvert aussi des connecteurs femelles avec des pins longues pour réaliser mon shield sans devoir souder les mâles d'un côté et les femelles de l'autre

Peut-tu me donnée l'adresse de ce connecteurs car j'ai du mal a en trouver.
En plus très intéressent  sujet.
Merci d'avance,
albertrand.
« Last Edit: February 12, 2012, 02:14:57 am by Jean-François » Logged

« Ungibus et Rostro » (De bec et d'ongles)


Offline Offline
Jr. Member
**
Karma: 0
Posts: 98
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

J'ai trouvé ceci : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1241456426

J'ai vérifié elle est bien dedans

++
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je cherche en urgence cette librairie :
avr/pgmspace.h

 où puis je la download ?

merci


normalement elle est installée avec le telechargement
chez moi en 022 elle est là
C:\arduino\hardware\tools\avr\avr\include\avr
et en 1.0 là
C:\arduino-1.0\hardware\tools\avr\avr\include\avr
« Last Edit: February 17, 2012, 06:57:37 am by Artouste » Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 175
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset



Mon multi shield

Téléinfo en haut à droite + RJ11
1-wire à gauche + 2xRJ11 + 1 DS18B20 soudé
R10k pour LCD
et au fond le DS1307
« Last Edit: February 21, 2012, 10:15:19 am by bluemax2001 » Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nous sommes le dimanche 24/11/2058 à 17h18

 Et non, c'est mon DS1307 qui doit déconner. Me faut donc revoir ce point (hard ou soft ?) et régler la gestion du temps pour mes commandes différées.


bonjour
tout n'est pas perdu , là le 24 c'est bon !  smiley-mr-green

j'ai un ds1307 qui tourne autonome dans un tiroir depuis ~1 mois , je regarderais semaine prochaine ce qu'il rend
« Last Edit: February 24, 2012, 09:27:49 am by Artouste » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à vous,

je suis en cours de développement d'un projet à base d'arduino reprenant une bonne partie des éléments que vous utilisez et à base de STANTOR avec IDE 1.0 (Arduino Mega + Shield Ethernet + écran LCD + 3*DS18B20 + DHT11 + RTC + 8 Relais)

Avez vous ouvert un espace de partage de votre code? Ce dernier pourrai vraiment m’intéresser, j'ai actuellement des problèmes de gestion du serveur éthernet qui plante aléatoirement si je laisse tourner la partie rafraîchissement des capteurs et affichage sur LCD.

Serait il possible d'avoir votre projet afin de m'en inspirer?

Merci d'avance.
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nous sommes le dimanche 24/11/2058 à 17h18

 Et non, c'est mon DS1307 qui doit déconner. Me faut donc revoir ce point (hard ou soft ?) et régler la gestion du temps pour mes commandes différées.


bonjour
tout n'est pas perdu , là le 24 c'est bon !  smiley-mr-green

j'ai un ds1307 qui tourne autonome dans un tiroir depuis ~1 mois , je regarderais semaine prochaine ce qu'il rend
bonjour
petit retour sur le ds1307
ds1307 initialisé le 7/11/2011 (hé oui, le temps passe vite, presque 4 mois et pas ~1   smiley-mr-green) , tourne en autonome depuis
reconnecté aujourd'hui
retard ds1307/NTP = 1'50"
Logged

Pages: 1 2 [3] 4 5 6   Go Up
Jump to: