{"id":2461,"date":"2020-08-06T12:00:57","date_gmt":"2020-08-06T17:00:57","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/girni\/?p=2461"},"modified":"2022-03-24T11:48:15","modified_gmt":"2022-03-24T16:48:15","slug":"lorawan-mensajes-mqtt-archivo-con-python","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/lorawan-mensajes-mqtt-archivo-con-python\/","title":{"rendered":"3.3 LoRaWAN - mensajes MQTT y Python"},"content":{"rendered":"<p>De disponer de acceso al servidor MQTT se pueden capturar los mensajes y procesarlos por ejemplo para realizar estad\u00edsticas de RSSI y SNR de cada dispositivo respecto al Gateway.<\/p>\n<p>Se requiere una conexi\u00f3n autenticada al servidor MQTT, para caso experimental se recurre a Python con la librer\u00eda PAHO para acceder como cliente.<\/p>\n<pre># grabando mensajes MQTT\r\n# configurar los par\u00e1metros para la creacion de archivo de texto\r\nimport paho.mqtt.client as mqtt\r\n\r\n# INGRESO\r\n# Parametros para la conexi\u00f3n\r\nservidormqtt = \"192.168.xx.xx\"\r\ntopicolee = \"#\"\r\n\r\n# Para el archivo.txt\r\ncuentamensaje = 0\r\nnombrearchivo = 'unreporte.txt'\r\narchivo = open(nombrearchivo,'w')\r\narchivo.close()  # Cierra el archivo\r\n\r\ntramabuscada = ['application\/1\/device\/c9c2a03913ac2ec5\/event\/up',\r\n                'application\/1\/device\/b35915f22af620d1\/event\/up',\r\n                'application\/1\/device\/b5a2349b828d97ea\/event\/up',\r\n                'application\/1\/device\/f2f724028c0e996c\/event\/up']\r\ncuentaDisp = [0,0,0,0]\r\ncuentagtw = 0\r\n\r\n# BLOQUE B\u00c1SICO DE PROGRAMA\r\n# Al recibir CONNACK desde el servidor.\r\ndef on_connect(client, userdata, flags, rc):\r\n    print(\"Conexi\u00f3n\/c\u00f3digo de resultado: \"+str(rc))\r\n\r\n    # Inicio o renovaci\u00f3n de subscripci\u00f3n\r\n    client.subscribe(topicolee)\r\n\r\n    return()\r\n\r\n# el t\u00f3pico tiene una publicaci\u00f3n\r\ndef on_message(client, userdata, msg):\r\n    global cuentamensaje\r\n    print(msg.topic) #+\" \"+str(msg.payload))\r\n    unmensaje = msg.topic+\" \"+str(msg.payload)\r\n\r\n    # Archivo en modo a\u00f1adir 'append'\r\n    archivo = open(nombrearchivo,'a')\r\n    unalinea = unmensaje + '\\n'\r\n    archivo.write(unalinea)\r\n    \r\n    if (msg.topic in tramabuscada):\r\n        cual = tramabuscada.index(msg.topic)\r\n        cuentaDisp[cual] = cuentaDisp[cual] + 1\r\n        \r\n    cuentamensaje = cuentamensaje + 1\r\n    print('\\n mensajes recibidos: ', cuentamensaje)\r\n    print(' cuenta por dispositivos: ', cuentaDisp)\r\n    print()\r\n\r\n    return()\r\n\r\nclient = mqtt.Client()\r\nclient.on_connect = on_connect\r\nclient.on_message = on_message\r\nclient.connect(servidormqtt, 1883, 60)\r\nclient.loop_forever()\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>De disponer de acceso al servidor MQTT se pueden capturar los mensajes y procesarlos por ejemplo para realizar estad\u00edsticas de RSSI y SNR de cada dispositivo respecto al Gateway. Se requiere una conexi\u00f3n autenticada al servidor MQTT, para caso experimental se recurre a Python con la librer\u00eda PAHO para acceder como cliente. # grabando mensajes &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/lorawan-mensajes-mqtt-archivo-con-python\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"3.3 LoRaWAN - mensajes MQTT y Python\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1447338],"tags":[602214,1457736],"class_list":["post-2461","post","type-post","status-publish","format-standard","hentry","category-lorawan-open-gateway","tag-iot","tag-lorawan"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/comments?post=2461"}],"version-history":[{"count":8,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2461\/revisions"}],"predecessor-version":[{"id":3384,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2461\/revisions\/3384"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=2461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=2461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=2461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}