Skip to content

Conception et fonctionnement du serveur IoT

L'objectif est de créer un serveur IoT capable de stocker les données des capteurs et d'agir comme point d'accès pour l'application qui récupère ces données. Un des défis majeurs consiste à protéger le Raspberry Pi des intempéries tout en assurant sa connectivité avec le monde extérieur.

Construction de la version 1 du serveur IoT

Critères de conception

Pour la réalisation de ce serveur, plusieurs critères devaient être remplis :

  1. Petit et léger : Faciliter le transport et l'installation.
  2. Carte WiFi intégrée : Assurer la connectivité sans fil.
  3. Faible consommation d'énergie : Optimiser l'efficacité énergétique.
  4. Connectique multiple et variable : Permettre des connexions diverses.
  5. Puissant : Être capable de lancer plusieurs services.

Le Raspberry Pi 5 a été choisi, car il répond parfaitement à ces exigences.

Étape 1 : Trouver un boîtier

Pour protéger le serveur des intempéries, j'ai utilisé un boîtier de dérivation. Ce boîtier était idéal pour les raisons suivantes :

  1. Adaptabilité : Permets d'intégrer facilement le serveur.
  2. Protection contre les intempéries : Assure l'étanchéité.
  3. Modulable : Facile à modifier pour différents usages.
  4. Compact et portable : Facile à déplacer.
  5. Coût réduit : Abordable financièrement.

Étape 2 : Modification d'un USB

Pour faciliter les branchements de la balance sur le Raspberry Pi, j'ai modifié deux USB. Un USB est relié au HX711 de la balance et l'autre aux pins du Raspberry Pi, permettant ainsi une modularité entre les deux.

Plutôt que de souder directement les câbles sur le Raspberry Pi, j'ai utilisé un module d'extension, ce qui facilite le remplacement du Raspberry Pi en cas de problème sans nécessiter de refaire tout le câblage.

Voici le résultat de cette modification :

Extension pin Raspberry vers USB femelle
Figure 35 — Extension pin Raspberry vers USB femelle

Détails des connexions :

  1. Le fil rouge (VCC) est relié à la broche 2 (5V power) du Raspberry Pi pour alimenter le HX711.
  2. Le fil noir (GND) est connecté à la broche 6 (Ground) du Raspberry Pi pour établir la référence de masse.
  3. Le fil blanc (Data-) est connecté à la broche 31 (GPIO 6) du Raspberry Pi pour recevoir les données DT du HX711.
  4. Le fil vert (Data+) est relié à la broche 29 (GPIO 5) du Raspberry Pi pour émettre le signal de clock SCK vers le HX711.

Corrélation des broches du Raspberry Pi :

  • Broche 2 (5V power) : Alimentation pour le HX711 (VCC).
  • Broche 6 (Ground) : Référence de masse pour le HX711 (GND).
  • Broche 29 (GPIO 5) : Connectée à la broche SCK (Clock) du HX711.
  • Broche 31 (GPIO 6) : Reliée à la broche DT (Data) du HX711.
Extension pin sur Raspberry
Figure 36 — Extension pin sur Raspberry
USB femelle modifiée
Figure 37 — USB femelle modifiée

Étape 3 : Passage des connectiques

J'ai percé trois trous sur les côtés de la boîte de dérivation pour passer l'alimentation, un connecteur micro-USB pour le capteur interne, et un USB femelle branché sur les pins du Raspberry Pi.

Voici le rendu de l'intérieur de la boîte avec le Raspberry Pi et le câblage terminé :

Boîte avec Raspberry Pi et câblage fini
Figure 38 — Boîte avec Raspberry Pi et câblage fini

Connexion internet

Pour connecter la ruche à Internet, j'ai d'abord essayé d'utiliser le Wi-Fi, mais le Raspberry Pi ne détectait pas le signal. J'ai également essayé avec un répéteur Wi-Fi, mais cela n'a rien changé, le serveur ne recevait toujours pas de signal.

Ensuite, j'ai utilisé la technologie Courant Porteur en Ligne (CPL) pour faire passer la connexion Internet à travers les câbles électriques. Pour cela, j'ai utilisé deux boîtiers de la marque Devolo.

Voici le schéma de connexion :

Schéma connexion internet à la ruche
Figure 39 — Schéma connexion internet à la ruche

Access point wifi

Dans mon serveur il y un fichier "wifi-hotspot.service", qui se trouve dans ce répertoire "/etc/systemd/system/" et qui comporte se code :

[Unit]
Description=WiFi Hotspot
After=network.target

[Service]
ExecStart=/usr/bin/nmcli device wifi hotspot ssid beekeeper_compass_iot password h3atwe3YyA3fAP86RtkoUHkyNqvas6
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

Ce fichier crée un access point en wifi sur le raspberry pour que le balance et le module de surveillance interne puisse envolé les données au broker MQTT qui se trouve sur le serveur.

Installation

Pour fournir de l'électricité à la ruche, j'ai tiré une rallonge électrique et j'y ai branché dessus l'alimentation du serveur. Une fois le serveur alimenté, j'y ai connecté les différents modules nécessaires au suivi et à la surveillance de la ruche.

Pour m'assurer que le serveur fonctionnait correctement, je me suis connecté en SSH afin de vérifier son état et de contrôler les données transmises par les modules.

Voici le résultat :

Serveur IoT en extérieur
Figure 40 — Serveur IoT en extérieur