<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.lesfabriquesduponant.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cheick+Alou+Traor%C3%A9</id>
		<title>Les Fabriques du Ponant - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.lesfabriquesduponant.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cheick+Alou+Traor%C3%A9"/>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Sp%C3%A9cial:Contributions/Cheick_Alou_Traor%C3%A9"/>
		<updated>2026-04-30T04:46:51Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37541</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37541"/>
				<updated>2026-01-22T13:58:34Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* fichiers à joindre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
Ici une explication du projet&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
La réalisation de ce projet a nécéssité plusieurs étapes:&lt;br /&gt;
Etape1: Boutton poussoir câblé sur le sender ainsi qu'une led&lt;br /&gt;
Etape2: servomoteur câblé sur le receiver ainsi qu'une led&lt;br /&gt;
Etape3: câblage complet du prototype ainsi que test&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Sender.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
[[Fichier:Receiver.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape3===&lt;br /&gt;
[[Fichier:Prototype.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37535</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37535"/>
				<updated>2026-01-22T13:56:38Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
La réalisation de ce projet a nécéssité plusieurs étapes:&lt;br /&gt;
Etape1: Boutton poussoir câblé sur le sender ainsi qu'une led&lt;br /&gt;
Etape2: servomoteur câblé sur le receiver ainsi qu'une led&lt;br /&gt;
Etape3: câblage complet du prototype ainsi que test&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Sender.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
[[Fichier:Receiver.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape3===&lt;br /&gt;
[[Fichier:Prototype.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37530</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37530"/>
				<updated>2026-01-22T13:56:01Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape ... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
La réalisation de ce projet a nécéssité plusieurs étapes:&lt;br /&gt;
Etape1: Boutton poussoir câblé sur le sender ainsi qu'une led&lt;br /&gt;
Etape2: servomoteur câblé sur le receiver ainsi qu'une led&lt;br /&gt;
Etape3: câblage complet du prototype ainsi que test&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Sender.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
[[Fichier:Receiver.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape3===&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37527</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37527"/>
				<updated>2026-01-22T13:55:38Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
La réalisation de ce projet a nécéssité plusieurs étapes:&lt;br /&gt;
Etape1: Boutton poussoir câblé sur le sender ainsi qu'une led&lt;br /&gt;
Etape2: servomoteur câblé sur le receiver ainsi qu'une led&lt;br /&gt;
Etape3: câblage complet du prototype ainsi que test&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Sender.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
[[Fichier:Receiver.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Prototype.jpeg&amp;diff=37521</id>
		<title>Fichier:Prototype.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Prototype.jpeg&amp;diff=37521"/>
				<updated>2026-01-22T13:51:52Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Receiver.jpeg&amp;diff=37520</id>
		<title>Fichier:Receiver.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Receiver.jpeg&amp;diff=37520"/>
				<updated>2026-01-22T13:51:36Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37517</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37517"/>
				<updated>2026-01-22T13:50:09Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
La réalisation de ce projet a nécéssité plusieurs étapes:&lt;br /&gt;
Etape1: Boutton poussoir câblé sur le sender ainsi qu'une led&lt;br /&gt;
Etape2: servomoteur câblé sur le receiver ainsi qu'une led&lt;br /&gt;
Etape3: câblage complet du prototype ainsi que test&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Sender.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Sender.jpeg&amp;diff=37516</id>
		<title>Fichier:Sender.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Sender.jpeg&amp;diff=37516"/>
				<updated>2026-01-22T13:49:32Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37515</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37515"/>
				<updated>2026-01-22T13:49:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
La réalisation de ce projet a nécéssité plusieurs étapes:&lt;br /&gt;
Etape1: Boutton poussoir câblé sur le sender ainsi qu'une led&lt;br /&gt;
Etape2: servomoteur câblé sur le receiver ainsi qu'une led&lt;br /&gt;
Etape3: câblage complet du prototype ainsi que test&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:sender.jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37513</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37513"/>
				<updated>2026-01-22T13:48:27Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étapes de fabrication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
La réalisation de ce projet a nécéssité plusieurs étapes:&lt;br /&gt;
Etape1: Boutton poussoir câblé sur le sender ainsi qu'une led&lt;br /&gt;
Etape2: servomoteur câblé sur le receiver ainsi qu'une led&lt;br /&gt;
Etape3: câblage complet du prototype ainsi que test&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Câblage du sender et du receiver .jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37461</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37461"/>
				<updated>2026-01-22T11:25:34Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Câblage du sender et du receiver .jpeg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37457</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37457"/>
				<updated>2026-01-22T11:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:C%C3%A2blage_du_sender_et_du_receiver_.jpeg&amp;diff=37455</id>
		<title>Fichier:Câblage du sender et du receiver .jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:C%C3%A2blage_du_sender_et_du_receiver_.jpeg&amp;diff=37455"/>
				<updated>2026-01-22T11:23:19Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37454</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37454"/>
				<updated>2026-01-22T11:22:50Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
câblage du sender et du receiver&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37453</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37453"/>
				<updated>2026-01-22T11:22:19Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
câblage du sender et du receiver&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37421</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37421"/>
				<updated>2026-01-22T10:58:05Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* outil et matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour réaliser ce projet avec succès, nous avons eu recours à plusieurs composants essentiels. Nous avons utilisé deux microcontrôleurs ESP32, accompagnés de deux servomoteurs pour le contrôle mécanique. Pour l’alimentation et la communication, deux câbles USB ont été nécessaires. Afin de faciliter les connexions et les expérimentations, nous avons également employé deux breadboards, un bouton-poussoir pour les interactions, ainsi qu’une dizaine de fils permettant de relier l’ensemble des éléments entre eux&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37412</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37412"/>
				<updated>2026-01-22T10:52:54Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* Mettre du code Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour mener à bien ce projet nous eûmes besoin de deux ESP32, ainsi que deux servomoteurs, de deux câbles USB, d'une breadboard, d'un boutton poussoir, d'une dizaine de fils&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37409</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=37409"/>
				<updated>2026-01-22T10:50:47Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* Mettre du code Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour mener à bien ce projet nous eûmes besoin de deux ESP32, ainsi que deux servomoteurs, de deux câbles USB, d'une breadboard, d'un boutton poussoir, d'une dizaine de fils&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
[[Fichier:Gestion de toilettes.pdf|400px]]&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
//code de la carte du sender&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define buttonPin 18&lt;br /&gt;
#define ledPin 4&lt;br /&gt;
&lt;br /&gt;
bool systemState = false;&lt;br /&gt;
bool lastButtonState = HIGH;&lt;br /&gt;
&lt;br /&gt;
uint8_t broadcastAddress1[] = {0x20,0xe7,0xc8,0xac,0xb1,0x48};&lt;br /&gt;
esp_now_peer_info_t peerInfo;&lt;br /&gt;
&lt;br /&gt;
// Callback&lt;br /&gt;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {&lt;br /&gt;
  Serial.print(&amp;quot;Send status: &amp;quot;);&lt;br /&gt;
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? &amp;quot;Success&amp;quot; : &amp;quot;Fail&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  pinMode(buttonPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;ESP-NOW init failed&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  esp_now_register_send_cb(OnDataSent);&lt;br /&gt;
&lt;br /&gt;
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);&lt;br /&gt;
  peerInfo.channel = 0;&lt;br /&gt;
  peerInfo.encrypt = false;&lt;br /&gt;
&lt;br /&gt;
  if (esp_now_add_peer(&amp;amp;peerInfo) != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to add peer&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  char message = '2';   // default value&lt;br /&gt;
  bool buttonState = digitalRead(buttonPin);&lt;br /&gt;
&lt;br /&gt;
  // Detect button press (falling edge)&lt;br /&gt;
  if (lastButtonState == HIGH &amp;amp;&amp;amp; buttonState == LOW) {&lt;br /&gt;
    systemState = !systemState;&lt;br /&gt;
&lt;br /&gt;
    if (systemState) {&lt;br /&gt;
      digitalWrite(ledPin, 0);&lt;br /&gt;
      message = '1';&lt;br /&gt;
    } else {&lt;br /&gt;
      digitalWrite(ledPin, 1);&lt;br /&gt;
      message = '0';&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    esp_err_t result = esp_now_send(&lt;br /&gt;
      broadcastAddress1,&lt;br /&gt;
      (uint8_t *)&amp;amp;message,&lt;br /&gt;
      sizeof(message)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if (result == ESP_OK) {&lt;br /&gt;
      Serial.print(&amp;quot;Sent: &amp;quot;);&lt;br /&gt;
      Serial.println(message);&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.println(&amp;quot;Send error&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  lastButtonState = buttonState;&lt;br /&gt;
  delay(50); // debounce&lt;br /&gt;
}&lt;br /&gt;
//code de la carte du receiver&lt;br /&gt;
#include &amp;lt;esp_now.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP32Servo.h&amp;gt;&lt;br /&gt;
#define led1 18&lt;br /&gt;
#define servoPin 5&lt;br /&gt;
Servo myServo;&lt;br /&gt;
&lt;br /&gt;
// Callback function executed when data is received&lt;br /&gt;
void OnDataRecv(const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) {&lt;br /&gt;
  if (len &amp;gt; 0) {&lt;br /&gt;
    char receivedChar = incomingData[0];  // extract the first byte&lt;br /&gt;
&lt;br /&gt;
    // Convert MAC to string&lt;br /&gt;
    char macStr[18];&lt;br /&gt;
    snprintf(macStr, sizeof(macStr), &amp;quot;%02x:%02x:%02x:%02x:%02x:%02x&amp;quot;,&lt;br /&gt;
             recv_info-&amp;gt;src_addr[0], recv_info-&amp;gt;src_addr[1], recv_info-&amp;gt;src_addr[2],&lt;br /&gt;
             recv_info-&amp;gt;src_addr[3], recv_info-&amp;gt;src_addr[4], recv_info-&amp;gt;src_addr[5]);&lt;br /&gt;
&lt;br /&gt;
    Serial.print(&amp;quot;Received from: &amp;quot;);&lt;br /&gt;
    Serial.println(macStr);&lt;br /&gt;
    Serial.print(&amp;quot;Character received: &amp;quot;);&lt;br /&gt;
    Serial.println(receivedChar);&lt;br /&gt;
    if(receivedChar=='1'){&lt;br /&gt;
      digitalWrite(led1, 1);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(180);&lt;br /&gt;
    }&lt;br /&gt;
    else if(receivedChar=='0'){&lt;br /&gt;
      digitalWrite(led1, 0);&lt;br /&gt;
      &lt;br /&gt;
        myServo.write(0);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
      for (int i=0;i&amp;lt;180;i+=10){&lt;br /&gt;
         myServo.write(i);&lt;br /&gt;
         digitalWrite(led1, 0);&lt;br /&gt;
         delay(1000);&lt;br /&gt;
         digitalWrite(led1, 1);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
&lt;br /&gt;
  // Set device as a Wi-Fi Station&lt;br /&gt;
  WiFi.mode(WIFI_STA);&lt;br /&gt;
&lt;br /&gt;
  // Initialize ESP-NOW&lt;br /&gt;
  if (esp_now_init() != ESP_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Error initializing ESP-NOW&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Register callback for receiving data&lt;br /&gt;
  esp_now_register_recv_cb(OnDataRecv);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;ESP-NOW Receiver Ready&amp;quot;);&lt;br /&gt;
  pinMode(led1,OUTPUT);&lt;br /&gt;
  myServo.attach(servoPin);&lt;br /&gt;
  myServo.write(0); // position initiale du servo&lt;br /&gt;
  digitalWrite(led1,0); // éteindre la led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Nothing needed here; data is handled in the callback&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=36936</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=36936"/>
				<updated>2026-01-21T13:35:40Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* outil et matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
Pour mener à bien ce projet nous eûmes besoin de deux ESP32, ainsi que deux servomoteurs, de deux câbles USB, d'une breadboard, d'un boutton poussoir, d'une dizaine de fils&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Utilisateur:Cheick_Alou_Traor%C3%A9&amp;diff=36870</id>
		<title>Utilisateur:Cheick Alou Traoré</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Utilisateur:Cheick_Alou_Traor%C3%A9&amp;diff=36870"/>
				<updated>2026-01-21T11:16:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : Page créée avec « First Page »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First Page&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=36869</id>
		<title>ENIB 2026 :Gestion de toilettes</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2026_:Gestion_de_toilettes&amp;diff=36869"/>
				<updated>2026-01-21T11:15:01Z</updated>
		
		<summary type="html">&lt;p&gt;Cheick Alou Traoré : /* description (résumé) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==description (résumé)==&lt;br /&gt;
éventuelle photo de l'équipe &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
[[Fichier:Gestiontoilettes.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
éventuelle vidéo&lt;br /&gt;
==outil et matériel==&lt;br /&gt;
&lt;br /&gt;
==fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
* Rédаctiоn et illustratiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Pоur tоus vоs trаvauх, qu'ils sоient écrits оu visuels, l'utilisatiоn de l'intеlligеnce artificiеllе générativе, que сe sоit pоur le teхte оu les images, n'еst pas conseillé. &lt;br /&gt;
&lt;br /&gt;
* Prоgrammаtiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
En сe qui cоncernе la prоgrаmmatiоn, il est еssentiеl de ne pаs faire dе l'IA vоtrе prеmier rеcоurs. Cоncеntrеz-vоus d'abоrd sur vоtre prоpre lоgiquе, votre experience еt lеs ressоurcеs disponibles.&lt;br /&gt;
&lt;br /&gt;
* Transpаrence et dосumеntatiоn : &amp;lt;br&amp;gt;&lt;br /&gt;
Si vоus utilisеz l'IA pоur déblоquer оu améliоrеr une pаrtiе de vоtre cоdе, il est cruciаl de l'indiquеr сlairеmеnt dans vоtre dосumentatiоn tеchniquе.&lt;br /&gt;
&lt;br /&gt;
* Traçabilité : &amp;lt;br&amp;gt;&lt;br /&gt;
Chаque ехtrait de cоde généré avес l'аidе de l'IA dоit êtrе accоmpagné de la sоurce, ainsi que du prоmpt eхact qui a été utilisé pоur sа créatiоn, afin d'аssurеr une évaluatiоn clаire dе vоtre prоcessus.&lt;br /&gt;
&lt;br /&gt;
==Elément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2026]]&lt;/div&gt;</summary>
		<author><name>Cheick Alou Traoré</name></author>	</entry>

	</feed>