Ver el código fuente en GitHub

La asignación de comisiones requiere un dispositivo con la función de comisionado y un dispositivo con la función de unión. El encargado es un dispositivo Thread de una red Thread existente o uno externo a la red Thread (como un teléfono celular) que realiza la función comisionado. El Joiner es el dispositivo que desea unirse a la red de Thread.
Un Thread Commissioner se usa para autenticar un dispositivo en la red. No transfiere ni posee poses de credenciales de red de Thread, como la clave de red.
En esta guía, se explica la puesta en marcha básica en la malla sin un comisionado externo o un router de borde. Para aprender a usar un comisionado externo, consulta Comisionado de hilos externo.
Para ver un ejemplo de encargo con dispositivos virtuales, consulta el Codelab de simulación de OpenThread.
Habilitar funciones
Para habilitar las funciones de comisionado y comandante, usa las siguientes opciones de CMake:
Opción | Descripción |
---|---|
-DOT_COMMISSIONER=ON |
Habilita la función de comisionado |
-DOT_JOINER=ON |
Habilita la función de unión |
Por ejemplo, para compilar la plataforma de ejemplo CC2538 a fin de usarla como un elemento Joiner, siga estos pasos:
./script/build -DOT_JOINER=ON
Escribe en la memoria flash cada objeto binario en el dispositivo deseado. Uno es el Comisionado y el otro como Comisionador.
Puedes encontrar instrucciones específicas sobre cómo compilar y escribir en la memoria flash las plataformas compatibles en cada repositorio de OpenThread de la plataforma. Consulta la organización de GitHub de OpenThread para encontrar el repositorio.
Crea una red
Cree una red en el dispositivo que actúe como comisionado:
dataset init new
Donedataset
Active Timestamp: 1 Channel: 13 Channel Mask: 07fff800 Ext PAN ID: d63e8e3e495ebbc3 Mesh Local Prefix: fd3d:b50b:f96d:722d/64 Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 Security Policy: 0, onrcb Donedataset commit active
Doneifconfig up
Donethread start
Done
Espera unos segundos y verifica que el dispositivo se haya convertido en líder del subproceso:
state
leader
Done
Inicia la función de comisionado
En ese mismo dispositivo, inicia la función de comisionado:
commissioner start
Done
Use el comodín * para permitir que cualquier objeto Joiner que tenga la credencial de Joiner especificada se encargue de la red. La credencial de Joiner se usa (junto con el ID del PAN extendido y el nombre de la red) a fin de generar la clave precompartida para el dispositivo (PSKd). Luego, la PSKd se usa para autenticar un dispositivo durante la comisión de Thread. La credencial de unión debe ser única para cada dispositivo.
commissioner joiner add * J01NME
Done
Restringir a un Joiner específico
Para restringir la asignación a un dispositivo de Joiner específico, usa el parámetro eui64
, que es el IEEE EUI-64 asignado por la fábrica al dispositivo.
En el dispositivo que funciona como unión, obtenga la EUI-64:
eui64
2f57d222545271f1
Done
Usa ese valor en lugar del comodín * en el comando commissioner joiner
en el dispositivo comisionado:
commissioner joiner add 2f57d222545271f1 J01NME
Done
Inicie la función de unión
En el dispositivo que funciona como Joiner, restablece la configuración de fábrica y, luego, habilita la función de Joiner con la misma credencial de Joiner especificada en la herramienta Comisionador:
factoryreset
ifconfig up
Donejoiner start J01NME
Done
Espera unos segundos para confirmar la acción:
Join success!
El dispositivo de Joiner se autenticó correctamente con el comisionado y recibió las credenciales de la red Thread.
Ahora, inicie Thread en el dispositivo de Joiner:
thread start
Done
Valida la autenticación
Revise el estado en el dispositivo de Joiner para validar que se unió a la red. En dos minutos, el estado pasa del elemento secundario al router:
state
child Done ...state
router Done