{"id":2920,"date":"2019-06-19T12:13:38","date_gmt":"2019-06-19T12:13:38","guid":{"rendered":"https:\/\/blog.usinainfo.com.br\/?p=2920"},"modified":"2019-08-07T15:55:07","modified_gmt":"2019-08-07T18:55:07","slug":"micropython-esp32-parte-2","status":"publish","type":"post","link":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/","title":{"rendered":"Micropython ESP32: Parte 2"},"content":{"rendered":"<p>Continuando a s\u00e9rie de tutoriais sobre <strong>Micropython ESP32<\/strong>, iremos desenvolver alguns projetos para exemplificar o seu uso. Em todos os exemplos, estaremos utilizando o uPyCraft IDE. O entendimento do <a href=\"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">artigo anterior sobre MicroPython<\/a> \u00e9, portanto, um pr\u00e9-requisito para a execu\u00e7\u00e3o dos destes projetos.<\/p>\n<p>Os materiais utilizados est\u00e3o listados a seguir:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/nodemcu\/nodemcu-esp32-iot-com-wifi-e-bluetooth-38-pinos-5346.html\" target=\"_blank\" rel=\"noopener noreferrer\">ESP32<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/potenciometros-e-trimpots\/potenciometro-10k-com-eixo-estriado-para-projetos-2983.html\" target=\"_blank\" rel=\"noopener noreferrer\">Potenci\u00f4metro 10k<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/leds\/led-branco-de-alto-brilho-5mm-2980.html\" target=\"_blank\" rel=\"noopener noreferrer\">LED<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/resistores-450\" target=\"_blank\" rel=\"noopener noreferrer\">Resistor<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/protoboard-e-jumpers\/jumpers-para-protoboard-kit-com-65-conectores-macho-macho-1374.html\" target=\"_blank\" rel=\"noopener noreferrer\">Jumpers<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/protoboard-e-jumpers\/protoboard-830-pontos-para-montagem-de-projetos-3733.html\" target=\"_blank\" rel=\"noopener noreferrer\">Protoboard<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/push-buttons\/push-button-chave-tactil-12x12x4-para-projetos-2985.html\" target=\"_blank\" rel=\"noopener noreferrer\">Push buttons<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/servo-motores\/micro-servo-motor-9g-sg90-180-2299.html\" target=\"_blank\" rel=\"noopener noreferrer\">Servo<\/a><\/li>\n<\/ul>\n<h4><\/h4>\n<h2>Projeto 1 <strong>Micropython ESP32<\/strong> &#8211; Controlando o brilho de uma LED com um potenci\u00f4metro<\/h2>\n<p><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_1421402222.jpg\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2963\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_1421402222-1024x559.jpg\" alt=\"\" width=\"652\" height=\"356\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_1421402222-1024x559.jpg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_1421402222-300x164.jpg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_1421402222-768x419.jpg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_1421402222.jpg 1920w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Nesse projeto aprenderemos a utilizar fun\u00e7\u00f5es de leitura anal\u00f3gica e de sa\u00edda PWM. As conex\u00f5es est\u00e3o ilustradas na figura abaixo. \u00c9 utilizado um potenci\u00f4metro de 10k ohms ligado na GPIO 36 e uma LED ligada a GPIO 22. O resistor que foi utilizado \u00e9 de 150 ohms. O fio vermelho indica a conex\u00e3o entre o potenci\u00f4metro e a porta de 3.3 V. O fio preto indica a conex\u00e3o entre o potenci\u00f4metro e a LED com a porta GND da ESP32.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/proj1.jpg\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2956\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/proj1-1024x371.jpg\" alt=\"\" width=\"694\" height=\"251\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Semelhante ao &#8220;#include&#8221; que utilizamos no Arduino, agora vamos usar o &#8220;import&#8221; para incluir as bibliotecas necess\u00e1rias no nosso c\u00f3digo Micropython ESP32. A estrutura &#8220;from &#8230;\u00a0 import &#8230;&#8221; indica de que conjunto de bibliotecas est\u00e1 se importando a classe indicada. No exemplo abaixo, importamos &#8220;ADC&#8221;, &#8220;Pin&#8221; e &#8220;PWM&#8221;, para, respectivamente, controlar uma ler um sinal anal\u00f3gico, controlar um pino e acionar um pino com PWM. Vejamos:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\nfrom machine import ADC, Pin, PWM\r\nimport time\r\n\r\npotenciometro = ADC(Pin(36))\r\npotenciometro.atten(ADC.ATTN_11DB)\r\npotenciometro.width(ADC.WIDTH_12BIT)\r\n\r\nLED = PWM(Pin(22), 100)\r\nLED.duty(50)\r\n\r\nwhile True:\r\n leitura = potenciometro.read()\r\n leitura = leitura * 3.3 \/ 4095\r\n duty = int(leitura * 1023 \/\/ 3.3)\r\n LED.duty(duty)\r\n time.sleep(0.1)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Ap\u00f3s, vamos fazer o upload do c\u00f3digo para a placa, o potenci\u00f4metro pode ser usado para ajustar a intensidade da LED, conforme ilustra o gif abaixo.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/proj1.gif\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3045 size-full\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/proj1.gif\" alt=\"\" width=\"480\" height=\"270\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Na vari\u00e1vel &#8220;potenciometro&#8221; instanciamos um objeto da classe ADC, passando como GPIO o pino 36.<\/p>\n<p>\u00c9 importante destacar que, atualmente, essa biblioteca tem implementado as fun\u00e7\u00f5es ADC para somente 5 pinos:<\/p>\n<ul>\n<li>A0 &#8211; IO36<\/li>\n<li>A1 &#8211; IO39<\/li>\n<li>A2 &#8211; IO34<\/li>\n<li>A3 &#8211; IO35<\/li>\n<li>A4 &#8211; IO15<\/li>\n<\/ul>\n<p>A seguir, a fun\u00e7\u00e3o .atten define a taxa de atenua\u00e7\u00e3o do pino (ou seja, 3,3V). A lista abaixo indicam as poss\u00edveis constantes que podem ser usadas e sua correspond\u00eancia.<\/p>\n<ul>\n<li>ADC.ATTN_0DB = 0 \u2014 faixa de tens\u00e3o at\u00e9: 1.2v<\/li>\n<li>ADC.ATTN_2_5DB = 1 \u2014 faixa de tens\u00e3o at\u00e9: 1.5v<\/li>\n<li>ADC.ATTN_6DB = 2 \u2014 faixa de tens\u00e3o at\u00e9: 2.0v<\/li>\n<li>ADC.ATTN_11DB = 3 \u2014 faixa de tens\u00e3o at\u00e9: 3.3v<\/li>\n<\/ul>\n<p>A fun\u00e7\u00e3o seguinte, .width, especifica o tamanho dos dados. A lista abaixo indicam as poss\u00edveis constantes que podem ser usadas e sua correspond\u00eancia.<\/p>\n<ul>\n<li>ADC.WIDTH_9BIT = 0 \u2014 9 bits<\/li>\n<li>ADC.WIDTH_10BIT = 1 \u2014 10 bits<\/li>\n<li>ADC.WIDTH_11BIT = 2 \u2014 11 bits<\/li>\n<li>ADC.WIDTH_12BIT = 3 \u2014 12 bits<\/li>\n<\/ul>\n<p>Na vari\u00e1vel LED, instanciamos um objeto da classe PWM no pino 22 e a seguir, com a fun\u00e7\u00e3o .duty, definimos o duty-cycle da LED. \u00c9 importante destacar que, atualmente, essa biblioteca tem implementado as fun\u00e7\u00f5es PWM para somente os seguintes pinos: Pin(0), Pin(2), Pin(4), Pin(5), Pin(10), Pin(12~19), Pin(21), Pin(22), Pin(23) e Pin(25~27).<\/p>\n<p>No while, que corresponde ao &#8220;void loop&#8221; no Arduino, \u00e9 inicialmente feita a leitura do potenci\u00f4metro com a fun\u00e7\u00e3o .read().\u00a0 Convertemos esse valor \u00e0 um valor compat\u00edvel com o duty-cycle da LED para ent\u00e3o acion\u00e1-la, atrav\u00e9s da fun\u00e7\u00e3o .duty(). O time.sleep(0.1) no final corresponde a um delay(100) no Arduino, ou seja, uma parada de 100 milissegundos.<\/p>\n<p>&nbsp;<\/p>\n<h2>Projeto 2 <strong>Micropython ESP32 <\/strong>&#8211; Controlando um servo com dois push buttons<\/h2>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_14345222222.jpg\" data-rel=\"lightbox-image-3\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2964\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_14345222222-1024x520.jpg\" alt=\"\" width=\"647\" height=\"328\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_14345222222-1024x520.jpg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_14345222222-300x152.jpg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_14345222222-768x390.jpg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_20190519_14345222222.jpg 1920w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Nesse projeto veremos como controlar um servo motor utilizando Micropython ESP32. As conex\u00f5es est\u00e3o ilustradas na figura abaixo.\u00a0 Tome cuidado com o servo que voc\u00ea vai utilizar. Nesse tutorial, para fins did\u00e1ticos, utilizamos o servo motor SG90, que tem um consumo de corrente baixo. Caso voc\u00ea for usar um servo mais potente ou que mova uma grande carga em sua haste, use uma fonte externa para aliment\u00e1-lo. O fio amarelo ilustra a conex\u00e3o entre o servo e a GPIO 12 da ESP32. Os bot\u00f5es est\u00e3o ligados \u00e0s portas 25 e 26, representados pelos fios verdes. O resistor utilizado foi de 10k ohms. O fio preto indica GND. O fio vermelho que sai do servo motor indica a conex\u00e3o desse com 5v. O outro fio vermelho (a esquerda) indica a conex\u00e3o na porta de 3.3v.<\/p>\n<p><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/proj2.jpg\" data-rel=\"lightbox-image-4\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2965\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/proj2-1024x512.jpg\" alt=\"\" width=\"718\" height=\"359\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>O controle de um servo motor \u00e9 feito atrav\u00e9s da modula\u00e7\u00e3o de largura de pulso. A classe PWM, da biblioteca machine, nos prov\u00e9m diversas fun\u00e7\u00f5es \u00fateis para que fa\u00e7amos esse controle. Inicialmente, instanciamos um objeto dessa classe na vari\u00e1vel servo, passando como par\u00e2metro a GPIO 12 e a frequ\u00eancia de 50 Hz (comumente utilizada para hobby servos). Definimos tamb\u00e9m uma vari\u00e1vel para armazenar o \u00e2ngulo. Com a fun\u00e7\u00e3o .duty(), passamos um valor entre 40 e 115 (pode variar de acordo com o servo utilizado) para mov\u00ea-lo.<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\nfrom machine import Pin, PWM\r\nimport time\r\n\r\nbtn_esquerda = Pin(25, Pin.IN)\r\nbtn_direita = Pin(26, Pin.IN)\r\nservo = PWM(Pin(12), freq=50)\r\n\r\nangulo = 40\r\nservo.duty(angulo)\r\n\r\nwhile True:\r\n if btn_esquerda.value():\r\n  if angulo &lt;= 110:\r\n   angulo = angulo + 5\r\n  servo.duty(angulo)\r\n  time.sleep(0.5)\r\n\r\n if btn_direita.value():\r\n  if angulo &gt;= 45:\r\n   angulo = angulo - 5\r\n  servo.duty(angulo)\r\n  time.sleep(0.5)\r\n\r\n time.sleep(0.01)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>No while, teremos a verifica\u00e7\u00e3o do estado dos push buttons atrav\u00e9s de duas estruturas if. A primeira para o bot\u00e3o da esquerda e a segunda para o bot\u00e3o da direita. Utilizei o da esquerda para incrementar o \u00e2ngulo do servo de 5 em 5 graus. Antes, por\u00e9m, \u00e9 feita uma verifica\u00e7\u00e3o do valor atual da vari\u00e1vel angulo para que a mesma n\u00e3o ultrapasse o m\u00e1ximo de 115. O mesmo \u00e9 feito para o bot\u00e3o da direita, observando-se um limite de 45 para tal.<\/p>\n<p>Ap\u00f3s incrementar o valor do \u00e2ngulo e o servo se mover, utilizamos um time.sleep de meio segundo para que a a\u00e7\u00e3o seja executada n\u00e3o t\u00e3o rapidamente. Observe que o \u00faltimo time.sleep, de 0.01 segundos acontece no fim do la\u00e7o while, de acordo com a indenta\u00e7\u00e3o exigida pela linguagem Python. O gif abaixo ilustra o projeto em funcionamento.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/proj2.gif\" data-rel=\"lightbox-image-5\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3046 size-full\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/proj2.gif\" alt=\"\" width=\"480\" height=\"270\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Nesse tutorial implementamos dois projetos que demonstram, de forma mais abrangente, a utiliza\u00e7\u00e3o da linguagem Python atrav\u00e9s do MicroPython ESP32. Devido a essa linguagem ser de alto n\u00edvel de abstra\u00e7\u00e3o, \u00e9 muito interessante que, ao desenvolver projetos maiores, se utilize o conceito de orienta\u00e7\u00e3o a objetos. Essa linguagem fornece excelente suporte para isso.<\/p>\n<p>Conhe\u00e7a toda <a href=\"https:\/\/www.usinainfo.com.br\/esp32-611\" target=\"_blank\" rel=\"noopener noreferrer\">Linha de Produtos ESP32<\/a> na UsinaInfo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuando a s\u00e9rie de tutoriais sobre Micropython ESP32, iremos desenvolver alguns projetos para exemplificar o seu uso. Em todos os exemplos, estaremos utilizando o uPyCraft IDE. O entendimento do artigo anterior sobre MicroPython \u00e9, portanto, um pr\u00e9-requisito para a execu\u00e7\u00e3o dos destes projetos. Os materiais utilizados est\u00e3o listados a seguir: ESP32 Potenci\u00f4metro 10k LED Resistor Jumpers Protoboard Push buttons Servo Projeto 1 Micropython ESP32 &#8211; Controlando o brilho de uma LED com um potenci\u00f4metro &nbsp; Nesse projeto aprenderemos a utilizar fun\u00e7\u00f5es de leitura anal\u00f3gica e de sa\u00edda PWM. As conex\u00f5es est\u00e3o ilustradas na figura abaixo. \u00c9 utilizado um potenci\u00f4metro de 10k ohms ligado na GPIO 36 e uma LED ligada a GPIO 22. O resistor que foi utilizado \u00e9 de [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":3080,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-2920","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp32"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Micropython ESP32: Parte 2 - Blog Usinainfo<\/title>\n<meta name=\"description\" content=\"Continue a Aprender Micropython ESP32 com a Segunda Parte desse Incr\u00edvel e Did\u00e1tico Tutorial ESP32 no Blog UsinaInfo. Vem conferir!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Micropython ESP32: Parte 2 - Blog Usinainfo\" \/>\n<meta property=\"og:description\" content=\"Continue a Aprender Micropython ESP32 com a Segunda Parte desse Incr\u00edvel e Did\u00e1tico Tutorial ESP32 no Blog UsinaInfo. Vem conferir!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Usinainfo\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/pt-br.facebook.com\/faceusinainfo\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-19T12:13:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-07T18:55:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/06\/IMG_2897-ok.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1620\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Gustavo Teixeira\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gustavo Teixeira\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Micropython ESP32: Parte 2 - Blog Usinainfo","description":"Continue a Aprender Micropython ESP32 com a Segunda Parte desse Incr\u00edvel e Did\u00e1tico Tutorial ESP32 no Blog UsinaInfo. Vem conferir!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/","og_locale":"pt_BR","og_type":"article","og_title":"Micropython ESP32: Parte 2 - Blog Usinainfo","og_description":"Continue a Aprender Micropython ESP32 com a Segunda Parte desse Incr\u00edvel e Did\u00e1tico Tutorial ESP32 no Blog UsinaInfo. Vem conferir!","og_url":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/","og_site_name":"Blog Usinainfo","article_publisher":"https:\/\/pt-br.facebook.com\/faceusinainfo\/","article_published_time":"2019-06-19T12:13:38+00:00","article_modified_time":"2019-08-07T18:55:07+00:00","og_image":[{"width":1620,"height":1080,"url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/06\/IMG_2897-ok.jpg","type":"image\/jpeg"}],"author":"Gustavo Teixeira","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Gustavo Teixeira","Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/#article","isPartOf":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/"},"author":{"name":"Gustavo Teixeira","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/e562b515fae72a8e6663629d55466c6b"},"headline":"Micropython ESP32: Parte 2","datePublished":"2019-06-19T12:13:38+00:00","dateModified":"2019-08-07T18:55:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/"},"wordCount":1009,"commentCount":1,"image":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/06\/IMG_2897-ok.jpg","articleSection":["ESP32"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/","url":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/","name":"Micropython ESP32: Parte 2 - Blog Usinainfo","isPartOf":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/#primaryimage"},"image":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/06\/IMG_2897-ok.jpg","datePublished":"2019-06-19T12:13:38+00:00","dateModified":"2019-08-07T18:55:07+00:00","author":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/e562b515fae72a8e6663629d55466c6b"},"description":"Continue a Aprender Micropython ESP32 com a Segunda Parte desse Incr\u00edvel e Did\u00e1tico Tutorial ESP32 no Blog UsinaInfo. Vem conferir!","breadcrumb":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/#primaryimage","url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/06\/IMG_2897-ok.jpg","contentUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/06\/IMG_2897-ok.jpg","width":1620,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.usinainfo.com.br\/blog\/micropython-esp32-parte-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.usinainfo.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Micropython ESP32: Parte 2"}]},{"@type":"WebSite","@id":"https:\/\/www.usinainfo.com.br\/blog\/#website","url":"https:\/\/www.usinainfo.com.br\/blog\/","name":"Blog Usinainfo","description":"Usinainfo","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.usinainfo.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/e562b515fae72a8e6663629d55466c6b","name":"Gustavo Teixeira","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/d3d23c5cd03ce9d8ef47bc68b083dc7e5f94b7b022f5059e668bf9439c9d4709?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d3d23c5cd03ce9d8ef47bc68b083dc7e5f94b7b022f5059e668bf9439c9d4709?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3d23c5cd03ce9d8ef47bc68b083dc7e5f94b7b022f5059e668bf9439c9d4709?s=96&d=mm&r=g","caption":"Gustavo Teixeira"},"description":"Bacharel em Ci\u00eancia da Computa\u00e7\u00e3o pela URI \u2013 Campus de Santo \u00c2ngelo, com experi\u00eancia no desenvolvimento de pesquisas em Rob\u00f3tica e prototipa\u00e7\u00e3o de Sistemas Rob\u00f3ticos.","url":"https:\/\/www.usinainfo.com.br\/blog\/author\/gustavo-teixeira\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/2920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2920"}],"version-history":[{"count":25,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/2920\/revisions"}],"predecessor-version":[{"id":3607,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/2920\/revisions\/3607"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media\/3080"}],"wp:attachment":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}