« Suivi des ruches » : différence entre les versions

De Kernel Fablab Lannion
(reorg)
(MàJ avec V2 du projet)
Ligne 1 : Ligne 1 :
[[Fichier:Bzzz-logo fond blanc.jpg|thumb|Logo projet Bzzz]]
[[Fichier:Bzzz-logo fond blanc.jpg|thumb|Logo projet Bzzz]]


<div class="toccolours mw-collapsible mw-collapsed">
 
= Présentation =
= Présentation =
<div class="mw-collapsible-content">


Le projet Bzzz (Bee Zen Cube) est un projet de suivi de ruches pour une apiculture vraiment Zen ( pour l'apiculteur et pour ses abeilles ^^), il a pour but de proposer gratuitement à tout apiculteur amateur un peu bricoleur les plans d'un kit de supervision de son rucher (mono-ruche voir évoluer vers le multi-ruche). Le projet Bzzz souhaite suivre l'évolution de la santé de la ruche à distance c'est à dire, la prise de poids, son bien-être interne (température) et l'alerte en cas d'essaimage. Évitant ainsi de multiples déplacement de l'apiculteur.
Le projet Bzzz (Bee Zen Cube) est un projet de suivi de ruches pour une apiculture vraiment Zen ( pour l'apiculteur et pour ses abeilles ^^), il a pour but de proposer gratuitement à tout apiculteur amateur un peu bricoleur les plans d'un kit de supervision de son rucher (mono-ruche voir évoluer vers le multi-ruche). Le projet Bzzz souhaite suivre l'évolution de la santé de la ruche à distance c'est à dire, la prise de poids, son bien-être interne (température) et l'alerte en cas d'essaimage. Évitant ainsi de multiples déplacement de l'apiculteur.
Ligne 11 : Ligne 9 :


Le projet est né suite à la demande d'un apiculteur amateur de pouvoir superviser (surveillance avec divers capteurs) sa ruche avec une solution innovante et abordable.
Le projet est né suite à la demande d'un apiculteur amateur de pouvoir superviser (surveillance avec divers capteurs) sa ruche avec une solution innovante et abordable.
<br /><br />
[[File:RucheIcono.jpg|center|800px|Schématisation du fonctionnement du projet Bzzz]]
<br /><br />
Après avoir définit le besoin, un cahier des charges a été définit pour cette supervision d'un rucher monoruche (v1.0 du projet):<br />
- Une seule et unique ruche supervisée<br />
- Supervision de la masse, la température interne, la luminosité extérieur<br />
- Autonomie électrique du système (pas de branchement électrique filaire nécéssaire)<br />
- Envoi par SMS des données de manière périodique<br />
- Système d'affichage des données (portail en ligne)<br />
- Système d'alerte avec seuil définit (configurable via le portail)<br />
<br />


Ce projet fédère plusieurs bénévoles au sein du fablab et est suivi par les médias locaux ainsi que par des apiculteurs d'autres régions (volontaire pour prototypage notamment). Plusieurs apiculteurs ont aussi faits le déplacement au sein du fablab de Lannion pour venir découvrir ce projet et se porter volontaire pour une période de béta-test dés que la solution sera pleinement fonctionnelle:<br />
Ce projet fédère plusieurs bénévoles au sein du fablab et est suivi par les médias locaux ainsi que par des apiculteurs d'autres régions (volontaire pour prototypage notamment). Plusieurs apiculteurs ont aussi faits le déplacement au sein du fablab de Lannion pour venir découvrir ce projet et se porter volontaire pour une période de béta-test dés que la solution sera pleinement fonctionnelle:<br />
Ligne 28 : Ligne 15 :
Les recherches effectuées n'ont montrées aucune contre indication par rapport aux brevets déjà existants. <br />
Les recherches effectuées n'ont montrées aucune contre indication par rapport aux brevets déjà existants. <br />


</div>
</div>


= Participants =
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
= Planning =
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
 
* Bernard Arzur
Avril/Mai 2013: Définition du cahier des charges, choix de la méthode de supervision (capteur, portail, ...), test des solutions en labo <br />
* David Blaisonneau
Juin 2013: Premier prototype fonctionnel et mise en place en condition réel pour première conclusion de fonctionnement.<br />
* Thomas Leseney
Juillet 2013: Evolutions/améliorations suite aux tests en condition réels.<br />
* Tangi Lavanant
Aout 2013: Deuxième essai en condition réel et évolution possible. Etudes pour résoudre les différents problèmes rencontrés. <br />
Novembre 2013: Recherche de béta testeurs et de budget pour pouvoir finaliser le projet. Plusieurs béta-testeurs se sont manifestés (participation de leur part pour l'achat du matériel). <br />
Décembre 2013: Etude sur l'autonomie, prototypage avec des puces basse consommation (hors ruches). <br />
Janvier 2014: Todo: Mise à jour de la documentation, Test d'autonomie sur puce Atmel. <br />
Février 2014: Todo: Test du prototype et Contacter les béta-testeurs qui se sont manifestés. <br />
Mars 2014: Todo: A définir (mise en place des béta-tests). <br />
...
</div>
</div>
</div>


= La Ruche =
= Chassis / Capteurs =
 
Détails technique côté rucher
 
Détails fonctionnels de la supervision et la mise en oeuvre sur le terrain sont décrites dans cette partie (les choix techniques possibles ont été discutés dans la partie [[Discussion:Suivi_des_ruches|discussion]] du projet)
 
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
== Supervision pour un rucher monoruche ==
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
[[File:Bzzz_monoruche.svg|600px|center]]
Porteur: Bernard


Le système actuellement développé est un prototype qui nécessite d'être optimisé (en consommation et en coût) dans des versions futures, les informations présentes dans cette partie présente le prototype pour superviser un rucher mono-ruche. Ce prototype est nommé Step-1.01 (prototype éligible à béta-test).
== Module Chassis ==
 
===Demi-Chassis===
Le système mono-ruche est composé des éléments suivant:
* Une seule jauge de contrainte par capteur/demi-chassis(diminution du prix)  
- Une ruche (tous type de ruche)
* On accède au paramètre de variation du poids
- Un support de ruche (supporte la ruche et le système de supervision)
* La valeur absolue du poids de la ruche n'est pas connue
- Un lot de sachet type "pompote" (supporte la ruche et se compresse en fonction du poids)
[[File:DemiRuche.jpeg|400px]]
- Des tuyaux silicone et un raccord en T de section
[[Fichier:DSCF1946.jpg|400px]]
 
==2 Demi-Chassis  ==
- Page supervision d'une ruche (système du capteur, de la pesé et l'installation de la ruche)
*Le support associé est remplacé par un 2éme demi-chassis
 
* Le poids exact est connu par la somme des 2 valeurs issues des 2 capteurs
- Une seule ruche (explication de la communication vers le serveur) + lien vers les deux cas (couverture wifi ou non)
* Le coût est un peu plus élevé
</div>
</div>
</div>
= Mesure du poids =
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
== Supervision pour un rucher multiruche  ==
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
 
*Il est connu au gramme près, sur un plage de  0 à 100 Kg.
- Une fois que la version mono-ruche sera validée
*Mesuré par une jauge de contrainte résistive connectée en un pont de Wheatstone [https://fr.wikipedia.org/wiki/Jauge_de_d%C3%A9formation]
- Étude de coût et mise en œuvre à faire
*Numérisation de la mesure (0-10mV) par un module HX711 (convertisseur analogique/numérique à 24 bits de précision)
- Page supervision d'une ruche (système de capteur), identique au mono ruche
*Le module HX711 (2 entrées possibles) est connecté au plus près de la jauge, pour éviter les interférences électromagnétiques
- n ruche esclave + mise en oeuvre du réseau courte portée emetteur vers le maitre
*Le module HX711 est connecté à l'arduino du module d'émission IoT, qui peut donc en recevoir plusieurs (optimisation des coûts)
- 1 ruche maitre + mise en oeuvre du réseau courte portée récepteur + lien vers les deux cas (couverture wifi ou non)
</div>
</div>
</div>
= Arrachage / Vol =
<div class="toccolours mw-collapsible mw-collapsed">
=Connectivité=
<div class="mw-collapsible-content">


== Rucher à portée d'un réseau Wi-Fi ==
= Station Raccordement et Émission =
- Etude de cout et mise en oeuvre à faire
- Si le rucher est à proximité d'une maison
 
== Rucher sous couverture GSM ==
- Etude de cout et mise en oeuvre à faire
- Envoi de SMS, couverture nationale
 
Aperçu du code arduino pour une unique ruche (capteur et envoi de SMS): [[:File:Bzzz_Proto_v0.2.txt]] <br />
 
== Réseau dédié M2M bas débit ==
http://www.sigfox.com/ couvre apparemment la France métropolitaine
 
La taille utile du message est de 12 octets. On peut émettre 140 messages/jour maximum
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
=Le Capteur de Pression=
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
==Boitier==
*Il doit être étanche, résistant car il restera à l'extérieur plusieurs années.
*Il doit donc être de catégorie IP64 au moins. Nous avons choisi IP65 pour une meilleure fiabilité à long terme.
*Ce boîtier contiendra :
** L'alimentation électrique (batterie lithium + carte économiseur)
** Arduino + carte Lora
** Antenne


On utilise 2 sachets de Pompote remplis d'eau placé sous le support pour mesurer les variations de poids de la ruche.
*Nous avons donc choisi un boîtier "Raccordement Fibre Optique" qui permet d'ajouter facilement des entrées-sorties
==Alimentation==
* Batterie de 4 éléments de 2800mAh
* La carte économiseur (basée sur 3 relais basse consommation Reed et un Ampli-Op LM324)  permet de diviser la consommation par 100 :
** 1 mA en consommation moyenne > 6 mois d'autonomie prévue
** 0.6mA au repos
** 120mA en émission (qq secondes toutes les 10 min) 


La pression est transmise depuis le support jusqu'au capteur en utilisant un liquide pour
==Arduino Lora==
éviter les variations de température et de pression atmosphérique.
*Le module HX711 émet un signal numérique sur 5V
* Il est connecté sur les broches 0-1 de l'arduino
* On peut mettre 4 HX711 sur l'arduino en l'état actuel, a voir si on peut multiplexer les capteurs sur 2 broches
* Le module lora utilise les pin 10-11-12-13


Le liquide doit être de l'eau sucrée pour éviter le gel et l'évaporation.
Porteurs: David / Bernard


On utilise un capteur MPX 5100 (0 a 1 Bar) [http://www.freescale.com/files/sensors/doc/data_sheet/MPX5100.pdf]
Actuellement il y a 2 pistes:
* LoRa + Arduino (Bernard)
* LoRa mDot (David)


=====Test: Utilisation de Pompote=====


:La tension en sortie du capteur + montage semble stable.
=== Principe ===
:
:Avancement 12/06/2013: Test sur une chaine de bout en bout avec la pompote solution: <br />
:[[File:20130612_200534.jpg|400px]]<br />
:Résultat visible dans [http://projects.emerginov.org/Bzzz/ site de test]    (''login'' test ''mdp'' <rien> ), joli bois


'''<big>TODO : montage elec en sortie + Fct de transfer tension/kg</big>'''
Le module
* doit avoir une autonomie de 1 an
* envoi les données brute de ses capteurs
* peut avoir plusieurs capteurs
* doit pouvoir être réveillé sur interruption + timer


</div>
=== Lora + Arduino ===
</div>
<div class="toccolours mw-collapsible mw-collapsed">
=La boîte=
<div class="mw-collapsible-content">
Plans et réalisation proto
 
Une photo d'un proto presque complet (monoruche sans zigbee) => Ruche / Capteur Masse / Capteur Température / Capteur Lumière / Panneau solaire.
[[File:20130704_004325_l.jpg|400px]]
<br / >
Mise en place de ce proto en condition réel (mesure tous les 15min le jour, toutes les 2h la nuit.
</div>
</div>
=== Code arduino ===
 
https://github.com/FablabLannion/bzzz
 
=== Energie ===
 
Même en mode économie d'energie, l'arduino et le GSM consomme trop pour avoir une autonomie suffisante sur plusieurs semaines, même avec le panneau solaire.
 
==== Limitation de la consommation d'énergie ====
Sur l'arduino, la librairie 'Narcoleptic' (modifiée pour prendre en compte de longues durées) est utilisée pour endormir l'arduino pendant une durée configurable.
Coté shield, le shield GSM choisi [http://www.seeedstudio.com/wiki/GPRS_Shield_V2.0] permet d'allumer/éteindre la puce GSM via un soft-switch, cela limite donc la consommation au strict nécéssaire.
 
==== Alimentation ====
L'alimentation par le Solar shield testé [http://www.seeedstudio.com/wiki/Solar_Charger_Shield_v2.0b] + Batterie Lipo 3.7V n'est pas assez puissante, d'autres tests dans des configurations différentes sont à faire.
Un test de durée de batterie est en cours avec une pile 9v et une période d'envoi de SMS toutes les 15 minutes.
 
=== Communication entre les ruches ===
@laurent, @guillaume.remy
 
Filaire ou ZigBee. Pour l'instant ZigBee est retenu.


Le prototypage se fait sur deux Arduino Uno munis de shields ZigBee, l'un simulant une ruche et l'autre le collecteur du rucher. Nous sommes parvenus à faire communiquer la ruche avec le collecteur du rucher par l'intermédiaire du ZigBee. La prochaine étape consiste émuler un capteur qui envoi des données à l'Arduino, afin d'évaluer la consommation en énergie de chaque ruche.


Photo avancement au 22/04/2013:<br/>
=== LoRa mDot ===
[[File:20130423_133322.jpg|400px]][[File:20130423_1332031.jpg|400px]] <br/>
<br/>


Module Xbee utilisé:<br/>
MTDOT-868-X1P-SMA-1 - http://www.multitech.com/models/94557138LF
Module ZigBee Xbee série S2.
Modules mis à jour pour une version firmware type ZB, par le logiciel XCTU. <br/>
<br/>
TODO:<br/>
Desactiver l'émission de Data_Request du Xbee, par une commande API venant de l'Arduino pour mise en sommeil profonde du XBee. <br/>
Estimer la consommation du module XBee End_device (Slave) accompagné de son Arduino. <br/>
Définir la pile/batterie à utiliser sur l'ensemble Arduino/Xbee Slave. <br/>
Etablir une gestion de sommeil de l'Arduino par Timer, de manière à se réveiller toutes les 15 mns. <br/>
Fusionner le soft Arduino Master (GSM / Xbee) pour tester la chaîne complète. <br/> 
<br/>
Fait:<br/>
Mesure d'une entrée brute de l'ADC "Arduino Xbee Slave" envoyée, reçu et affichée sur la sortie "Arduino Xbee Master".<br/>
Reprogrammation du firmware XBee Router livré usine, en firmware End_Device (adapté Low Power). <br/>
Mise en sommeil du XBee commandé par une IO de l'Arduino. <br/>


Fait:
* Lecture de la valeur envoyée par le HX711


TODO:
* Tester la connexion à la passerelle (en attente de passerelle)
* Réveil par interruption + Timer (cf lib beta: https://developer.mbed.org/questions/61619/mDot-deep-sleep-mode-wake-up/)


<div class="toccolours mw-collapsible mw-collapsed">
=Liste du matériel=
<div class="mw-collapsible-content">
<table border="0" cellspacing="0" cellpadding="0" class="ta1"><tr class="ro1"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td></tr><tr class="ro1"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td></tr><tr class="ro1"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="Default"><p>PU</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="ce6"><p>Montage GSM</p></td><td xmlns="" style="text-align:left;width:2.531cm; " class="ce9"><p>Montage Eth</p></td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Capteur de pression</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Conrad</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>39,95 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="ce7"><p><span xmlns="http://www.w3.org/1999/xhtml" class="T1"><a href="http://www.conrad.fr/ce/fr/product/183890/Capteur-de-pression-differentielle-MPX-5100-DP">http://www.conrad.fr/ce/fr/product/183890/Capteur-de-pression-differentielle-MPX-5100-DP</a></span></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>79,90 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Carte GPRS</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>56,09 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="ce7"><p><span xmlns="http://www.w3.org/1999/xhtml" class="T1"><a href="http://snootlab.com/seeedstudio/419-gprs-shield-v20.html">http://snootlab.com/seeedstudio/419-gprs-shield-v20.html</a></span></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>0</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>56,09 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Arduino Uno</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>19,50 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://snootlab.com/arduino/142-arduino-uno-rev3.html">http://snootlab.com/arduino/142-arduino-uno-rev3.html</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>39,00 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Temperature sensor with steel head</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Seeedstudio</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>1,20 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://www.seeedstudio.com/depot/Temperature-sensor-with-steel-head-p-78.html?cPath=25_27">http://www.seeedstudio.com/depot/Temperature-sensor-with-steel-head-p-78.html?cPath=25_27</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>2,40 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Ethernet shield Rev 3 POE Ready</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>33,11 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://snootlab.com/arduino/163-ethernet-shield-r3.html">http://snootlab.com/arduino/163-ethernet-shield-r3.html</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>0</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>33,11 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>LiPo Rider Pro</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Seeedstudio</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>10,82 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://www.seeedstudio.com/depot/lipo-rider-pro-p-992.html?cPath=1_75">http://www.seeedstudio.com/depot/lipo-rider-pro-p-992.html?cPath=1_75</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>0</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>10,82 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Lipo 2000mAh</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>16,00 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://snootlab.com/sparkfun/317-batterie-polymere-lithium-ion-37v-2000mah.html">http://snootlab.com/sparkfun/317-batterie-polymere-lithium-ion-37v-2000mah.html</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>0</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>16,00 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Photoresistance 4mm</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>2,51 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://snootlab.com/composants/97-photoresistance.html">http://snootlab.com/composants/97-photoresistance.html</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>5,02 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Barrette sécable 16 pts pack de 5</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>1,81 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://snootlab.com/connecteurs/306-barrette-secable-16-pts-5-pack.html">http://snootlab.com/connecteurs/306-barrette-secable-16-pts-5-pack.html</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>0</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>1,81 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Connecteur USB Mâle type A à souder</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>1,10 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://snootlab.com/adafruit/532-connecteur-usb-male-type-a-a-souder-fr.html">http://snootlab.com/adafruit/532-connecteur-usb-male-type-a-a-souder-fr.html</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>0</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>1,10 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Câble USB noir 1 m type B</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>2,90 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://snootlab.com/cables/136-cable-usb-noir-1m-type-b.html">http://snootlab.com/cables/136-cable-usb-noir-1m-type-b.html</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>0</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>2,90 €</p></td></tr><tr class="ro2"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default"><p>Alimentation 9V 2A</p></td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default"><p>Snootlab</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>15,55 €</p></td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default"><p><a xmlns="http://www.w3.org/1999/xhtml" href="http://snootlab.com/alimentations/359-alimentation-9v-2a.html">http://snootlab.com/alimentations/359-alimentation-9v-2a.html</a></p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>0</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="Default"><p>1</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce6"><p>15,55 €</p></td></tr><tr class="ro1"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td></tr><tr class="ro1"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:right; width:2.531cm; " class="ce8"><p>151,88 €</p></td><td xmlns="" style="text-align:right; width:2.531cm; " class="ce8"><p>111,82 €</p></td><td xmlns="" style="text-align:right; width:2.258cm; " class="ce10"><p>263,70 €</p></td></tr><tr class="ro1"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td></tr><tr class="ro1"><td xmlns="" style="text-align:left;width:6.726cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.314cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td><td xmlns="" style="text-align:left;width:14.896cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.531cm; " class="Default">&nbsp;</td><td xmlns="" style="text-align:left;width:2.258cm; " class="ce6">&nbsp;</td></tr></table>
</div>
</div>
</div>
== Gateway LoRa ==


<div class="toccolours mw-collapsible mw-collapsed">
Porteur: Thomas
= Détails techniques côtés serveur de données =
<div class="mw-collapsible-content">


== Serveur Collecte et Affichage Smartphone ==
== Web ==
@colvert, @benoitb


=== Nano spec ===
Porteur: David
Le but du serveur est de
* déclarer des ruchers
* déclarer des ruches dans des ruchers
* collecter des données de ruches
* afficher les graphs de données par ruche
* générer une alerte en acs de delta entre 2 mesures pour une ruche donnée


==== Data model ====
=== Principe ===
le petit modèle objet peut être décrit comme suit
[[File:Bzz SQL model.png|400px]]


Le serveur est développé en jquery model histoire d'être visualisable indiféremment sur PC, tablette ou smartphone.
* L'utilisateur ajoute une ruche > un module > N capteurs
* L'utilisateur configure chaque capteur si besoin (tare, échelle)
* L'utilisateur configure le seuil de déclenchement des alertes
* Le site web recoit les données brutes des capteurs via la passerelle et les transforme en données utile si besoin
* Le site web graph les données
* Le site web alerte l'utilisateur si un seuil est franchi.


==== Fichiers ====
=== Taches ===
l'arborescence fichier simplifiée peut être vue comme suit:
[[File:Bzzz spec.png|400px]]


'''Nommage des ruches'''
Fait:
* base Web2Py
* Site de base avec authentification
* Modèle de données
* API Rest


chaque ruche est identifié par le numéro de téléphone du shield GSM (à terme ça sera l'identifiant de rucher)
==Liste du matériel-Coût==


On se base désormais sur le système [http://projects.emerginov.org/sensonet/ sensonet] pour la gestion du réseau de capteur.
L'ensemble des composants doit fonctionner entre -30° C et +70°
le projet Bzzz s'est donc "abonné" aux données du réseau Bzzz et a indiqué une classe de callback (bzzzsensonet.php) qui est invoquée à chaque fois qu'un SMS relatif à Bzzz est reçu via sensonet.
L'utilisationd e sensonet permet de bénéficier de toutes la logique de ce réseau de capteurs, de son API, de ses pages de visualisation et de son application android.


La fonction de callback permet de monter en base les données collectées par Sensonet, un peu à la manière de l'ancienne gestion (cf plus bas)
===Configuration Point à point===
* Châssis métallique : 5€
*Jauge de contrainte : 25€
*Circuit HX711 : 1€
*Câble 278 8p : 0.50€ le m
*Boitier : 25€
*Batterie : 40€ (Icr18650-28a 18650 3.7v 2800mAh Li-ion rechargeable )
* Ou pile alcaline 4 : 4€
*Circuit Économiseur : 20€
*Arduino  : 22€ (http://letmeknow.fr/shop/arduino-officiels/153-a000066-arduino-uno-8058333490090.html)
*Emetteur Lora : 30€ (http://letmeknow.fr/shop/autres-composants/327-module-lora-uart.html)
*Recepteur Arduino/Lora : 50€ qui peut servir pour x émetteurs à portée
* Pas de coûts d'utilisation des réseaux Lora


'''Librairies'''
Total : environ 185€ TTC pour un demi-chassis avec station d'émission
* jquery mobile
* [http://leafletjs.com/ leaflet]: carto [http://openstreetmap.fr/ openstreetmap] pour la localisation d'un rucher (adLocalisation.php)
* [http://www.jqplot.com/ jqplot]: pour grapher les résultats des sondes (stats.php)


=== captures d'écran ===
Total : environ 215€ TTC pour 2  demi-chassis avec station d'émission (+30€ par demi-chassis relié à la même station)


==== l'accueil ====
[[Fichier:Bzzz0.png]]


test/ <pas de mot de passe>
TODO:
* Restreindre l'accès à une partie de l'API
* Ajouter la fonction de déclaration de la tare
* Ajouter la fonction de transformation de donnée brute en donnée normée.
* Grapher les données des capteurs
* Ajouter les fonctions web d'ajout/suppression/modification de ruches/capteurs/modules


==== le menu principal  (tous les ruchers) ====
[[Fichier:Bzzz1.png]]
==== visualisation d'un rucher ====
[[Fichier:Bzzz2.png]]
==== configuration du rucher ====
[[Fichier:Bzzz4.png]]
==== options d'alertes du rucher ====
[[Fichier:Bzzz3.png]]
</div>
</div>


=== Todo liste ===
lien :
http://letmeknow.fr/blog/2015/10/27/tutomodulelora/


==== A faire: ====
== Liens Web ==
* codage des cas pas droits (TODO dans le code qui vérifie si le rucheid n'est pas valide, si le rucherid est le bon .. pour le moment je fais confiance au gars qui tape
Balance connectées pour ruches : http://itsap.asso.fr/outils/balances-automatiques/
* commentaire code
[[:File:BZZZ_2.pptx]]
* gérer le système d'alerting (partiel)
* Mettre à jour le wiki avec explication du fonctionnement (faire une partie monoruche et une partie multiruche)
* Mettre une conclusion sur les réflexions sur les capteurs
* Mettre le protocole du premier essai en condition + les conclusions de cet essai
* Plein d'autres choses encore


==== en option ====
* ajout d'un tag admin/user dans la base (pour l'instant un user qui peut voir tous les ruchers et donc toutes les ruches)
* IVR (kiosque vocale de consultation et/ou appelle le responsable du rucher en cas d'alerte en plus du SMS)
* des stats annuels / mensuels / comparatives ruche
* gestion du filtre pour l'affichage des ruches (sinon si y a 20 ruches dans un rucher la page va être un peu longue...)
* bouton pour export CSV des données d'un rucher ou d'une ruche


==== Fait: ====
* intégration avec [http://projects.emerginov.org/sensonet/ sensonet] (appli de gestion de réseau de capteurs développée par Benoît H.)
* suppression des fichiers qui servent à rien
* mise en place du système de session (pour l'instant la page de login ne sert à rien (login:test mdp:<rien>) mais on peut attaquer directement les pages subséquentes
* display des courbes à finir (pas de display si pas de valeurs, affichage des N derniers points....)
* addRuche à finir
* intégration de carto (pour le moment je rentre longitude/lattitude via des champs, je pense le faire via l'intégration d'une carto, faut que je regarde comment on fait ça en jquery mobile)
* fonction edit_rucher (modifier descriptif / localisation / propriétaire)
* choix pour l'utilisateur du mode d'alerte (SMS, mail, appel) - partiellement fait
* afficher la carte sans avoir à recharger la page cf. explications de Benoît B. ci-dessous
* comprendre pourquoi la carte et les graphs ne se chargent pas avec la page (besoin de reforcer le chargement de la page) => Benoit:"
Le « pourquoi cela ne marche pas ».
C'est assez simple.
Avec JQuery Mobile (JQM par la suite), toute l'application est
constituée de « cartes ». À chaque fois qu'un contenu (une « carte »)
est ouverte (lien, bouton etc.), JQM intercepte la requête, fait une
requête AJAX sur l'URL correspondante, génère et insère le DOM de la page reçue
en réponse et l'affiche. Donc seul ce qui est contenu entre les balises
<body> et </body> est pris en compte. De ce fait, tu n'as aucune chance qu'un
script ou une CSS spécifié dans la partie <head /> soit pris en compte.
Par contre, avec un service suffisamment REST, un « reload » de la page
la charge bien complétement, comme une nouvelle application JQM, avec le
résultat attendu, mais c'est un peu dommage.
Cependant il est possible de +/- contourner ce principe, en indiquant à
JQM (attribut data-ajax="false" dan sles balises <a ...>) que le document
joint est indépendant. Mais de mon point de vue, c'est assez improductif
de procéder de la sorte.
L'autre solution, c'est simplement de penser l'application comme une
seule page, et d'aller systématiquement chercher les contenus dynamiques
en AJAX. De mon expérience, ce n'est pas un problème et permet même une
meilleure séparation de la logique métier (coté serveur) et de l'affichage.


=== Pour contribuer ===
2 url pour commencer sur Emerginov (faut avoir un compte de dev)
* http://www.emerginov.org/main_authen/selfcare.php
* http://developers.emerginov.org/
== Relation avec Beewatch ==
@cedricbou
= Liste des composants =
-MPX 5100 : http://www.conrad.fr/ce/fr/product/183890/Capteur-de-pression-differentielle-MPX-5100-DP
- 2 sachets de Pompote
- 50 cm de tuyau pour le circuit hydraulique




Ligne 331 : Ligne 189 :
[http://www.dailymotion.com/video/x16yp5y_lannion-le-projet-bzzz-a-son-prototype Explication du dispositif au Télégramme en novembre 2013 disponible en vidéo]
[http://www.dailymotion.com/video/x16yp5y_lannion-le-projet-bzzz-a-son-prototype Explication du dispositif au Télégramme en novembre 2013 disponible en vidéo]


<div class="mw-collapsible-content">
= Liens utiles =
= Liens utiles =



Version du 1 mai 2017 à 20:07

Logo projet Bzzz


Présentation

Le projet Bzzz (Bee Zen Cube) est un projet de suivi de ruches pour une apiculture vraiment Zen ( pour l'apiculteur et pour ses abeilles ^^), il a pour but de proposer gratuitement à tout apiculteur amateur un peu bricoleur les plans d'un kit de supervision de son rucher (mono-ruche voir évoluer vers le multi-ruche). Le projet Bzzz souhaite suivre l'évolution de la santé de la ruche à distance c'est à dire, la prise de poids, son bien-être interne (température) et l'alerte en cas d'essaimage. Évitant ainsi de multiples déplacement de l'apiculteur.

Le projet Bzzz est un projet Open-source et Open-hardware

Le projet est né suite à la demande d'un apiculteur amateur de pouvoir superviser (surveillance avec divers capteurs) sa ruche avec une solution innovante et abordable.

Ce projet fédère plusieurs bénévoles au sein du fablab et est suivi par les médias locaux ainsi que par des apiculteurs d'autres régions (volontaire pour prototypage notamment). Plusieurs apiculteurs ont aussi faits le déplacement au sein du fablab de Lannion pour venir découvrir ce projet et se porter volontaire pour une période de béta-test dés que la solution sera pleinement fonctionnelle:

Les évolutions possibles sont notées dans la partie ToDoList (amélioration, bug à corriger, ajout de capteurs, multi-ruche, etc...).

Les recherches effectuées n'ont montrées aucune contre indication par rapport aux brevets déjà existants.


Participants

  • Bernard Arzur
  • David Blaisonneau
  • Thomas Leseney
  • Tangi Lavanant

Chassis / Capteurs

Porteur: Bernard

Module Chassis

Demi-Chassis

  • Une seule jauge de contrainte par capteur/demi-chassis(diminution du prix)
  • On accède au paramètre de variation du poids
  • La valeur absolue du poids de la ruche n'est pas connue

DemiRuche.jpeg DSCF1946.jpg

2 Demi-Chassis

  • Le support associé est remplacé par un 2éme demi-chassis
  • Le poids exact est connu par la somme des 2 valeurs issues des 2 capteurs
  • Le coût est un peu plus élevé

Mesure du poids

  • Il est connu au gramme près, sur un plage de 0 à 100 Kg.
  • Mesuré par une jauge de contrainte résistive connectée en un pont de Wheatstone [1]
  • Numérisation de la mesure (0-10mV) par un module HX711 (convertisseur analogique/numérique à 24 bits de précision)
  • Le module HX711 (2 entrées possibles) est connecté au plus près de la jauge, pour éviter les interférences électromagnétiques
  • Le module HX711 est connecté à l'arduino du module d'émission IoT, qui peut donc en recevoir plusieurs (optimisation des coûts)

Arrachage / Vol

Station Raccordement et Émission

Boitier

  • Il doit être étanche, résistant car il restera à l'extérieur plusieurs années.
  • Il doit donc être de catégorie IP64 au moins. Nous avons choisi IP65 pour une meilleure fiabilité à long terme.
  • Ce boîtier contiendra :
    • L'alimentation électrique (batterie lithium + carte économiseur)
    • Arduino + carte Lora
    • Antenne
  • Nous avons donc choisi un boîtier "Raccordement Fibre Optique" qui permet d'ajouter facilement des entrées-sorties

Alimentation

  • Batterie de 4 éléments de 2800mAh
  • La carte économiseur (basée sur 3 relais basse consommation Reed et un Ampli-Op LM324) permet de diviser la consommation par 100 :
    • 1 mA en consommation moyenne > 6 mois d'autonomie prévue
    • 0.6mA au repos
    • 120mA en émission (qq secondes toutes les 10 min)

Arduino Lora

  • Le module HX711 émet un signal numérique sur 5V
  • Il est connecté sur les broches 0-1 de l'arduino
  • On peut mettre 4 HX711 sur l'arduino en l'état actuel, a voir si on peut multiplexer les capteurs sur 2 broches
  • Le module lora utilise les pin 10-11-12-13

Porteurs: David / Bernard

Actuellement il y a 2 pistes:

  • LoRa + Arduino (Bernard)
  • LoRa mDot (David)


Principe

Le module

  • doit avoir une autonomie de 1 an
  • envoi les données brute de ses capteurs
  • peut avoir plusieurs capteurs
  • doit pouvoir être réveillé sur interruption + timer

Lora + Arduino

LoRa mDot

MTDOT-868-X1P-SMA-1 - http://www.multitech.com/models/94557138LF

Fait:

  • Lecture de la valeur envoyée par le HX711

TODO:

Gateway LoRa

Porteur: Thomas

Web

Porteur: David

Principe

  • L'utilisateur ajoute une ruche > un module > N capteurs
  • L'utilisateur configure chaque capteur si besoin (tare, échelle)
  • L'utilisateur configure le seuil de déclenchement des alertes
  • Le site web recoit les données brutes des capteurs via la passerelle et les transforme en données utile si besoin
  • Le site web graph les données
  • Le site web alerte l'utilisateur si un seuil est franchi.

Taches

Fait:

  • base Web2Py
  • Site de base avec authentification
  • Modèle de données
  • API Rest

Liste du matériel-Coût

L'ensemble des composants doit fonctionner entre -30° C et +70°

Configuration Point à point

Total : environ 185€ TTC pour un demi-chassis avec station d'émission

Total : environ 215€ TTC pour 2 demi-chassis avec station d'émission (+30€ par demi-chassis relié à la même station)


TODO:

  • Restreindre l'accès à une partie de l'API
  • Ajouter la fonction de déclaration de la tare
  • Ajouter la fonction de transformation de donnée brute en donnée normée.
  • Grapher les données des capteurs
  • Ajouter les fonctions web d'ajout/suppression/modification de ruches/capteurs/modules


lien : http://letmeknow.fr/blog/2015/10/27/tutomodulelora/

Liens Web

Balance connectées pour ruches : http://itsap.asso.fr/outils/balances-automatiques/ File:BZZZ_2.pptx



Communication autour du projet

La présentation de l'idée de départ:Fichier:Projet Bzzz.pdf

Bzz au carrefour des possibles

Une petite vidéo de présentation du projet Bzzz au carrefour des possibles Video Vimeo

Les 10 projets Juin 2013

Le télégramme de novembre 2013 Explication du dispositif au Télégramme en novembre 2013 disponible en vidéo

Liens utiles

site de test (login test mdp <rien> )

Code

code serveur

Photos