Voilà donc sur cette page mon automate pour aquarium, baptisé Aquamate. Il est destiné aux aquariums marins. Je me suis lancé dans sa conception au début de cette année 2000, et celle-ci touche à sa fin en ce moment même (fin mars). Le principe pour lequel j'ai opté est un boîtier maître bati autour d'un microcontroleur PIC 16F877, et un bus I2C sur lequel il est possible de placer les extensions, qui sont plus ou moins modulables.
PRESENTATION
Le système de base (celui opérationnel à ce jour) a les possibilités suivantes :
-
Commande de 4 pompes de brassage : possibilité de faire des courants changeants en programmant un tableau de 24 bits par pompe, correspondant à la mise en/hors service de la pompe pour chacune des 24 heures d'une journée, d'ou d'innombrables possibilités...
-
Mise en / hors service de la lumière blanche
-
Mise en / hors service de la lumière bleue
-
Contrôle de la réserve d'eau osmosée : par 2 capteurs niveau haut / niveau bas dans la réserve, pilotage de l'electrovanne de l'osmoseur
-
Contrôle d'un réacteur à calcaire : mélanger pendant XX minutes toutes les XX minutes, pour avoir toujours une solution saturée
-
Fonction osmolateur : pilotage de la pompe de remplissage suivant un capteur de niveau dans le bac. Remplissage par acoups : pendant XX secondes toutes les XX minutes, pour que le remplissage à travers le reacteur à calcium se fasse bien, et ce lors d'une période programmable (ex : le matin)
-
Mesure de la temperature à 0.1°C près
Ce systeme de base est composé du boîtier maître bien sur et d'une carte I2C à relais pour piloter les prises 220V et sur laquelle viennent se brancher les 4 capteurs de niveau.
Possibilité futures :
FONCTIONNEMENT
Voilà quelques explications techniques : comment ca marche ?
A. Le maître
Le microcontroleur utilisé (le cerveau !) est un PIC16F877. C'est un nouveau modèle de PIC, que j'ai choisi car il a d'énormes possibilités : 8Ko de mémoire Flash pour le programme (énorme : actuellement aquamate occupe à peine plus de 2Ko...), de nombreuses E/S, et bien sur un port I2C ! Qu'éspérer de mieux ?
A coté de celà, un circuit qui fait callendrier, un DS1302 de chez Dallas Semiconductor. Il gère date / heure, gestion des années bisextiles, et sauvegarde avec une pile externe de l'heure en cas de coupure de courant.
Ensuite, un MAX232, bien connu des electroniciens, qui permet de convertir le TTL du micro en RS232 pour un port série de PC.
Vient se brancher sur cette carte l'afficheur LCD 2 X 16 rétroéclairé standard ainsi que les 3 boutons poussoir de commande, reliés d'un coté à la carte, de l'autre à la masse.
Le téléchargement du programme se fait par le port série du PIC. En effet, ces PICs ont la possibilité de pouvoir écrire des données dans la FLASH (donc dans la mémoire programme). J'ai donc utilisé un "bootloader" qui est dans la derniere page mémoire du PIC et qui me permet de charger mes programmes facilement, par le port série d'un PC avec un programme de terminal calssique (voir les téléchargements).
B. L'alimentation
L'alimentation est censée pouvoir alimenter tous les periphériques qui viennent sur l'Aquamate, d'où sa taille assez importante. Elle produit du +5V pour les composants numériques et du 15V symétrique pour les composants analogiques (mesures en tous genres...). Elle doit pouvoir sortir un peu plus d'1A, mais je n'ai pas testé, en tout cas, ca marche. Les tensions d'alimentation sont transportées sur la nappe de fil qui relie les périphériques. Cela permet d'avoir un seul connecteur et de faire à chaque fois des périphériques simples, réduits au minimum.
L'alimentation et le maitre sont tous les deux dans le même boitier.
C. La carte à relais
J'ai mis ici 11 relais, avec une bobine faible consommation pour éviter de trop tirer sur l'alimentation. Ils sont chacun commandés par un transistor PNP. J'ai utilisé des composants I2C de chez Philips des PCF8574. Ce sont des E/S (Entrées/Sorties) I2C. L'un est entièrement en sorties, l'autre a ses 5 bits de poids forts en entrée (4 capteurs de niveau + 1 libre on ne sait jamais...).
D. Le thermometre
Le thermometre un composé d'un PIC16F84 très populaire... C'est un périphérique I2C "Slave" et l'I2C y est don géré en soft, ce PIC ne possédant pas de port I2C. Le capteur de temperature est un DS1820, donc tout numérique. Il donne les mesures à 0.5°C près mais il est possible de calculer la temperature précisément, ce que je fais. C'est une formule un peu complexe (division, additions en 16 bits...) qui se trouve dans la datasheet bien sur. Mais ca fonctionne très bien sur le petit 16F84 qui s'en tire très bien avec les calculs ;-).
DETAILS PHOTOS
La boite vue de l'exterieur : 3 boutons de commande, l'afficheur LCD 2 lignes 16 caractères rétroéclairé, un prise DB9 pour rechargement du programme avec un PC.

La boite vu de l'interieur : à gauche, la carte avec le PIC, le DS1302 et le MAX232; à droite, l'alimentation.

La carte à relais : les connecteurs 220 V en haut, les contacts (capteurs de niveau) à droite. On voit aussi en bas à gauche le connecteur qui va sur le bus de l'aquamate.
TELECHARGEMENTS
Ici possibilité de télécharger les programes et les schémas. Les schémas sont tous au format Protel, si vous n'avez pas ce logiciel, vous pouvez le commander gratuitement sur http://www.protel.com , en version d'evaluation bien sur, mais vous pourrez visionner les fichiers. Tous les fichiers en téléchargement sont dispo dans la rubrique téléchargement du site : Cliquez ici
Outils de développement :
Vous trouverez l'excellent compilateur MPASM (le seul outil nécessaire) sur le site de Microchip. Pour ce qui est du programmateur : voici un schéma fort simple qui vous permettra de programmer les PIC16F84 et 16F877 à partir de votre port série : désolé, c'est pour bientôt..... Le logiciel qui va avec le programmateur est encore en version beta et il tourne sous linux (désolé, mais c'est ce que j'utilise et je n'ai rien d'autre, il a été développé par un autre élève de l'INSA....) : c'est pour bientôt aussi ! Il a été adapté sous DOS mais il ne fonctionne que pour les 16F84, problème de timing je pense.
Article et photos de Julien Schmitt
Site Web
Email : julien@jls-info.com
Mise à jour du 14/08/2002
FAQ
L'afficheur comporte des numeros mais inversés par rapport au circuit, que dois-je faire ?
Il faut tenir compte des numeros, les afficheurs sont normalisés : la masse est en 1, le +5 volts en 2 le contraste en 3, et ainsi de suite.
15 et 16 sont le + et le - du retroeclairage.
Tel qu'il est, je n'ai pas fait figurer le retroéclairage.
Pour activer le retroéclairage, il faut brancher K ‡ la masse, A ‡ une resistance 3.3 ohms et l'autre coté de cette rÈsistance au +5V.
En faisant ca, il sera toujours allumé, ce n'est pas un pb.
Par contre, j'ai rajouté une petite logique de commande en volant (un transistor) et récupéré une patte du PIC en volant toujours pour allumer et éteindre le retroéclairage
utiliser la patte 40 du pic ! transistor PNP
Comment dois-je relier les boutons de la facade au circuit ?
les boutons de facade D5 :
la nappe a relier est celle de 6 fils.
prendre 1 masse (sur les 2 dispo) et 3 contacts (sur les 4 dispo) : celui qui correspond a la patte 40 du pic sera inutilisé.
chaque bouton doit faire le contact entre la masse et un contact.
Comment puis-je programmer les PICs depuis l'interface de l'Aquamate ?
Il suffit de relier l'Aquamate a vorte PC par le port serie, et d'utiliser un logiciel de type hyperterm, configurÈ en 9600 bauds / 8 bits / pas de parité / pas de controle de flux.
MODE DE CONSTRUCTION
apres avoir gravé, étamé et percé vos plaques, soudez tout les composants, mais n'inserez pas les PIC dans leur support.
vous devrez les programmer.
pour cela vous aurez besoin de :
- un programmateur de PIC
pour cela, soit achetez un programateur de pic, soit fabriquez le. (plan a cette adresse : http://kudelsko.free.fr/prog_pic_rs232/presentation2.htm )
- un PC equipé d'un port serie (ou paralele suivant le programmateur)
un logiciel gratuit : IC-prog (telechargeable a l'adresse : http://www.ic-prog.com/index1.htm )ou autre.
Pour programmer les PICs :
recuperez les fichiers .hex
(les .asm sont la juste pour votre comprehension: ce sont les programes avant compilation)
lancer le programme IC-Prog,
choisissez le nom du PIC a programmer (soit 16F877 soit 16F84A)
cocher les case "watch dog"
et mettre l'ocilateur sur "HS oscillator"
en ce qui concerne les autres options, ca n'a pas d'importance.
faites "fichier" "ouvrir" et recuperez ainsi le fichier du pic que vous souhaitez programmer.
effacer le PIC,
lancez la programmation en cliquant sur "tout programmer".
ainsi, vos composants sont pres.
vous n'avez plus qu'a les placer sur les circuits.
#(pour aqua directement rentré dans l'eprom)
remplacer org 0003 par org 0000 et compiler avec mpasm.
Le thermometre :
Pour l'ordre de la sonde, si vous prenez le DS1820, coté plat vers vous, pattes vers le bas, il y a dans l'ordre :
Masse - data - 5V
la distance maximum doit etre de 3 m, mais dans ce cas utilisez du fil blindé.
sinon, 1 metre sans probleme.
Noyer la sonde dans un petit tube en plastique dans de la colle epoxy.
attention lors des branchements de ne pas envoyer du 15 V au lieu du 5 v (inversion du cable plat) sans quoi vous grillerez le DS1820...
Les relais :
des relais 5 ou 6 volts vont tres bien, en revanche, attention a la resistance de la bobine !!!
une resistance supèrieure a 100 Ohms est necessaire, l'ideal etant 150 Ohms.
l' amperage doit etre prévu en fonction de ce que vous mettez derrière : pour une HQI de 250 W prévoyez 5 A (a l'allumage, elle consome plus que 1 A)
en ce qui concerne les capteurs, voici l'ordre, visserie face a vous :
rien / Remplissage / Osmoseur (capteur bas) / Osmoseur (capteur haut) / Rermplissage
le remplissage est en double pour la securité.
l'osmoseur est regulé par un contact se trouvant en bas de la cuve reserve d'eau, et un autre se trouvant en haut. (celui du bas demare le remplissage, et celui du haut le coupe)
MODE D'EMPLOI
Vous venez de terminer la réalisation de votre aquamate.
Pour l'utiliser, vous devez tout d'abord le configurer.
Réglages :
En premier lieu, le contraste (la résistance variable sur le circuit)
ensuite, les réglages par le menu.
Pour cela vous devrez utiliser les 3 boutons :
le premier est ENTER
le second est MENU
le troisième est DÉFILE.
- Réglage de l'heure :
appuyez sur le bouton MENU
appuyez sur ENTER
faites défiler jusqu'à "réglages" avec la touche DÉFILE
appuyez sur ENTER
régler date et heure s'affiche :
appuyez sur ENTER
faites défiler les chiffres avec la touche DÉFILE
appuyez sur ENTER pour régler et passer au réglage suivant.
-Autres réglages :
faites tout les autres réglages de la même manière.
que signifie l'affichage :
-les lettres en bas signifient ce qui est en route. Donc quand la lettre est écrite c'est que c'est en marche, sinon, c'est arreté.
Dans l'ordre il y a :
B : lumiere blanche
b : lumiere bleue
1 2 3 4 pompes de 1 à 4
C : chauffage
X : sortie libre pour faire ce que l'on veut (actionnable hors menu parle bouton de droite)
R : reacteur
r : remplissage (bac principal)
O : osmoseur
Le Thermometre :
En ce qui concerne les leds, une clignotte à chaque transfert de donnée, l'autre indique le bon fonctionnement.
SCHEMAS COMPLEMENTAIRES
Maitre (implémentation)

Maitre

Relais (implémentation)

Relais

Température (implémentation)

Température ex.


Boutons :

Merci à Jean DUFFAS pour la transmission de ces documents.
Article soumis par Steph