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

See more