Etape 4: Programmation Basique pour les Capteurs et Pompes

Si vous êtes arrivés jusque là, c’est que vous avez fini avec toute la partie soudures. Bravo!

Nous allons maintenant nous occuper de la partie programmation et vérification du bon fonctionnement de votre kit.

Partie 1

  • Installez Arduino IDE: https://www.arduino.cc/en/software
  • Arduino IDE est l’environnement de développement que nous utilisons pour écrire et compiler du code sur des cartes Arduino. En l’occurence, le kit botanique utilise une carte ESP-32 qui nécessite ce qu’on appelle un « Board Manager » sur Arduino IDE pour pouvoir être reconnu et fonctionner.
  • Lorsque vous avez installé et lancé Arduino IDE, vous devriez voir cette fenêtre: 

Partie 2

  • Cliquez sur le deuxième onglet dans le menu à gauche, nommé « Boards Manager ».
  • Dans la barre de recherche, entrez « esp » et installez « Arduino ESP32 Boards » par Arduino et « esp32 » par Espressif Systems

Partie 3

  • Attention: Si vous ne l’avez pas encore déjà fait, débranchez la prise Jack DC de votre kit. Il ne faut jamais que votre kit soit branché à la fois sur votre ordinateur et avec la prise Jack. Cela crée deux sources de tension sur votre kit, ce qui est dangereux pour le circuit.
  • Connectez votre pompe et votre capteur aux ports correspondants. Le schéma ci-dessous illustre quels pins et quels ports sont associés. Vous remarquerez que votre capteur d’humidité a 3 connecteurs femelles. Il faut que le connecteur lié au cable noir soit mis sur le pin de droite (GND).

Partie 4

  • Vérifiez encore que votre prise Jack DC est débranchée, puis connectez votre kit Botanique à votre ordinateur avec votre cable micro-USB.
  • Il faut maintenant trouver quel port de votre ordinateur est associé à votre kit.
  • Le moyen simple de faire cela est de cliquer sur « Select Board », puis « Select other board and port… ». Débranchez votre kit de votre ordinateur, et regardez quel port disparait à droite (Ils devraient en général être appelés « COM[X] Serial Port »).
  • Dans la barre de recherche « Boards », cherchez « NodeMCU-32S ». Cliquez dessus et faites de même pour le port trouvé précédemment. Pour finir, cliquez sur « OK ».

Partie 5

  • Allez sur le GitHub Robopoly dans la section Kit Botanique: https://github.com/Robopoly/Kit-Botanique
  • Téléchargez le fichier nommé « Sensors_Pumps_Test.ino », et ouvrez-le dans Arduino IDE.
  • En étant sûr que votre kit est bien branché à votre ordinateur, et que vous avez le bon Board sélectionné, appuyez sur le bouton « Upload ».
  • Le code va compiler et se télécharger sur l’ESP-32, dans la section « output » vous devriez avoir une sortie similaire à l’image suivante:

Partie 6

  • Ouvrez le « Serial Monitor » en haut à droite de votre fenêtre Arduino IDE. Le Serial Monitor est un outil utilisé en électronique pour envoyer et recevoir des données via une interface de communication série (UART, SPI, I2C). C’est ici que vous allez lire les valeurs que renvoient vos capteurs.
  • Le capteur d’humidité envoie une valeur qui varie selon l’humidité détectée. La plage de ces valeurs dépend des conditions et des capteurs. C’est pour cela qu’il faut tester les valeurs avec le Serial Monitor. Le code de test permet d’analyser la plage de valeurs de vos capteurs.
  • Préparez un verre d’eau. Regardez la valeur que renvoie votre capteur dans l’air, puis submergez la moitié (sans composants électroniques) de votre capteur dans l’eau.
  • Le « Moisture Level » du sensor diminue avec l’humidité, saturant quand c’est submergé dans l’eau. Ici, la plage de notre sensor varie entre ~350-700.

Partie 7

  • Il faut maintenant définir les limites pour lesquelles vos pompes s’activent et se désactivent. Nous avons défini deux arrays dans le code pour cela:
    • int drySoilThreshold[moistureSensorNumber] = {600, 600, 600, 600, 600, 600}
    • int wetSoilThreshold[moistureSensorNumber] = {400, 400, 400, 400, 400, 400}
  • Ces valeurs doivent être ajustées à vos capteurs et vos besoins. Elles définissent quand vos pompes commencent à arroser, et quand elles s’arrêtent.
  • Si vos pompes se désactivent correctement quand vos capteurs sont dans l’eau, c’est que vous avez fini avec votre test de Kit Botanique, et vous pouvez commencer à modifier le code pour faire exactement ce que vous voulez!

La fonction setup(): elle s’exécute une seule fois au démarrage de la carte ou lorsqu’elle est réinitialisée. Elle est utilisée pour initialiser des paramètres, configurer les pins, établir la communication série, ou préparer tout ce qui doit être mis en place avant l’exécution continue du programme.

La fonction loop(): elle s’exécute en boucle à l’infinie après l’exécution de setup(). Elle contient le code qui doit s’exécuter continuellement, comme lire des capteurs, contrôler des moteurs, des pompes ou répondre à des entrées utilisateur.

Les fonctions importantes présente dans le code:

  • Serial.begin(115200); Initialise la communication série entre la carte et l’ordinateur à une vitesse de 115200 bauds (bits par seconde). Cela permet d’envoyer et de recevoir des données via le port série.
  • pinMode(MyPin, INPUT); Configure le pin spécifiée (MyPin) en tant qu’entrée. Cela signifie que le pin attend un signal externe (par exemple, celui du capteur d’humidité).
  • pinMode(MyPin, OUTPUT); Configure le pin spécifiée (MyPin) en tant que sortie. Cela permet à la carte d’envoyer un signal depuis ce pin (par exemple, pour allumer et éteindre les pompes).
  • digitalWrite(MyPin, LOW); et digitalWrite(MyPin, HIGH); Met le pin spécifiée (MyPin) respectivement à l’état BAS (0V) et à l’état HAUT (3.3V ou 5V en fonction de la carte).
  • analogRead(MyPin); Lit une valeur analogique (tension entre 0V et 5V (ou 3.3V)) sur le pin spécifiée (MyPin). Cela retourne une valeur corespondant à la tension mesurée.
  • Serial.print(« Hello world »); Envoie le texte « Hello world » sur le port série. C’est utile pour afficher des messages pour le débogage ou l’affichage de données.
  • delay(1000); Pause l’exécution du programme pendant 1000 millisecondes (1 seconde).

Fin de l’Etape

En savoir plus