IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

ESP32 et BLE


Sujet :

Arduino

  1. #1
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut ESP32 et BLE
    Bonjour à tous,

    Je voudrais vous exposer l'idée de mon petit projet
    il s'agit simplement d'allumer des lampes de salon à distance
    Pour ce faire, je souhaite utiliser seulement le Bluetooth pour les liaisons mais pas le smartphone
    Voici comment je vois l'idée

    EMETTEUR : ESP32 BLE + écran TFT à écran tactile pour localiser les points lumineux dans la pièce (plan)

    RECEPTEURS : Blocs de commande classique sur les prises de courant concernées

    mais avant de me lancer je souhaiterai avoir votre avis sur la faisabilité notamment sur la liaison BLE server / client
    mon but étant de faire quelque chose d'universel et d'extensible à souhait pour ne plus avoir de multiples télécommandes dépendant de telle ou telle marque

    Pour l'instant, j'expérimente l'ESP32 et TFT à l'aide de l'exemple ci dessous
    https://randomnerdtutorials.com/esp3...i9341-arduino/

    Merci par avance , vos conseils seraient les bienvenus

    pascal

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    c'est envisageable, avec les limites de portée du Bluetooth.

    Si vous avez un réseau WiFi qui couvre bien toute la maison vous pourriez envisager que les prises soient aussi en WiFi (module Sonoff par exemple) et l'ESP32 sur le réseau domestique.

  3. #3
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut
    Bonjour Jay M


    Si vous avez un réseau WiFi qui couvre bien toute la maison vous pourriez envisager que les prises soient aussi en WiFi (module Sonoff par exemple) et l'ESP32 sur le réseau domestique.
    J'hésitais effectivement, d'un autre côté on surcharge le Wifi local avec tous les appareils IOT déjà actifs ainsi le BLE me semblait plus efficace mais peut-être plus difficile à mettre en place non ?

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    ça ne surcharge pas grand chose - la plupart des points d'accès WiFi aujourd'hui savent gérer 255 clients au moins sans souci...

    le BT est envisageable, mais avec les soucis de portée (l'antenne d'émission de votre ESP32 et toute petite) et si vous utilisez le BT vous ne pouvez pas vraiment utiliser en parallèle le WiFi.

  5. #5
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut
    Autant j'avais à peu près compris le principe client-server avec BLE autant avec le WIFI
    je ne vois pas du tout comment puis-je configurer le même principe
    càd Wifi "server" et les interrupteurs distants comme "clients"

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    Les modules relais rejoignent votre wifi et vous avez affecté via DHCP une adresse IP connue à chacun des modules
    l'ESP32 rejoint votre WiFi et donc tous ce beau monde se retrouve dans votre réseau local

    Il "suffit" ensuite d'envoyer des commandes aux modules relais pour s'ouvrir ou se fermer. (les modules Sonoff sont flashables avec un firmware qui offre une interface REST, donc c'est une simple requête HTTP pour les commander). On doit trouver au moins en anglais des tutos en ligne.

  7. #7
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut
    je pensais partir sur çà :

    https://randomnerdtutorials.com/esp-...2-arduino-ide/

    est-ce le bon choix ?

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    ESP-NOW passe par la radio (qui sert au BT et WiFi) "embarqué" des ESP32. la portée est donc limitée à la portée de cette radio et de sa petite antenne/puissance. Mais pourquoi pas, ça dépend des besoins et de la configuration de la maison

  9. #9
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut
    Ils sont souvent peu bavard sur la portée
    à combien l'estimez-vous
    là il s'agit d'une pièce et pas une maison entière ...

  10. #10
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    si c'est juste une pièce alors pas de souci ni en BT ni en ESP-NOW effectivement car on est sans doute quasiment en ligne de vue entre les modules

    le portée est variable, ça dépend de l'environnement

  11. #11
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut
    J'ai fait un essai ESP_NOW à l'aide du tuto suivant :
    https://randomnerdtutorials.com/esp-...u-arduino-ide/

    MAITRE = Wemos
    ESCLAVE = ESP01

    qui a fonctionné


    la question est purement pratique : puis-je avoir
    MAITRE en ESP32
    ESCLAVES en ESP8266 comme par ex ESP01 ?

  12. #12
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    ESP-NOW est supporté sur les séries ESP8266, ESP32, ESP32-S et ESP32-C

    ==> https://www.espressif.com/en/solutio...utions/esp-now

  13. #13
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut
    Bonjour à tous

    j'ai un peu progressé dans ce projet
    pour mémoire , il s'agit de télécommander l'allumage de plusieurs point lumineux non pas par un smartphone mais à partir d'une commande indépendante munie d'une interface TFT

    EMETTEUR : uPesy ESP32 wroom DevKit
    Chaque RECEPTEUR : ESP8266 ESP01


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
     
    // EMETTEUR uPesy ESP32 Wroom DevKit
    #include <SPI.h>
    #include <TFT_eSPI.h>
    #include <XPT2046_Touchscreen.h> // https : //github. com/PaulStoffregen/XPT2046_Touchscreen
    #include <esp_now.h>
    #include <WiFi.h>
     
    TFT_eSPI tft = TFT_eSPI();
     
    // Touchscreen pins
    #define XPT2046_IRQ 36   // T_IRQ
    #define XPT2046_MOSI 32  // T_DIN
    #define XPT2046_MISO 39  // T_OUT
    #define XPT2046_CLK 25   // T_CLK
    #define XPT2046_CS 33    // T_CS
     
    SPIClass touchscreenSPI = SPIClass(VSPI);
    XPT2046_Touchscreen touchscreen(XPT2046_CS, XPT2046_IRQ);
     
    #define SCREEN_WIDTH 320
    #define SCREEN_HEIGHT 240
    #define FONT_SIZE 2
     
    // definition des boutons
    #define BUTTON_WIDTH  80
    #define BUTTON_HEIGHT 60
    #define BUTTON_MARGIN 10
     
    // Structure pour représenter un bouton
    struct Button {
      int x, y;
      bool state;
    };
     
    Button buttons[9]; // 10 boutons
     
    // Coordonnées de l'écran tactile : (x, y) et pression (z)
    int x, y, z;
     
    // Imprimer les informations de l'écran tactile concernant X, Y et la pression (Z) sur le moniteur série
    void printTouchToSerial(int touchX, int touchY, int touchZ) {
      Serial.print("X = ");
      Serial.print(touchX);
      Serial.print(" | Y = ");
      Serial.print(touchY);
      Serial.print(" | Pressure = ");
      Serial.print(touchZ);
      Serial.println();
    }
     
    /******************************************************/
     
    //******************** Adresse Mac PC01
    uint8_t broadcastAddress1[] = {0xb4, 0xe6, 0x2d, 0x78, 0x83, 0x54};
    // ************** la structure du récepteur
    typedef struct struct_message {
      char a[32];
      bool b;
    } struct_message;
    // Create a struct_message called myData
    struct_message myData;
    esp_now_peer_info_t peerInfo;
    // *****************************rappel lorsque les données sont envoyées
    void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
      Serial.print("\r\nÉtat de l'envoi du dernier paquet:\t");
      Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Succès" : "Échec");
    }
     
    int touchX, touchY, touchZ , i;
     
    //************************************************
    // SETUP
    //************************************************
    void setup()
    {
      Serial.begin(115200);
     
      // Set device as a Wi-Fi Station
      WiFi.mode(WIFI_STA);
      // Init ESP-NOW
      if (esp_now_init() != ESP_OK) {
        Serial.println("Erreur d'initialisation de l'ESP-NOW");
        return;
      }
      // Une fois que ESPNow est Init avec succès, nous nous inscrirons pour l'envoi du CB .
      // obtenir l'état du paquet transmis.
      esp_now_register_send_cb(OnDataSent);
      // Enregistrer un pair
      memcpy(peerInfo.peer_addr, broadcastAddress1, 6);
      peerInfo.channel = 0;  
      peerInfo.encrypt = false;
      // Ajouter un pair        
      if (esp_now_add_peer(&peerInfo) != ESP_OK){
        Serial.println("Échec de l'ajout d'un pair");
        return;
      }
      // Start the SPI for the touchscreen and init the touchscreen
      touchscreenSPI.begin(XPT2046_CLK, XPT2046_MISO, XPT2046_MOSI, XPT2046_CS);
      touchscreen.begin(touchscreenSPI);
      // Set the Touchscreen rotation in landscape mode
      // Note: in some displays, the touchscreen might be upside down, so you might need to set the rotation to 3: touchscreen.setRotation(3);
      touchscreen.setRotation(3);
     
      // Start the tft display
      tft.init();
      // Set the TFT display rotation in landscape mode
      tft.setRotation(1);
     
      // Clear the screen before writing to it
      tft.fillScreen(TFT_BLACK);
     
      // Initialisation des positions des boutons
      int buttonX = 20;
      int buttonY = 20;
      for (int i = 0; i < 9; ++i) 
      {
        buttons[i].x = buttonX;
        buttons[i].y = buttonY;
        buttons[i].state = false;
     
        // Affichage des boutons
        drawButton(buttonX, buttonY, buttons[i].state);
     
        buttonX += BUTTON_WIDTH + BUTTON_MARGIN;
        if (buttonX + BUTTON_WIDTH > tft.width()) {
          buttonX = 20;
          buttonY += BUTTON_HEIGHT + BUTTON_MARGIN;
        }
      }
     
    }
     
    //************************************************
    // LOOP
    //************************************************
    void loop()
    {
     
      // Checks if Touchscreen was touched, and prints X, Y and Pressure (Z) info on the TFT display and Serial Monitor
      if (touchscreen.tirqTouched() && touchscreen.touched()) 
      {
        // Get Touchscreen points
        TS_Point p = touchscreen.getPoint();
        // Calibrate Touchscreen points with map function to the correct width and height
        touchX = map(p.x, 200, 3700, 1, SCREEN_WIDTH);
        touchY = map(p.y, 240, 3800, 1, SCREEN_HEIGHT);
        touchZ = p.z;
     
        //printTouchToSerial(touchX, touchY, touchZ);
     
         for (int i = 0; i < 9; ++i)
         {
            if (touchX >= buttons[i].x && touchX <= buttons[i].x + BUTTON_WIDTH &&
                touchY >= buttons[i].y && touchY <= buttons[i].y + BUTTON_HEIGHT) 
            {
              // Si un bouton est touché, inverse son état et met à jour l'affichage
              buttons[i].state = !buttons[i].state;
              drawButton(buttons[i].x, buttons[i].y, buttons[i].state);
              if ((i==0) && (buttons[0].state ==1)) 
              {
                Serial.println("Btn 1 enfoncé"); 
                // Set values to send
                strcpy(myData.a, "PC01=> ON");
                myData.b =  true;
                // Send message via ESP-NOW
                esp_err_t result = esp_now_send(broadcastAddress1, (uint8_t *) &myData, sizeof(myData));
                if (result == ESP_OK) {
                    Serial.println("PC01 Envoyé avec succès");
                }else {
                    Serial.println("Erreur d'envoi des données PC01");
                } 
              } 
              if((i==0) && (buttons[0].state ==0)) 
              {
                // Set values to send
                strcpy(myData.a, "PC01=> OFF");
                myData.b =  false;
                // Send message via ESP-NOW
                esp_err_t result = esp_now_send(broadcastAddress1, (uint8_t *) &myData, sizeof(myData));
                if (result == ESP_OK)
                {
                  Serial.println("Envoyé avec succès");
                }else{
                  Serial.println("Erreur d'envoi des données");
                }
              }
            }  
        //break;
        delay(200);
        }     
      }
    }
     
    // Dessine un bouton à une position donnée avec un état donné
    void drawButton(int x, int y, bool state) {
      uint16_t color = state ? TFT_RED : TFT_GREEN;
      tft.fillRect(x, y, BUTTON_WIDTH, BUTTON_HEIGHT, color);
      tft.drawRect(x, y, BUTTON_WIDTH, BUTTON_HEIGHT, TFT_WHITE);
     
    }
    Si le logiciel semble fonctionner (essai sur 1er élément seulement)
    il se trouve que je dois répéter dans mon croquis l'opération 8 fois ( car 8 interrupteurs possible )
    et je souhaiterai un peu d'aide pour optimiser cette tâche et surtout tous vos conseils


    merci mille fois
    pascal

  14. #14
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    Citation Envoyé par cobra38 Voir le message
    Si le logiciel semble fonctionner (essai sur 1er élément seulement)
    il se trouve que je dois répéter dans mon croquis l'opération 8 fois ( car 8 interrupteurs possible )
    et je souhaiterai un peu d'aide pour optimiser cette tâche et surtout tous vos conseils
    Je ne comprends pas ce que vous devez répéter 8 fois ?

  15. #15
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 634
    Points : 1 597
    Points
    1 597
    Par défaut
    Hello,

    Attention que dans le code, à la ligne 36, le commentaire n'est pas correct, ce qui peut prêter à confusion. Un tableau de N positions (ex. int t[N]) comportera N éléments, mais les indices pour atteindre les éléments varieront de 0 à N-1.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  16. #16
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut
    Bonjour à tous ,
    Attention que dans le code, à la ligne 36, le commentaire n'est pas correct,
    Exact , il faut lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Button buttons[9]; //  9 boutons
    Je ne comprends pas ce que vous devez répéter 8 fois ?
    pour tester je n'ai fait que le premier bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    //******************** Adresse Mac PC01
    uint8_t broadcastAddress1[] = {0xb4, 0xe6, 0x2d, 0x78, 0x83, 0x54};
     
    .../....
     
     if ((i==0) && (buttons[0].state ==1)) 
              {
                Serial.println("Btn 1 enfoncé"); 
                // Set values to send
                strcpy(myData.a, "PC01=> ON");
                myData.b =  true;
                // Send message via ESP-NOW
                esp_err_t result = esp_now_send(broadcastAddress1, (uint8_t *) &myData, sizeof(myData));
                if (result == ESP_OK) {
                    Serial.println("PC01 Envoyé avec succès");
                }else {
                    Serial.println("Erreur d'envoi des données PC01");
                } 
              }
    il me reste donc les 8 autres à exécuter
    mais ma demande est surtout de savoir comment puis-je programmer cela de façon plus "académique"

    merci encore
    pascal

  17. #17
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    votre test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((i == 0) && (buttons[0].state == 0))
    est au sein d'une boucle ou i va varier de 0 à 8 inclus

    qu'est-ce qui vous empêche d'utiliser l'indice ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (buttons[i].state == 0))
    il suffit de rendre les parties codées en dur comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Serial.println("Btn 1 enfoncé");
    strcpy(myData.a, "PC01=> ON");
    plus dynamiques par exemple en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Serial.print("Btn "); Serial.print(i+1); Serial.println(" enfoncé");
    snprintf(myData.a, sizeof myData.a, "PC%02d=> ON", i+1);

  18. #18
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    797
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 797
    Points : 230
    Points
    230
    Par défaut
    merci Jay M

    je vais essayer mais je ne vois pas comment faire avec l'adresse MAC
    chaque PC a une adresse MAC différente ici pour la PC01 par ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //******************** Adresse Mac PC01
    uint8_t broadcastAddress1[] = {0xb4, 0xe6, 0x2d, 0x78, 0x83, 0x54};
    comment puis-je faire pour y associer la variable i par ex avec l'adresse MAC ?

  19. #19
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 634
    Points : 1 597
    Points
    1 597
    Par défaut
    Faire un tableau de tableaux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    uint8_t broadcastAddress[][6] = {
    	{0xb4, 0xe6, 0x2d, 0x78, 0x83, 0x54},		// adr mac1
    	{0x.., ....                        },		// adr mac2
    		....
    	{0x.., ....                        }		// adr mac8
    };
    Et l'adresse de mac4 se trouve en broadcastAdress[3]
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  20. #20
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 777
    Points : 5 579
    Points
    5 579
    Par défaut
    Oui
    Mettre les choses en tableau.
    Idéalement on mettrait tout ce qui a trait à un PC dans une structure et on ferait un tableau de structure.

Discussions similaires

  1. Mesh Network via BLE
    Par matthieuboubou dans le forum Projets
    Réponses: 0
    Dernier message: 21/04/2015, 14h10
  2. [WD18] Bluetooth 4.0 et BLE
    Par ihih45 dans le forum WinDev
    Réponses: 4
    Dernier message: 21/04/2015, 13h40
  3. Reconnaissance des grains de blés coupés
    Par arken dans le forum Traitement d'images
    Réponses: 5
    Dernier message: 08/04/2011, 11h04
  4. Comment sauvegarder bles sources des procedures stockées?
    Par tonton67 dans le forum Développement
    Réponses: 2
    Dernier message: 24/02/2009, 08h53
  5. cas des grains de blé
    Par Maxence45 dans le forum Excel
    Réponses: 13
    Dernier message: 07/11/2007, 19h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo