Commander un port série via une interface WEB

Fermé
RS232 - 5 oct. 2010 à 11:12
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 5 oct. 2010 à 15:03
Bonjour,

Je me suis munis dernièrement d'une carte relais VELLEMAN. (https://www.velleman.eu/products/view/?country=es&lang=fr&id=351282
Cette carte permet l'ouverture/fermeture de contact relais.
L'interface est administrable grace à une petite application codée en Visual Basic. L'émission des ordres s'effectuent par le port série (RS232).

Le principe est 1 : ouvert, 0 : fermer.

J'aurai aimé avoir vos avis concernant mon étude de projet.
Je souhaiterai à présent pouvoir administrer cette interface, cette carte, par le biais d'une page web.
Le problème est que je ne sais absolument pas par où commencer.
Pourriez-vous m'apporter quelques idées de réflexion voir des pistes ?!
Autant vous dire qu'à l'heure actuelle, tout cela me semble si confus.

J'ai la source du projet VB, elle es aussi disponible sur le site internet cité plus haut.
J'espère que vous pourrez m'apporter quelques éléments de réponse.

En attendant je vous souhaite à toutes et à tous, une bonne fin de journée !


Cordialement,
A voir également:

2 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
5 oct. 2010 à 11:44
salut.



En php par exemple, tu peux executer des commandes systeme (evidement, suivant si ton serveur est unix ou windows ce ne seeront pas les memes commandes) avec la fonction "exec()"

ensuite, il faut envoyer tes instruction, tu peux t'inspirer de ceci:
https://forums.commentcamarche.net/forum/affich-1374259-batch-envoi-de-mots-ascii-par-rs232

sinon, comme alternative: faire un prorgamme en C / C++ ou autre langage permettant le controle du port RS232, et que tu puisse appeller en ligne de commande (donc ca va etre chaud avec le VB), et passer les instructions à ce porgramme via la ligne de commande, ou alors le connecter à la meme BDD que ton interface WEB et communiquer les instructions de commande via la BDD.

Autre possibilité: faire ton interface WEB en C avec l'utilisation des scripts CGI (enfin, fait pas tout le site en C, tu fais juste ce qui est utile).

Dans tous les cas, attention, il faut bien gerer le fait que plusieurs utilisateurs risquent d'etre connectés en meme temps. Tout dépend de la rapidité d'action. Perso, je mettrais bien la solution (si elle peut s'appliquer) d'un programme en C ou C++ (ou autre) qui tourne en continu, se connecte à uen base MySQL aussi utilisée par le serveur WEB. Dans cette table tu stoque les différents ordres de commande via le site WEB, et le programme C scanne régulièrement pour executer les commandes... suivant ce que tu commandes derrière ca peut le faire, et c'est le pratique je pense pour gerer le multi utilisateur.

0
Merci énormément Nabla's pour le temps que tu m'a accordé, c'est très gentil à toi.
Cependant il va bien falloir que je reprenne ligne par ligne ta réponse car à vrai dire, cela fait un petit moment que je n'ai pas touché à de la prog pur.
En effet je développe surtout en html/css et un peu de php.

En tout cas, merci !

Bonne journée !
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
5 oct. 2010 à 13:34
html/css c'est pas vraiment de la programmation, plutot de la mise en page ...
PHP en revanche c'est bien de la programmation.

Si tu ne maitrise pas d'autres langages, alors le plus simple pour toi sera d'utiliser exec() en php et les instructions en ligne de commande.

N'oublies pas que si plusieurs personnes utilisent en meme temps l'interface WEB, il risque d'y avoir des confits... A toi de faire en sorte que cela n'arrive pas
0
mrts Messages postés 1 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 5 octobre 2010
5 oct. 2010 à 14:50
Ok,
Donc selon toi, il serait préférable d'avoir un serveur sous Linux et d'utiliser la fonction exec via une interface web pour interagir avec le port série.

Ce qui implique je suppose :
- Savoir commander le port série via la ligne de commande
- Connaitre la fonction exec
- Savoir comment l'intégrer sur une page WEB

Il n'y aura que maximum deux personnes qui utiliseront ce service, c'est une interface de test : Mon collègue et moi même.

Je dois donc me familiariser avec cette fonction PHP et voir comment l'intégrer à partir d'une page web. J'ai donc du boulot devant moi. Dommage que je ne puisse pas m'y plonger à 100%, faute de temps. Deux jobs par jour, c'est pas évident.
En tout cas, j'te remercies encore pour le temps que tu m'as accordé.

Cordialement,
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
Modifié par Nabla's le 5/10/2010 à 15:05
windows ou linux: peu importe... le contenu de la commande sera différente...

sous dos, on doit meme pouvoir faire ceci:
echo tartiflette >COM1

et ca envera tartiflette sur le port COM .... avec ca tu dois pouvoir faire un controle très basic ....
pour faire le test, tu peux connecter le port de sortie en utilisant un cable RS-232 croisé vers un autre port du meme PC ou d'un autre PC, et écouter avec hyperterminal. Si t'as pas de cable sous la main, essayes avec des logiciels du genre "virtual serial port XP" ou un truc du genre, ca simule meme la connexion par cable croisé !
https://www.virtual-serial-port.org/

(ce logiciel peux vraiment t'aider pour voir ce qui se passe au niveau du port serie et reproduire el comportement.

un autre soft (je sais pas si ca marche encore sur les PC récents): portmon
0