Outils pour utilisateurs

Outils du site


tel0026

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tel0026 [2017/04/27 14:30] – [Commandes AT] simontel0026 [2020/08/09 13:03] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Bluetooth 2.0 Module V3 For Arduino ====== ====== Bluetooth 2.0 Module V3 For Arduino ======
  
-Le [[https://www.dfrobot.com/product-360.html|Bluetooth 2.0 Module V3 For Arduino]] est un module bluetooth de chez DFRobot.+Le [[https://www.dfrobot.com/product-360.html|Bluetooth 2.0 Module V3 For Arduino]] est un module bluetooth de chez DFRobot de classe 2 (portée ~10m). J'en ai acheté deux pour établir une communication entre un robot et sa télécommande.
  
 ===== Initialisation ===== ===== Initialisation =====
-Le [[https://www.dfrobot.com/wiki/index.php/DF-BluetoothV3_Bluetooth_module_(SKU:TEL0026)|wiki de DFRobot]] indique la procédure à suivre pour initialiser le module.+Le [[https://www.dfrobot.com/wiki/index.php/DF-BluetoothV3_Bluetooth_module_(SKU:TEL0026)|wiki de DFRobot]] indique une partie de la procédure à suivre pour initialiser le module. Il faudra fouiller la [[http://image.dfrobot.com/image/data/TEL0026/TEL0026_Datasheet.pdf|datasheet du CSR B C417143]], embarqué dans le TEL0026, pour trouver et comprendre les subtilités.
  
-==== Prérequis ====+==== Prérequis pour initialiser un module ====
   * Un [[https://www.dfrobot.com/product-104.html|USB to TTL Converter (CP210)]] - J'utilise un clone de celui de DFRobot.   * Un [[https://www.dfrobot.com/product-104.html|USB to TTL Converter (CP210)]] - J'utilise un clone de celui de DFRobot.
   * Un terminal série ( le logiciel arduino, minicom, ... )   * Un terminal série ( le logiciel arduino, minicom, ... )
Ligne 20: Ligne 20:
 Toutes les commandes se trouvent dans la [[http://image.dfrobot.com/image/data/TEL0026/TEL0026_Datasheet.pdf|datasheet du TEL0026]], voici un aperçu : Toutes les commandes se trouvent dans la [[http://image.dfrobot.com/image/data/TEL0026/TEL0026_Datasheet.pdf|datasheet du TEL0026]], voici un aperçu :
 <code> <code>
-  * Input: at  +at  
-    * Return: OK+  OK 
 +   
 +at+init                          //initialiser le SPP 
 +  OK 
  
-  * Input: at+name?  +at+name?                         //demander le nom du module 
-    * Return: +NAME:H-C-2010-06-01 (après une remise aux paramètres par défaut, sinon "+NAME:BluetoothV3")+  +NAME:H-C-2010-06-01           //après une remise aux paramètres par défaut, sinon "+NAME:BluetoothV3" 
 +  OK
  
-  * Input: at+name=cequonveut  +at+name=cequonveut               //Donner un nom au module 
-    * Return: OK+  OK
  
-  * Input: at+name?  +at+role                        //demander le rôle du module 
-    * Return:+namecequonveut OK+  +role:0                        // 0 = slave , 1 = master 
 +  OK 
  
-  * Input: at+role +at+role=0                        //donner le rôle "slave" au module 
-    * Return: +role:OK +  OK 
  
-  * Input: at+role=0  +AT+PSWD?        //Demander le mot de passe de "pairing" 
-    * Return: OK +  +PSWD:1234  
 +  OK
  
-  * Input: AT+PSWD? +AT+ORGL         //Réinitialiser les paramètres par défaut 
-    * Return: +PSWD:1234 OK+  OK 
  
-  * Input: AT+ORGL (Restore the default setting:) +AT+UART?        //Demander les paramètres de l'UART 
-    * ReturnOK +  +UART:38400,0,0
  
-  * Input: AT+UART+AT+UART=38400,0,    //Choisir les paramètres de l'UART 
-    * +UART:38400,0,0+  OK                  //Param1baud rate (bits/s) 4800/ 9600/ 19200/ 38400/ 57600/ 115200/ 230400/ 460800/ 912600/ 1382400 
 +                      //Param2: stop bit , 0- 1 bit/ 1- 2 bits 
 +                      //Param3: parity bit, 0- None/ 1- Odd/ 2- Even 
  
-  * Input: AT+UART=115200,0,0  +AT+RESET              //reset du module (équivalent à l'éteindre/rallumer
-    * Return: OK +  ReturnOK
-        Param1: baud rate (bits/s4800/ 9600/ 19200/ 38400/ 57600/ 115200/ 230400/ 460800/ 912600/ 1382400 +
-        Param2stop bit , 0- 1 bit/ 1- 2 bits +
-        Param3: parity bit, 0- None/ 1- Odd/ 2- Even +
  
-  * Input: AT+RESET +AT+ADDR?                //demander l'adresse du module 
-    * Return: OK+  +ADDR:12d5:42:307864  
 +  OK
  
-  * Input: AT+ADDR? +AT+INQM=1,9,48          //Inquire mode: RSSI, max number 9, timeout 48) 
-    * Return: +ADDR:12d5:42:307864 OK+    * OK
  
-  * Input: AT+IAC? +AT+IAC?               // 
-    * Return: +IAC:9e8b33 OK+  +IAC:9e8b33  
 +  OK
  
-  * Input: AT+SENM? +Input: AT+SENM?       //  
-    * Return: +SENM:0,0 OK +  +SENM:0,0  
-</code> +  OK
- +
-=== Configuration basique de deux modules === +
-Module "slave"+
-<code> +
-  * AT+NAME=module-slave +
-  * AT+ROLE=0 +
-  * AT+ADDR? +
-    * +ADDR:98d3:32:302390 OK +
-</code> +
- +
-Module "master"+
-<code> +
-  * AT+NAME=module-master +
-  * AT+ROLE=1 +
-  * AT+ADDR? +
-    * +ADDR:98d3:32:20222e OK +
-</code> +
- +
-Depuis le module "master"on peut chercher après le module "slave"+
-<code> +
-  * AT+INIT +
-  * AT+CMODE? +
-    * CMOD:1 +
-  * AT+CMODE=2 +
-  * AT+CMODE? +
-    * CMOD:2 +
-  * AT+BIND? +
-    * +BIND:98d3:31:300e42 +
-    * OK +
-  * at+iac=9e8b33 (inquire general inquire access code) +
-    * OK  +
-  * at+class=(inquire all devices types) +
-    * OK  +
-  * at+inqm=1,9,48 (Inquire mode: RSSI, max number 9, timeout 48) +
-    * OK +
-  * at+state? +
-    * +STATE:INITIALIZED +
-  * At+inq +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFBB +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFBB +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFB7 +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFBA +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFBA +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFBB +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFBC +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFBD +
-    * +INQ:D0B3:3F:9EC870,5A0204,FFBB +
-    * OK+
 </code> </code>
  
Ligne 151: Ligne 110:
 </code> </code>
  
-=== Données pour Cosmo et la télécommande === +===== Configuration de deux modules ===== 
-== Cosmo (slave) ==+Pour faire la configuration de ces deux modules en même temps, j'ai utilisé : 
 +  * deux ordinateurs avec le logiciel arduino (mais n'importe quel programme de terminal série peut convenir) 
 +  * deux adaptateurs USB to TTL (exemples : [[https://www.dfrobot.com/product-104.html|dfrobot]], [[https://www.adafruit.com/product/954|adafruit]], [[http://www.farnell.com/datasheets/81225.pdf|farnell]], ...) 
 +  * deux modules bluetooth (deux [[https://www.dfrobot.com/product-360.html|TEL0026 de DFRobot]] dans mon cas) 
 + 
 +==== Cosmo (slave) ====
 <code> <code>
 +at
 +  OK
 +at+init
 +  OK
 +at+state?
 +  +STATE:INITIALIZED
 +at+name=cosmo
 +  OK
 at+name? at+name?
   +NAME:cosmo   +NAME:cosmo
 +at+role=0
 +  OK
 at+role? at+role?
   +ROLE:0   +ROLE:0
 at+addr? at+addr?
   +ADDR:98d3:32:302390   +ADDR:98d3:32:302390
 +at+uart=38400,0,0
 +  OK
 at+uart? at+uart?
   +UART:38400,0,0   +UART:38400,0,0
Ligne 166: Ligne 142:
 at+cmode? at+cmode?
   +CMOD:0   +CMOD:0
 +at+inq
 +  OK
 +at+bind?
 +  +BIND:0:0:                   //pas d'adresse configurée
 +at+bind=98d3,32,20222e           //"bind" avec l'adresse du module master
 +  OK
 +at+state?
 +  +STATE:PAIRABLE
 </code> </code>
 +
 +==== Commande (master) ====
 +<code>
 +at
 +  OK
 +at+init
 +  OK
 +at+state?
 +  +STATE:INITIALIZED
 +at+name=commande
 +  OK
 +at+name?
 +  +NAME:commande
 +at+role=1
 +  OK
 +at+role?
 +  +ROLE:1
 +at+addr?
 +  +ADDR:98d3:32:20222e
 +at+uart=38400,0,0
 +  OK
 +at+uart?
 +  +UART:38400,0,0
 +at+iac?
 +  +IAC:9e8b33
 +at+cmode?
 +  +CMOD:0
 +at+inq
 +  +INQ:98D3:32:302390,0,7FFF     //le module bluetooth slave!! (adresse, classe, RSSI)
 +at+rname?98d3,32,302390          //demander le nom du module slave
 +  +RNAME:cosmo                   //nom du module bluetooth slave
 +at+bind?
 +  +BIND:98d3:31:300e42           //adresse inconnue
 +at+bind=98d3,32,302390           //"bind" avec l'adresse du module slave
 +  OK
 +at+bind?
 +  +BIND:98d3:31:300e42           //adresse du module slave
 +at+pair=98d3,32,302390,30        //se connecter au module slave (avec timeout de 30s)
 +  OK
 +at+state?
 +  +STATE:PAIRED                  //yes!
 +at+mrad?                         //voir le dernier module connecté
 +  +MRAD:98d3:32:302390           //c'est bien le slave
 +at+fsad=98d3,32,302390           //voir si le module slave est dans la liste des modules authentifiés
 +  OK                             //OK = oui
 +at+link=98d3,32,302390           //faire le lien avec le module slave
 +  OK
 +  (réception de ce que le module slave envoit!)
 +</code>
 +
 +==== Programmes Arduino ====
 +Maintenant que nous avons configurés deux modules pour qu'ils se connectent ensemble, nous pouvons les utiliser chacun sur une Arduino et faire communiquer les deux Arduino ensemble. 
 +
 +  * [[allumer une led via bluetooth]]
 +  * [[Gestion de 3 leds via bluetooth]]
 +
 ===== Sources ===== ===== Sources =====
 +  * [[https://learn.sparkfun.com/tutorials/bluetooth-basics/how-bluetooth-works|How Bluetooth Works (sparkfun.com)]]
   * [[http://image.dfrobot.com/image/data/TEL0026/TEL0026_Datasheet.pdf|Datasheet du TEL0026]]   * [[http://image.dfrobot.com/image/data/TEL0026/TEL0026_Datasheet.pdf|Datasheet du TEL0026]]
 +  * [[https://fr.wikipedia.org/wiki/Received_Signal_Strength_Indication|RSSI (wikipedia.org)]] (mesure de la qualité du signal)
tel0026.1493303400.txt.gz · Dernière modification : 2020/08/09 12:59 (modification externe)