{"id":1219,"date":"2018-04-13T11:10:40","date_gmt":"2018-04-13T16:10:40","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=1219"},"modified":"2018-12-24T08:18:46","modified_gmt":"2018-12-24T13:18:46","slug":"serial-lectura-datos","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/edelros\/serial-lectura-datos\/","title":{"rendered":"Serial - Lectura datos"},"content":{"rendered":"<p>Un Arduino puede enviar valores num\u00e9ricos de un sensor por medio del conector USB en forma Serial (secuencial).<\/p>\n<p>Los datos recibidos por una computadora mediante el puerto USB pueden procesarse usando Python. Para \u00e9sto debe conocer el puerto \"com\" y la velocidad de transmisi\u00f3n en los baudios usada por el arduino.<\/p>\n<p><strong>Ejemplo<\/strong>:<\/p>\n<p>Se muestra una lectura de valores num\u00e9ricos enteros, a partir del cual se puede modificar otros requerimientos.<\/p>\n<p>El ejemplo usa los resultados de la secci\u00f3n Morse para el receptor: <a title=\"TxRx Inalambrico 433Mhz ASK\/OOK\" href=\"http:\/\/blog.espol.edu.ec\/edelros\/2018\/04\/11\/txrx-inalambrico-433mhz-askook\/\">TxRx Inalambrico 433Mhz ASK\/OOK<\/a><\/p>\n<pre>0\r\n0\r\n0\r\n1017\r\n1017\r\n1018\r\n1021\r\n1017\r\n1019\r\n1018\r\n1018\r\n1016\r\n1018\r\n1016\r\n1017\r\n1019\r\n1018\r\n1016\r\n1020\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n1017\r\n1017\r\n1016\r\n1017\r\n1016\r\n<\/pre>\n<p><strong>Instrucciones en Python<\/strong><\/p>\n<pre># Datos desde puerto Serial\r\n# generados desde arduino\r\n\r\nimport numpy as np\r\nimport matplotlib.pyplot as plt\r\nimport serial, time\r\n\r\n# INGRESO\r\npuerto = 'com5'\r\nbaudios = 9600\r\nventana = 200 # tama\u00f1o ventana datos\r\ndatos=[] # vector para graficar\r\n\r\n# PROCEDIMIENTO\r\narduino = serial.Serial(puerto, baudios)\r\narduino.setDTR(False)\r\ntime.sleep(0.3)\r\n\r\n# limpia buffer de datos anteriores\r\narduino.flushInput()  \r\narduino.setDTR()  \r\ntime.sleep(0.3)\r\nprint('\\nEstado del puerto: ',arduino.isOpen())\r\nprint('Nombre del dispositivo conectado: ', arduino.name)\r\nprint('Dump de la configuraci\u00f3n:\\n ',arduino)\r\nprint('\\n###############################################\\n')\r\n\r\n# Lectura de datos\r\nwhile True:\r\n    #esperar hasta recibir un dato\r\n    while (arduino.inWaiting()==0):\r\n        pass \r\n\r\n    # lee linea desde puerto serial\r\n    lectura = arduino.readline()\r\n    # binario a texto, elimina \/r\/n\r\n    texto = lectura.decode().strip()\r\n    valor = int(texto)\r\n    datos.append(valor)\r\n    \r\n    # mantiene el tama\u00f1o \"ventana\" de datos \r\n    if (len(datos)&gt;=ventana):\r\n        datos.pop(0)\r\n    print(valor)\r\n    \r\n# Cerrar el puerto serial.\r\nserial.Serial.close\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Un Arduino puede enviar valores num\u00e9ricos de un sensor por medio del conector USB en forma Serial (secuencial). Los datos recibidos por una computadora mediante el puerto USB pueden procesarse usando Python. Para \u00e9sto debe conocer el puerto \"com\" y la velocidad de transmisi\u00f3n en los baudios usada por el arduino. Ejemplo: Se muestra una &hellip; <a href=\"https:\/\/blog.espol.edu.ec\/edelros\/serial-lectura-datos\/\" class=\"more-link\">Sigue leyendo <span class=\"screen-reader-text\">Serial - Lectura datos<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20777],"tags":[],"class_list":["post-1219","post","type-post","status-publish","format-standard","hentry","category-python"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/comments?post=1219"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1219\/revisions"}],"predecessor-version":[{"id":1391,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1219\/revisions\/1391"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/media?parent=1219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/categories?post=1219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/tags?post=1219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}