Le WIKI de DiliaK

logo  
Vous êtes ici -> ReLais
AccueiL :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes 38.107.191.93
Bienvenue !




Accueil

Reportages

RADIOAMATEUR

UFOlogie

Développement PHP

Libre service

Les jeux

La Douzef

Liens divers

Pages utiles








Commandes par relais piloté par ordinateur


Voulant pousser plus loin mes expérimentations et renforcer la fiabilité sous LINUX, je me suis procuré une carte à relais qui me servira à piloter divers éléments externes comme mon modem Telit, par exemple.

Cette carte est munie de huit relais et est pilotée par une platine de commande USB. Ce module est composé d'un interface USB=>série de type FTDI. Enfin, elle comporte un microcontrôleur ATMEL pilotable par simples commandes sh.


Carte relais handout

Bien que n'étant pas sûr d'utiliser cette platine, je vais commencer mes essais avec. Avec ce montage autour de l'ATMEL, je n'ai pas le retour de position des relais.

Le principe au démarrage du modem gsm grâce à cette platine :

  • Je mets tous les relais à off (au cas où...)
  • Je temporise 1/10ème de secondes
  • Je mets le relais 1 on (mise sous tension du modem)
  • Je temporise 2 secondes pour laisser le temps au modem de démarrer
  • Je mets le relais 2 on (Impulsion sur la mise en route du gsm)
  • Je temporise 1 seconde
  • Je mets le relais 2 off (fin de la temporisation)

Le gsm est en route et prêt à recevoir des commandes AT.

Les commandes en Bash dans un fichier de démarrage :

echo -e "\xFF\x00\x00" > /dev/telit 
sleep .1
echo -e "\xFF\x01\x01" > /dev/telit
sleep 2
echo -e "\xFF\x02\x01" > /dev/telit
sleep 1
echo -e "\xFF\x02\x00" > /dev/telit
sleep 1


Sur la sortie relais 1 se trouve le contact d'alimentation de la platine Telit et sur la sortie relais 2, la commande impulsionnelle de mise en route du gsm.

Retour d'infos de position des relais


Je viens de découvrir qu'il est possible d'avoir la position des relais en utilisant un code bien précis.
J'ai donc orienté mes recherches autour de cette info. A savoir que je souhaite récupérer la position des relais et l'utiliser dans une page php ou autre.

J'ai créé un script basique me permettant d'envoyer la commande et de la recevoir dans un fichier. Ce résultat est en hexadécimal et transformé en clair. Je cherche comment exploiter ce fichier.
J'utilise la commande "cats" dans un premier temps que l'on peut trouver ici : Commande cats

Avec la platine à 8 relais, il faut envoyer cette commande :

echo -e "\xFF\x09\x00" > /dev/relais

Fichier de commande test.sh :

#!/bin/bash
echo -e "\xFF\x09\x00" | ./cats -b9600 /dev/relais > ./test.hex &
#making file in hex format.
PID=$!
#Capture the pid number for a clean destroy...
sleep .2
kill $PID
#Killing pid of cats runtime
sleep 1
hexdump ./test.hex > test.asc
#Making file with standart reading.


A savoir qu'à terme, je souhaite piloter les 8 relais et afficher leur position.

Le 19/06/2010

Script de commande en php réalisé. Bien entendu, il est évolutif car la base étant fonctionnelle, le reste n'est plus que de la présentation.
commande relais handout

Téléchargement :
commande relais handout

Le 20/06/2010

Améliorations diverses apportées au script pour assurer un meilleur report des infos et une solidité accrue. Ajout d'un autre petit script pour visionner le statut des différents relais avec des images.
Sur les photos du dessous, on peut voir que les relais 3 et 4 sont dans un état inconnu.

commande relais handout

Téléchargement :

Conclusion :


Il reste tout de même un point noir : Que ce soit ce type de platine ou un autre, la seule chose de contrôlée est l'état des relais qu'est sensé ENVOYER LOGICIELLEMENT le micro-contrôleur, pas leur état REEL.
En effet, un relais de grillé ne sera donc pas vu comme tel. Un souci de câblage dans ce type de platine ne sera également pas vu. Plus de 12V : idem.

Le seul moyen de voir la position réelle des relais serait de les remplacer par des "deux RT" et de superviser l'un des contacts en envoyant leur position sur une autre platine gérant des ENTREES ANALOGIQUES.

Le cas des pannes partielles comme les photos du dessus ne sont qu'une supposition et sera fonction d'une panne logicielle non testée dans mes essais.


gestion
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]