La plus énervante
des remarques que l'on puisse entendre à propos d'un logiciel,
est le fait qu'il ne sache pas faire le café. Georgatos Photis
a donc écrit le Coffee HOWTO. A présent Linux sait faire
le café, et de plus, il est excellent !
Depuis longtemps, le café est la matière première
de l'informatique. Tout le monde le sait, la programmation est toujours
plus facile de nuit et pour rester éveillé, il faut du café.
MATERIEL
Le problème
principal est le contrôle de la machine à café par
l'ordinateur. Il faut en effet que le PC puisse allumer et éteindre
la cafetière.
Le port le plus facile à mettre en oeuvre pour ce genre de montage
est le port parallèle. Le diagramme général de fonctionnement
est donné en figure 1.
Pour une machine à café importante, il vaudra mieux utiliser
un relais. En revanche, pour une simple cafetière, un montage à
Triac suffira. Nous décrirons ici le montage à relais.
Les broches importantes du port parallèle sont les sorties numérotées
de 2 à 9, et la masse sur les broches 18 et 25. C'est sur ces broches
que sera connecté le montage.
Le schéma du montage est donné en figure 2. La broche 2
du port parallèle est reliée à la base du transistor
NPN (2N2222A ou BC547A) via une résistance de 4,7 KOhm. L'émetteur
du transistor sera relié à la masse et le collecteur sur
le bobinage du relais. Il suffira ensuite de mettre le montage sous tension
(Vcc) selon le type relais utilisé (5 ou 12 Volts). Notez la présence
de la diode (1N4002) destinée à protéger le transistor
du retour de courant. En l'absence de celui-ci, il y a de fortes chances
que le transistor devienne sombre et malodorant.
Il vous suffira ensuite de connecter la sortie du relais entre la machine
à café et son alimentation.
LOGICIEL
Pour écrire
un programme qui accède au port parallèle de la machine,
vous devez, dans l'ordre :
- obtenir la permission d'écrire sur le port par une instruction
comme ioperm(BASE, largeur, 1);
- envoyer l'instruction sur le port par outb(1, BASE);
- attendre le temps nécessaire à la confection du café
(passé par un paramètre, par exemple);
- eteindre la machine à café par outb(0, BASE);
- rendre les permissions par ioperm(BASE, largeur, 0).
La valeur le BASe est l'adresse du port parallèle où est connecté le montage, 0x3bc pou /dev/lp0, 0x378 pour /dev/lp1 et enfin 0x278 pour /lp2. La largeur est 8 dans tout les cas .
N'oubliez pas de rendre votre programme setuid afin que tous les utilisateurs puissent boire du café.
EXTENSIONS POSSIBLES
Parmi les extensions
proposées par l'auteur du HOWTO, il y a :
- la création d'un script CGI pour faire du café via Internet;
- Etendre le montage pour faire des toasts ou des tartes aux pommes;
- Fabriquer un cluster de machines à café pour augmenter
le rendement;
- Ajouter des capteurs pour connaître le niveau d'eau et de café;
- Créer un montage pour brancher une cafetière sur le port
série à 115K/s.