Gambas France BETA


Pas de compte ? Incription

DIO-Commander, évolution et modernisation

123
AuteurMessages
O.Coquet#1 Posté le 26/10/2024 à 11:09:41
Ce qui n'est pas devra-t-être inventéCertains d'entre vous ont pu le voir, je suis arrivé à un projet abouti avec DIO-Commander 0.083 (dans la forge).

L'idée principale étant de piloter l'ensemble de mes installations domestiques (lampes, volets, etc...) reliées à des récepteurs DIO (Chacon), et tout ça à l'aide de gambas, de modules émetteurs DIO, d'une carte K8055.

L'ensemble fonctionne bien !

mais:

-La carte K8055 date un peu (2003), on la trouve encore mais ça reste un produit obsolète.
-La gestion des Entrées/sorties doit se faire à 100% par l'ordi qui la pilote, aucune facilité.
-Utilisation de librairies anciennes, plus mises à jour.
-Nombre d'entrées digitales (5), entrées analogiques(2) et sorties digitales(8) limité.
-Cout élevé en fonction du nombre de dispositifs à commander:
- environ 45€ par groupe de 8 dispositifs (1 carte supplémentaire)
- environ 17€ par groupe de 2 dispositifs (1 module émetteur 2 canaux)
- soit: pour 10 dispositifs:
- 2 cartes k8055 = 45x2 (90€)
- 5 modules émetteurs = 17x5 (85€)
- Total : 175€ et deux ports usb occupés

Bref, il est temps de faire évoluer le projet vers des choses un peu plus récentes.

Voici donc mon cahier des charges:

- Ensemble communiquant via USB (présent sur tout ordi de base).
- Rapide dans la gestion des E/S.
- Nombre d'E/S important et évolutif sans surcout.
- Gestion des E/S en interne du dispositif, libérant Gambas de cette tâche basique.
- Autonomie (pouvant effectuer des tâches élémentaires en cas de coupure de courant).
- Utilisation d'un seul port usb.
- Cout d'achat faible et grande disponibilité.

Voilà, le message suivant présentera, la solution que j'ai retenue pour moderniser ce projet et le rendre plus facilement utilisable au quotidien.

amitié
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
O.Coquet#2 Posté le 27/10/2024 à 07:36:57
Ce qui n'est pas devra-t-être inventéBon voilà, j'ai fait des tests, et les résultats sont là, j'ai ma nouvelle base de travail.

j'ai choisi une carte Arduino Uno.



Pour ceux qui ne connaissent pas, il s'agit d'une carte micro-contrôleur programmable qui dispose de 14 entrées/sorties digitales et de 6 entrées/sorties analogiques, d'un port usb, et d'une flopée de modules complémentaires.

je lui ajoute un module émetteur RF433 pour simuler les modules émetteurs DIO (pas de limite de dispositifs pilotés )


Cout Total:

- carte environ 30€
- Module émetteur environ 3€
- câbles et prises environ 3€

Total en état de marche: environ 40€ (avec un joli boitier).

Premier objectif atteint.

Prochain message: comment mettre tout ça en marche et le piloter depuis Gambas :)

amitié
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
valaquarus#3 Posté le 27/10/2024 à 13:55:25
-- Unus Ex Altera --Bonjour Olivier,
pourquoi ne pas faire un article du wiki.
Cela a pleinement sa place car nous sommes bien dans une démonstration pédagogique qui servira à plusieurs.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
O.Coquet#4 Posté le 27/10/2024 à 16:46:31
Ce qui n'est pas devra-t-être inventéParce que ce forum est mon forum de cœur, j'y suis arrivé il y a bien longtemps et le voir inactif m'attriste.

Pour la petite histoire, j'ai connu Gambas/Benoit en 1999, depuis la toute première version, je l'ai suivi jusqu'à aujourd'hui et le suivrai encore longtemps.

Notre parcours est quasi identique (à 10 ans près) hors mis qu'il fut un atariste alors que je fût le premier développeur Français commodoriste :) et qu'il est un EPITien alors que je suis un ECEien :)

Gambas est un langage comme un autre, ni mieux ni moins bien, je ne le défends pas particulièrement mais il a cela pour lui, il est dispo, gratuit, et fréquemment mis à jour.

Étant électronicien d'origine, j'aime allier les deux, d'un côté l'électronique et de l'autre la programmation, avec DIO-commander, les deux sont à la fête, on peut d'ailleurs y ajouter un peu de "C" avec la carte Arduino qui arrive dans le projet.

Voilà, je m'en va donc continuer mon bout de chemin sur ce forum, on verra si certains se décident à intervenir et si des anciens repointent le bout de leur nez.


Amitié
Olivier (alias Olinux)

Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
O.Coquet#5 Posté le 28/10/2024 à 10:39:42
Ce qui n'est pas devra-t-être inventéBien, après ce choix, cornélien, il va falloir réveiller quelques notions de base :lol:

Première étape, comparaison du schéma de fonctionnement entre la version Gambas/K8055/Télécommandes DIO et la version Gambas/arduino/module rf433:

Version 1 (Gambas/K8055/Télécommandes)

La carte k8055 a des fonctions très basiques, elle obéit aux ordres qu'on lui donne, à savoir mettre une sortie digitale à 1(équivalent d'un switch fermé) ou à zéro (switch ouvert) point à la ligne.
Et ceci très lentement :o

Dans cette version gambas va devoir tout gérer, de ce côté là, à savoir, envoyer la commande appropriée via le port usb, à une vitesse compatible avec la carte, sauf que la gestion du port usb avec gambas reste assez complexe et couteuse en code. C'est pour cela que l'on fait appel à une librairie ou à une commande extérieure développée il y a fort longtemps et particulièrement fermée (on fait ce qui est prévu et rien d'autre).

côté télécommande, on est dans le même registre, en fonction de l'ouverture ou de la fermeture d'un switch, la télécommande enverra un signal <on> ou <off> au dispositif à commander. Sauf que en fonction des modèles il faut fermer le switch une fois pour <on> et deux fois pour <off> alors que sur d'autres modèles il faut fermer le switch(et le laisser fermer) pour envoyer un <on> et ouvrir le switch (et le laisser ouvert) pour envoyer un <off>, et je ne parle pas des télécommandes avec deux boutons (un pour <on> et un pour <off>).

voilà à peu près comment ça se passe dans cette version:



commande====>transformation en signal====>action sur les switchs=====>envoi du signal
GAMBAS ====> librairie externe ========> k8055 =================> télécommande

On voit de suite que cette solution est un peu complexe, assez figée, et surtout très dépendante de la fameuse librairie.
De plus, l'interface utilisateur est très confuse car il faut gérer les dix(par exemple) dispositifs avec leur statut on ou off ainsi que le mode de commande pour les différents types de télécommande, cela fait beaucoup de boutons et plein de if/then/else à la clef :o

Version 2 (Gambas/arduino/modulerf433)

Dans cette version, on délègue. Gambas ne gère que la partie calendrier/horaire et se contente d'envoyer à l'arduino un numéro de dispositif accompagné d'une commande <on> ou <off> sans se préoccuper de qui ou comment. L'arduino étant un microcontrôleur programmable va quant à elle gérer le qui et le comment, à savoir recevoir les commandes de gambas et les transformer en informations à envoyer au module rf433. enfin en dernier lieu le module rf433 transforme ses informations en signal radio compatibles avec les différents dispositifs.

Comme on peut le voir, les tâches sont plus équitables, gambas gère ce qui n'a pas besoin de rapidité, arduino gère ce qui doit être rapide, et le module assure la bonne transmission des ordres.

Mais, car il faut bien un mais:

Quand on vous livre une arduino, il n'y a aucun programme dedans, en d'autres termes, il va falloir mettre les mains (un peu) dans le cambouis et faire un peu de programmation en "C" arduino, car c'est ce programme qui va remplacer cette fameuse librairie externe. Rassurez vous c'est très simple, et quand vous verrez le code, je suis sûr que certains y apporteront très vite des modifications intéressantes.
Autres aspect intéressant de cette version, la arduino peut, toujours via programme, récupérer des informations de différents capteurs (température, lumière, etc.....) et commander directement d'autres dispositif (moteurs, relais, etc.....) et tout ça en communicant ces informations ou actions avec Gambas.


La suite: premières expériences

Amitié à tous
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
O.Coquet#6 Posté le 28/10/2024 à 14:43:23
Ce qui n'est pas devra-t-être inventéAllez juste pour vous mettre en appétit :

2h30 de codage, et gambas envoie un code à l'arduino, arduino envoie ce code au rf433, et arduino répond à gambas "ok!"

J'ai donc une télécommande pilotable par Gambas avec un nombre infini de télécommandes.....


vous voyez bien que c'est pas dure :)

demain le code arduino pour ceux qui suivent.

Amitié
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
O.Coquet#7 Posté le 30/10/2024 à 20:12:35
Ce qui n'est pas devra-t-être inventéPetit avant-gout de la nouvelle interface principale de la v2.0.....




Amitié
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
O.Coquet#8 Posté le 1/11/2024 à 09:17:31
Ce qui n'est pas devra-t-être inventéBon je sais, c'est un peu long, mais là je fais un exercice de style.
J'essaye de faire un code intégralement commenté pour que tout le monde puisse comprendre (enfin j'espère) et compte tenu que le changement de carte implique un gros changement dans la programmation (plus de possibilités) nouvelles méthodes etc.....

Je rame un peu :)

Bref, je pense que lundi je pourrais mettre en ligne quelque chose qui fonctionne correctement (du moins pour les fonctions déjà implémentées).


Amitié à tous
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
O.Coquet#9 Posté le 2/11/2024 à 13:00:17
Ce qui n'est pas devra-t-être inventéHello à tous,

Bon ça avance bien, le nouveau couple Gambas 3.19.5 et Arduino semble fonctionner à merveille, l'émetteur RF433 donne d'excellents résultats tant en terme de portée, testé à 70 mètres, ça fonctionne encore sans accroc.

Cette nouvelle version devrait pouvoir passer en production, car les bugs y sont quasi absents et les "ratés" sont quant à eux totalement absents.

dans les nouveautés:

- on passe de 8 à 10 dispositifs de base
- on peut choisir l'état de tous les dispositifs au démarrage (allumés, éteints, ou non précisés)
- on peut définir des dispositifs différents en fonction de chaque scénario
- possibilité d'afficher les commandes envoyées ou non sur l'écran de visualisation.
- on peut démarrer ou non le service web de commande à distance.
- Plus besoin de télécommandes DIO, Le logiciel peut générer des codes de télécommande à volonté.

Dans les améliorations:

- Le calendrier horaire n'est scanné qu'une fois à chaque modification de l'heure (chaque minute), les ressources sont beaucoup moins sollicitées.
- Le code a été ré-écrit depuis 0, j'ai essayé de l'optimiser et de trouver des solutions plus élégantes. code plus rapide et plus propre.
- une interface visuelle beaucoup plus chiadée, Des boutons plus propres utilisant des images pour les voyants.
- Séparation de l'interface frontale, de l'interface de configuration, et de l'interface de création des scénaris.


Voilà, je pense que la première release devrait être uploadée lundi soir.
Je suis entrain de voir pour réaliser un pack de démarrage préconfiguré pour ceux qui souhaiteraient utiliser l'ensemble chez eux.

Amitié à tous
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
O.Coquet#10 Posté le 3/11/2024 à 10:12:49
Ce qui n'est pas devra-t-être inventéÇa arrive.....

Lentement mais surement.

Le code pour arduino sera en ligne demain en fin d'après-midi.

Je vous donne déjà les éléments qu'il vous faudra si vous voulez utiliser tout ça:

- Une carte Arduino UNO ou compatible, sur Amazon on trouve des kits de démarrage à des prix défiants toute concurence
ici: Kit elegoo compatible Arduino Uno 24.99€

- Un émetteur RF433, idem sur Amazon, les pack comprennent souvent plusieurs émetteurs et plusieurs récepteurs pour une poignée de cerises.
ici:kit de 3 émetteurs / récepteurs 6.99€

- Un câble USB du type pour les imprimantes, avec un embout carré.
Il est fourni dans le kit Elegoo

- un jeu de trois prises DIO (Chez leroy merlin, bricorama, etc....)
ici: Kit deux prises murales Chacon12.99€

Total: 44.97€
Je peux pas mieux dire, et c'est vraiment ce qu'il y a de mieux pour démarrer votre domotique, vous verrez, on devient vite accro :)

Pour les "récupérateurs invétérés" il existe la solution des déchèteries ou des groupes Facebook d'impression 3d, en général, toutes les imprimantes 3d comprennent une carte Arduino Mega 2560 totalement compatible avec les arduino UNO. du coup là y'a plus que les prises et l'émetteur à acheter. Si vous optez pour cette option, faites moi signe pour adapter le code arduino à votre carte.

Voilà, y'a plus qu'à vous équiper :)
Amitié
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
pinky#11 Posté le 3/11/2024 à 11:02:26
Bonjour,
Ca a l'air d'une sacrée usine à gaz ton programme. ;)
J'irai l'admirer quand il sera disponible.
Dolmen (table pierre) : Caillou préféré des Bretons (un dolmen de prédilection).
O.Coquet#12 Posté le 3/11/2024 à 12:44:34
Ce qui n'est pas devra-t-être inventéBah non pas une usine à gaz, au contraire, j'essaye de faire propre, disons qu'on peut un peu comparer avec la enki de chez leroy merlin mais en moins chère et surtout en plus évolutif :)

amitié
Olivier (Alias Olinux)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
linuxos#13 Posté le 3/11/2024 à 16:11:30
Un peu de sel, de poivre et la crevette sera... Bonjour O.Coquet,

Apres reflexion, je te propose mon aide quant au developpment de ta solution, si cela t'interesse bien sur.

Ayant déja utilisé des Arduino et Gambas. Qui plus est, cela fait longtemps que je pense a mettre un peu de domotique chez moi aussi.

Laisse moi savoir ce que tu en penses

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
O.Coquet#14 Posté le 3/11/2024 à 16:49:31
Ce qui n'est pas devra-t-être inventéCa aurait été avec plaisir, sauf que....


J'ai quasiment tout fini, j'en suis à mettre les commentaires :)
Amitié
Olivier (Alias Olinux)

Raspberry pi 3 et 4, pc Xubuntu, Arduino.....
Quelques autres "vieux" ordinateurs !
Et un bon fer à souder
linuxos#15 Posté le 3/11/2024 à 17:13:02
Un peu de sel, de poivre et la crevette sera... Pas de soucis, content que tu es presque fini.

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
123