Page 2 sur 3

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : mer. 13 sept. 2017 16:48
par zeb
@Bud

Je ne réponds pas à la place de Akilinux.
Il choisit le langage qu'il veut.
Mais il nous demande nos lumières.
Éclairons-le.
Et polémiquons, avec force arguments pertinents, si tu veux bien.

Akilinux nous demande "Quid de Python ?" Entendons aussi : "Sinon quelles alternatives ?"
Bud demande "Pourquoi Python ?" J'espère que c'est pour répondre "J'ai aussi bien sinon mieux à proposer !" ;)

--------------------------

Pourquoi je recommande Python à notre ami
Le Python semble une évidence dans le monde merveilleux des Framboises.
C'est le langage de prédilection de cette plateforme.
Et beaucoup beaucoup (trop ?) d'exemples et de ressources sont proposés dans ce langage.
Par ailleurs, c'est un langage générique, multi-OS.
Si pour programmer une Raspberry Pi, Akilinux apprend le Python, il pourra se resservir de ses connaissances ailleurs.

Pourquoi je t'invite à faire d'autres propositions
Ben parce que si je trouve mon avis intéressant, celui des autres peut l'être tout autant, voire plus ;)
Python est un choix que d'autres ont fait, mais qui n'a rien d'obligatoire.
L'informatique est pleine d'innovations heureuses, profitons-en.

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : mer. 13 sept. 2017 18:29
par spourre
zeb a écrit : ...
Sous UNIX/Linux, c'est un peu différent. L'environnement graphique est clairement distinct de l'OS.
Et contre de la liberté, il y a pour chaque couche que constitue un environnement graphique, plusieurs choix possibles :
X, Wayland, Mir / KDE, Gnome, XFCE.
Quelle variété !
...
.
Bonjour,

Il est toujours extrêmement difficile d'être exhaustif tout en voulant se mettre à la portée du débutant qui ne maîtrise aucun des concepts fondamentaux (sans vouloir être ni péjoratif, ni vexant).

Si ce n'est pas parfaitement clair dans sa propre tête, on risque de se mélanger les pinceaux et d'augmenter la confusion , voire de le décourager.
Dans ce passage, par exemple, on a un beau mélange des couches logicielles en citant pêle-mêle X(11), Wayland, KDE, Gnome XFCE mais en oubliant X-Org.
zeb a écrit : ...
Quand il a fallu penser des langages capables de fonctionner quelques soient l'OS et quelques soient l'env. graphique, une couche d'abstraction a été ajoutée entre le programme et l'environnement. Honneur au pionnier : c'est l'environnement virtuel du Java.
...
Ah ces jeunes, tous à croire qu'ils ont tout inventé :ugeek:
Le concept remonte au début des années 70 (1970 :D ) avec la p-machine, machine virtuelle capable d'interpréter "just in time" (JIT) un p-code tokenisé.
Une des première implémentation a été le p-pascal de l'université de San Diego en Californie (UCSD).
zeb a écrit : ...
Je t'invite à regarder Tkinter en priorité. Il est fourni en standard dans Python.
Moi, quel que soit le langage qu'il retiendra in fine, je l'invite à se mettre à ce langage et à vérifier qu'il obtient bien ce qu'il veut.
L'interface graphique (GUI) ne fait que déclencher des événements qui appellent les fonctions du programme. AMHA, il me semble préférable de débugger le code sans s'occuper de la gestion des fenêtres.

Sylvain

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : mer. 13 sept. 2017 20:29
par Bud Spencer
Que d’histoire pour une simple question.

Ça ne vous intéresse pas de savoir pourquoi quelqu’un qui veut apprendre la programmation de son plein chef va choisir un langage plutôt qu’un autre ? Eh bien moi, ça m’intéresse fortement.

Je ne porte aucun jugement sur son choix, je ne fais aucune comparaison, je ne fais pas un cours d’histoire, je ne refuserais pas de l’aider si je peux le faire le jour où il en aura besoin, je pose juste une simple question parce que ça m’intéresse d’avoir ses motivations de futur nouveau développeur tout neuf. Python n’a rien à voir la dedans et je lui aurais posé exactement la même question si il avait écrit qu’il avait porté son choix sur du c, du java, du chinois mandarin ou je ne sais quel autre langage.

Si j’avais voulu lui proposer d’autres choses à explorer (ce que j’aurais peut-être fait après avoir eu sa réponse), je l’aurais sans doute invité à titre informatif d’au moins jeter un coup d’œil sur le tuto ‘Application web dynamique’ qui pourrait tout aussi bien pu répondre à son besoin.

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : jeu. 14 sept. 2017 11:15
par spourre
Quand le PO écrit:
Akilinux a écrit :Merci beaucoup pour vos réponses.
Est-ce possible avec le langage python ? Je débute également en prog donc quitte à apprendre un langage, autant apprendre le bon ;)
Il est parfaitement légitime de lui demander pourquoi ce langage et, éventuellement, de lui en proposer un autre.

Ma réponse, un peu longue, à Zeb comporte 2 aspects:

1) un complément d'information pour corriger gentiment (car Zeb est un contributeur positif) 2 ou 3 erreurs. Comme déjà mentionné par Bud dans un autre fil, la discussion "n'appartient" pas au PO et est lue par de nombreux lecteurs.

2) j'ai proposé une approche que je peux développer un peu. Pourquoi vouloir se confronter de go (il dit lui-même qu'il ne sait pas programmer) avec une GUI.
Cela nécessite souvent, surtout avec des environnements de bureau qui ont leur propres bibliothèques et normes de présentation, un investissement bien lourd.
Quand on part de 0, il me semble plus utile d'investir dans le langage choisi (je ne fais pas non plus de prosélytisme) et de maîtriser le contrôle du processus, la gestion des capteurs, des actionneurs ... plutôt que de vouloir faire de suite de zolis zécrans. On peut même s'interroger sur la pertinence d'avoir une telle GUI, avec une consommation de ressources énorme (serveur X, gestionnaire de fenêtre...) pour gérer 2 sondes et 3 vannes.
une IHM (Interface Homme Machine) avec un LCD de 2 x 16 caractères et 5 boutons devrait largement suffire quitte à avoir un affichage plus sexy ou une intégration plus poussée dans un navigateur lancé depuis n'importe quel autre appareil
(et sous n'importe quel OS).

Sylvain

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : jeu. 14 sept. 2017 11:53
par zeb
(
@spourre

Rhooooo ! Je n'ai pas oublié X.Org.
X, c'est pour X Window System, X11, XFree86 ou X.Org au choix du lecteur. cf https://www.x.org/wiki/

Eh ! C'est clair dans ma tête. [private] Enfin sur ce post-ci ;) [/private]

Donc je n'accepte pas d'être corrigé sur 2 ou 3 erreurs.
Bon, d'accord, j'accepte d'être corrigé sur 1 ou 2 erreurs.
)

M'enfin Bud, on est d'accord.
Rapsberry Pi ==> Raspberry Python ==> un programme Raspberry, ça s'écrit en Python.
Sur le site raspberrypi.org, c'est implicite. Donc la question ne se pose pas.
Sauf que justement nous avons un PO qui intelligemment se pose la question.
Et pour l'instant, il n'a que mon humble avis qui consiste à ne lui proposer que Python.

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : jeu. 14 sept. 2017 16:21
par Akilinux
Je vois que mon post déchaine les passions, ça fait plaisir :D. Merci pour le temps que que vous m'accordez.

Alors, pourquoi le python ? ben simplement parce que, comme l'a indiqué Zeb, la plupart des tutos sont proposés avec des fichiers .py donc, étant débutant, il m'a semblé plus simple d'utiliser ces fichiers, quasi "prêt à l'emploi", et de les adapter à mes besoins.

Après, j'aimerai juste avoir un affichage sur un écran avec les températures mesurées et pouvoir changer les consignes "graphiquement" sans modifier un fichier texte. Sachant qu'il existe un nombre important de langage, certains étant probablement plus adaptés à certaines applications que d'autres, voilà pourquoi je demandai si le python allait me permettre d'aller plus loin que le fichier texte et la console.

Donc je défini mon besoin/mes besoins avec le matériel prévu pour :
1°) lire la température d'une sonde des capteurs existante (à priori PT1000 donc avec ampli MAX31865) --> en attente de réception de l'ampli
2°) lire la température du ballon (sonde ds18b20 étanche + fichier python trouver dans tuto) --> j'ai reçu mon Pi zero W avec 5 sondes ds18b20 que j'ai testées, ça marche :D
3°) contrôler la pompe en fonction des mesures (avec relais 230V/5Vdc) --> en attente de réception de l'ampli et de réaliser le programme (python ou autre)
4°) compléter la programmation pour gérer la période absence (décharge du ballon la nuit pendant les vacances estivales, donc en absence de soutirage, pour éviter les surchauffe)
5°) Une fois que tout marche en local, en mode "console", essayer de faire une interface "graphique" simple et si possible un serveur web pour contrôle à distance (PC ou smartphone)

Et ma question, à ma place, si vous vouliez réaliser ce genre d'installation, quel(s) langage(s)/logiciel(s) utiliseriez vous ? :)

PS: j'ai pas encore pris le temps de regarder le tuto de Bud mais je vais le faire ;)

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : jeu. 14 sept. 2017 17:36
par zeb
Plop,

Eh, voilà un quidam qui se fait plaisir à nous lire, qui nous remercie d'avance, qui écrit dans un français correct, qui sait ce qu'il sait et sait qu'il ne sait pas tout, et qui est capable de détailler son besoin clairement. Tu es le candidat idéal pour t'attirer les meilleurs volontés !
:lol:

----------------------

Le python est un langage généraliste, comme déjà exposé, capable de tout faire, y compris la gestion d'application graphique et même la partie serveur web dont tu auras besoin.
Mais être capable de tout faire avec Python exige beaucoup d'investissement : en temps et en étude.

A te lire, j'imagine que tu n'es pas un informaticien mais que tu es de bonne volonté, et que l'informatique qui t'intéresse gravite autour de la RPi.
Alors voici mes conseils :

Apprends les rudiments de la programmation avec Python. Cela te permettra de lire, puis de comprendre les programmes que tu trouveras par-ci, par-là. Par la suite, en prenant de l'assurance, tu pourras les modifier ou écrire les propres tiens.

Pour ce qui concerne les pages web, le mieux, c'est Linux, Apache, MySql et Php (LAMP). Mais ça risque d'être un poil lourd sur RPi. A voir.
MySQL est a priori inutile pour toi. Linux est déjà installé (c'est Raspbian). Il reste Apache, qu'on peut garder ou remplacer (lighttpd, nginx) et PHP qu'il va falloir apprendre si on le garde, mais qu'on peut remplacer (Perl, shell, cgi-bin, Python, ...)

A la place d'Apache, Lighttpd fonctionne très bien chez moi. Et pour remplacer PHP, j'utilise du shell ou du Perl (c'est mon choix) en CGI-BIN.
Sache qu'en CGI-BIN, tu peux appeler n'importe quel interpréteur, dont Python !

Pour l'interface graphique, ne te prend pas la tête, sers-toi de ton serveur web, même en local !

En résumé, les alternatives que je propose :
1°)
Apprends le Python (c'est facile).
Apprends à installer Apache, avec PHP (c'est le coup d'une fois, le mieux, c'est de suivre un tuto)
Apprends le PHP (c'est facile).
Pour envoyer des ordres, il faudra en PHP, exécuter (`cmd`, system, ...) des petits programmes écrits dans le langage de ton choix, comme le Python.

2°)
Apprends le Python (c'est facile).
Apprends à installer un autre serveur web, avec CGI-BIN (c'est le coup d'une fois, le mieux, c'est de suivre un tuto)
En entrée (création des pages) et en sortie (envoi d'ordre), il faudra exécuter des petits programmes écrits dans le langage de ton choix, comme le Python.

Ce que je ne propose plus :
Gérer les interfaces graphiques avec Python.

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : jeu. 14 sept. 2017 21:32
par Bud Spencer
Akilinux a écrit :Alors, pourquoi le python ? ben simplement parce que, comme l'a indiqué Zeb, la plupart des tutos sont proposés avec des fichiers .py donc, étant débutant, il m'a semblé plus simple d'utiliser ces fichiers, quasi "prêt à l'emploi", et de les adapter à mes besoins.
Eh bien voilà, c’est exactement ce que je voulais savoir et je te remercie pour la franchise de ta réponse. J’en conclus que ton choix ne se base donc pas sur des considérations d’ordre technique du genre paradigme, programming level, performance, complexité ou autre, mais sur la richesse des exemples qui correspondent à ton idée d’utilisation.

Aucuns soucis avec python pour ce que tu veux faire. L’accès au gpio y est très simple et comme tu l’as constaté les exemples ne manquent pas. Interfacer graphiquement avec du web est une bonne idée. Cela permet en plus de la facilité de créer des gui de pouvoir y accéder aussi à distance depuis n’importe quel type d’appareil (tablette, smartphone, pc …). Un serveur web cgi n’est pas forcement nécessaire pour ce genre de projet et je dirais même qu’il risque de te compliquer la tâche sans rien t’apporter de plus que de la lourdeur (ce qui ne veut pas dire que c'est intéressant à expérimenter). Ton programme Python peut à lui seul faire office de serveur http sans s’appuyer sur rien d’autre. Prend le temps de lire le tuto que je t’ai mis en ref. C’est fait avec un autre langage (javascript), mais tu peux utiliser le même concept en utilisant uniquement du code python.

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : ven. 15 sept. 2017 11:47
par zeb
Plop,
Bud Spencer a écrit :Un serveur web cgi n’est pas forcement nécessaire pour ce genre de projet et je dirais même qu’il risque de te compliquer la tâche sans rien t’apporter de plus que de la lourdeur (ce qui ne veut pas dire que c'est intéressant à expérimenter).
Alors quelle alternative proposes-tu ?
  • Full Python, (non, non, pas Full Monty !)
  • Apache+PHP
-------

Un serveur comme Lighttpd utilise de toutes façons le CGI. Ce n'est pas forcément lourd ni compliqué.

Re: Demande d'aide pour régulation d'un chauffe-eau solaire

Posté : ven. 15 sept. 2017 15:11
par Bud Spencer
Je parle d’une application tout python qui traite les requêtes client, renderise et publie elle-même les pages html qui lui servent de GUI. Exactement sur le même modèle que ce que j’ai décrit dans le tuto cité plus haut, mais en utilisant exclusivement du code python coté serveur. Je trouve ce modèle très pratique et très bien adapté au PI (quel que soit le langage utilisé).