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 :

Librairie Bluetooth ESP32


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 281
    Par défaut Librairie Bluetooth ESP32
    Bonjour,

    Je porte progressivement mes programmes Nano vers ESP32 car Bluetooth et WiFi sont intégrés, ce qui simplifie ma partie Hardware (plus besoin de rajouter des HC06 aux Arduino).

    Pour mon 1er essai, il semble que la librairie "BluetoothSerial" que j'ai déposée dans le répertoire "lib" du projet PlatformIO, me pose quelques soucis: l'instruction "BluetoothSerial SerialBT;" ne semble pas reconnue par le compilateur.
    Ce qui évidemment engendre des erreurs en cascade si ma compréhension est bonne.

    Voici le code:
    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
    #include <Arduino.h>
    #include <Wire.h> 	// librairy requise pour l'écran LCD, incluse dans l'IDE Arduino et qui n'apparaitra donc pas 
    						// dans le sous-dossier 'Librairies' du répertoire Arduino
                // sur platformIO on a mis manuellement la v3.3.0 dans le répertoire "lib" du projet
    #include <DFRobot_LCD.h> // librairy gérant les afficheurs DFRobot 0555 et équivalents
    	DFRobot_LCD lcd(16,2);  //16 characters and 2 lines of show
     
      // Ce pgm a été fait avec PlatformIO, et se trouve donc ici: C:\Users\ordic\Documents\PlatformIO\Projects\BT_ESP32_v1.001\src\main.cpp
    #include <BluetoothSerial.h>  // librairy Bluetooth
    BluetoothSerial SerialBT; // selon tutorial https://www.youtube.com/watch?v=EWxM8Ixnrqo
    							// et selon tutorial: https://dronebotworkshop.com/esp32-bluetooth
    // On a passé le Moniteur série à 115.200 en rajoutant monitor_speed = 115200 dans Platformio.ini
     
    String messageRecu; // contiendra la commande BLUETOOTH reçue complète terminée par 'Z' majuscule tel
                        // que définit dans mon appli APPINVENTOR.
                        // messageRecu accumulera tous les caractères reçues par Bluetooth
                        // jusqu'à ce que le caractère "Z" soit reçu
     
     
    // put function declarations here:
    // int myFunction(int, int);
    void stop();
    void record();
    void play();
    void fastforward();
    void rew();
    void pause();
    // FIN DE LA DECLARATION DES NOMS DE FONCTIONS
     
    void setup() {
      	// put your setup code here, to run once:
      	// int result = myFunction(2, 3);
      	Serial.begin(115200);	//démarre le Moniteur série à 115000 bauds.
      	SerialBT.begin("Denon_K7");	// selon tutorial https://www.youtube.com/watch?v=EWxM8Ixnrqo
                                	// "Denon_K7" est le nom du device qui apparaitra sur Smartphone quand on se connectera
     
    }
     
    void loop() {
      // put your main code here, to run repeatedly:
      while(SerialBT.available()) // ici on met SerialBT pour coler au tutorial https://www.youtube.com/watch?v=EWxM8Ixnrqo
    	{
    		  delay(3);
    		  char c = SerialBT.read();  // ici aussi on met Serial3.read (non Serial.read) car on a connecté le HC08 à Serial3
    		  messageRecu += c;
    		  if(c == 'Z') // si le caractère reçu est 'Z' cela signifie que la commande est complète (j'utilise 'Z' car je n'arrive pas à détecter '\n')
    		  {
    			  // Serial.println(messageRecu); // en commentaire imprime donc la commande reçue du Smartphone qui est entière, par ex.: STOPZ
    			  break;  // et on sort de la boucle While puisque la commande est complète et est stockée dans messageRecu
                    //et donc prête à être interprétée pour declencher des actions
    		  }
    	}
     
      if (messageRecu == "STOPZ")
        {
    		Serial.println(F("Bluetooth: Appui sur Bouton STOP du Smartphone:"));
    		Serial.println(messageRecu); // devrait afficher la chaine complète reçue par Bluetooth avec le 'Z' à la fin, càd "STOPZ"
    		// on recopie mot pour mot le code correspondant au STOP reçu de la télécommande 
    		stop();
    		Serial.println(F("Bluetooth boucle IF stopZ: la fonction Stop a été appelée"));
    		//ici ne faut-il pas réinitialiser la variable "messageRecu" puisqu'on est dans une boucle Loop ???
        } // Fin du If STOPZ pour Smartphone
     
      if (messageRecu == "RECORDZ")
        {
            Serial.println(F("Bluetooth: Appui sur Bouton RECORD du Smartphone:"));
    		Serial.println(messageRecu); // devrait afficher la chaine complète reçue par Bluetooth avec le 'Z' à la fin, càd "RECZ"
    		record(); // appel de la fonction factorisée "record" définie plus haut
    		Serial.println(F("Bluetooth boucle IF recordZ: la fonction Record a été appelée"));
    		//ici ne faut-il pas réinitialiser  la variable "messageRecu" puisqu'on est dans une boucle Loop ???
        } // Fin du IF pour la fonction RECORDZ par Smartphone
     
      if (messageRecu == "PLAYZ")
        {
            Serial.println(F("Bluetooth: Appui sur Bouton PLAY du Smartphone:"));
    		Serial.println(messageRecu); // devrait afficher la chaine complète reçue par Bluetooth avec le 'Z' à la fin, càd "PLAYZ"
    		play();
    		Serial.println(F("Bluetooth boucle IF playZ: la fonction Play a été appelée"));
    		//ici ne faut-il pas réinitialiser  la variable "messageRecu" puisqu'on est dans une boucle Loop ???
        } // Fin du IF pour la fonction PLAYZ par Smartphone
     
      if (messageRecu == "FFZ")
        {
            Serial.println(F("Appui sur Bouton FF du Smartphone:"));
    		Serial.println(messageRecu); // devrait afficher la chaine complète reçue par Bluetooth avec le 'Z' à la fin, càd "FFZ"
    		fastforward();
    		Serial.println(F("Bluetooth boucle IF ffZ: la fonction FF a été appelée"));
    		//ici ne faut-il pas réinitialiser  la variable "messageRecu" puisqu'on est dans une boucle Loop ???
        } // Fin du IF pour la fonction FFZ par Smartphone
     
      if (messageRecu == "REWINDZ")
        {
            Serial.println(F("Appui sur Bouton REWIND du Smartphone:"));
    		Serial.println(messageRecu); // devrait afficher la chaine complète reçue par Bluetooth avec le 'Z' à la fin, càd "REWZ"
    		rew();
    		Serial.println(F("Bluetooth boucle IF rewZ: la fonction REW a été appelée"));
    		//ici ne faut-il pas réinitialiser  la variable "messageRecu" puisqu'on est dans une boucle Loop ???
        } // Fin du IF pour la fonction REWZ par Smartphone
     
      if (messageRecu == "PAUSEZ")
        {
            Serial.println(F("Appui sur Bouton PAUSE du Smartphone:"));
    		Serial.println(messageRecu); // devrait afficher la chaine complète reçue par Bluetooth avec le 'Z' à la fin, càd "PAUSEZ"
    		pause();
    		Serial.println(F("Bluetooth boucle IF pauseZ: la fonction PAUSE a été appelée"));
    		//ici ne faut-il pas réinitialiser  la variable "messageRecu" puisqu'on est dans une boucle Loop ???
        }  
     
      messageRecu=""; // on remet la chaine à vide pour préparer la réception de la commande suivante
     
     
    }
     
    // put function definitions here:
    int myFunction(int x, int y) {
      return x + y;
    }
    et voici ce que me dit le compilateur:
    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
    The terminal process "C:\Users\ordic\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
     *  Terminal will be reused by tasks, press any key to close it. 
     
     *  Executing task in folder BT_ESP32_v1.00: C:\Users\ordic\.platformio\penv\Scripts\platformio.exe run 
     
    Processing esp-wrover-kit (platform: espressif32; board: esp-wrover-kit; framework: arduino)
    ---------------------------------------------------------------------------------------------------------------------------------------
    Verbose mode can be enabled via `-v, --verbose` option
    CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp-wrover-kit.html
    PLATFORM: Espressif 32 (6.12.0) > Espressif ESP-WROVER-KIT
    HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
    DEBUG: Current (ftdi) On-board (ftdi) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
    PACKAGES:
     - framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b
     - tool-esptoolpy @ 2.40900.250804 (4.9.0)
     - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 36 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- BluetoothSerial @ 1.1.0
    |-- DFRobot_LCD-master
    |-- Wire @ 2.0.0
    Building in release mode
    Compiling .pio\build\esp-wrover-kit\src\main.cpp.o
    src/main.cpp:10:17: error: no matching function for call to 'BluetoothSerial::BluetoothSerial()'
     BluetoothSerial SerialBT; // selon tutorial https://www.youtube.com/watch?v=EWxM8Ixnrqo
                     ^~~~~~~~
    In file included from src/main.cpp:9:
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:42:5: note: candidate: 'BluetoothSerial::BluetoothSerial(HardwareSerial&, bool)'       
         BluetoothSerial(HardwareSerial& serial, bool verbose = true);
         ^~~~~~~~~~~~~~~
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:42:5: note:   candidate expects 2 arguments, 0 provided
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:17:7: note: candidate: 'constexpr BluetoothSerial::BluetoothSerial(const BluetoothSerial&)'
     class BluetoothSerial {
           ^~~~~~~~~~~~~~~
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:17:7: note:   candidate expects 1 argument, 0 provided
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:17:7: note: candidate: 'constexpr BluetoothSerial::BluetoothSerial(BluetoothSerial&&)' 
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:17:7: note:   candidate expects 1 argument, 0 provided
    src/main.cpp:26:6: error: ambiguating new declaration of 'void pause()'
     void pause();
          ^~~~~
    In file included from C:/Users/ordic/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include/sys/unistd.h:23,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\sys-include\unistd.h:4,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\sys-include\pthread.h:25,
                     from C:/Users/ordic/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include/pthread.h:21,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\xtensa-esp32-elf\no-rtti\bits\gthr-default.h:48,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\xtensa-esp32-elf\no-rtti\bits\gthr.h:151,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\ext\atomicity.h:35,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits\basic_string.h:39,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\string:52,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\stdexcept:39,      
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\array:39,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\tuple:39,
                     from c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\functional:54,     
                     from C:/Users/ordic/.platformio/packages/framework-arduinoespressif32/cores/esp32/HardwareSerial.h:49,
                     from C:/Users/ordic/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:196,
                     from src/main.cpp:1:
    c:\users\ordic\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\sys-include\sys\unistd.h:177:9: note: old declaration 'int pause()'
     int     pause (void);
             ^~~~~
    src/main.cpp: In function 'void setup()':
    src/main.cpp:33:19: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
        SerialBT.begin("Denon_K7"); // selon tutorial https://www.youtube.com/watch?v=EWxM8Ixnrqo
                       ^~~~~~~~~~
    In file included from src/main.cpp:9:
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:51:20: note:   initializing argument 1 of 'void BluetoothSerial::begin(int)'
         void begin(int baudRate = 9600);
                    ~~~~^~~~~~~~~~~~~~~
    src/main.cpp: In function 'void loop()':
    src/main.cpp:40:18: error: 'class BluetoothSerial' has no member named 'available'
       while(SerialBT.available()) // ici on met SerialBT pour coler au tutorial https://www.youtube.com/watch?v=EWxM8Ixnrqo
                      ^~~~~~~~~
    src/main.cpp:43:23: error: 'class BluetoothSerial' has no member named 'read'
         char c = SerialBT.read();  // ici aussi on met Serial3.read (non Serial.read) car on a connecté le HC08 à Serial3
                           ^~~~
    Compiling .pio\build\esp-wrover-kit\FrameworkArduino\esp32-hal-bt.c.o
    *** [.pio\build\esp-wrover-kit\src\main.cpp.o] Error 1
    ===================================================== [FAILED] Took 1.31 seconds =====================================================
     
     *  The terminal process "C:\Users\ordic\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
     *  Terminal will be reused by tasks, press any key to close it.
    Merci pour votre éclairage !

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 290
    Billets dans le blog
    48
    Par défaut
    Salut,

    Il semble que tu utilises une librairie spécifique qui est différente de la librairie officielle.

    Citation Envoyé par grizzli06 Voir le message
    et voici ce que me dit le compilateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ...
    src/main.cpp:10:17: error: no matching function for call to 'BluetoothSerial::BluetoothSerial()'
     BluetoothSerial SerialBT; // selon tutorial https://www.youtube.com/watch?v=EWxM8Ixnrqo
                     ^~~~~~~~
    In file included from src/main.cpp:9:
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:42:5: note: candidate: 'BluetoothSerial::BluetoothSerial(HardwareSerial&, bool)'       
         BluetoothSerial(HardwareSerial& serial, bool verbose = true);
         ^~~~~~~~~~~~~~~
    lib/BluetoothSerial-1.1.0/src/BluetoothSerial.h:42:5: note:   candidate expects 2 arguments, 0 provided
    Par exemple, avec ta librairie le constructeur de la classe BluetoothSerial attend deux paramètres, voir l'exemple Hello_World.ino :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <BluetoothSerial.h>
     
    #define bluetoothModuleSerial Serial1
     
    // Create a BluetoothSerial object
    // Serial port that the bluetooth module is connected
    // Verbose mode: true
    BluetoothSerial blueSerial(bluetoothModuleSerial, true);

Discussions similaires

  1. Librairie Bluetooth C# / C++
    Par geforce dans le forum C#
    Réponses: 0
    Dernier message: 07/05/2010, 17h21
  2. Librairie Bluetooth C++
    Par demss dans le forum Visual C++
    Réponses: 0
    Dernier message: 06/05/2010, 09h02
  3. Une librairie bluetooth ?
    Par kmedghaith dans le forum C++
    Réponses: 2
    Dernier message: 25/01/2010, 11h44
  4. Librairie Bluetooth introuvable
    Par Invité dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 09/05/2008, 12h32
  5. Librairie Bluetooth pour Windows
    Par Janitrix dans le forum Windows
    Réponses: 2
    Dernier message: 03/07/2007, 13h04

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