Go Down

Topic: Gestion ecran VMA412 avec MEGA2560 (Read 208 times) previous topic - next topic

ptichamp

Oct 13, 2017, 03:11 am Last Edit: Oct 20, 2017, 12:10 pm by ptichamp
Bonjour à tous;
Je souhaite débuter un projet de boite avec écran couleur et tactile, type: VMA412 de chez "Velleman" avec une carte "Méga 2560".
Des sorties contacteurs pour pompe, circulateur et bruleur
Des entrées sondes température
Le tout pour gérer une chaufferie ou chaudière dont le tableau de commande serait défectueux par exemple.

Dans un premier temps, je souhaite créer des boutons et une pagination.

Page 1:
Info des capteurs de températures principalement (Temp. Ext., départ chauffage, retour chauffage, Temp. chaudière, Temp. eau chaude sanitaire.)
Page 2 :
Touche Marche/Arrêt; été/hiver(commande du circulateur sanitaire); Curseur Temp. Sanitaire; Curseur Temp. chaudière;...
Page 3:
Réglage de paramètres et états...

S'il existe un projet en français ou traduit sur le sujet, merci de m'en informer
je peine déjà pour déclarer mon écran, et je trouve pas de bibliothèques avec la doc sur les boutons en français; j'arrive à produire ça pour le moment avec des bouts de codes grappillé à droite et à gauche: c'est pas grand chose, soit, c'est un début on est bien d'accord.
A ++ et merci pour vos réflexions sur le sujet!

Code: [Select]
#include <Adafruit_GFX.h>
#include <UTFTGLUE.h>              // class methods are in here
UTFTGLUE myGLCD(0x0,A2,A1,A3,A4,A0); //( sa marche aussi avec 0x9341 ou 0x nimporteqoi ,RS,WR,CS,RST,RD)

void setup()
{

// initialise l'écrant //
  myGLCD.InitLCD(LANDSCAPE);    // Ecran mode paysage ( horizontal )          
  myGLCD.clrScr();  // Efface ecran
  delay (100);  
}

void loop()
{
    
//Afiche une forme pleine de couleur  //
  myGLCD.setColor(15,200,40);         //bouton 1 vert pale
  myGLCD.fillRect(250,50,300,100);    //position: (x début; y début; x fin; y fin)

  myGLCD.setColor(255, 0, 0);         //bouton 2 rouge
  myGLCD.fillRect(250,130,300,180);   //position
 
 // titre  //
  //myGLCD.setFont(BigFont);
  myGLCD.setColor(255, 255, 0);     //couleur ecriture
  myGLCD.setBackColor(0, 0, 0);     //couleur de fond d'écriture
  myGLCD.print("* Gestion chaufferie *", CENTER, 5); //écriture;left,right,center;ligne/
  
 // pied de page  //
  myGLCD.setBackColor(0, 255, 255);  //couleur ecriture
  myGLCD.setColor(0,0,0);       //couleur de fond d'écriture ?
  myGLCD.print("<ptichamp>", CENTER, 231); //écriture;left,right,center;ligne
//Cadre 1 //
  myGLCD.setColor(0, 0, 255);
  myGLCD.drawRoundRect(2, 18, 318, 225); //Rectangle vide rond position: (xd,yd,xf,yf)
// écriture  //
myGLCD.setFont(BigFont);        // select grand caracteres//sa marche pas ?
myGLCD.setBackColor(64,64,64);
  myGLCD.setColor(255,255,255);
  myGLCD.print("**  choisir une touche  **", CENTER, 30);
// ligne  //
  myGLCD.setColor(0 , 0, 255 );      
  myGLCD.drawLine(0 , 115 , 318 , 115 );  // ligne Horz en ligne 60
  
}

J-M-L

Vous avez du code et une librairie sur leur site. Certes ce n'est pas en français mais avec google translate ce devrait quand même être accessible
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

infobarquee

bonjour,
je pense qu'avant de te lancer dans un projet comme celui ci, qu'il faudrait s'affranchir des bases minimum.
Surtout si tu touche à une chaudière, ce qui peut engendrer de très gros problèmes par la suite si un incident/accident/incendie venait a arriver.
Cela peut au minima, faire griller la mega, mais au pire, faire bruler une maison avec les conséquences que cela peut toucher des personnes en plein sommeil.
Une mise en garde est nécessaire.
AUCUNE AIDE PAR MP

ChPr

#3
Oct 13, 2017, 10:53 am Last Edit: Oct 13, 2017, 11:00 am by ChPr
En premier lieu, je plussoie avec "infobarquee" : une chaudière n'est pas un jeu !

Maintenant, j'ai développé une bibliothèque de composants visuels pour écran tactile 320 x 240. Peut-être cela pourra-t-il vous aider.

NOTA : avec cette bibliothèque, j'ai créé une application où je mesure les températures d'eau sortante et entrante à la chaudière ainsi que la vitesse de circulation de cette eau. Mais dans cette application, je ne contrôle pas la chaudière.

Cordialement.

Pierre
Pourquoi faire simple alors qu'il est si facile de faire compliqué !

ptichamp

Bonjour tous,
Tout d'abord merci pour vos réponses, judicieuses en ce qui concerne la sécurité / responsabilité.
Je suis un professionnel en chauffage (PGaz installateur) et je ne ferai pas n'importe quoi, bien entendue;
Cette appli. n'a pas pour but de "shunter" les sécurités d'un appareil du commerce (homologué et certifié), chez un de mes clients en panne, par exemple;
D'ailleurs pour ce qui est des réparations dans le cadre de mon activité pro, il existe déjà tout chez mes fournisseurs avec une garantie constructeur; Alors !.
Je développe uniquement pour mon compte personnel et en mode loisirs (chauffage piscine solaire, stérilisateur à bocaux, four à verre...).
Mon éthique est sauve et elle m'a conduit jusqu'à vous, je ne mélange pas la besogne et les loisirs !
Merci encore pour les réponses, je vais bucher ça, A+

bricofoy

salut

moi aussi je suis un professionnel du secteur (chauffe-eau solaire) et je suis en train de développer ça : thermalduino

-tu savais que si tu passe le CD de windows à l'envers, tu entends une chanson satanique ?
-non, mais il y a pire : à l'endroit, ça l'installe !

ptichamp

Bonjour,

salut

moi aussi je suis un professionnel du secteur (chauffe-eau solaire) et je suis en train de développer ça : thermalduino


Super projet, merci de partager,
Plus modestement, je cherche à faire fonctionner mon écran VMA412.
Maintenant, j'ai développé une bibliothèque de composants visuels pour écran tactile 320 x 240. Peut-être cela pourra-t-il vous aider.



Pierre
Le lien ver cette bibliothèque je n'arrive pas à le télécharger via IDE ARDUINO (1.8.5)
par contre la documentation en français est super et j'aimerai bien utiliser cette bibliothèque, elle correspond bien à mon projet.

ptichamp

En premier lieu, je plussoie avec "infobarquee" : une chaudière n'est pas un jeu !

Maintenant, j'ai développé une bibliothèque de composants visuels pour écran tactile 320 x 240. Peut-être cela pourra-t-il vous aider.

NOTA : avec cette bibliothèque, j'ai créé une application où je mesure les températures d'eau sortante et entrante à la chaudière ainsi que la vitesse de circulation de cette eau. Mais dans cette application, je ne contrôle pas la chaudière.

Cordialement.

Pierre
Salut Pierre,
je cherche à rentrer ta belle bibliothèque dans un programme avec l'IDE ARDUINO 1.8.5

1  Téléchargement du ZIP
    (Il est bien dans mon fichier téléchargement)

2  Croquis

3  Inclure une bibliothèque

4  Ajouter la bibliothèque .zip...

et ça me sort l'erreur suivante ? ( ça marche pourtant avec d'autres bibliothèques, j'ai testé):

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: MALFORMED
at java.util.zip.ZipCoder.toString(ZipCoder.java:58)
at java.util.zip.ZipFile.getZipEntry(ZipFile.java:583)
at java.util.zip.ZipFile.access$900(ZipFile.java:60)
at java.util.zip.ZipFile$ZipEntryIterator.next(ZipFile.java:539)
at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:514)
at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:495)
at processing.app.tools.ZipDeflater.deflate(ZipDeflater.java:41)
at processing.app.Base.handleAddLibrary(Base.java:2279)
at processing.app.Base$6.actionPerformed(Base.java:1085)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Go Up