Partage
  • Partager sur Facebook
  • Partager sur Twitter

Android Studio Envoie/Réception par Bluetooth

Communiquer par Bluetooth avec Android.

    16 mai 2016 à 16:58:28

    Bonjour à tous, je travaille actuellement sur un robot commandé à distance par une application mobile Android.

    J'ai développé cette application avec Android Studio. Je peux envoyer des données que je récupère dans mon programme Arduino :

    #include <SoftwareSerial.h> //Librairie pour communication série
    #define RxD 7
    #define TxD 6
    #define DEBUG_ENABLED 1
    
    SoftwareSerial blueToothSerial(RxD,TxD); //Définition des pins RxD et TxD de la liaison série voulu
    
    void setup(){
      Serial.begin(115200); //Initialisation de liaison série entre l'ordinateur et l'Arduino (moniteur) à 115200 bits/seconde
      pinMode(RxD, INPUT); //RxD -> entrée (R = receive)
      pinMode(TxD, OUTPUT); //TxD -> sortie (T = transmission)
      setupBlueToothConnection(); //Configuration module Bluetooth
      blueToothSerial.setTimeout(60);
    }
    
    void loop(){
      String msg;
      while(1){
        if(blueToothSerial.available()) {
          msg = blueToothSerial.readString();
          Serial.println("Ordre: " + msg);
          if(msg.length() >= 5 && msg.substring(0,1) == "1"){
            if(msg.substring(1,3) == "m1"){
              Serial.println("Avant");
              digitalWrite(sens , HIGH);
              digitalWrite(frein, LOW);
              vit = msg.substring(3,6).toInt();
              analogWrite(vitesse, vit);
            }else if(msg.substring(1,3) == "m0"){
              Serial.println("Arret");
              digitalWrite(frein, HIGH);
              analogWrite(vitesse, 0);
            }else if(msg.substring(1,3) == "m2"){
              Serial.println("derriere");
              digitalWrite(sens , LOW);
              digitalWrite(frein, LOW);
              vit = msg.substring(3,6).toInt();
              analogWrite(vitesse, vit);
            }else if(msg.substring(1,3) == "d1"){
              blueToothSerial.write(dist_cm);
            }
          }
        }
      }
    void setupBlueToothConnection()
    {
            blueToothSerial.begin(57600);
            blueToothSerial.print("AT");
            delay(400);
            blueToothSerial.print("AT+NAMERobotino");
            delay(400);
            blueToothSerial.print("AT+UART701");
            delay(400);
            blueToothSerial.print("AT+AUTH1");
            delay(400);
            blueToothSerial.flush();
    }

    Je peux donc grâce à ce programme piloter le robot... Mais mon problème et de recevoir des données. Mon robot est équipé d'un capteur de distance, une distance que je veux pouvoir afficher sur mon application. Mais je sais pas comment faire.. Pour envoyer les données via Arduino j'utilise ce code : 

     ...while(1){
        delay(60);
        distance = analogRead(analog_sim);
        blueToothSerial.println(distance);...

    Malheureusement je n'ais aucune idée de comment faire pour pouvoir récupérer cette valeur dans le programme Java de l'application... Merci d'avance de vôtre aide.

    -
    Edité par MaxSliw 16 mai 2016 à 16:59:42

    • Partager sur Facebook
    • Partager sur Twitter
    Un robot Arduino ? Capteur infra-rouge, 4 moteurs et une caméra ?! piloter sur une application mobile ?!!!!
      25 juin 2016 à 20:07:58

      Salut mon ami,

      J'ai fais beaucoup d'applis de ce genre et j'ai la solution, c'est toi qui as développer cette app ?

      • Partager sur Facebook
      • Partager sur Twitter
        25 juin 2016 à 20:18:28

        v

        -
        Edité par Usef96 29 juin 2016 à 20:27:44

        • Partager sur Facebook
        • Partager sur Twitter
          25 juin 2016 à 20:31:02

          merci

          -
          Edité par Usef96 29 juin 2016 à 20:27:55

          • Partager sur Facebook
          • Partager sur Twitter
            22 août 2017 à 15:29:05

            Hello! je déterre un peu le topic, je serais vachement intéressé par un peu d'aide sur la partie bluetooth de l'application. 

            Si tu as un peu de temps MaxSliw j'aimerais te poser quelques questions? 

            Merci d'avance! 

            • Partager sur Facebook
            • Partager sur Twitter
              16 décembre 2017 à 12:35:39

              CyrilBaltz a écrit:

              Hello! je déterre un peu le topic, je serais vachement intéressé par un peu d'aide sur la partie bluetooth de l'application. 

              Si tu as un peu de temps MaxSliw j'aimerais te poser quelques questions? 

              Merci d'avance! 


              Salut, désolé je viens de voir ton message que maintenant cela fait pas mal de temps que je me suis pas connecté. Tu as toujours des questions ?
              • Partager sur Facebook
              • Partager sur Twitter
              Un robot Arduino ? Capteur infra-rouge, 4 moteurs et une caméra ?! piloter sur une application mobile ?!!!!
                23 mai 2018 à 20:33:42

                Salutation !

                Je déterre également le topic, cette fois-ci plusieurs mois après, je cherche également à récupérer des valeurs mesurées par des capteurs depuis la plateforme Arduino vers Android Studio et peine à avancer, quelqu'un aurait-il une solution depuis ?

                Merci d'avance !

                • Partager sur Facebook
                • Partager sur Twitter
                  13 janvier 2020 à 15:32:06

                  Je rejoins le club des fossoyeurs de topic, j'essaie de récupérer des données bluetooth arduino dans mon appli android

                  help!

                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 mai 2020 à 14:59:53

                    Salut

                    Pour recevoir des données par bluetooth avec android studio j'utilise un InputStream avec un BluetoothSocket voici un exemple:

                        //create new class for connect thread
                        private class ConnectedThread extends Thread {
                            private final InputStream mmInStream;
                            private final OutputStream mmOutStream;
                    
                            //            creation of the connect thread
                            ConnectedThread(BluetoothSocket socket) {
                    
                                Log.i("TAG", "ConnectedThread");
                    
                                InputStream tmpIn = null;
                                OutputStream tmpOut = null;
                    
                                try {
                                    //Create I/O streams for connection
                                    tmpIn = socket.getInputStream();
                                    tmpOut = socket.getOutputStream();
                                } catch (IOException e) { }
                    
                                mmInStream = tmpIn;
                                mmOutStream = tmpOut;
                            }
                    
                            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
                            public void run() {
                                byte[] buffer = new byte[5000];
                                int bytes;
                    
                                // Keep looping to listen for received messages
                                while (true) {
                                    try {
                                        bytes = mmInStream.read(buffer);
                                        String readMessage = new String(buffer);
                    
                                        Log.i("TAG", "Bytes: " + bytes);
                    
                                        // Log readMessage
                                        Log.i("TAG", "run, readMessage => " + readMessage);
                    
                                    } catch (IOException e) {
                                        isConnected = false;
                                        showDefautNotif("Service non connecté...", false, false);
                                        break;
                                    }
                                }
                            }
                            //write method
                            public void write(String input) {
                                byte[] msgBuffer = input.getBytes();                                                          //converts entered String into bytes
                                try {
                                    mmOutStream.write(msgBuffer);                                                             //write bytes over BT connection via outstream
                                } catch (IOException e) {
                    
                                }
                            }
                        }

                    les données sont recuperer dans la boucle "void run()" et afficher dans un Log.i mais pour recevoir plus de 15 charactere sa ne marche pas et je ne sais pas pourquoi.

                    -
                    Edité par swiftapp 31 mai 2020 à 15:08:49

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Android Studio Envoie/Réception par Bluetooth

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown