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

Windev Mobile Discussion :

Connexion bluetooth avec arduino


Sujet :

Windev Mobile

  1. #1
    Inactif  
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2017
    Messages : 43
    Points : 40
    Points
    40
    Par défaut Connexion bluetooth avec arduino
    Salem, j'ai crée un programme simple avec arduino qui permet d'allumer un LED. j'ai associé un module Bluetooth avec. je veux connecter l'arduino avec mon téléphone par bluetooth et à partir une application développée par windev mobile je veux contrôler le led. je suis vraiment dans la galère depuis le debut de semaine. Je suis pas arrivé à connecter et envoyer un message vers l'arduino. Vous avez une idée MERCI

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Solution qui fonctionne
    Bonjour,

    Un bouton pour activer le Bluetooth avec le code suivant :

    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
    Sablier(Vrai)
     
    SI BTEtat() = btDésactivé ALORS
    	// Activation du bluetooth
    	BTActive(Vrai)
     
    	//Change l'affichage du bouton
    	BTN_Activer = "Activation en cours"
    	TANTQUE BTEtat() = btActivationEnCours OU BTEtat() = btDésactivé
     
    	FIN
    SINON
    	// Désactivation du bluetooth
    	BTActive(Faux)
     
    	//Change l'affichage du bouton
    	BTN_Activer = "Désactivation en cours"
    	TANTQUE BTEtat() = btDésactivationEnCours OU BTEtat() = btActif
     
    	FIN
    FIN
     
    Sablier(Faux)
     
    // Actualise la fenêtre
    Actualise()
     
    -----------------------------
     
     
    // Résumé : Actualise la fenêtre
    //
    PROCEDURE Actualise()
     
    SI BTEtat() = btDésactivé ALORS
    	BTN_Activer = "Activer le Bluetooth"
    SINON
    	BTN_Activer = "Désactiver le Bluetooth"
    FIN
     
    ActualiseIntVisibilité()
     
    AffichePériphériques()
     
    ---------------------------
    PROCEDURE ActualiseIntVisibilité()
     
    SI BTEtat() = btDésactivé ALORS
    	INT_Visibilité..Etat = Grisé
    	INT_Visibilité = Faux
    SINON
    	INT_Visibilité..Etat = Actif
    	INT_Visibilité = BTEstVisible()
    FIN
     
    -------------------------------------------
     
    / Résumé : Affiche les périphériques disponibles
     
    PROCEDURE AffichePériphériques()
    sChaineTmp est une chaîne
    sListePériphs est une chaîne
     
    SI BTEtat() = btActif ALORS
     
    	// Liste les périphériques
    	sListePériphs = BTListePériphérique()
     
    	// Vide la zr où sont listés les périphériques
    	ZoneRépétéeSupprimeTout(ZR_Périphériques)
    	// Remplit la zr
    	SI sListePériphs <> "" ALORS
    		POUR TOUTE CHAÎNE sChaineTmp DE sListePériphs SEPAREE PAR RC
    			// Récupération des valeurs
    			sIdentifiant est une chaîne = ExtraitChaîne(sChaineTmp,1, TAB)
    			sAdresseMAC est une chaîne = ExtraitChaîne(sChaineTmp,2, TAB)
    			sNom est une chaîne = ExtraitChaîne(sChaineTmp,3, TAB)
    			//info("ID : "+sIdentifiant,"MAC : "+ sAdresseMAC,"Nom : " + sNom)
     
    			SI sNom <> "" ALORS
    				ZoneRépétéeAjouteLigne(ZR_Périphériques,sNom,sAdresseMAC,sIdentifiant)
    			FIN
    		FIN
    	SINON
    		Info("Aucun périphérique disponible.") 
    	FIN
    SINON
    	ZoneRépétéeSupprimeTout(ZR_Périphériques)	
    FIN
    -----------------------------------

    Sur sélection dans la zone répétée de la carte arduino (code mac)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //info(ZR_Périphériques.ATT_MAC)
    ligneencours est un entier = ZR_Périphériques..Occurrence
    SI SocketConnecteBluetooth("pgb","SerialPortServiceClass_UUID",ZR_Périphériques.ATT_MAC) ALORS
    	ZR_Périphériques[ligneencours]..CouleurFond = RGB(219,229,241)
    	Info("Socket crée")
    SINON
    	Info("Echec création Socket"+ErreurInfo())
    FIN
    ---------------------------------

    La liaison entre le terminal android et la carte Arduino est réalisée, il suffit maintenant de passer les ordres à la carte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI SocketEcrit("pgb", "1") = Vrai ALORS
    	//Info("message envoyé")
    FIN
    ------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI SocketEcrit("pgb", "0") = Vrai ALORS
    	//Info("message envoyé")
    FIN
    ---------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI SocketEcrit("pgb", "b") = Vrai ALORS
    	//Info("message envoyé")
    FIN
    --------------

    Le programme de la carte Arduino va intercepter sur le port série le message envoyé (1, 0, b, ....)

    Code c : 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
    #include <SoftwareSerial.h>
     
    int bluetoothTx = 2;  // TX-O pin of bluetooth mate, Arduino D2
    int bluetoothRx = 3;  // RX-I pin of bluetooth mate, Arduino D3
     
    int led = 13;
     
    int buttonPin1 = 7;
    int buttonPin2 = 8;
    int button1State = 0;
    int button2State = 0;
     
    int dataFromBt;
     
    boolean lightBlink = false;
     
    SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
     
    void setup()
    {
      Serial.begin(9600);  // Begin the serial monitor at 9600bps
      bluetooth.begin(9600);  // Start bluetooth serial at 9600
      pinMode(led, OUTPUT);
      pinMode(buttonPin1, INPUT);
      pinMode(buttonPin2, INPUT);
    }
     
    void loop()
    {
     
      if (bluetooth.available()) // If the bluetooth sent any characters
      {delay(3);
        // Send any characters the bluetooth prints to the serial monitor
     
        Serial.println((char)bluetooth.read());
        dataFromBt = bluetooth.read();
     
        //Serial.println(dataFromBt);
        if (dataFromBt == '1') {
          Serial.println("led on");
          digitalWrite(led, HIGH);
          bluetooth.print("1");
        }
        if (dataFromBt == '0') {
          Serial.println("led off");
          digitalWrite(led, LOW);
          bluetooth.print("0");
        }
        if (dataFromBt == 'b') {
          Serial.println("a");
          lightBlink = true;
        } else {
          lightBlink = false;
        }
     
      }
     
      if (Serial.available()) // If stuff was typed in the serial monitor
      {
        delay(3);
        // Send any characters the Serial monitor prints to the bluetooth
        //String myStr = (String)Serial.read();
        //char myStr1[] = "hello this is testing!";
     
        //uint8_t payload[myStr.length() + 1];
        //myStr.getBytes(payload, myStr.length()+1);
     
        //int bytes=Serial.available();
        //Serial.readBytes(buffer, startPosition, bytes);
     
        bluetooth.print((char)Serial.read());
     
     
      }
     
      // and loop forever and ever!
      if (lightBlink) {
        digitalWrite(led, HIGH);
        bluetooth.print("1");
        Serial.println("HIGH");
        delay(500);
        digitalWrite(led, LOW);
        bluetooth.print("0");
        Serial.println("LOW");
        delay(500);
      }
     
      //------arduino push button code----------------
     
      button1State = digitalRead(buttonPin1);
      button2State = digitalRead(buttonPin2);
      if (button1State == HIGH) {
        digitalWrite(led, HIGH);
        bluetooth.print("1");
        Serial.println("on");
     
      }
      if (button2State == HIGH) {
        digitalWrite(led, LOW);
        Serial.println("off");
        bluetooth.print("0");
      }
    }
    ----------------

    En espérant vous avoir aider, bon courage

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    J'ai à peu prés le même problème mais avec une liaison Arduino / Windev Mobile (Android) par le port USB d'une tablette, auriez vous une solution.
    Sinon je vais utiliser le bluetooth grâce à votre code.
    Merci
    Yves D.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Malheureusement non
    Bonjour,

    Je n'ai pas encore eu à traiter ce problème de liaison USB, désolé.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut,
    Je suis passé en liaison BlueTooth entre l'Arduino et la tablette sous Android pour récupérer les données en provenance de l'Arduino.
    Actuellement le code coté Arduino semble fonctionner pour l'envoi des données, mais je ne parviens pas à récupérer ces données sur la tablette même après avoir lu les cours et tutoriels pour apprendre Arduino.
    Yves D.

Discussions similaires

  1. Connexion Ordinateur - Carte en Bluetooth avec RXTX
    Par GaTaLek dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 15/07/2015, 18h46
  2. Problème de connexion bluetooth avec l'api 18 (4.3)
    Par Cyrille86 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 21/07/2014, 10h44
  3. Surfer depuis un téléphone portable via une connexion BlueTooth avec un PC
    Par younek dans le forum Dépannage et Assistance
    Réponses: 2
    Dernier message: 05/09/2007, 07h10
  4. pool de connexion jdbc avec apache
    Par de LANFRANCHI dans le forum Oracle
    Réponses: 9
    Dernier message: 24/01/2005, 16h34
  5. Maintenir une connexion ouverte avec ssh
    Par jean-jacques varvenne dans le forum Réseau
    Réponses: 2
    Dernier message: 23/01/2005, 21h39

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