Automatisation pour un aquarium de vos propres mains - schémas. Contrôleur d'aquarium simple. L'émergence de l'idée de​​créer un aquarium

Depuis que j’ai des plantes vivantes dans mon aquarium, la question d’un éclairage raisonnable s’est un jour posée. Comme vous le savez, briller pendant plus de 12 heures peut entraîner des problèmes avec différents types d'algues. Le plus souvent vert. Et raccourcir les « heures de clarté » ou l’éclairage comme Dieu le veut est mauvais pour les plantes.

Actuellement, j'ai un éclairage de 1 watt par litre dans mon aquarium. C'est beaucoup, et si vous ne contrôlez pas l'heure en réglant une minuterie de prise, d'une part, un tel éclairage est vraiment un bonheur pour les encrassements verts sur le verre, et d'autre part, le compteur électrique pour un mois représente une somme considérable de équivalent monétaire. Et j'étais constamment « surexposé » : une lampe de 160 kilowatts était allumée 14 heures par jour.

Au moment où je l'allume le matin, la lumière de l'aquarium reste allumée jusqu'au milieu de la nuit, car je suis un oiseau de nuit, je travaille tard et l'aquarium du bureau est agréable à regarder. Vous serez occupé et oublierez de l'éteindre. Et il est conseillé de se rappeler à quelle heure il a été allumé aujourd’hui. Faites une pause dans votre travail, admirez l'aquarium, comme tout y est vert et beau... Et vous ne voulez pas vous séparer de cette beauté.

Un jour, j’ai décidé que ça suffisait ! Il faut systématiser la durée d'éclairage, fixer une durée stable de 10 heures et pas plus ! Ouais, vous devez chercher une minuterie de prise en vente ! Il s’est avéré qu’il n’est pas en vente et les vendeurs n’ont aucune idée de ce que c’est. Et enfin, bonne chance ! Une fois que je l'ai vu moi-même dans une vitrine, j'ai deviné que c'était lui, le même ! Voilà à quoi il ressemble.

Minuterie de prise mécanique

Il est programmé pour 24 heures. C’est-à-dire tout le cycle quotidien dont nous avons besoin. Il s'est avéré que même la « blonde » peut s'occuper de lui sans difficulté.

  1. La première étape est le changement. La minuterie l'a sur le côté. Avant de commencer la programmation, il faut passer au « toujours allumé».
  2. Soulevez tous les petits leviers bleus.
  3. Tournez la molette de programmation dans le sens de la flèche vers la droite jusqu'à ce que le repère dessus coïncide avec l'heure actuelle.
  4. Commençons maintenant la programmation. Chaque levier bleu équivaut à 30 minutes. Nous les abaissons un à un en les appuyant avec notre doigt. Vous devez, par exemple, régler l'heure de 10 heures à 22 heures. Pendant cette période, tous les leviers doivent être enfoncés. À 10 heures exactement, la minuterie allumera les appareils électriques et à 22 heures, les éteindra. La minuterie de prise répétera ce programme quotidiennement. Une fois que vous avez réglé le programme, vous pouvez oublier la minuterie. Basculez l'interrupteur latéral du mode « allumage constant » au mode « horloge ».

Et c'est tout ! La durée de vie de cet appareil est de 7 ans. On peut l'appeler différemment, par exemple une minuterie mécanique. J'en ai fini avec les problèmes d'éclairage d'aquarium aléatoire ! J'ai oublié quand dernière fois J'ai nettoyé le verre des encrassements verts. La lumière est allumée strictement pendant 10 heures. L'appareil est simple et sans problème. Je le recommande à tout le monde !

chesdenis 25 novembre 2015 à 13:02

Système contrôle automatique aquarium sur Arduino

  • DIY ou faites-le vous-même

L'émergence de l'idée de​​créer un aquarium

Il se trouve que j'étais principalement impliqué dans la programmation .NET et que je l'ai appris en contournant le C++. C'est probablement pourquoi je n'ai jamais rencontré de microcircuits et de microcontrôleurs, même si l'envie de les connaître grandissait presque chaque année. En particulier, dernières années quand j'ai découvert Arduino. Mais il devait avoir une idée application pratique. Et ce problème a été rapidement résolu.

Il y a un aquarium dans notre chambre et chaque jour, nous devions ramper sous la table et éteindre les lumières pour les poissons, puis les allumer le matin. De plus, les poissons devaient allumer le chauffage lorsqu’ils avaient froid et l’éteindre lorsqu’ils étaient chauds. Parfois, mon oubli entraînait la mort de poissons dans l'aquarium et je devais en acheter de nouveaux. Le poisson devait également changer périodiquement les 2/3 de l'eau. Et pour notre aquarium, cette procédure s'est avérée très longue et désagréable.

La première chose que j'ai faite a été de regarder solutions toutes faites par les aquariums. Il y en a beaucoup. Ce sont principalement des vidéos sur YouTube. Il y a aussi assez articles intéressants sur les temps de geek. Mais pour mon objectif - étudier et découvrir le monde des microcircuits - c'était trop difficile, et guide détaillé« à partir de zéro » n'a pas été trouvé sur Internet. L’idée de développer un contrôleur d’aquarium a dû être reportée jusqu’à ce que les bases de la microélectronique elle-même soient étudiées.

Introduction à la microélectronique

J'ai commencé mon voyage avec un kit d'apprentissage Arduino prêt à l'emploi. Probablement tout le monde a collecté quelque chose de similaire lorsqu'il a fait connaissance avec cette plateforme :

Une ampoule ordinaire (LED), une résistance de 220 Ohm. Arduino contrôle l'ampoule à l'aide d'un algorithme C++. Permettez-moi de faire une réservation tout de suite. Si vous en achetez prêt à l'emploi Arduino ou son équivalent ne peut pas être assemblé plus ou moins chose utile. Eh bien, sauf pour un tweeter ou, disons, un thermomètre domestique. Vous pouvez étudier la plateforme elle-même à travers des cours, mais rien de plus. Pour les choses utiles, j'ai dû maîtriser la soudure, les circuits imprimés, la conception de circuits imprimés et d'autres délices de l'électronique.

Construire votre premier prototype d'aquarium

Ainsi, la première chose que j'ai commencée avec mon prototype d'aquarium a été de formuler sur papier les exigences relatives à cet appareil.

L'aquarium doit :

  1. Brillez le matin, l'après-midi, le soir et la nuit dans différentes couleurs ;
  2. Allumez la lumière blanche pour les poissons le matin et la lumière vive l'après-midi lumière blanche augmentation, diminution le soir (imitation lumière du jour) et éteignez-le la nuit ;
  3. Les bulles d'air (compresseur d'aquarium) pour poissons ne doivent apparaître que le soir et s'éteindre la nuit ;
  4. Si les poissons sont froids, l’aquarium doit briller en bleu, s’il fait chaud, puis en rouge ;
  5. Les plages de températures au-delà desquelles « l’alarme lumineuse » doit se déclencher doivent être personnalisables
  6. L'aquarium doit toujours afficher la date et l'heure ;
  7. Les heures de début et de fin des intervalles journaliers doivent être configurables. Par exemple, la matinée ne commence pas toujours à 9h00 ;
  8. L'aquarium doit afficher des informations sur l'humidité de l'air et la température à l'extérieur de l'aquarium, ainsi que la température de l'eau à l'intérieur de l'aquarium ;
  9. L'aquarium doit être contrôlé à partir d'une télécommande.
  10. L'écran de date doit s'allumer lorsque vous appuyez sur le bouton de la télécommande. Si rien n'est pressé dans les 5 secondes, éteignez-le.
J'ai décidé de commencer par étudier Fonctionnement de l'écran LCD et Arduino.

Création du menu principal. Travailler avec l'écran LCD

Pour les écrans LCD, j'ai décidé d'utiliser la bibliothèque LiquidCrystal. Par coïncidence, en plus de l'Arduino, mon kit comprenait un écran LCD. Il pouvait afficher du texte et des chiffres. C'était suffisant et j'ai commencé à étudier la connexion de cet écranà Arduino. J'ai pris les informations de connexion de base à partir d'ici. Il existe également des exemples de code pour afficher « Hello World ».

Après avoir un peu compris l'écran, j'ai décidé de créer le menu principal du contrôleur. Le menu était composé des éléments suivants :

  1. Informations de base ;
  2. Mise à l'heure ;
  3. Réglage de la date ;
  4. Température;
  5. Climat;
  6. Rétroéclairage ;
  7. Appareils ;
Chaque point est mode spécifique afficher des informations sur un écran de texte LCD. Je voulais admettre la possibilité de créer menu à plusieurs niveaux, où chaque sous-niveau aura ses propres implémentations de sortie d'écran.

En fait, une classe de base a été écrite en C++, dont tous les autres sous-menus seront hérités.

Class qQuariumMode ( protected : LiquidCrystal* LcdLink; public: // Pour empêcher l'écran de scintiller, une variable bool isLcdUpdated a été fournie. bool isLcdUpdated = false; // Quitte un sous-menu ou un menu. void exit(); // La méthode de boucle dans chaque option de sous-menu sera la sienne. En fait, il est responsable de l'affichage // du texte à l'écran. Il sera appelé depuis la boucle principale du programme du contrôleur virtual void loop(); sera redéfini individuellement dans chaque // menu. void OkClick(); virtual void CancelClick();
Par exemple, pour le menu « Périphériques », l'implémentation de la classe de base qQuariumMode ressemblerait à ceci :

#include "qQuariumMode.h" class qQuariumDevicesMode: public qQuariumMode ( private: int deviceCategoryLastIndex = 4; // Options de sous-menu dans le menu Devices enum DeviceCategory ( MainLight, // contrôle l'aération de la lumière principale, // contrôle l'aérateur Compresseur, // contrôler le compresseur Vulcanius, // Contrôler la pompe du volcan // Contrôler la pompe ); DeviceCategory CurrentDeviceCategory = MainLight; char* headerDeviceCategoryText = NULL; // Lien vers le « pilote » utilisé pour contrôler l'appareil BaseOnOfDeviceHelper* GetDeviceHelper(); (); annuler LeftClick();
Voici ce qui s'est produit suite à l'implémentation du premier niveau de menu :

Partie matérielle. Nuances des composants de connexion

Je voudrais dire quelques mots sur le matériel du contrôleur d'aquarium. Pour fonctionnement normal J'ai dû acheter un contrôleur :
  1. 1 x Arduino Uno/Méga. Par la suite, j'ai décidé de travailler avec Mego ;
  2. 1 x horloge en temps réel, par exemple DS1307 ;
  3. 2 x Relais type RTD14005, nécessaires pour contrôler le compresseur et l'aération, car les deux fonctionnent sur 220 V CA ;
  4. 1 x bip piézo-électrique ;
  5. 1 récepteur infrarouge ;
  6. 5 transistors MOSFET IRF-530 avec canal N. (3 pour Bandes RVB, 1 pour ruban blanc, 1 pour pompe à eau);
  7. 1x LED RVB ruban. Si vous envisagez de plonger la bande LED dans l'eau, vous devez l'isoler de l'eau. Mon ruban adhésif est à l'intérieur d'un tube en silicone et rempli de mastic transparent ;
  8. 1 bande LED blanche ;
  9. 1 écran LCD ;
  10. 1 x capteur de température scellé pour mesurer la température de l'eau. J'ai utilisé le DS18B20 ;
  11. 1 x capteur de température et d'humidité. J'ai utilisé DHT11 ;
Chaque composant possède son propre type de connexion et ses propres pilotes de fonctionnement. Je ne décrirai pas les nuances de connexion de tous les composants, car elles peuvent être trouvées sur le site du fabricant ou sur les forums. Si vous envisagez d'utiliser les mêmes composants que moi, modifiez code source vous n'êtes pas obligé.

Dommages aux composants

Sois prudent. Essayez d'abord de lire sur le composant connecté. Il doit fonctionner exactement dans la plage de tension pour laquelle il a été conçu. Ceci est généralement indiqué sur le site Internet du fabricant. Pendant que je développais le contrôleur d'aquarium, j'ai détruit 2 capteurs de température scellés et une horloge en temps réel. Les capteurs sont tombés en panne car je les ai connectés au 12V, alors qu'ils auraient dû être connectés au 5V. L'horloge en temps réel est morte à cause d'un "accident" court-circuit enchaîné à cause de ma faute.

Bande LED RVB

Des difficultés particulières sont apparues avec les bandes LED. J'ai essayé d'implémenter le schéma suivant :

Lors de la connexion à Arduino, j'ai utilisé des broches prenant en charge PWM ( modulation de largeur d'impulsion). Lorsque les 3 broches étaient simultanément allumées à la tension maximale, ma bande devenait très chaude. En conséquence, si vous l’avez laissé pendant une heure ou deux, certaines LED ont cessé de briller. Je pense que cela était dû à une défaillance de certaines résistances. Un autre inconvénient de ce schéma est la luminosité différente Bande LED pour chacune des couleurs. Par exemple, si je règle la tension maximale sur la composante rouge de la bande, j'obtiens alors une luminosité conditionnelle de la bande rouge de 255 unités. Si j'allume le rouge et composants bleusà tension maximale, la luminosité sera de 255+255 = 510 unités et la couleur sera violette. En général, cette solution ne me convenait pas.

Il a été décidé d'implémenter l'algorithme suivant :

Void LedRgbHelper::Show(RGBColorHelper colorToShow) ( // La classe RGBColorHelper contient des informations sur la part de chaque composant dans la couleur. // De plus, elle contient des informations sur la luminosité de la couleur int sumColorParts = colorToShow.RedPart + colorToShow. GreenPart + colorToShow.BluePart; // part de chaque composant dans la couleur totale float rK = 0; float bK = 0; if (sumColorParts != 0) ( float redPartAsFloat = (float)colorToShow.RedPart; float greenPartAsFloat = (float) colorToShow.GreenPart bluePartAsFloat = (float)colorToShow.BluePart; float sumColorPartsAsFloat = (float)sumColorParts; int highlight = colorToShow.Brightness; // détermine la luminosité relative de chaque composant dans la couleur ; la valeur absolue du composant en couleur rK = rK*luminosité ; bK = bK*luminosité ) uint8_t totalCParts = (uint8_t)gK + (uint8_t)bK;<= 255){ // подаем напряжение на каждый компонент цвета. в сумме мы должны получить не более 255 единиц. analogWrite(RedPinNum, (uint8_t)rK); analogWrite(GreenPinNum, (uint8_t)gK); analogWrite(BluePinNum, (uint8_t)bK); } }
si (totalCParts

Dans ce mode de réalisation, le rouge et le violet avaient la même luminosité. Ceux. dans le premier cas, les LED rouges brillaient avec une luminosité de 255 unités, et dans la couleur violette, le rouge avait une luminosité de 127 unités et le bleu avec une luminosité de 127 unités, ce qui au final était approximativement égal à 255 unités :

Bande LED blanche

La bande LED était probablement la chose la plus simple à réaliser. Le seul point difficile est d'assurer un changement de luminosité en douceur lorsque l'heure de la journée change.

Pour mettre en œuvre cette idée, j'ai utilisé un algorithme linéaire pour modifier la luminosité d'une bande LED blanche. Void MainLightHelper::HandleState() ( if (!IsFadeWasComplete) ( unsigned long currentMillis = millis(); if (currentMillis - previousMillis > 50) ( previousMillis = currentMillis; switch (CurrentLevel) ( case MainLightHelper::Off: ( // If l'état éteint est déclaré, puis on réduit la luminosité de la lumière blanche d'une unité par cycle if (currentBright != 0) ( if (currentBright > 0) ( currentBright--; ) else ( currentBright++; ) ) else ( // Au cas où, arrêtez l'animation de fondu blanc.

courantBright = 0 ;

IsFadeWasComplete = vrai ; ) casser; ) case MainLightHelper::Low: case MainLightHelper::Medium: case MainLightHelper::High: ( // En cas de réglage du niveau de lumière blanche, augmentez ou diminuez progressivement la luminosité en un seul pas de boucle if (currentBright != CurrentLevel) ( if (currentBright > CurrentLevel) ( currentBright--; ) else ( currentBright++; ) ) else ( currentBright = CurrentLevel; IsFadeWasComplete = true; ) ) break;) // applique la tension de la valeur requise pour définir la luminosité du blanc.

analogWrite (PinNum, currentBright); ) ) ) La pulsation du "volcan"

L’idée de la mise en œuvre m’est venue par hasard. Je voulais simplement allumer et éteindre le volcan décoratif à l'aide d'une alimentation

basse tension
et haute tension au transistor. Dans une poissonnerie j'ai trouvé un bon volcan avec un tube de sortie pour un compresseur et une LED isolée de l'eau.

Il est livré avec un adaptateur qui produit du 12V

CC

, et à l'entrée - 220 V AC. Je n’ai pas eu besoin de l’adaptateur, puisque j’ai géré la puissance et la luminosité du volcan via Arduino.

Même si la pompe a bien fonctionné, je suis tombé sur une chose qui n’était pas évidente. Si vous pompez de l’eau dans un autre réservoir, la loi des vases communicants commencera à s’appliquer. En conséquence, je suis devenu le coupable de l'inondation dans la pièce, car si vous éteignez la pompe, l'eau ira toujours dans un autre réservoir si son niveau d'eau est inférieur au niveau d'eau de l'aquarium. Dans mon cas, c'est exactement ce qui s'est passé.

Port infrarouge et envie de le remplacer

J'ai contrôlé l'aquarium via le port infrarouge en suivant l'exemple d'une formation préalable. L'essence de l'exemple est la suivante : lorsque le contrôleur est connecté au réseau, j'interroge les actions gauche, droite, haut, bas, ok une par une. L'utilisateur choisit lui-même les boutons de la télécommande qu'il associe à chacune des actions. L'avantage de cette implémentation est la possibilité de relier toute télécommande inutile télécommande.
L'aquarium est entraîné selon la méthode Learn, dont l'essence est présentée ci-dessous :

Void ButtonHandler::Learn(IRrecv* irrecvLink, LiquidCrystal* lcdLink) ( // Initialise la réception du signal infrarouge du capteur irrecvLink->enableIRIn(); // Les résultats du décodage du signal sont placés dans cette variable decode_results irDecodeResults; . .. ... while ( true) ( ​​​​​​// Si les résultats sont arrivés et qu'ils peuvent être décodés if (irrecvLink->decode(&irDecodeResults)) ( // continue à recevoir les signaux irrécvLink->resume(); // Essayez de décoder le signal de la télécommande if (irDecodeResults.bits >= 16 && irDecodeResults.value != 0xC53A9966// fix for Pioneer DVD) ( lcdLink->setCursor(0, 1); // Afficher la valeur décodée dans Format HEX lcdLink->print(irDecodeResults.value, HEX); // Nous nous souvenons dans BÉLIER Arduino a reçu le signal irRemoteButtonId = irDecodeResults.value;
... ... Plus tard, j'ai conclu que la télécommande n'était pas pratique. Tout simplement parce qu'il faut le chercher et ça appareil supplémentaire dans la maison. Meilleur contrôle mettre en œuvre à travers téléphone mobile ou une tablette. J'ai eu l'idée d'utiliser un micro-ordinateur Raspberry PI et d'y exécuter une application web ASP.NET MVC 5 via Mono et NancyFX. Ensuite, utilisez le framework mobile jquery pour rendre l'application Web multiplateforme. Communiquez avec Arduino via Raspberry via WiFi ou LAN. Dans ce cas, vous pouvez même refuserÉcran LCD , parce que tout informations nécessaires

consultable sur smartphone ou tablette. Mais ce projet n'est encore que dans ma tête.

Circuit imprimé et sa fabrication D'une manière ou d'une autre, je suis arrivé à la conclusion que je devais faire. Cela s'est produit après que tant de fils soient apparus sur mon support que lors de l'assemblage appareil fini Certains d'entre eux ont commencé à s'éteindre à cause de la pression accidentelle d'autres fils. Cela se produit inaperçu et peut conduire à des résultats peu clairs. Oui et apparence Cet appareil laissait beaucoup à désirer.

Assemblage sur circuits imprimés (avec Arduino Uno) :

J'ai conçu un PCB monocouche en utilisant Fritzing. Le résultat est le suivant (en utilisant Arduino Mega) :

La pire chose dans la fabrication d'un circuit imprimé était le perçage. Surtout quand j'ai essayé de créer un PCB de type Shield, c'est-à-dire elle s'est habillée avec Arduino. Percer plus de 50 trous avec un foret fin est une tâche très fastidieuse. Et le plus difficile, c’est de prendre le nouveau fer à repasser de ma femme et de la persuader d’acheter une imprimante laser.

À propos, si quelqu'un a peur de la technologie de repassage au laser, je vous le dis tout de suite : c'est très simple. J'ai bien compris du premier coup :

L'assemblage lui-même s'est également avéré simple - il suffisait de souder les principaux composants sur la carte :

Mais malgré cela, c'était la première et la dernière fois que je créais un circuit imprimé à la maison. À l’avenir, je ne commanderai qu’à l’usine. Et vous devrez très probablement maîtriser quelque chose de plus difficile que Fritzing.


Contrôleur d'aquarium "Aigue-marine"

Bonjour, chers chats ! Vous n'avez pas envie de manger du poisson ? Vous adorez tellement ces poissons délicieux et juteux ;))) Alors je les adore, mais je préfère les admirer à travers un verre :

Pendant que je prenais des photos, l'agent de sécurité Kesha Mozgoklyuev a commencé à me siffler, j'ai donc dû le prendre en photo aussi :

En général, la vie du poisson et du camarade Mozgoklyuev aurait été plus calme si je n'avais pas été un ingénieur en électronique dans l'âme. C’est pourquoi ils sont périodiquement soumis à mes expériences. En voici un : le contrôleur d'aquarium Aquamarine.

Nous rencontrons le schéma(original à la fin de l'article dans les archives) :

Comme vous pouvez le constater, il n'y a rien d'extrêmement compliqué dans ce schéma. Le microcontrôleur ATMega16 est responsable de la collecte et de la transmission des informations et prend les décisions appropriées en contrôlant les commutateurs et les commutateurs de terrain. Maintenant, tout est en ordre. Les informations sont collectées à partir du capteur de température U2 DS18b20, de l'horloge temps réel U3 DS1307 et bien sûr des boutons de commande. Les informations sont affichées sur LCD1 type Star0802A, huit caractères, deux lignes chacun. L'affichage est russifié - aucune connaissance de l'anglais n'est requise ;) Le contrôleur dispose de trois modes de fonctionnement : "Automatique", "Manuel" et mode réglages. En mode manuel, entré en appuyant sur le bouton "Mode/Enter"

Apparence:

Affronter


Sous le couvercle :)

Nous connectons les charges ici

Vue de ces prises de l'intérieur

Eh bien, jetons un coup d'œil à l'intérieur ?

Vue des connecteurs pour connecter le capteur de température (à gauche) et connecter les modules LED de lumière bleue et blanche (à droite)

D'un côté

De l'autre côté

Modes de fonctionnement :

En mode manuel, vous pouvez activer ou désactiver l'alimentation en air et la filtration en appuyant sur les boutons « +L/Air », « Filtre ». À propos de quoi filtre inclus et compresseur d'air, indiqué par les LED « Air » et « Filtre ».

Le "mode manuel" est pratique pour nourrir les poissons et lors du nettoyage de l'aquarium. Sortie vers mode automatique Bouton « Mode/Entrée ».

En mode automatique, l'écran affiche des informations sur l'heure, la date et la température dans l'aquarium.

Les paramètres de température et d'heure sont contrôlés automatiquement en mode automatique. Par paramètres donnés la température peut être contrôlée en chauffant l'eau de l'aquarium si l'aquarium est dans une pièce froide OU en la refroidissant si l'aquarium est dans une pièce chaude.

En fonction du paramètre d'heure du jour, le contrôleur exécute le programme Aube/Coucher du soleil.

Modules LED de couleur blanche et bleuà travers transistors à effet de champ IRFL024, et sont contrôlés par la méthode PWM. Le coucher du soleil a lieu à heure spécifiée dans un délai d'une heure et demie. La lumière blanche commence à s’estomper et la lumière bleue augmente en luminosité. En conséquence, nous avons un éclairage bleu de l'aquarium la nuit. C'est très agréable aux yeux quand on va aux toilettes le soir :)). Une veilleuse, pour ainsi dire :)) Le matin, au contraire, à une heure donnée pour le début de l'aube, la lumière bleue s'estompe et l'éclat de la lumière blanche augmente. Ce processus se déroule également en une heure et demie. Dans les codes sources ci-joints, cela peut être modifié à votre guise. Le contrôleur dispose également d'une fonction permettant de restaurer les modes de fonctionnement après une panne de courant. Si vous êtes parti toute la journée pour un barbecue et qu'à ce moment-là les lumières ont été éteintes puis allumées (enfin, tout peut arriver), alors le contrôleur activera automatiquement la filtration, l'air et le chauffage/refroidissement selon votre réglage ! En général, je partage avec vous, mes chers chats, l'intégralité du projet avec le code source, tout ce que vous voulez avec, faites-le - cela ne me dérange pas :)

Et enfin, je vous propose de regarder la vidéo :

Schème de ce contrôleur pour un aquarium permet de contrôler la température de l'eau et le contrôle de l'éclairage selon un horaire donné. Le contrôleur d'aquarium permet également un contrôle manuel (marche/arrêt) du filtre et du compresseur.

Ceci est particulièrement utile lors du nettoyage de l'aquarium ; vous n'avez pas besoin de débrancher le cordon du filtre de la prise, mais vous pouvez simplement appuyer sur un bouton du contrôleur.

Description du contrôleur d'aquarium

Contrôleur d'aquarium construit sur un microcontrôleur PIC16F677. Le micrologiciel devrait très probablement convenir aux microcontrôleurs de taille supérieure à haut niveau de ce groupe. Le fonctionnement du circuit a également été testé sur le microcontrôleur PIC16F690. La mesure de la température fournit des données numériques capteur de température DS18B20 avec une résolution de 0,5 gr. Celsius.

Le compte à rebours est organisé à l'aide du microcircuit DS1302, un contrôleur en temps réel. En cas de coupure de courant, vers la 8ème branche du DS1302 (broche alimentation de secours) le condensateur C8 est connecté. Sa capacité est suffisante pour plus de 3 jours pour que l'heure ne se réinitialise pas.

Tout le contrôle est effectué par quatre boutons : « LUMIÈRE » (S) « CHAUFFAGE » (T) « COMPRESSEUR » (V) et « FILTRE » (F). Un appui court allumera/éteindra le canal correspondant. Il est possible de basculer entre les modes de contrôle manuel et automatique. Cela s'applique uniquement à l'éclairage et au chauffage. Le compresseur et le filtre sont activés/désactivés uniquement en mode manuel. Le chauffage maintient automatiquement la température de consigne requise de l'eau dans l'aquarium.

Contrôle de l'éclairage : le premier appui allume la lumière, le deuxième l'éteint, le troisième fait passer le contrôle de l'éclairage en mode automatique. Pour régler l'heure d'allumage/extinction de la lumière, vous devez appuyer sur le bouton (S) et le maintenir enfoncé pendant plus de 4 secondes.

Tout d’abord, l’heure d’arrivée est définie. En appuyant brièvement sur le bouton (S), vous passez d'un chiffre indicateur à un autre ; la valeur de chacun peut être modifiée à l'aide des boutons V (+) et F (-). Ensuite, en appuyant longuement sur le bouton (S), la valeur est enregistrée et vous accédez aux paramètres du temps d'arrêt. La procédure de configuration est la même ici. Un nouvel appui long revient à l'état initial.

Le réglage de la température est presque le même. Un appui long sur le bouton (T) permet de passer au mode de réglage de la température de l'eau souhaitée dans l'aquarium. Modifiez la valeur par incréments de 0,5 g. Celsius s'effectue à l'aide des boutons V (+) et F (-). Après l'installation, un appui long sur le bouton (T) fait passer le contrôleur en mode principal.

La valeur en temps réel est réglée en appuyant simultanément et continuellement sur deux boutons (S) et (T). Ensuite, tout est comme lors de la configuration de l'éclairage. Toutes les valeurs sont stockées dans l'EEPROM et si l'alimentation est coupée, il n'est pas nécessaire de tout reconfigurer.

L'état de chaque canal est indiqué graphiquement. Chaque canal est désigné par sa propre lettre : « LUMIÈRE » (S) « CHAUFFAGE » (T) « COMPRESSEUR » (V) et « FILTRE » (F). Si la lettre à l'écran est en majuscule, cela signifie que la chaîne est allumée ; si elle est en majuscule, alors elle est éteinte.

Sous chacun des canaux ci-dessus, soit la lettre A (mode automatique), soit la lettre M ( mode manuel- manuel). L'indicateur affiche également la date, l'heure et la température réelle de l'eau dans l'aquarium.

Pour plus de commodité, la partie alimentation du contrôleur est réalisée séparément et connectée à la carte principale via un fil TP avec un connecteur RJ-45. Tout transformateur pour l'alimentation électrique avec une sortie sur l'enroulement secondaire de 9 V et un courant d'au moins 400 mA convient.

(téléchargements : 465)

http://www.tosi.cz/elektro/akvarium.html


L'auteur souhaite depuis longtemps automatiser la maintenance des aquariums. Sur le Web, il a trouvé de nombreux modèles différents de contrôleurs d'eau, mais a décidé de choisir le contrôleur multifonctionnel de Vitaly Sharapov, qui a reçu de nombreuses critiques flatteuses et pour lequel il existe plus d'une modification.

Matériels:

-Module Peltier
- LED
- unité de puissance
- cadre parasurtenseur
- ventilateur
- radiateur
- indicateur MT-10T7
- minuteries
- batterie
- résistances R6-R9-R13
- transistors
- les thyristors

Description du fonctionnement de l'appareil.
Le contrôleur d'eau multifonctionnel compte à rebours temps réel en heures et minutes. Gère trois charges au fil du temps. Il dispose de six minuteries programmables et indépendantes les unes des autres. Chaque minuterie est capable de contrôler une des charges, avec une discrétion de 15 minutes. Mesure et modifie le chauffage de l'eau toutes les dix secondes avec une précision de 1°C. Possède un ventilateur et un module Peltier. A une indication d’allumage et d’extinction des charges. Vous permet d'ajuster manuellement l'heure et est également capable de l'ajuster automatiquement d'une quantité donnée en +- minutes par jour. Grâce à la présence d'une pile, elle permet de faire fonctionner la montre pendant 2 à 7 jours. Il enregistre également tous les paramètres utilisateur lors de la mise hors tension, dans une mémoire indépendante du alimentation secteur, et les restaure lors de la prochaine connexion au réseau.

Description du processus d'assemblage de l'appareil.

Première étape : collecter les pièces nécessaires.
Vous trouverez ci-dessous le schéma du contrôleur qu'il a pris comme base pour son développement :


Pour commencer, l'auteur a rassemblé toutes les pièces nécessaires qui seront utilisées pour créer un contrôleur d'aquarium multifonctionnel.



Deuxième étape : créer la carte processeur de l'appareil.


La carte processeur a été entièrement assemblée selon la conception originale et reprend la conception de la carte contrôleur d’échantillon. Il y a de petits changements, mais ils ne sont pas fondamentaux.


Troisième étape : continuez à assembler l'appareil et à travailler sur l'indicateur.

Lors de la conception et de l'assemblage de l'appareil, l'auteur a utilisé des pièces existantes, de sorte que le coût de l'ensemble de la conception a été considérablement réduit. Par conséquent, le plus indicateur bon marché MT-10T7. Vous devez payer pour le faible coût des pièces avec des inconvénients évidents en termes de commodité, l'un de ces inconvénients étant qu'il est difficile d'afficher des lettres en utilisant seulement sept segments.

Après assemblage, le circuit indicateur a été refait pour qu'il soit alimenté non pas par la batterie, mais par le secteur. DANS dans ce cas l'auteur a été guidé par l'idée d'augmenter la durée nourriture possible microcontrôleurs lorsque l'alimentation principale de l'appareil est coupée, et dans ce cas, il ne sert à rien d'alimenter l'indicateur. Ainsi, l'indicateur fonctionnera exclusivement à partir du réseau, et lorsque l'appareil passe sur batterie, il n'y a aucune indication. Comme l'auteur avait déjà soudé la carte au moment où il a choisi cette solution, il a décidé de réaliser les nouvelles pistes par montage en surface. Cela ne s'est pas très bien passé, mais l'essentiel est que cela fonctionne, car l'auteur n'a pas développé de version imprimée de la carte pour mettre en œuvre une telle connexion.

Voici à quoi ressemble l'emplacement de l'installation modifiée :


En conséquence, la version suivante du circuit du contrôleur d'aquarium a été obtenue, quelque peu différente du circuit original de l'appareil modèle :

Quatrième étape : carte de bloc d'alimentation.

Et voici à quoi ressemble le schéma de circuit de la carte d’alimentation :


Et voici à quoi cela ressemble déjà assemblé :


Comme source de sauvegarde La batterie sera utilisée pour l'alimentation électrique, l'auteur a donc installé la résistance R6. L'auteur a choisi d'autres résistances de R9 à R13 en fonction de la nécessité d'installer un dispositif de contrôle d'aquarium sous la conception de son unité de puissance.

Cinquième étape : installation des pièces dans la carrosserie.


Comme coque pour tout le matériel électronique, l'auteur a choisi un boîtier provenant d'un vieux parasurtenseur cassé, simplement parce qu'il en existait un.

DANS cet appareil il n'est pas nécessaire d'utiliser une charge 220 V supérieure à 150 watts, l'auteur a donc décidé d'installer des thyristors sans radiateurs.

Pour la plupart des équipements d’aquarium, cela sera encore plus que suffisant. Il n'y a pas non plus de radiateurs sur les transistors qui contrôlent une charge de 12 V, donc la charge sur les canaux de 12 V ne doit pas être plus puissante que 2 W, en tenant compte du transformateur existant et d'autres facteurs. Pour alimenter le ventilateur qui refroidit l'appareil, ainsi que pour assurer le fonctionnement des LED, cette puissance devrait être suffisante.

Sous cette forme, la minuterie est capable de contrôler le fonctionnement de l'éclairage dans l'aquarium et, en attendant, l'auteur continue de travailler sur le corps du dispositif contrôleur.

En résumé.

En général, lors du montage, l'auteur n'a remarqué aucun de sérieux problèmes ou des erreurs. Pendant le fonctionnement et utilisation active L'appareil n'a également révélé aucun problème, ce qui indique la haute qualité des circuits de l'appareil. Certes, il y avait un léger problème avec la différence entre les trous de l'indicateur sur la carte et les trous sur l'indicateur lui-même, la différence était d'environ 0,5 à 1 mm. Cette tache a été résolue à l'aide d'une lime aiguille, l'endroit étant tout à fait propice à un tel travail.

L'appareil lui-même s'est avéré très polyvalent ; grâce aux six minuteries disponibles, l'automatisation du processus d'entretien de l'aquarium est proche de l'idéal. La conception entière du contrôleur est facile à comprendre et à assembler, il est donc assez facile de le reproduire avec une certaine habileté et envie.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :