Introduction: Bees' Awakening

Depuis quelques temps, les frelons asiatiques sont des nuisibles sans prédateurs qui se nourrissent de divers insectes dont les abeilles. Ces frelons apprécient particulièrement les protéines présentent dans l'abdomen des abeilles. Malheureusement, ces abeilles sont menacées d'extinction...

Step 1: Présentation

Le but de ce projet est d'aider à détecter les frelons asiatiques qui stagnent devant les ruches d'abeilles pour s'en nourrir.

Si le nombre de frelons détectés est trop élevé, un message est envoyé indiquant le nombre de frelons. On supposera donc qu'il y a un nid de frelons proche de la ruche. L'objectif est de rendre le module de détection indépendant, mais cette version ne le permet pas encore.

Step 2: Equipements, Logiciels Et Prix (HT)

Raspberry Pi 3B+, 32.08 €

Raspberry Pi NoIR Camera V2, 23.09 €

SNOC Kit Carte Breakout Sigfox BRKWS01 + Antenne, 26.64 €

Dissipateur de chaleur, montage Ruban adhésif thermique 25°C/W, 5.20 €

Batterie externe USB V206 13000 mAh - 1 x 1 A et 1 x 2 A, 23.25 €

Boîte à fabriquer, prix indéterminé

Logiciel TensorFlow, 0 €

Total HT : 110.26 €

Step 3: Pré-requis

Avoir installé les dissipateurs thermiques sur la Raspberry.

---------------------------------------

Avoir activé/désactivé les interfaces :

  • Caméra activé, pour utiliser la caméra
  • Serial Port activé, pour utiliser le port série et communiquer avec le module Sigfox - Remote GPIO activé, pour activer et utiliser les broches GPIO - Désactiver le reste

---------------------------------------

Mettre à jour l'environnement à l'aide du terminal :

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot

Step 4: TensorFlow

Installation et test

Veuillez suivre le tutoriel d’installation ici.

Step 5: Camera

Installation

Décliper le socle, insérer la nappe et recliper le socle.

---------------------------------------

Librairies

Téléchargez la librairie depuis le terminal :

sudo apt-get install python3-picamera

---------------------------------------

Code de test

Téléchargez le fichier test_Camera.py

Step 6: Sigfox

Installation

Après avoir soudé les picots, connecter les pins du module Sigfox au GPIO de la Raspberry comme indiqué :

---------------------------------------

Souscription au réseau

Au dos du fascicule, l’ID et le PAC du module sont fournis. Pour activer l’abonnement, il suffira de se connecter sur le lien suivant http://snoc.fr/sigfoxactivate et de suivre/remplir le formulaire.

---------------------------------------

Code de test d'émission

Le module Sigfox est commandé par des commandes AT disponibles dans la datasheet du composant.

---------------------------------------

Téléchargez le fichier test_Sigfox.py

---------------------------------------

Attention

  • Le message doit se terminer par un caractère de retour à la ligne (ici "\n").
  • Il faudra s'assurer d'envoyer le message hors du mode veille.
  • Le nombre de messages est limité à 140/jour.
  • Le nombre d'octets par message est limité à 12/message.

Step 7: Affichage Des Messages Via L'API Sigfox

Préparer Sigfox

Suivre les explications sur le lien suivant https://www.framboise314.fr/utiliser-lapi-de-sigfox-pour-afficher-ses-donnees/#Creation_d8217un_compte_d8217API dans la rubrique "Création d’un compte d’API".

---------------------------------------

Installer Docker

Avec le terminal :

sudo apt install docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

---------------------------------------

Configurer les applications

Apache, MySQL et PhpMyAdmin

Le Dockerfile ci-dessous permet de récuprer la version 5.6 d'apache et de la rendre compatible avec les futur conteneur :

# ./Dockerfile.yml
FROM php:5.6-apache
UN docker-php-ext-install pdo_mysql
RUN usermod -u 1000 www-data
RUN a2enmod rewrite

Le code d’écrit ci-dessous permet de créer les services Apache, MySQL et PhpMyAdmin dans trois conteneurs :

# ./docker-compose.yml
version: '2'

services :
appliation :
container_name: appliation
build: docker/apache
ports :
- "80:80"
volumes :
- ./appliation:/var/www/html/
networks:
my_net:
ipv4_address: 172.32.0.2

mysql:
container_name: mysql
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- ./mysql/data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "admin"
MYSQL_DATABASE: myBDD
networks: my_net:
ipv4_address: 172.32.0.3

phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
ports:
- "8080:80"
volumes:
- /sessions
depends_on:
- mysql
networks:
my_net:
ipv4_address: 172.32.0.4

networks:
my_net:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.32.0.0/24
gateway: 172.32.0.1

---------------------------------------

Lancer les applications

sudo docker-compose build
sudo docker-compose up

---------------------------------------

Code d’affichage des messages

Télécharger le fichier affichage_Sigfox.txt

---------------------------------------

Attention

  • Remplacer l'extension "txt" du fichier par "html"
  • Remplacer user par le numéro d’utilisateur donné par Sigfox.
  • Remplacer password par le mot de passe donné par Sigfox
  • Remplacer dans url “XX” par l’ID du module Sigfox

Step 8: Création De La Base D’images

Cette partie donne le code à ajouter dans le script que le fichier rc.local doit lancer au démarrage. Il permet de faire des photos et envoyer un message SIGFOX à intervalle régulier sous certaines conditions.

Téléchargez le fichier base_Images.py

Step 9: Détecter Les Frelons

Il ne manque plus qu'à adapter le système pour qu'il puisse adapter les frelons pour ensuite envoyer un message Sigfox si il sont trop nombreux par exemple.

Veuillez suivre le tutoriel d’installation ici en utilisant la base d’images fournie par la partie précédente. Il vous suffira donc d'ajouter le code permettant au Sigfox d'émettre le message que vous souhaitez transmettre sous les conditions voulues.