diff --git a/README.md b/README.md index 14f2cd4..ba35309 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Mini réseau d'objets connectées +# Mini réseau d'objets connectés Projet Universitaire, ayant pour but de créer un mini réseaux d'objets connectées. @@ -179,12 +179,97 @@ en temps réel et de stocker les données pour une analyse ultérieure. Pour vous donner une idée de notre flux final sur Node-RED, voici une image de notre flow final : + +Une fois tous les services installés et configurés, nous avons connecté le Raspberry PI au +réseau de la box ”PT4ObjConnect” en utilisant la commande +```Bash +sudo dietpi-config +``` +Et en spécifiant le mot de passe ”Admin2022”. Pour cela utiliser la commande +```Bash +sudo dietpi-config +``` +Puis aller dans ”Network Options” : + + +Ensuite choisir l’option : + +```Bash +WiFi : Available | [On] | Connected +``` + +Puis mettre l’adresse IP en DHCP avec l’option ”Change mode” afin que le RPI se connecte +au réseau automatiquement. + +### Programmation des ESP32 + +Nous avions à notre disposition deux ESP32, l’un faisant tourner des programmes en Micropython à l’aide de l’IDE Thonny et l’autre faisant tourner des programmes en C à l’aide +de l’IDE Arduino. + +L’image ci-dessous montre les différents pins des deux ESP32 utilisés dans ce projet. Il est +important de noter que certains des pins indiqués sur cette image ne correspondent pas exactement à leur emplacement réel sur le module ESP32 utilisé dans ce projet. Cependant, cette image fournit une vue d’ensemble des fonctions des différents pins et permet +de comprendre comment ils ont été utilisés dans notre projet. + + + +#### ESP32 Micropython + +Sur l’ESP32 sous Micropython, nous avons utilisé les capteurs BME680, Oled, Servo +FS90R ainsi qu’une LED. Nous avons utilisé l’IDE Thonny pour écrire et téléverser les +codes sur l’ESP32. Pour configurer Thonny afin d’utiliser MicroPython sur l’ESP32, nous +avons suivi les étapes suivantes : + +- Aller dans le menu Outils > Options > Interpréteur +- Sélectionner MicroPython (ESP32) + +Avant de pouvoir téléverser nos codes sur l’ESP32, il a fallu installer le firmware. Pour ce +faire, nous avons utilisé les étapes suivantes : + +- Sélectionner le port série connecté à l’ESP32 +- Sélectionner le firmware approprié (dans notre cas, esp32-idf3-20191220-v1.12.bin) +- Cliquer sur installer pour téléverser le firmware sur l’ESP32 + +Une fois ces étapes effectuées, nous étions prêts à écrire et à téléverser notre code sur +l’ESP32. + +L’image ci-dessous est un schéma qui montre comment les différents composants utilisés +dans le projet ont été connectés à l’ESP32 ([fichier .fzz](fritzing/micropython.fzz)). On peut voir sur l’image comment les broches de l’ESP32 sont connectées aux broches des différents capteurs pour établir les communications I2C. Cette image donne une vue d’ensemble visuelle de la configuration des différents composants. + + + +Le tableau suivant montre les connections des différents capteurs (BME280, LED, OLED +et Servo FS90R) sur l’ESP32. Les broches GND et 3.3 V sont connectées respectivement +aux broches GND et VCC des capteurs. Les broches SCL et SDA (GPIO22 et GPIO21) sont +connectées respectivement aux broches SCL et SDA des capteurs pour la communication +I2C. La broche GPIO14 est connectée à l’anode (+) de la LED. La broche VIN (5V) est +connectée à la source d’alimentation. La broche RX2 (GPIO16) est connectée entre S et +G pour le servo moteur. + +| ESP32 | BME680 | LED | Oled | Servo FS90R | +|--------------|--------|-------------|-------------|-------------| +| GND | GND | Cathode (-) | GND | G | +| 3.3V | VCC | X | VCC | X | +| SCL (GPIO22) | SCL | X | SCL | X | +| SDA (GPIO21) | SDA | X | SDA | X | +| GPIO14 | X | Anode (+) | X | X | +| VIN (5V) | X | X | X | entre S et G | +| RX2 (GPIO16) | X | X | X | S | + +Codes utilisés pour programmer l’ESP32 en utilisant Thonny (MicroPython) : + +Boot : [boot.py](ESP-codes/MicroPython/boot.py) + +Librairies : +- [bme680.py](ESP-codes/MicroPython/bme680.py) +- [ssd1306.py](ESP-codes/MicroPython/ssd1306.py) + +Main : [main.py](ESP-codes/MicroPython/main.py)