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

VB.NET Discussion :

Envoyer des télécommandes par bluetooth


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut Envoyer des télécommandes par bluetooth
    Bonjour,

    J'écris un programme permettant de piloter des applications multimédia sur un PC ainsi que d'envoyer des commandes aux divers appareils entourant ce PC. Pour le moment je ne sais utiliser que l'infrarouge via un module phidget (émetteur/récepteur IR).
    Les programmes ne sont pas encore disponibles mais j'ai commencé le site (le programme EPG est lui téléchargeable et utilisable)
    http://www.pilotepartc.org

    Certains appareils utilisent une liaisons bluetooth entre eux et la télécommande dédiée au lieu de l'infrarouge.

    Je cherche donc des pistes en tout genre, docs, tutos, exemples de codes pour l'utilisation du bluetooth dans ce cas précis.

  2. #2
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Par défaut
    Salut Baloub
    le bluetooth c'est comme un port com.

    Dans ton programme, tu dois donc
    inclure un serial port dans la userform qui va gérer ça
    un timer (pour éviter d'attendre un temps infini une non réponse)

    puis si tu veux gérer plusieurs bluetooth, il faut rechercher les com associés puis se connecter dessus et enfin envoyer et recevoir les commandes

    j'ai fait une telle application pour commander mon robot.

    je te copie un peu du code que j'ai fait

    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
    'cherche les port com actifs
        Private Sub B_findCOM_Click(sender As System.Object, e As System.EventArgs) Handles B_findCOM.Click
            Dim portCOMname As String
            Dim n As Integer
            n = 0
            ListePortCOM.Controls.Clear()
            For Each portCOMname In My.Computer.Ports.SerialPortNames
                Dim rdo As New RadioButton
                rdo.Name = portCOMname
                rdo.Text = portCOMname
                n = n + 1
                rdo.Location = New Point(5, 20 * n)
                ListePortCOM.Controls.Add(rdo)
            Next
        End Sub
    la sélection du port com à ouvrir se fait par radio 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub B_Connexion_Click(sender As System.Object, e As System.EventArgs) Handles B_Connexion.Click
     
            'récupère le nom du port COM sélectionné et ouvre la communication
            Dim rButton As RadioButton
            rButton = ListePortCOM.Controls.OfType(Of RadioButton)().FirstOrDefault(Function(r) r.Checked = True)
            SerialPort_arduino.PortName = rButton.Name
            SerialPort_arduino.BaudRate = 9600
            SerialPort_arduino.DataBits = 8
            SerialPort_arduino.Parity = Parity.None
            SerialPort_arduino.StopBits = StopBits.One
            SerialPort_arduino.Handshake = Handshake.None
            SerialPort_arduino.Encoding = System.Text.Encoding.Default 'very important!
     
            'établi la connexion
            Try
                SerialPort_arduino.Open()
                SerialPort_arduino.ReadTimeout = 100000
                SerialPort_arduino.WriteTimeout = 100000
     
                If SerialPort_arduino.IsOpen Then
                    MsgBox("Connection successful")
                End If
                Label_port_valeur.Text = SerialPort_arduino.PortName.ToString
                Timer1.Enabled = True
                Label_timer.Text = "Timer: ON"
     
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
     
        End Sub
    et tu utilises la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SerialPort_arduino.Write(ordre)
    pour envoyer tes messages.

    pour te déconnecter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub B_deconnexion_Click(sender As System.Object, e As System.EventArgs) Handles B_deconnexion.Click
            SerialPort_arduino.Close()
            Timer1.Enabled = False
            Label_timer.Text = "Timer: OFF"
            Label_port_valeur.Text = "#"
        End Sub

    voilà ce que cela donne visuellement
    Nom : Sans titre.png
Affichages : 427
Taille : 44,8 Ko

    voilà pour un début. Par contre il te faudra connaitre les commandes à envoyer à tes interfaces connectés. Dernier point : ne pas oublier d'allumer le bluetooth de l'ordi sinon tu ne verra pas les port com...

    (PS : en tapant VB.net et bluetooth sur google tu dois pouvoir trouver des tutos plus complets)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut
    Bonjour Elthorn et merci pour ta réponse. Je vais étudier tes exemples avec attention.

    Comme dit précédemment, je suis en terrain totalement inconnu. Ce que je cherche à faire, c'est un peu la même chose qu'en infra-rouge : apprendre les codes des touches de la télécommande pour pouvoir ensuite envoyer ces codes à l'appareil piloté.
    En résumé, j'ai la TC du freebox player dans la main. Comment la faire détecter, connecter puis dialoguer avec mon programme ? Ensuite refaire la même chose entre mon programme et le freebox player. Enfin, étendre le truc pour d'autres box ou appareils...

    Maintenant, peut être que je fais fausse route. J'ai vu que pour le freeplayer par exemple il existe une API disponible mais on entre alors dans des trucs complètement propriétaires...

  4. #4
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Par défaut
    Citation Envoyé par baloub Voir le message
    En résumé, j'ai la TC du freebox player dans la main. Comment la faire détecter, connecter puis dialoguer avec mon programme ? Ensuite refaire la même chose entre mon programme et le freebox player. Enfin, étendre le truc pour d'autres box ou appareils...
    Quand tu te connecte en bluetooth, la liaison se fait dans les deux sens même si l'appairage se fait dans un sens.

    Je suis surpris que ta télécommande fonctionne en Bluetooth. mais si tu arrives à te connecter à ton objet, lorsque celui ci va envoyer un message BT alors le PC va le détecter, ce qui devrait te permettre de récupérer les ordres donc :

    1) connexion entre PC et TC par exemple,
    2) utilisation de la TC et récup des ordres
    3) connexion PC et FP
    4) envoi des ordre

    Par contre je suis en train de penser que pour ma connexion sur mon robot j'ai du installer le driver du module BT (un HC-06). Est ce que lorsque tu allumes le bluetooth de ton PC tu arrives à détecter les périphériques BT auxquels tu veux te connecter ? par ailleurs je me demande si tout les perif BT se gère comme des port com , car je n'arrive pas à voir mon téléphone par exemple.
    ok après vérification le téléphone est un mauvais exemple. Car je peux le connecter au PC pour écouter la musique et de manière parallèle et indépendante , il se connecte et déconnecte pour le transfère de fichiers...

    Héhé, tu m'as mis l'eau à la bouche avec ton problème . je vais regarder tout cela de plus près

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut
    Citation Envoyé par Elthorn Voir le message
    Je suis surpris que ta télécommande fonctionne en Bluetooth. mais si tu arrives à te connecter à ton objet, lorsque celui ci va envoyer un message BT alors le PC va le détecter, ce qui devrait te permettre de récupérer les ordres donc :
    Tu m'as mis le doute, et j'ai donc cherché un peu d'infos sur cette TC et du coup c'est encore plus nébuleux qu'avant :
    sur cette page on peut lire : "La télécommande communique avec le boitier Freebox par bluetooth et non par infrarouge ce qui permet (...)"

    Sur cette autre page :
    "Lors de sa présentation, Renaud Lifchitz, chercheur en sécurité à l’origine de la découverte, a démontré qu’il était possible de désassocier de force la télécommande d’une Freebox voisine, en envoyant un grand nombre de demandes d’association. Cela forcera la box à retourner en mode d’appairage, et c’est à ce moment-là que l’attaquant peut récupérer la clé de chiffrement envoyée, en clair, par la Freebox.

    La faille reposant dans le protocole utilisé, Free ne dispose pas réellement de moyen de la corriger. Le meilleur moyen de s’en prémunir reste d’utiliser un autre standard que le ZigBee à l’avenir — c’est déjà le cas sur Freebox Mini 4K, qui lui préfère le Bluetooth, bien mieux sécurisé."

    Bref, je crois que je vais laisser tomber mes recherches. Si c'est pas du bluetooth, c'est mort. En plus sécuriser ce genre de transmission me semble complètement ridicule (il semble que là, c'est le fait même de sécuriser qui créé le problème de sécurité)...
    Bon, je regarderai plutôt du coté de l'API pour la freebox (elle doit utiliser du TCP/IP ou de l'UDP). Mais ce système empêche tout développement "générique" comme avec l'infrarouge.

  6. #6
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Par défaut
    Ce qui m'interroge, c'est que l'on ne voit pas la télécommande ou le free player apparaitre sur le bluetooth d'un ordi ou d'un téléphone. il doit y avoir un système de discrétion quelconque du genre de celui qu'on a sur les téléphones (le truc qui ne fait n'apparaitre que les systèmes déjà appairés). Ça limite de suite la possibilité de se connecté simplement.

    sinon concernant le bluetooth, j'avais trouvé 2 blibliothèques


Discussions similaires

  1. Envoyer des données par post sans formulaire
    Par webrider dans le forum Langage
    Réponses: 12
    Dernier message: 31/03/2007, 19h11
  2. Envoyer des données par TCP/IP
    Par slimdre dans le forum C++
    Réponses: 4
    Dernier message: 18/03/2007, 18h28
  3. Envoyer des données par la méthode POST
    Par sorry60 dans le forum Langage
    Réponses: 6
    Dernier message: 31/05/2006, 15h10
  4. envoyer des données par mail
    Par zorba49 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/12/2005, 11h00
  5. envoyer des données par l'intermédiaire d'un bouton
    Par mathilde50 dans le forum Access
    Réponses: 26
    Dernier message: 28/10/2004, 16h49

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