Re: ACKberry
Franck05
» mar. 21 avr. 2015 14:56
#184215
Salut tml
Un petit retour sur l'avancement du projet.
Les partie C++ et base de données ont relativement bien avancés, la partie WEB pour l'instant je n'y ai pas encore touché.
La partie DB comporte pour l'instant une vingtaine de table, se sont les tables de sauvegarde des configurations des différentes fonctionnalités, quatre Views pour préparer la visualisation de ces données dans la partie WEB , une procédure de contrôle d'attribution des pins et une trentaine de trigger sur table pour prévenir les processus C++ en cas de modification des tables de paramétrages des fonctionnalités ( Ex changement d'allumage /extinction d'un canal LED )
La partie C++ est actuellement composé de trois processus, 1 qui s'occupe de l'envoie des emails(AckMail), un qui s'occupe de la lecture des sondes de températures (AckTemp),et enfin le module principal (ACkMng) qui s'occupe de la gestion du bac.
Vous trouverez ci-dessous ce qui est déjà fait:
AckBerry est fait pour être plus dynamique possible, c'est à dire que la majorité fonctionnalité sont paramétrables par utilisateur. Exemple le nombre de canal LED le nom l'attribution des pins PWM de soties, le contrôle de température fait par telle ou telle sonde etc. Chacun pourra faire sa petite sauce sans mettre les doigts dans le code et sans devoir redémarrer le raspberry
ACKMail: Récupère les mails à envoyer dans une table MySql et les envoie aux destinataires.
ACKTemp: Récupère dans le Raspberry la valeurs ainsi que l'adresse des sondes de températures présente et insère le résultat dans la Db MySQL pour que les données puis être utilisées par ACKMng. Si une nouvelle sondes est détecteée mise automatique de celle si dans la base MySql pour pouvoir être utilisée/attribuée pour une fonctionnalité.
ACKMng :
Température :
Lecture dans MySql du résultat du relevé des sondes par ACKTemp
Si le résultats des sondes dans MySql par ACKtemp n'a pas été actualisée depuis moins de 2 minutes , envoie d'un mail d'alerte de problème de lecture température.
Si le résultats des sondes dans MySql par ACKtemp est a nouveau actualisée et qu'une alerte de lecture sondes est active , envoie d'un mail de fin de problème de lecture température.
Servo :
Gestion des oscillateurs ( jusqu'à 32 théorique )
2 plages d'angles pour simulation de phase de marrée
Plages d'exclusions ( jusqu'a 90 théorique).l'oscillateur avance rapidement durant ces plages ou si le contrôle des pompes jebao est activé, les oscillos restent en vitesse normale mais la puissance des pompes est diminuée.
Pompes doseuses :
Gestion des pompes doseuses ( jusqu'à 32 théorique )
Gestion d'un planning hebdomadaire et journalier ( jusqu'a 64 mise en marche /arrêt par jour et par pompes)
Précision théorique à 50 millisecondes;
Simulation marée :
Simulation d'un cycle de marre pour les fonctions oscillos et contrôle jebao
En cas d'arrêt du raspberry reprise du cycle dans sa continuité( pas de reprise à zéro)
Eclairage:
Gestion des LED ( jusqu'à 32 canaux théorique )
Allumage et extinction des canaux
Durée progressive d'allumage exponentielle ou linéaire
Durée progressive d'extinction exponentielle ou linéaire
Comme sur L'ACKduino gestion des nuages, éclairage fluorescent , atténuation nouveau poisson et décalage d'extinction.
Attribution pour chaque canal d'un relais ( pour extinction total de l'alimentation)
Surveillance de la température des LED:
Atténuation automatique si la température dépasse la température de consigne.
Envoie d'un mail d'alerte de problème de température LED
Si la température repasse sous la température de consigne envoie d'un mail de fin d'alerte de problème de température LED
Modulation sinusoïdale du temps d'éclairage suivant la période de l'année ( temps d'éclairage plus important en été qu'en hivers)
Contrôle Jebao:
Gestion des pompes de brassage Jebao ( jusqu'à 32 canaux théorique )
Réglage puissance Max Min et nominale
Atténuation nocturne
Atténuation Nourrissage
Atténuation sinusoïdale suivant le cycle de marrée
Atténuation Ocillo si la pompe se trouve dans une plage d'exclusion.
Ecumeur :
Gestion des Ecumeurs ( jusqu'à 32 canaux théorique )
Gestion d'une temporisation ( par exemple après l'ajout de produit , l'écumeur reste éteint pendant 1/2 heures puis se rallume automatiquement)
Contrôle de niveau via capteur pour arrêt de celui-ci si le niveau est trop haut ( évite le re-largage dans le bac )
Envoie d'un mail d'alerte de niveau ECUMEUR est dépassé
Si le niveau repasse sous le niveau d'arrêt envoie d'un mail de fin d'alerte de problème niveau ECUMEUR
Contrôle Température Bac :
Gestion Température bac avec température min, de consigne et max
Gestion sinusoïdale annuelle de température ( la température est plus basse en hivers qu'en été )
Gestion sinusoïdale journalière de température( spéciale eau-douce )( la température est plus basse la nuit que l'après midi )
Envoie d'un mail d'alerte températures la température est plus basse ou plus haute que les temps Min. et Max.
Si la température est a nouveau dans les tolérances envoie d'un mail de fin d'alerte de problème températures bac
Gestion des Alarmes:
Gestion des différentes alarmes température, niveau écumeur etc. et génération des mail.
Gestion et contrôle des périphériques I2C:
Gestion des périphériques I2C .
Attribution des cartes et pins aux différents éléments
Communication avec les cartes.
Prochain développement,
Continuer le développement des fonctionnalités d'automatisations (Ex. Arrêt nourrissage ,osmolation, RAC RAH etc. )
Commencer la fonctionnalité statistique ( relevé température, PH , REDOX etc. , stat du temps de fonctionnement chauffage , osmolation etc . ) pour visualisation sous forme de graphique.
Développement d'un nouveau processus en charge du "nettoyage de la DB" et de la sauvegarde périodique de celle-ci et de l'envoie de la sauvegarde par mail.
Et bien sur toute la partie "merdique à faire" WEB
Seb