El BG95 pertenece a una serie de módulos LTE Cat M1/Cat NB2/EGPRS y el BG96 es un módulo LTE Cat M1/Cat NB1/EGPRS, ambos soportan un amplio conjunto de protocolos de internet e interfaces estándar de la industria como USB/UART/I2C que los hacen adecuados para un gran número de aplicaciones de IoT.
En este tutorial, mostraremos los pasos y la lista de comandos AT necesarios para enviar datos a Ubidots utilizando el kit Mini PCle EVB de Quectel.
Requisitos
Una utilidad de terminal serie.
Información de configuración de APN de su proveedor de red móvil.
Entender cómo enviar datos a través de nuestra API de datos HTTP(S).
1. Configurar Comunicación Serial
Primero que nada, asegúrate de que el módulo BG96 esté conectado a la placa de evaluación, luego puedes proceder a alimentar el módulo conectándolo a la PC usando el cable USB Mini y luego configurando el interruptor en la posición "On". La siguiente imagen sirve como guía.
Ahora, para establecer la comunicación serial con la PC, debes usar el cable convertidor RS232 a USB que se incluye con el kit de evaluación, procede a conectarlo a la PC.
Si te lo preguntas, hasta este punto hay dos conexiones a la PC desde la placa del kit de evaluación: la alimentación a través del cable USB Mini y la comunicación serial que pasa a través del cable convertidor RS-232 a USB.
Para probar la comunicación serial necesitarás una utilidad de terminal serie. En esta guía, se utilizó el terminal serie de Arduino, sin embargo, puedes elegir cualquier otro con el que te sientas cómodo.
Si decidiste usar el terminal serie de Arduino, necesitarás seleccionar el dispositivo serie con el que deseas comunicarte, para hacerlo, abre tu IDE de Arduino y dirígete a "Herramientas" ---> "Puerto", luego selecciona tu dispositivo serie:
Consejo Profesional: En sistemas basados en Linux, tu dispositivo debería estar etiquetado como "/dev/ttyUSB0" mientras que en sistemas operativos Windows el dispositivo debería estar etiquetado como "COM1"
Después de seleccionar tu dispositivo serie, inicia el terminal serie haciendo clic en "Monitor Serial" como se muestra arriba. La siguiente GUI se mostrará, asegúrate de configurar la velocidad de baudios en 115200 así como configurar la opción "Both NL & CR" desde la parte inferior de la ventana como se muestra a continuación:
Ahora deberías verificar si hay comunicación entre la PC y el BG95/BG96 módulo. Para hacerlo, escribe en el campo de texto el siguiente comando y presiona el botón "Enviar":
ATI
Este comando AT muestra la información del fabricante del dispositivo. El dispositivo debería responder algo como:
2. Guardar el certificado
Con el propósito de mantener tus datos seguros y privados, se utilizará HTTPS para enviar datos a Ubidots, y para ser un poco más seguros, el dispositivo verificará que efectivamente se está conectando a Ubidots. Para lograr esto, el certificado raíz PEM de Ubidots se guardará en el almacenamiento no volátil del dispositivo. Este es un paso único y se puede realizar en la etapa de producción.
Para guardar el certificado raíz en el medio de almacenamiento del dispositivo, envía el siguiente comando AT:
AT+QFUPL="UBIDOTS.PEM",3139,10
Después de hacerlo, recibirás un "CONNECT" como respuesta, luego envía el siguiente texto en bruto como lo hiciste con todos los otros comandos enviados anteriormente. Deberías recibir un "OK" si la transferencia tiene éxito.
-----BEGIN CERTIFICATE----- MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ 0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ 3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq 4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw 7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ -----END CERTIFICATE-----
El siguiente GIF ilustra todo el proceso:
2. Configurar conexión móvil
Antes de que se pueda realizar una solicitud HTTPS, se debe configurar la conexión de datos móviles. Para esto, se necesita la información de configuración de APN de tu proveedor de red móvil. Debes proporcionar lo siguiente:
Nombre del punto de acceso (APN)
Nombre de usuario si es requerido
Contraseña si es requerida
Método de autenticación:
0: Ninguno
1: PAP
2: CHAP
3: PAP o CHAP
Con la información anterior, construye el siguiente comando AT reemplazando "<APN>", "<username>", "<password>", "<authentication>" con la configuración de tu operador (manteniendo las comillas dobles)
AT+QICSGP=1,3,"<APN>","<username>","<password>",<authentication>
Para authentication
usa el número correspondiente listado arriba. Si username
y/o password
no son requeridos, deja su campo correspondiente vacío. Ej.:
AT+QICSGP=1,3,"<APN>","","",<authentication>
Ejemplo: Para esta guía, se utilizan los siguientes parámetros:
APN: web.vmc.net.co
Nombre de usuario: Virgin Mobile
Entonces el comando AT anterior debería ser algo como lo siguiente:
AT+QICSGP=1,3,"web.vmc.net.co","Virgin Mobile","",0
Envía este comando y espera su respuesta de confirmación.
Espera la respuesta OK
, luego activa la conexión enviando:
AT+QIACT=1
Esto puede tardar un poco y si tiene éxito, se recibe OK
como respuesta. Después de eso, puedes verificar la dirección IP con el comando AT:
AT+QIACT?
3. Configurar parámetros HTTP(S)
Envía los siguientes comandos AT para configurar la conexión HTTP(S) al servidor de Ubidots:
AT+QHTTPCFG="contextid",1AT+QHTTPCFG="requestheader",1AT+QHTTPCFG="sslctxid",1AT+QSSLCFG="sslversion",1,3AT+QSSLCFG="ciphersuite",1,0xFFFFAT+QSSLCFG="seclevel",1,1AT+QSSLCFG="cacert",1,"UBIDOTS.PEM"
Recuerda esperar la respuesta OK
después de cada comando antes de enviar el siguiente.
4. Enviar datos
Construye la URL de acuerdo a nuestra API de datos. Ej.:
https://industrial.api.ubidots.com/api/v1.6/devices/<device_label>/
Recuerda reemplazar <device_label
de acuerdo y obtener la longitud final de la URL.
Configura la URL para la solicitud con el siguiente comando AT:
AT+QHTTPURL=<URL_length>,60
Después de recibir la respuesta CONNECT
, envía la URL, luego espera a recibir OK
.
Ejemplo:
AT+QHTTPURL=57,60CONNECThttps://industrial.api.ubidots.com/api/v1.6/devices/bg96/OK
Construye los datos de la solicitud HTTP(S) de la siguiente manera:
POST /api/v1.6/devices/<device_label>/ HTTP/1.1Host: industrial.api.ubidots.comUser-Agent: QUECTEL_BG96Accept: */*X-Auth-Token: <Ubidots_token>Content-Type: application/jsonContent-Length: <JSON_string_length><JSON_string>
Reemplaza los campos marcados con <>
de acuerdo y obtén la longitud final de los datos de la solicitud. Ten en cuenta que los finales de línea para una solicitud HTTP(S) son CRLF.
Envía los datos de la solicitud:
AT+QHTTPPOST=<data_length>,60,60
Espera la respuesta CONNECT
y luego envía los datos de la solicitud. Después de recibir OK
, puedes obtener la respuesta del servidor con:
AT+QHTTPREAD=60
Ejemplo:
AT+QHTTPPOST=231,60,60CONNECTPOST /api/v1.6/devices/bg96/ HTTP/1.1Host: industrial.api.ubidots.comUser-Agent: QUECTEL_BG96Accept: */*X-Auth-Token: XXXX-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxContent-Type: application/jsonContent-Length: 12{"my-var":1}OK+QHTTPPOST: 0,200AT+QHTTPREAD=60CONNECT{"my-var":[{"status_code":201}]}OK+QHTTPREAD: 0
5. Comentarios y sugerencias
No dudes en publicar preguntas o sugerencias en nuestro portal de la comunidad, o envíanos un mensaje a support@ubidots.com.