Thermostat from scratch

Bonjour à tous,
Voila je suis ni informaticien, ni électronicien, en fait je sais tout juste faire quelques lignes de HTML.
Mais, un peu comme tout le monde, j'aimerais développer mon code pour un thermostat.
Mon père m'a offert pour mon anniversaire un atmega1280 avec un LCD 128x64.
J'ai une partie du hardware suffisante pour commencer.
Maintenant que j'épluche le forum (d'ailleurs pas pratique du tout je ne sais pas ce que vous en pensez, vivement la prochaine version) depuis 2 jours, j'ai envie de commencer mon propre projet.

J'espère que vous êtes un tout petit peu plus expérimenté que moi, et que vous aurez des conseils à me donner....
Dans l'ordre, j'aimerais donc commencer par faire un "schéma fonctionnel du thermostat" qui regroupe les différentes actions pour avoir une idée précise de ce que je veux faire.

Je me suis laissé dire que cette étape était très importante pour avoir un code simple et clair vous confirmez??

Une fois que cette partie est faite, on passe au dev pure, on débug les 2, 3 bricoles qui déconnent et hop on est les rois du pétrole avec un truc sur mesure !!! ( euh... vous confirmez toujours?.. )

Alors maintenant je peux vous parler de mon idée!! Je viens d'acheter une maison. Je souhaite mettre en place un thermostat standard avec 2 modes de chauffage base:
-Normale : avec des heures éco et des heures confort
-Vacances-hors-gel
(Jusque la vous me direz rien d'impossible, avec 15? chez Cas**ra*a on peut le faire.)

Mais voila, je veux pouvoir ajouter un mode absence/présence, un bouton poussoir qui ferait: absence/présence en boucle.
=> ce bouton permettrait de forcer le mode présence ou absence (ca je pense que ce n'est pas trop dur non plus)

Ensuite, je sais que certains soir je suis plus susceptible de sortir que d'autres, mais ce n'est pas forcément prévu à l'avance donc mon agenda m'envoie un rappel sur mon téléphone avec une URL cliquable ou un bout de code HTML avec un interrupteur du genre: "je serais la ce soir continue ton programme normalement", ou "ce soir je serais absent au moins jusque 22h" - > mode eco jusque 21h30.

Il faut aussi que je puisse passer en mode "ce soir je serais absent au moins jusque 22h" avec cette url à n'importe quel moment (bah oui sait on jamais, on est jamais à l'abris du "on boit juste un verre ok")

L'idée vous parait pertinente?

A partir du moment ou l'on a les modes : normal/ vacances, j'envisage peut être de mettre une électrovanne par pièce mais c'est matériellement plus lourd donc je verrais cette étape plus tard (est-ce que du coup au niveau du dev il y a quelque chose à penser de ce coté la pour ne pas être trop embêté plus tard?

Voila c'est tout pour le moment, j'attends vos avis, je me penche sur le schéma fonctionnel ( en attendant que quelqu'un me dise que c'est une connerie ou pas, et ensuite je vous le montre).

Bonne journée à tous.

J'imagine que des choses similaires on déjà étés faites. Mais je n'ai pas trouvé de topic qui parte de la base sur ce modèle.
L'intérêt de celui-ci c'est que je pense parler de l'ensemble du projet... de A à Z

donc, dans l'ordre :

  • Mode éco /confort : juste la modification d'une variable (la consigne), selon un planning que tu programmeras
  • Mode "absence" : pareille, une variable dont tu changes la valeur à chaque appui sur le btn (1=présent ; 0 = absent ; si appui et var=0 alors var = 1; si appui et var=1 alors var = 0)

Par contre, avec ton bouton, je pencherais plus pour un mode "dérogation", afin de déroger temporairement à la consigne programmée (au prochain "pas" de ta programmation, la dérogation devrait être être annulée) (PS : c'est dispo aussi le th de chez casto*, ou alors prend un siemens)

Pour une url "cliquable" : ton url renverra vers quel site ? Pour l'arduino, il te faudra le sheild Ethernet, et monté un serveur dessus (avec une ip fixe) et capable de recevoir une commande à distance (fouille le forum) - M'est avis que ton prog devra interroger à distance un site "perso" avec une requete sur un script PHP à chaque changement de consigne et parser la réponse qui sera faite pour savoir s'il doit modifier la consigne. Mais ce n'est qu'une idée, je suis moi aussi débutant

Autrement, y'a plus simple : dériver ta ligne téléphonique, et lorsque ton répondeur s'enclenche, balancer un signal dessus que l'arduino récupérera avec l'équipement ad-hoc (à mon avis, ça marchera pas avec ligne dégroupée ni avec répondeur FT)

Ton projet est somme toute assez simple (voir très simple même), mise à part la partie internet qui est je pense, la plus complexe à mettre en oeuvre pour un débutant. Mon avis completement personnel c'est : mets de côté l'ethernet pour le moment, et focalise toi sur les autres tâches à réaliser. Ca te permettra de prendre en main le language et autant t'en aura tellement marre dans une semaine que tu fonceras à Casto ^^ mais bon vu que tu programmes déja en HTML j'en doute :wink:

voici un [u]petit lien[/u] qui t'aidera peut-être pour la partie ethernet (à garder sous le coude..., car dans le principe, d'accord avec B@tto pour ce qui est du magasin ;D)

Merci pour vos retours,
Donc j'ai fais comme vous avez dit, j'ai mis la partie web complètement de coté pour l'instant, avec un schéma fonctionnel de base pour me structurer l'esprit.
La ou je ne sais pas encore trop comment je vais gérer c'est pour la modification de la plage depuis internet, mais je vais fouiller, je trouverais bien!
Est-ce que sur le principe :

Vous parait cohérent?

Pour le mode "vacances", je gererais aussi le bouton "présence"

Exemple, tu programmes le nombres de jour d'abscence (en apuiyant sur une deuxième bouton qui incrémente un compteur journalier)

Pour une raison "x", tu rentres plus tot. Un appui sur présence annule le mode "vacances"

De même pour la gestion web.

A mon humble avis, ton algo doit se finir par mode confort / mode éco, toutes les autres actions (présence, vacances, web, ...) doivent intervenir avant que tu décides si tu passes en mode C ou E. (en gros, au lieu d'avoir 3 flèches qui arrivent sur on/off chauffage, tu ne doit en avoir qu'une.)

Essaie de faire un schéma de type "algo" comme tu trouveras , ou encore , ça t'aideras (il y a un petit logiciel très bien pour ça, c'est yEd Graph Editor, mais y'en a d'autres).

Avec les règles suivantes :

  • rectangle = action
  • losange = choix
  • etc...
    (regarde wikipedia pour plus d'info en cherchant "logigramme") --> ici

Merci pour ce retour taddot

Pour répondre à tes question:

Pour le mode "vacances", je gererais aussi le bouton "présence"

En fait je veux qu'en partant de chez moi je n'ai qu'a appuyer sur un bouton pour :
-Quand je m'en vais => Modifier le chauffage si besoin, éteindre toutes les lumières (avec un système DOMOCAN) et les périphériques qui ne sont pas indispensable à la maison.

-Quand je reviens => mettre le chauffage dans le bon mode si ce n'est pas le cas.

Le bouton vacances, ne sera physiquement pas au même endroit, donc on pourra lui donner d'autre attributions
en fait ce qu'il faut c'est pour suivre ton idée, avroi non pas 2, mais 3 mode de base, que tu modifie en fonction d'un certain nombre de paramètres. Je pars dans ce sens...

Je vais jouer avec ton logiciel. Dans ta démarche, tu pars de tes inputs pour arriver au résultat, ou tu pars du résultat pour arriver aux inputs?

Merci par avance

ben, en général, je le fais version [u]"algèbre de Boole"[/u] :

Si A ET B =1 alors ...
Si A OU C = 1 alors ...

Avec un tableau ou tu fait figurer tes entrées et /entrées (lire "entrée-barre"), tu met des "1" là ou tu veux une action, un "0" là ou tu n'en veux pas. Tu obtiens très vite ton équation. Et Tu fait ça pour chaque action.

Dans ta démarche, tu pars de tes inputs pour arriver au résultat, ou tu pars du résultat pour arriver aux inputs?

En général, tu sais ce que à quoi tu veux aboutir, à partir de quoi, et de quelle façon tu dois y arriver. A moins que tu fasses dans la physique quantique ou que j'ai pas compris la phrase... L'algèbre de bool (si tu gères que du numérique) permet de déterminer les équations liants le résultats et les inputs.

Connait pas le Domocan, vais me renseigner. (mais si je comprend bien, c'est gestion domotique permettant de gérer des scénarii ?)

Par contre, à moins que ton Domocan puisse gérer automatiquement une durée d'absence, je distinguerais le bouton vacances (rien t'empêche de le mettre en parralèle du domocan) de façon à ce que ta maison soit chaude quand tu rentres (et que tu ne te les gèle pas pendant une heure...)

PS : il y a un très beau logigramme sur un topic en cours : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1295447650