Je suis en Terminal STI2D ont viens d'attaquer le projet "Télégestion d'une ruche".
Je recherche une solution de comptabilisation des entrées/sorties pour les abeilles d'une ruche que je dois mesurer et mémoriser par intervalle de 10 minutes. Affichage du solde et envoi d'un signal d'alerte si le solde, en fin de journée, est supérieur à 3000 (mortalité excessive lors des périodes de traitement des cultures) ou si le solde, toutes les 10 minutes, dépasse 500 (Risque d'essaimage).
Je doit vous avouer que je suis vraiment novice en la matière que sa soit au niveau du langage de programmation que les montages de circuit électrique. :s
Je ne vois pas bien comment tu vas mesurer les entrées sorties d'abeilles avec ce type de capteur.
Si la ruche ressemble à une ruche "standard" plusieurs abeilles peuvent entrer et sortir à un même moment. A moins de poser un paquet de capteurs tels que celui-là, tu ne vas pas comptabiliser grand chose.
D'autre part, ce type de capteur détecte la présence de quelque chose entre les fourches, mais pas le sens du déplacement Il faudrait deux capteurs de ce type pour déterminer le sens dans lequel le passage s'effectue.
Trouver un moyen de de détecter le passage des abeilles sur une grande longueur est donc le premier problème. Déterminer le sens de ce passage est le second.
Une double rangée de capteurs infrarouges est peut-être une piste de réflexion. (Il faut aussi trouver un système qui ne perturbe pas le comportement des abeilles)
Un comptage vidéo est peut-être une option à explorer.
Et il existe certainement quantité d'autres pistes de réflexion.
Dans tous les cas, c'est un joli projet et la conception sera intéressante à suivre.
je travaille sur le même sujet que toi mais pas pour le même niveau d'études (moi c'est 3° année de retraite )
je te donne quelques pistes à instruire
comme dit "coyotte" il ne suffit pas de compter il faut aussi déterminer le sens de passage donc mini 2 fourches optiques
sur une ruche, lors des fortes miellées, on peut arriver a 700 E/S par minute donc il faut multiplier les "portes" (je pense faire une maquette avec 16 portes)
les abeilles sont assez rapides dans un passage étroit (environ 0.1s pour passer les 2 fourches) donc il faut compter très très vite
les abeilles n'ont pas une forme bien régulière (antennes, pattes, ...) donc la détection dans une fourche n'est pas un simple 0 ou 1 donc filtrage, seuil, ...
pour ce qui est du cahier des charges :
iSpiRk:
Affichage du solde et envoi d'un signal d'alerte si le solde, en fin de journée, est supérieur à 3000 (mortalité excessive lors des périodes de traitement des cultures) ou si le solde, toutes les 10 minutes, dépasse 500 (Risque d'essaimage).
je ne pense pas qu'une différence E/S de 500 en 10 minutes puisse être l'image unique d'un essaimage, lors des miellées le temps d'aller retour d'une butineuse dépend de la distance à parcourir (plusieurs km), lors des périodes très chaudes les abeilles sont parfois obligées de sortir de la ruche pour réguler la température (elles se regroupent à l'extérieur "elles font la barbe")
je suivrais de près tes avancées sur le sujet
bonne réflexion .....
Mise à jour : J'ai reçu mes composant j'en suis aux testes unitaire de chacun je viens de finir de tester mon afficheur lcd 1602A maintenant je m'attaque aux capteurs infrarouge que je utilisent avec une platine grove sur l'arduino pour simuler une barrière ir. Un conseil ?
Mise à jour: J'ai pas mal avancé sur l'infrarouge , j'arrive à simuler et détecter le comptage ou le décomptage lors d'un passage d'un objet devant le faisceau d'un couple et à l'afficher sur mon LCD , le problème c'est que la librairie IRremote.h nous oblige à définir l'émetteur sur D3 par conséquent je voudrais donc savoir comment chaque récepteur puisse dépendre de son émetteur qui lui est propre pour pouvoir décompter lorsque qu'un objet passe devant le couple 1 et décompter lorsque qu'il passe devant le couple 2.
Voici mon code :
// IR_Beam2
#include <LiquidCrystal.h>
#include <IRremote.h>
#define PIN_IR_A //>> Emetteur du 1er couple (??? problème ???)
#define PIN_IR_B 3 // Emetteur du 2ème couple (OK)
#define PIN_IR_RCV_A 4 // le recepteur IR du 1er couple
#define PIN_IR_RCV_B 5 // le recepteur IR du 2ème couple
#define COUPURE 1
// pour que le faisceau soit coupé, il faut un objet
// opaque et assez étendu
IRsend irsend; // objet qui permet de générer le signal pulsé
int etat = 0;
int compte = 0;
LiquidCrystal lcd(12, 11, 9, 8, 7, 6);
void setup()
{
lcd.begin(16,2);
pinMode(PIN_IR_A , OUTPUT);
pinMode(PIN_IR_B , OUTPUT);
pinMode(PIN_IR_RCV_A, INPUT);
pinMode(PIN_IR_RCV_B, INPUT);
irsend.enableIROut(38); // crée une sortie modulée à 38 Khz
Serial.begin (19200);
}
void loop() {
irsend.mark(0); // envoi signal modulé de façon continue
etat = digitalRead(PIN_IR_RCV_A) ; // lecture
delay (5); // on fait une deuxième lecture
etat = etat * digitalRead(PIN_IR_RCV_A) ;
if ( etat == COUPURE ) { // si les deux lectures voient une coupure
Serial.println( "Coupure !" ); // Si le moniteur affiche coupure
compte++; // alors on compte
Serial.println( compte ); // Affiche le nombre d'entrée sur le moniteur
lcd.setCursor(0,0);
lcd.print(compte); // Affiche le nombre d'entrée sur le LCD
delay(1000);
} else {
Serial.println( "---------OK----------- !");
}
irsend.space(0); // arret signal modulé
delay(5);
irsend.mark(0); // envoi signal modulé de façon continue
etat = digitalRead(PIN_IR_RCV_B) ; // lecture
delay (5); // on fait une deuxième lecture
etat = etat * digitalRead(PIN_IR_RCV_B) ;
if ( etat == COUPURE && Serial.println( "---------OK----------- !")) { // si les deux lectures voient une coupure
Serial.println( "Coupure !" ); // Si le moniteur affiche coupure
compte--; // alors on décompte
Serial.println( compte ); // Affiche le nombre de sortie sur le moniteur
lcd.setCursor(0,0);
lcd.print(compte); // Affiche le nombre de sortie sur le LCD
delay(1000);
} else {
Serial.println( "---------OK----------- !");
}
irsend.space(0); // arret signal modulé
delay(5);
}
iSpiRk:
Mise à jour: J'ai pas mal avancé sur l'infrarouge , j'arrive à simuler et détecter le comptage ou le décomptage lors d'un passage d'un objet devant le faisceau d'un couple et à l'afficher sur mon LCD , le problème c'est que la librairie IRremote.h nous oblige à définir l'émetteur sur D3
bonjour
Question :
Pourquoi utiliser la lib IRremote ?
2 diodes IR et 2 phototransistor IR utilisés en mode TOR feront bien mieux l'affaire
Parce que au début j'ai pris des capteur grove , du coup j'ai couper la connectique des capteur de sorte à pour voir le faire en TOR pour éviter ce problème mais je ne sais pas comment faire en suite.
iSpiRk:
Oui je sais bien mais j'ai pris des capteurs grove du coup j'ai couper la connectique des capteur de sorte à pour voir le faire en TOR pour éviter ce problème mais je ne sais pas comment faire en suite.
bon , photos exacte de ton "bidouillage"
tes leds IR sont modulées ou en illumination constante ?
Quand je vais sur un nouveau forum il ne me vient pas à l'idée d'envoyer un message sans consulter au préalable les règes de ce forum.
C'est simplement une question de respect des autres et de se dire que l'on vit en communauté et donc on n'est pas seul au Monde.