<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.uktech.com.br/bloguk/feed" rel="self" type="application/rss+xml"/><title>UKTech - Blog UKTech</title><description>UKTech - Blog UKTech</description><link>https://www.uktech.com.br/bloguk</link><lastBuildDate>Wed, 03 Sep 2025 03:16:47 -0700</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[ESP-IDF: Utilizando MQTT em seus projetos]]></title><link>https://www.uktech.com.br/bloguk/post/esp-idf-utilizando-mqtt-em-seus-projetos</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/ilya-pavlov-OqtafYT5kTw-unsplash.jpg"/>O MQTT (Message Queuing Telemetry Transport) emerge como uma poderosa solução de comunicação para o mundo interconectado de dispositivos na era da Int ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_NPqUDks4RoWvCcAlgyJ4HA" data-element-type="section" class="zpsection "><style type="text/css"> [data-element-id="elm_NPqUDks4RoWvCcAlgyJ4HA"].zpsection{ border-radius:1px; } </style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_6gyCB6dURCqICFRlNlTFCg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_5HGJGuNSTaKLCxTFLLcmVA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_rnV1JAdJQVuJjdKVsoCEaA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_rnV1JAdJQVuJjdKVsoCEaA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-justify " data-editor="true"><div style="color:inherit;"><div> O MQTT (Message Queuing Telemetry Transport) emerge como uma poderosa solução de comunicação para o mundo interconectado de dispositivos na era da Internet das Coisas (IoT). Este protocolo leve e eficiente foi projetado para facilitar a troca de mensagens entre dispositivos distribuídos em redes com larguras de banda variadas. Com sua arquitetura baseada em publicação/assinatura, o MQTT proporciona uma comunicação assíncrona, permitindo que dispositivos troquem informações de forma eficaz e sem a necessidade de conexões persistentes.&nbsp; </div>
<div> Uma das principais vantagens do uso do MQTT é a sua baixa sobrecarga de rede, o que o torna ideal para dispositivos com recursos limitados, como micro controladores. Além disso, o MQTT é altamente escalável e flexível, permitindo a comunicação entre milhares de dispositivos simultaneamente. </div>
<div> Para utilizar o MQTT em seus projetos baseados no ESP-IDF, é necessário primeiro configurar um broker MQTT, que será responsável por receber e encaminhar as mensagens entre os dispositivos. Em seguida, você pode utilizar a biblioteca MQTT do ESP-IDF para se conectar ao broker, publicar e assinar tópicos e trocar informações com outros dispositivos. </div>
<div> Ao utilizar o MQTT em seus projetos, você poderá criar aplicações IoT robustas e eficientes, permitindo que seus dispositivos se comuniquem de forma confiável e escalável. </div>
</div></div></div><div data-element-id="elm_38QznfqGgc0Pgv5tHwjW5Q" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_38QznfqGgc0Pgv5tHwjW5Q"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Broker</span></h2></div>
<div data-element-id="elm_jFPdFMimYm1ojYy3LLXPqQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_jFPdFMimYm1ojYy3LLXPqQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div> Para fins didaticos neste tutorial utilizaremos o broker de testes gratuito disponível no endereço: </div>
<div><div><a href="https://www.emqx.com/en/mqtt/public-mqtt5-broker" title="[broker.emqx.io]" target="_blank" rel="">[broker.emqx.io]</a>&nbsp;na porta 1883. </div>
</div></div></div></div><div data-element-id="elm_o7blYvav0zPvbkZ-2RlG7w" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_o7blYvav0zPvbkZ-2RlG7w"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Objetivo</span></h2></div>
<div data-element-id="elm_JUPLLSzaa1_TViF2HKSN2g" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_JUPLLSzaa1_TViF2HKSN2g"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">A aplicação ira conectar ao WiFi obeter o endereço IP via DHCP, em seguida a mesma ira se increver no topico MQTT e publicar uma mensagem, além de imprimir no monitor serial as mensagens recebidas no mesmo topico.</span><br></p></div>
</div><div data-element-id="elm_3BV9V3ZMRrc2klHnnJhIBQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_3BV9V3ZMRrc2klHnnJhIBQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Código</span></h2></div>
<div data-element-id="elm_ZXfuMhvYRovhYNk7VUB_Wg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_ZXfuMhvYRovhYNk7VUB_Wg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">A execução inicial do código é conduzida pela função wifi_app_start(). Essa função tem a responsabilidade de iniciar o Wi-Fi, estabelecer a conexão com a internet e, adicionalmente, através de uma função de callback configurada para ser acionada após o ESP receber um endereço IP válido, estabelecer a conexão com o MQTT.</span><br></p></div>
</div><div data-element-id="elm_DnpBvPzhRw2h4eheDzvgpg" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">
static void wifi_event_handler(void *event_handler_arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
{
    if (event_id == WIFI_EVENT_STA_START)
    {
        ESP_LOGI(TAG, "Tentando conexao wifi....\n");
    }
    else if (event_id == WIFI_EVENT_STA_CONNECTED)
    {
        ESP_LOGI(TAG, "WiFi conenctado");
    }
    else if (event_id == WIFI_EVENT_STA_DISCONNECTED)
    {
        ESP_LOGI(TAG, "WiFi desconectado\n");
        if (retry_num &lt; 5)
        {
            esp_wifi_connect();
            retry_num++;
            ESP_LOGI(TAG, "Tentando reconexao wifi...\n");
        }
    }
    else if (event_id == IP_EVENT_STA_GOT_IP)
    {
        ESP_LOGI(TAG, "IP recebido");
        
        //Inicia procedimento de conexão ao MQTT
        mqtt_app_start();
    }
}

esp_err_t wifi_app_start()
{
    //Inicializa o armazenamento flash (requerido pelo driver de wifi)
    ESP_ERROR_CHECK(nvs_flash_init());

    //Inicializa o sistema  Wi-fi e a pilha TCP/IP
    esp_netif_init();
    esp_event_loop_create_default();
    esp_netif_create_default_wifi_sta();
    wifi_init_config_t wifi_initiation = WIFI_INIT_CONFIG_DEFAULT();
    esp_wifi_init(&amp;wifi_initiation);

    //Registra as funçoes de callback para os eventos de wifi e ip
    esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, wifi_event_handler, NULL);
    esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, wifi_event_handler, NULL);

    //Estrutura de incialização
    wifi_config_t wifi_configuration = {
        .sta = {
            .ssid = "",
            .password =  "",
        }
    };

    //Faz uma cópia das variaveis globais para dentro da estrutura de inicialização
    strcpy((char*)wifi_configuration.sta.ssid, ssid);
    strcpy((char*)wifi_configuration.sta.password, passwd);

    //Atribui os parametros de inicialização
    esp_wifi_set_config(ESP_IF_WIFI_STA, &amp;wifi_configuration);

    //Inicializa a conexão
    esp_wifi_start();
    esp_wifi_set_mode(WIFI_MODE_STA);
    esp_wifi_connect();

    return ESP_OK;
}
</code></pre></div>
</div><div data-element-id="elm_tZtnZ2OZ1bTqkN0_xmfBCQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_tZtnZ2OZ1bTqkN0_xmfBCQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">A função mqtt_app_start() é invocada para configurar o endereço do broker MQTT e definir a função de callback responsável por gerenciar os eventos associados. Após a conexão bem-sucedida com o broker, o ESP se inscreve em um tópico específico e envia uma mensagem correspondente. Adicionalmente, o conteúdo desse tópico é impresso no monitor serial.&nbsp;&nbsp;</span><br></p></div>
</div><div data-element-id="elm_z5GGI8NhSj2mlOkbgUjUiw" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">
static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data)
{
    esp_mqtt_event_handle_t event = event_data;
    switch ((esp_mqtt_event_id_t)event_id)
    {
    case MQTT_EVENT_CONNECTED:
        ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED");

        char *topico = "testtopic/238191212838";
        char *mensagem = "Olá mundo";

        esp_mqtt_client_publish(handler_args, topico, mensagem, 0, 0 ,0 );
        esp_mqtt_client_subscribe_single(handler_args, topico, 0);

        break;
    case MQTT_EVENT_DISCONNECTED:
        ESP_LOGI(TAG, "MQTT_EVENT_DISCONNECTED");
        break;
    case MQTT_EVENT_SUBSCRIBED:
        break;
    case MQTT_EVENT_UNSUBSCRIBED:
        ESP_LOGI(TAG, "MQTT_EVENT_UNSUBSCRIBED, msg_id=%d", event-&gt;msg_id);
        break;
    case MQTT_EVENT_PUBLISHED:
        ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d", event-&gt;msg_id);
        break;
    case MQTT_EVENT_DATA:
        ESP_LOGI(TAG, "Dados recebidos: ");
        printf("TOPICO=%.*s\r\n", event-&gt;topic_len, event-&gt;topic);
        printf("DADOS=%.*s\r\n", event-&gt;data_len, event-&gt;data);
        break;
    default:
        ESP_LOGI(TAG, "Other event id:%d", event-&gt;event_id);
        break;
    }
}

static void mqtt_app_start(void)
{

    esp_mqtt_client_config_t mqtt_cfg = {
        .broker.address.uri = "mqtt://broker.emqx.io:1883",
    };

    esp_mqtt_client_handle_t client = esp_mqtt_client_init(&amp;mqtt_cfg);

    esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, client);
    esp_mqtt_client_start(client);
}
</code></pre></div>
</div><div data-element-id="elm_8Ok4iBs488FRcyeSvZ9l5g" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_8Ok4iBs488FRcyeSvZ9l5g"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Resultado</span></h2></div>
<div data-element-id="elm_Se17MxBBMyPywuRtOAwaIQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Se17MxBBMyPywuRtOAwaIQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Usando o cliente MQTTX para interagir com o broker:</span><br></p></div>
</div><div data-element-id="elm_EQMPp1GgkqgO1JMXtcefyA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_EQMPp1GgkqgO1JMXtcefyA"] .zpimage-container figure img { width: 1110px ; height: 887.65px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_EQMPp1GgkqgO1JMXtcefyA"] .zpimage-container figure img { width:723px ; height:578.17px ; } } @media (max-width: 767px) { [data-element-id="elm_EQMPp1GgkqgO1JMXtcefyA"] .zpimage-container figure img { width:415px ; height:331.87px ; } } [data-element-id="elm_EQMPp1GgkqgO1JMXtcefyA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled-2.png" width="415" height="331.87" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_pjryIkcCqAWCDctAwsNuNA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_pjryIkcCqAWCDctAwsNuNA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Mensagem enviada pelo computador:</span><br></p></div>
</div><div data-element-id="elm_XHwaNxweWGM50s3kyeuItA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_XHwaNxweWGM50s3kyeuItA"] .zpimage-container figure img { width: 736px !important ; height: 184px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_XHwaNxweWGM50s3kyeuItA"] .zpimage-container figure img { width:736px ; height:184px ; } } @media (max-width: 767px) { [data-element-id="elm_XHwaNxweWGM50s3kyeuItA"] .zpimage-container figure img { width:736px ; height:184px ; } } [data-element-id="elm_XHwaNxweWGM50s3kyeuItA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-1--1.png" width="736" height="184" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_tI9k5EczVvged_OxWd9mig" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_tI9k5EczVvged_OxWd9mig"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Mensagem recebida no ESP:</span><br></p></div>
</div><div data-element-id="elm_Ksd3MUtFWkCdbiiSOzQvvg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_Ksd3MUtFWkCdbiiSOzQvvg"] .zpimage-container figure img { width: 1110px ; height: 217.66px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_Ksd3MUtFWkCdbiiSOzQvvg"] .zpimage-container figure img { width:723px ; height:141.77px ; } } @media (max-width: 767px) { [data-element-id="elm_Ksd3MUtFWkCdbiiSOzQvvg"] .zpimage-container figure img { width:415px ; height:81.38px ; } } [data-element-id="elm_Ksd3MUtFWkCdbiiSOzQvvg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-2-.png" width="415" height="81.38" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_PO-6J9UgKsROQklOzr37lA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_PO-6J9UgKsROQklOzr37lA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Bônus: Código completo:</span><br></h2></div>
<div data-element-id="elm_QGzeSNHlNTljCbhEsLUxyw" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <string.h>
#include "esp_wifi.h"
#include "esp_system.h"
#include "nvs_flash.h"
#include "esp_event.h"
#include "esp_netif.h"

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "freertos/queue.h"

#include "lwip/sockets.h"
#include "lwip/dns.h"
#include "lwip/netdb.h"

#include "esp_log.h"
#include "mqtt_client.h"


char *ssid = "Nome canonico da rede wifi";
char *passwd = "senha";

static const char *TAG = "EXEMPLO_MQTT";
int retry_num = 0;

static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data)
{
    esp_mqtt_event_handle_t event = event_data;
    switch ((esp_mqtt_event_id_t)event_id)
    {
    case MQTT_EVENT_CONNECTED:
        ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED");

        char *topico = "testtopic/238191212838";
        char *mensagem = "Olá mundo";

        esp_mqtt_client_publish(handler_args, topico, mensagem, 0, 0 ,0 );
        esp_mqtt_client_subscribe_single(handler_args, topico, 0);

        break;
    case MQTT_EVENT_DISCONNECTED:
        ESP_LOGI(TAG, "MQTT_EVENT_DISCONNECTED");
        break;
    case MQTT_EVENT_SUBSCRIBED:
        break;
    case MQTT_EVENT_UNSUBSCRIBED:
        ESP_LOGI(TAG, "MQTT_EVENT_UNSUBSCRIBED, msg_id=%d", event-&gt;msg_id);
        break;
    case MQTT_EVENT_PUBLISHED:
        ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d", event-&gt;msg_id);
        break;
    case MQTT_EVENT_DATA:
        ESP_LOGI(TAG, "Dados recebidos: ");
        printf("TOPICO=%.*s\r\n", event-&gt;topic_len, event-&gt;topic);
        printf("DADOS=%.*s\r\n", event-&gt;data_len, event-&gt;data);
        break;
    default:
        ESP_LOGI(TAG, "Other event id:%d", event-&gt;event_id);
        break;
    }
}

static void mqtt_app_start(void)
{

    esp_mqtt_client_config_t mqtt_cfg = {
        .broker.address.uri = "mqtt://broker.emqx.io:1883",
    };

    esp_mqtt_client_handle_t client = esp_mqtt_client_init(&amp;mqtt_cfg);

    esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, client);
    esp_mqtt_client_start(client);
}

static void wifi_event_handler(void *event_handler_arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
{
    if (event_id == WIFI_EVENT_STA_START)
    {
        ESP_LOGI(TAG, "Tentando conexao wifi....\n");
    }
    else if (event_id == WIFI_EVENT_STA_CONNECTED)
    {
        ESP_LOGI(TAG, "WiFi conenctado");
    }
    else if (event_id == WIFI_EVENT_STA_DISCONNECTED)
    {
        ESP_LOGI(TAG, "WiFi desconectado\n");
        if (retry_num &lt; 5)
        {
            esp_wifi_connect();
            retry_num++;
            ESP_LOGI(TAG, "Tentando reconexao wifi...\n");
        }
    }
    else if (event_id == IP_EVENT_STA_GOT_IP)
    {
        ESP_LOGI(TAG, "IP recebido");

        //Inicia procedimento de conexão ao MQTT
        mqtt_app_start();
    }
}

esp_err_t wifi_app_start()
{
    //Inicializa o armazenamento flash (requerido pelo driver de wifi)
    ESP_ERROR_CHECK(nvs_flash_init());

    //Inicializa o sistema  Wi-fi e a pilha TCP/IP
    esp_netif_init();
    esp_event_loop_create_default();
    esp_netif_create_default_wifi_sta();
    wifi_init_config_t wifi_initiation = WIFI_INIT_CONFIG_DEFAULT();
    esp_wifi_init(&amp;wifi_initiation);

    //Registra as funçoes de callback para os eventos de wifi e ip
    esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, wifi_event_handler, NULL);
    esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, wifi_event_handler, NULL);

    //Estrutura de incialização
    wifi_config_t wifi_configuration = {
        .sta = {
            .ssid = "",
            .password =  "",
        }
    };

    //Faz uma cópia das variaveis globais para dentro da estrutura de inicialização
    strcpy((char*)wifi_configuration.sta.ssid, ssid);
    strcpy((char*)wifi_configuration.sta.password, passwd);

    //Atribui os parametros de inicialização
    esp_wifi_set_config(ESP_IF_WIFI_STA, &amp;wifi_configuration);

    //Inicializa a conexão
    esp_wifi_start();
    esp_wifi_set_mode(WIFI_MODE_STA);
    esp_wifi_connect();

    return ESP_OK;
}

void app_main(void)
{
    esp_log_level_set("*", ESP_LOG_NONE);

    ESP_ERROR_CHECK(wifi_app_start());
}
</string.h></stddef.h></stdint.h></stdio.h></code></pre></div>
</div><div data-element-id="elm_y0pFy4fLcOziNE1DKQC1ew" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_y0pFy4fLcOziNE1DKQC1ew"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_-OmBLlFpdRKT2MTUWG1rFw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_-OmBLlFpdRKT2MTUWG1rFw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div> Sobre o autor: <br></div>
<div> Matheus desempenha o papel de desenvolvedor de sistemas de tecnologia da informação dentro da equipe da UKTech. Possui&nbsp; experiência no domínio de micro controladores e desenvolvimento de software, e está na reta final de sua graduação em Engenharia de Computação. Em seus momentos de lazer, ele se dedica a interesses como jogos de computador e a apreciação de animes. </div>
</div></div></div><div data-element-id="elm_7IkFOG2J5757SqlW_IjmwQ" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_7IkFOG2J5757SqlW_IjmwQ"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div></div></div></div></div></div>]]></content:encoded><pubDate>Mon, 29 Jan 2024 16:35:11 -0300</pubDate></item><item><title><![CDATA[ESP-IDF: UART, lendo e escrevendo dados utilizando o conversor serial FT232RL.]]></title><link>https://www.uktech.com.br/bloguk/post/esp-idf-uart-lendo-e-escrevendo-dados-utilizando-o-conversor-serial-ft232rl.</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/Untitled -27-.png"/>O tutorial de hoje tem como objetivo mostrar como se da a utilização do protocolo UART através da comunicação do ESP32-C3 e o conversor serial FT232RL.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_xnwpC1heQQ-dfkWM-DZgWA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_NVYIs1CkR7OxCAYeP8QRcw" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_R9_I0rSNQAasdPN7V4UkAA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_R9_I0rSNQAasdPN7V4UkAA"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_diElpsJ3QK-WZZrGw0Yrrg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_diElpsJ3QK-WZZrGw0Yrrg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p><span style="color:inherit;">O tutorial de hoje tem como objetivo mostrar como se da a utilização do protocolo <span style="font-weight:600;">UART</span> através da comunicação do <span style="font-weight:600;">ESP32-C3</span> e o conversor serial <span style="font-weight:600;">FT232RL</span>.</span><br></p></div>
</div><div data-element-id="elm_onMeyjZ4jzvL8xRDX-qYZg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_onMeyjZ4jzvL8xRDX-qYZg"] .zpimage-container figure img { width: 800px ; height: 600.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_onMeyjZ4jzvL8xRDX-qYZg"] .zpimage-container figure img { width:500px ; height:375.00px ; } } @media (max-width: 767px) { [data-element-id="elm_onMeyjZ4jzvL8xRDX-qYZg"] .zpimage-container figure img { width:500px ; height:375.00px ; } } [data-element-id="elm_onMeyjZ4jzvL8xRDX-qYZg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-large zpimage-tablet-fallback-large zpimage-mobile-fallback-large hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-3-.jpeg" width="500" height="375.00" loading="lazy" size="large" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_7jBVIklEq6fDkwK57CCm6g" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_7jBVIklEq6fDkwK57CCm6g"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h2><span style="font-size:20px;">O que é UART ?</span></h2></div></h2></div>
<div data-element-id="elm_qfRsshswrFrmJN1o154e-g" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_qfRsshswrFrmJN1o154e-g"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Um Receptor/Transmissor Assíncrono Universal (<span style="font-weight:600;">UART</span>) é um recurso de comunicação amplamente usado e adotado que utiliza como o nome já diz comunicação assíncrona serial, como por exemplo RS232, RS422, e RS485. <span style="font-weight:600;">UART</span> é um método barato de comunicação que pode ser feito de maneira <span style="font-style:italic;">full-duplex</span> ou <span style="font-style:italic;">half-duplex</span> entre diferentes dispositivos.&nbsp;</span><br></p></div>
</div><div data-element-id="elm_VYK2pMAIuqChbDIUzSLxCQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_VYK2pMAIuqChbDIUzSLxCQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h2><span style="font-size:20px;">Começando:</span></h2></div></h2></div>
<div data-element-id="elm_tFk_D2DlrwfPBANX-b5vnA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_tFk_D2DlrwfPBANX-b5vnA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Vamos criar um componente que será responsável pelo <span style="font-weight:600;">UART</span>, dentro de um projeto basta rodar o comando:</span><br></p></div>
</div><div data-element-id="elm_laetZFFror1K0Wy5mRUIDg" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">
idf.py create-component uart_simple_reader
</code></pre></div>
</div><div data-element-id="elm_VeXERPQPqvoPVkrvPkC-RA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_VeXERPQPqvoPVkrvPkC-RA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Esse comando criara uma pasta com o nome uart_simple_reader, devemos move-la para dentro de uma pasta chamada <span style="font-style:italic;">components</span> na raiz do projeto, se ela não existir basta criá-la.</span><br></p></div>
</div><div data-element-id="elm_bzoCt7EZpZsBXVqjVICq9Q" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_bzoCt7EZpZsBXVqjVICq9Q"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h2><span style="font-size:20px;">Configurando o componente:</span></h2></div></h2></div>
<div data-element-id="elm_R2QpYpSilOHilGa8v15lKQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_R2QpYpSilOHilGa8v15lKQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Dentro do<span style="font-weight:600;"> CMakeLists.txt</span> desse componente iremos adicionar o parâmetro “REQUIRES driver” para que o mesmo tenha acesso aos recursos responsáveis pelo <span style="font-weight:600;">UART</span> do ESP-IDF, ficando assim:</span><br></p></div>
</div><div data-element-id="elm_fPyrsiF70LPyiFL6jgvl-w" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">
idf_component_register(SRCS "uart_simple_reader.c"
                    REQUIRES driver
                    INCLUDE_DIRS "include")
</code></pre></div>
</div><div data-element-id="elm_hqai8ObXBonQE5k3E4q4VA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_hqai8ObXBonQE5k3E4q4VA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h2><div style="color:inherit;"></div></h2><h2><span style="font-size:20px;">Criando o arquivo de cabeçalho:</span></h2></div></h2></div>
<div data-element-id="elm_gNKTV2K9HED-Ks9bpXgXrQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_gNKTV2K9HED-Ks9bpXgXrQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p>Iremos utilizar duas funções para executar as tarefas, uma irá ficar responsável por inicializar o componente e a outra será uma <em>task</em> responsável pela leitura e escrita de fato.</p><p>Além disso iremos definir duas constantes que serão utilizadas mais a frente, ficando assim:</p></div>
</div></div><div data-element-id="elm_WSmehVIoXI7CvE0-XWJUTA" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">
#include "esp_log.h"
#include "driver/uart.h"
#include "driver/gpio.h"

#define BUF_SIZE (1024)
#define UART_NUM UART_NUM_1

void readUartTask(void *arg);

esp_err_t uartInit(uart_port_t uart_num,
									 uart_config_t *uart_config,
									 int *intr_alloc_flags,
									 gpio_num_t tx_pin, 
									 gpio_num_t rx_pin)
</code></pre></div>
</div><div data-element-id="elm_R1aaHHNAiz_DsnpRiLZ2GA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_R1aaHHNAiz_DsnpRiLZ2GA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Implementação:</span><br></h2></div>
<div data-element-id="elm_dTyisAZ8LYDP4gZhpZPgYw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_dTyisAZ8LYDP4gZhpZPgYw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p>Como citado anteriormente a função <strong>uartInit</strong> ficara responsável por receber os parâmetros de inicialização, esses sendo qual o <strong>UART</strong> interno utilizado, parâmetros de funcionamento e os pinos a qual serão atribuídos <strong>TX</strong> e <strong>RX</strong>.</p><p>Já a função <strong>readUartTask</strong> ficara responsável por ler e escrever, recebendo apenas como parâmetro de <em>task</em> a unidade <strong>UART</strong> que estaremos utilizando.</p></div>
</div></div><div data-element-id="elm_jWz6Mvn4JXmKF1UJru90yA" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">
#include <stdio.h>
#include "uart_simple_reader.h"

void readUartTask(void *arg)
{
    uint8_t *data = (uint8_t *)malloc(BUF_SIZE);

    while (1)
    {
        int len = uart_read_bytes((uart_port_t)arg, data, (BUF_SIZE - 1), pdMS_TO_TICKS(20));
        if (len)
        {
            data[len] = '\0';
            uart_write_bytes((uart_port_t)arg, data, len);
            uart_write_bytes((uart_port_t)arg, "\n", 1);
            ESP_LOGI("TAG", "Recv str: %s", (char *)data);
        }
    }
}

esp_err_t uartInit(uart_port_t uart_num, uart_config_t *uart_config, int *intr_alloc_flags, gpio_num_t tx_pin, gpio_num_t rx_pin)
{   
     uart_config = malloc(sizeof(uart_config_t));
    if (uart_config == NULL) {
        return ESP_FAIL;
    }

    *uart_config = (uart_config_t){
        .baud_rate = 115200,
        .data_bits = UART_DATA_8_BITS,
        .parity = UART_PARITY_DISABLE,
        .stop_bits = UART_STOP_BITS_1,
        .flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
    };

#if CONFIG_UART_ISR_IN_IRAM
    intr_alloc_flags = ESP_INTR_FLAG_IRAM;
#endif

    ESP_ERROR_CHECK(uart_driver_install(uart_num, BUF_SIZE * 2, 0, 0, NULL, *intr_alloc_flags));
    ESP_ERROR_CHECK(uart_param_config(uart_num, uart_config));
    ESP_ERROR_CHECK(uart_set_pin(uart_num, tx_pin, rx_pin, 0, 0));

    return ESP_OK;
}
</stdio.h></code></pre></div>
</div><div data-element-id="elm_o8QZK4lOeF23p2fxGTh-Xw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_o8QZK4lOeF23p2fxGTh-Xw"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h1><span style="font-size:20px;">Utilizando o componente:</span></h1></div></h2></div>
<div data-element-id="elm_UFyh1u2UBUgdGN0wHd5tmw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_UFyh1u2UBUgdGN0wHd5tmw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div> Primeiramente é necessário declara a utilização do mesmo, dentro da pasta main adicionamos “REQUIRES uart_simple_reader” ao CMakeLists.txt. </div>
<br><div> Depois importamos o componente dentro do arquivo main, criamos os parâmetros de inicialização e chamamos a função uartInit. Então criamos a task do FreeRTOS e passamos por parâmetro qual UART estamos utilizando. </div>
</div></div></div><div data-element-id="elm_BZ-HXR15nphS0O-z4gRBOQ" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "sdkconfig.h"
#include "esp_log.h"
#include "uart_simple_reader.h"

void app_main(void)
{
    uart_config_t uart_config;
    int intr_alloc_flags = 0;
    uart_port_t uart_port = UART_NUM;
    gpio_num_t tx = 3;
    gpio_num_t rx = 2;
    ESP_ERROR_CHECK(uartInit(uart_port, 
														&amp;uart_config, 
														&amp;intr_alloc_flags, 
														tx, rx));

    xTaskCreate(readUartTask, "uart_task", 2048, (void *)uart_port, 10, NULL);
}
</stdio.h></code></pre></div>
</div><div data-element-id="elm_Y-7HOJwhuKXO5purly6K-A" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_Y-7HOJwhuKXO5purly6K-A"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h2><strong><span style="font-size:20px;">Acessando o serial:</span></strong></h2></div></h2></div>
<div data-element-id="elm_CPdKL_Mm_PmjuTyeVpsiYw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_CPdKL_Mm_PmjuTyeVpsiYw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Com o código já rodando no </span>micro controlador<span style="color:inherit;">, estabelecemos uma conexão serial, no caso iremos utilizar o pyseria-miniter, outra alternativa é utilizar o PuTTY.</span><br></p></div>
</div><div data-element-id="elm__MudX1NTem3kn4cUN3lfZA" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script><pre style="font-family:monospace;font-size:14px;background-color:rgb(229, 230, 230);"><code class="prettyprint">

pyserial-miniterm /dev/ttyUSB0 115200

</code></pre></div>
</div><div data-element-id="elm_HiyjP6FWEw8yHqVLfxv8Fw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_HiyjP6FWEw8yHqVLfxv8Fw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Onde enviaremos a string “Olá UART”:</span><br></p></div>
</div><div data-element-id="elm_MqtVCXTcPpEdA-xH2hV2Lw" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_MqtVCXTcPpEdA-xH2hV2Lw"] .zpimage-container figure img { width: 1110px ; height: 345.35px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_MqtVCXTcPpEdA-xH2hV2Lw"] .zpimage-container figure img { width:723px ; height:224.95px ; } } @media (max-width: 767px) { [data-element-id="elm_MqtVCXTcPpEdA-xH2hV2Lw"] .zpimage-container figure img { width:415px ; height:129.12px ; } } [data-element-id="elm_MqtVCXTcPpEdA-xH2hV2Lw"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-26-.png" width="415" height="129.12" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_2LcxorierS_8q-EpgzH92A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_2LcxorierS_8q-EpgzH92A"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Que será mostrada na saída serial padrão do </span>micro controlador<span style="color:inherit;">:</span><br></p></div>
</div><div data-element-id="elm_JollUrLsrFecWNYwpZHDNg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_JollUrLsrFecWNYwpZHDNg"] .zpimage-container figure img { width: 1110px ; height: 361.94px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_JollUrLsrFecWNYwpZHDNg"] .zpimage-container figure img { width:723px ; height:235.75px ; } } @media (max-width: 767px) { [data-element-id="elm_JollUrLsrFecWNYwpZHDNg"] .zpimage-container figure img { width:415px ; height:135.32px ; } } [data-element-id="elm_JollUrLsrFecWNYwpZHDNg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-27-.png" width="415" height="135.32" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_qzbSGCSyt3n1pCaWiwV5mQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_qzbSGCSyt3n1pCaWiwV5mQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h2><span style="font-size:20px;">Exemplo disponível em:</span></h2></div></h2></div>
<div data-element-id="elm_NYR79OE6MfOcZ2_gb8JGwQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_NYR79OE6MfOcZ2_gb8JGwQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p><a href="https://github.com/uktechbr/esp-devkit-samples/tree/main/uart-simple">https://github.com/uktechbr/esp-devkit-samples/tree/main/uart-simple</a></p></div>
</div></div><div data-element-id="elm_FJyqVX1-SnkFz8Dqed6ncw" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_FJyqVX1-SnkFz8Dqed6ncw"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_3fY6Alk_b88YBIgJSjYLaQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_3fY6Alk_b88YBIgJSjYLaQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div> Sobre o autor: <br><br></div>
<div> Matheus desempenha o papel de desenvolvedor de sistemas de tecnologia da informação dentro da equipe da UKTech. Possui&nbsp; experiência no domínio de micro controladores e desenvolvimento de software, e está na reta final de sua graduação em Engenharia de Computação. Em seus momentos de lazer, ele se dedica a interesses como jogos de computador e a apreciação de animes. </div>
</div></div></div><div data-element-id="elm_hQUM9ikjMpSkYG57z8Lbbw" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_hQUM9ikjMpSkYG57z8Lbbw"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div></div></div></div></div></div>]]></content:encoded><pubDate>Mon, 11 Dec 2023 11:10:40 -0300</pubDate></item><item><title><![CDATA[Os desafios e soluções no setor de TI]]></title><link>https://www.uktech.com.br/bloguk/post/os-desafios-e-soluções-no-setor-de-ti</link><description><![CDATA[A Tecnologia da Informação (TI) desempenha um papel vital em todas as áreas de negócios, assim possuir uma gestão eficiente nessa área é de suma impor ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_TmcDZilBTimc9Yf2zLoZ7Q" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_ZsoctroAS9iw82UuqLcv_A" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"> [data-element-id="elm_ZsoctroAS9iw82UuqLcv_A"].zprow{ border-radius:1px; } </style><div data-element-id="elm_7I8zAMfLT2GmaSi_eSZVFw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_7I8zAMfLT2GmaSi_eSZVFw"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_9K6r2KYfxsdurmxDyg2rxg" data-element-type="imagetext" class="zpelement zpelem-imagetext " data-animation-name="fadeIn"><style> @media (min-width: 992px) { [data-element-id="elm_9K6r2KYfxsdurmxDyg2rxg"] .zpimagetext-container figure img { width: 500px ; height: 333.44px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_9K6r2KYfxsdurmxDyg2rxg"] .zpimagetext-container figure img { width:500px ; height:333.44px ; } } @media (max-width: 767px) { [data-element-id="elm_9K6r2KYfxsdurmxDyg2rxg"] .zpimagetext-container figure img { width:500px ; height:333.44px ; } } [data-element-id="elm_9K6r2KYfxsdurmxDyg2rxg"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/getty-images-XG2md12dAAA-unsplash.jpg" width="500" height="333.44" loading="lazy" size="medium" data-lightbox="true"></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:inherit;font-size:16px;">A Tecnologia da Informação (TI) desempenha um papel vital em todas as áreas de negócios, assim possuir uma gestão eficiente nessa área é de suma importância. Em nossos 11 anos de experiência corporativa, observamos profissionais de TI atuando em diversas filiais da mesma organização. Embora seja uma prática comum, enfrentam desafios relacionados à gestão do tempo, ativos e endpoints.</span><br></p><p><span style="color:inherit;font-size:16px;"><br></span></p><p><span style="color:inherit;font-size:16px;"><span style="color:inherit;"><span style="font-size:12pt;">Um exemplo recorrente é nos laboratórios de informática, onde há&nbsp;considerável fluxo de alunos que resulta no download de arquivos durante as aulas, muitos desses com más intenções no tocante de afetar&nbsp;os sistemas em geral, pois geralmente contém malware. A acumulação desses arquivos no sistema operacional pode resultar em uma alocação de todo o espaço de dados ou até mesmo a perda de informações importantes.</span></span><br></span></p></div>
</div></div><div data-element-id="elm_0xcKl1e6uV1bnga6j5F4Nw" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_0xcKl1e6uV1bnga6j5F4Nw"] div.zpspacer { height:30px; } @media (max-width: 768px) { div[data-element-id="elm_0xcKl1e6uV1bnga6j5F4Nw"] div.zpspacer { height:calc(30px / 3); } } </style><div class="zpspacer " data-height="30"></div>
</div><div data-element-id="elm_JtAd4PW_M-DLPXUVjNB3yw" data-element-type="imagetext" class="zpelement zpelem-imagetext " data-animation-name="fadeIn"><style> @media (min-width: 992px) { [data-element-id="elm_JtAd4PW_M-DLPXUVjNB3yw"] .zpimagetext-container figure img { width: 411.5px !important ; height: 274px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_JtAd4PW_M-DLPXUVjNB3yw"] .zpimagetext-container figure img { width:411.5px ; height:274px ; } } @media (max-width: 767px) { [data-element-id="elm_JtAd4PW_M-DLPXUVjNB3yw"] .zpimagetext-container figure img { width:411.5px ; height:274px ; } } [data-element-id="elm_JtAd4PW_M-DLPXUVjNB3yw"].zpelem-imagetext{ border-radius:1px; margin-block-start:15px; } </style><div data-size-tablet="" data-size-mobile="" data-align="right" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-right zpimage-size-custom zpimage-tablet-fallback-custom zpimage-mobile-fallback-custom hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/patrick-amoy-6DfEbkqsTiA-unsplash.jpg" width="411.5" height="274" loading="lazy" size="custom" data-lightbox="true"></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><div><p style="color:inherit;margin-bottom:15pt;"><span style="font-size:12pt;">Para diminuir este problema, o profissional de TI precisa realizar um trabalho manual demandando no final de cada aula, a exclusão de arquivos desnecessários e potencialmente maliciosos. Esse processo oneroso, não apenas consome recursos de tempo precioso, mas também aumenta o risco de retrabalho.</span></p><p><span style="color:inherit;font-size:12pt;">Vindo para superar esses desafios, </span><span style="font-size:16px;">existem</span><span style="color:inherit;font-size:12pt;">&nbsp;softwares para apoiar o time de TI a automatizar e gerenciar tarefas repetitivas. Além disso, a adoção de ferramentas de gerenciamento centralizado pode oferecer maior controle sobre ativos e endpoints, resultando em uma operação mais eficiente e menos propensa a erros.</span></p></div>
</div></div></div><div data-element-id="elm_QGJMbMA_Cqof-QxmStEWBg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_QGJMbMA_Cqof-QxmStEWBg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Saliento que a&nbsp;segurança da informação e privacidade de dados, aliados a softwares que sejam realmente seguros para as organizações é imprescindível. Como também, contar com ferramentas que ofereçam integração, armazenamento na nuvem e funcionalidades práticas, essenciais e preditivas para a rotina de trabalho.</span><br></p></div>
</div><div data-element-id="elm_OO-fvI_0x505Da_NZ9yacA" data-element-type="icon" class="zpelement zpelem-icon "><style type="text/css"> [data-element-id="elm_OO-fvI_0x505Da_NZ9yacA"].zpelem-icon{ border-radius:1px; } </style><div class="zpicon-container zpicon-align-center "><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 512 512" height="512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"/></svg></span></div>
</div><div data-element-id="elm_ub0M3S5RycJ_H-aM5Rqkuw" data-element-type="heading" class="zpelement zpelem-heading " data-animation-name="slideInLeft"><style> [data-element-id="elm_ub0M3S5RycJ_H-aM5Rqkuw"].zpelem-heading { border-radius:1px; } </style><h6 class="zpheading zpheading-style-type3 zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:16px;">Uma solução útil que vem a apoiar todo o time de TI é o <a href="https://www.uktech.com.br/faronics-deep-freeze-cloud" title="Deep Freeze" target="_blank" rel="">Deep Freeze</a>, para quem não conhece é um software de tecnologia patenteada que ao reiniciar o computador ele volta ao estado iniciar pré- programado.</span><br></h6></div>
<div data-element-id="elm_JH6Qbb-zQDPE2G5xnIhDLg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_JH6Qbb-zQDPE2G5xnIhDLg"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><p style="margin-bottom:12pt;"><span style="font-size:20px;">Para simplificar vamos fazer uma analogia.</span></p></div></h2></div>
<div data-element-id="elm_BeM08Fu0T2uRRNuMVJMibQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_BeM08Fu0T2uRRNuMVJMibQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p></p><div style="text-align:justify;"><span style="font-size:16px;color:inherit;">Imagine que você está em sua garagem, ela está suja, desorganizada e o seu carro encontra-se estacionado nesse ambiente, ambos com acumulo de pó e sujeira.</span></div>
<div style="text-align:justify;"><span style="color:inherit;font-size:16px;"><div><span style="color:inherit;">Entretanto, você está sem tempo para organizar, pois as atividades diárias são muitas, e estas, demandam sua atenção no exato momento. Infelizmente a garagem ficará para próxima, então você fecha a porta e sai.</span></div>
<div><span style="color:inherit;">Após um longo dia de atividades, você direciona-se até a garagem abre a porta e parecendo mágica seu carro e garagem estão limpos, o ambiente impecavelmente organizado.</span></div>
<div><span style="color:inherit;">Essa pequena história é um comparativo de como o Deep Freeze pode ajudar o TI, como simples abrir e fechar de porta, as atividades que demandam horas poderão ser otimizadas automaticamente, sem deslocar a equipe para resolver estes problemas.</span></div></span><p></p></div>
</div></div><div class="zpelement zpelem-carousel " data-element-id="elm_kjElYwLSuMoG-PxHFAD-5w" data-element-type="carousel" data-currentslide-index="0" data-transition="slide_left" data-slider-interval="5000" data-animation-name="slideInLeft" data-zs-autoslide="true" data-zs-slidepause-option="false" data-zs-slider="min-height-el: zpcarousel-content-container;arrow-cont: zpcarousel-arrows-container; active-controller: zpcarousel-controller-active; controller-cont: zpcarousel-controller-container; controller: zpcarousel-controller; right-arrow: zpcarousel-arrow-right; left-arrow: zpcarousel-arrow-left;active-slide:zpcarousel-content-active; slide: zpcarousel-content; slides-cont: zpcarousel-content-container;content-cont : zpcarousel-content-inner; background: false;slide-pause-btn:zpcarousel-pause-btn;slide-play-btn:zpcarousel-play-btn;"><div class="zpcarousel-container zpcarousel-style-01"><style></style><div class="zpcarousel-content-container"><div class="zpelement zpcarousel-content " data-element-type="carouselslide" data-element-id="elm_-yy5OgT0q7K06dwOQh4tAg" data-slide-name="Slide 1"><div class="zpcarousel-content-inner"><div data-element-id="elm_ySBpdiVwfTJB0SkZt11FPA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column=""><style type="text/css"> [data-element-id="elm_ySBpdiVwfTJB0SkZt11FPA"].zprow{ border-radius:1px; } </style><div data-element-id="elm_H7RUuTDhC59GfM051RugYw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_H7RUuTDhC59GfM051RugYw"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_XZVst_w-EdMpAPEHt-tnMA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_XZVst_w-EdMpAPEHt-tnMA"] .zpimage-container figure img { width: 500px ; height: 500.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_XZVst_w-EdMpAPEHt-tnMA"] .zpimage-container figure img { width:500px ; height:500.00px ; } } @media (max-width: 767px) { [data-element-id="elm_XZVst_w-EdMpAPEHt-tnMA"] .zpimage-container figure img { width:500px ; height:500.00px ; } } [data-element-id="elm_XZVst_w-EdMpAPEHt-tnMA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Garagem%201.png" width="500" height="500.00" size="medium" data-lightbox="true"></picture></span></figure></div>
</div></div><div data-element-id="elm_FjtIhMwA7xpQzMvET1_8Rg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_FjtIhMwA7xpQzMvET1_8Rg"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_pEKFTknxXjDA75Waivz2dg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_pEKFTknxXjDA75Waivz2dg"] .zpimage-container figure img { width: 500px ; height: 500.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_pEKFTknxXjDA75Waivz2dg"] .zpimage-container figure img { width:500px ; height:500.00px ; } } @media (max-width: 767px) { [data-element-id="elm_pEKFTknxXjDA75Waivz2dg"] .zpimage-container figure img { width:500px ; height:500.00px ; } } [data-element-id="elm_pEKFTknxXjDA75Waivz2dg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Garagem%203.png" width="500" height="500.00" size="medium" data-lightbox="true"></picture></span></figure></div>
</div></div></div></div></div><div class="zpelement zpcarousel-content " data-element-type="carouselslide" data-element-id="elm_oLZvY9LSF5Koudv9y1nhUQ" data-slide-name="Slide 2"><div class="zpcarousel-content-inner"><div data-element-id="elm_9n7wF6J1iNEs84HFqN-DBg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column=""><style type="text/css"> [data-element-id="elm_9n7wF6J1iNEs84HFqN-DBg"].zprow{ border-radius:1px; } </style><div data-element-id="elm_8TVfmodwS769rO35R3R7pw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_8TVfmodwS769rO35R3R7pw"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_EbUVaFnlt1LGO2InFWSuTw" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_EbUVaFnlt1LGO2InFWSuTw"] .zpimage-container figure img { width: 475px ; height: 475.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_EbUVaFnlt1LGO2InFWSuTw"] .zpimage-container figure img { width:723px ; height:723.00px ; } } @media (max-width: 767px) { [data-element-id="elm_EbUVaFnlt1LGO2InFWSuTw"] .zpimage-container figure img { width:415px ; height:415.00px ; } } [data-element-id="elm_EbUVaFnlt1LGO2InFWSuTw"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Garagem%204.png" width="415" height="415.00" size="fit" data-lightbox="true"></picture></span></figure></div>
</div></div><div data-element-id="elm_NkfZPPW2LiZQFS-izRlm9g" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_NkfZPPW2LiZQFS-izRlm9g"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_8oAEJKqxmFevyMm2JmCTVA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_8oAEJKqxmFevyMm2JmCTVA"] .zpimage-container figure img { width: 475px ; height: 475.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_8oAEJKqxmFevyMm2JmCTVA"] .zpimage-container figure img { width:723px ; height:723.00px ; } } @media (max-width: 767px) { [data-element-id="elm_8oAEJKqxmFevyMm2JmCTVA"] .zpimage-container figure img { width:415px ; height:415.00px ; } } [data-element-id="elm_8oAEJKqxmFevyMm2JmCTVA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Garagem%205.png" width="415" height="415.00" size="fit" data-lightbox="true"></picture></span></figure></div>
</div></div></div></div></div><div class="zpelement zpcarousel-content " data-element-type="carouselslide" data-element-id="elm_hDHKouieaTkXilMJy6boAQ" data-slide-name="Slide 3"><div class="zpcarousel-content-inner"><div data-element-id="elm_nPEq9lTu7_jlZ9D-51vwGg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column=""><style type="text/css"> [data-element-id="elm_nPEq9lTu7_jlZ9D-51vwGg"].zprow{ border-radius:1px; } </style><div data-element-id="elm_VgXfOB2G2LnIE0rb5iExmA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_VgXfOB2G2LnIE0rb5iExmA"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_7QtQdg0LihzyudFCPLXeTA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_7QtQdg0LihzyudFCPLXeTA"] .zpimage-container figure img { width: 500px ; height: 500.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_7QtQdg0LihzyudFCPLXeTA"] .zpimage-container figure img { width:500px ; height:500.00px ; } } @media (max-width: 767px) { [data-element-id="elm_7QtQdg0LihzyudFCPLXeTA"] .zpimage-container figure img { width:500px ; height:500.00px ; } } [data-element-id="elm_7QtQdg0LihzyudFCPLXeTA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Garagem%206.png" width="500" height="500.00" size="medium" data-lightbox="true"></picture></span></figure></div>
</div></div><div data-element-id="elm_v7_OUbtkEywSyZwVS9nQyg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_v7_OUbtkEywSyZwVS9nQyg"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_PGo8WPowZJJodmbkSbXqsA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_PGo8WPowZJJodmbkSbXqsA"] .zpimage-container figure img { width: 500px ; height: 500.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_PGo8WPowZJJodmbkSbXqsA"] .zpimage-container figure img { width:500px ; height:500.00px ; } } @media (max-width: 767px) { [data-element-id="elm_PGo8WPowZJJodmbkSbXqsA"] .zpimage-container figure img { width:500px ; height:500.00px ; } } [data-element-id="elm_PGo8WPowZJJodmbkSbXqsA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Garagem%207.png" width="500" height="500.00" size="medium" data-lightbox="true"></picture></span></figure></div>
</div></div></div></div></div></div><div class="zpcarousel-arrows-container zpcarousel-arrow-type-01" data-arrow-style="3"><div class="zpcarousel-arrow-left" tabindex="0" role="button" aria-label="Previous"><svg aria-hidden="true" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" class="svg-icon-18px"><path d="M86,256l193.7,193.6c13.9,13.9,13.9,36.5,0,50.4c-13.9,13.9-36.5,13.9-50.4,0L10.4,281.2C3.5,274.2,0,265.1,0,256 c0-9.1,3.5-18.2,10.4-25.2L229.3,12C243.2-2,265.8-2,279.7,12c13.9,13.9,13.9,36.5,0,50.4L86,256z M501.6,62.4 c13.9-13.9,13.9-36.5,0-50.4C487.6-2,465.1-2,451.2,12L232.3,230.8c-7,7-10.4,16.1-10.4,25.2c0,9.1,3.5,18.2,10.4,25.2l218.9,218.9 c13.9,13.9,36.5,13.9,50.4,0c13.9-13.9,13.9-36.5,0-50.4L307.9,256L501.6,62.4z"/></svg></div>
<div class="zpcarousel-arrow-right" tabindex="0" role="button" aria-label="Next"><svg aria-hidden="true" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" class="svg-icon-18px"><path d="M426,256L232.3,62.4c-13.9-13.9-13.9-36.5,0-50.4c13.9-13.9,36.5-13.9,50.4,0l218.9,218.9c7,7,10.4,16.1,10.4,25.2 c0,9.1-3.5,18.2-10.4,25.2L282.7,500c-13.9,13.9-36.5,13.9-50.4,0c-13.9-13.9-13.9-36.5,0-50.4L426,256z M10.4,449.6 c-13.9,13.9-13.9,36.5,0,50.4c13.9,13.9,36.5,13.9,50.4,0l218.9-218.9c7-7,10.4-16.1,10.4-25.2c0-9.1-3.5-18.2-10.4-25.2L60.8,11.9 C46.9-2,24.4-2,10.4,11.9c-13.9,13.9-13.9,36.5,0,50.4L204.1,256L10.4,449.6z"/></svg></div>
</div><div class="zpcarousel-controller-container zpcarousel-controller-type-04"><svg class="zpcarousel-pause-btn" tabindex="0" role="button" aria-label="Pause" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M3.85.53C3.6.5 3.34.5 3.07.5 1.68.5.95 1.09.95 2.18V12c.03.74.56 1.32 1.44 1.44.53.07 1.11.07 1.64 0 .9-.13 1.42-.72 1.42-1.5V2.07c0-.09 0-.18-.03-.28-.1-.66-.75-1.17-1.59-1.26h.01ZM11.43.53C11.18.5 10.92.5 10.65.5c-1.39 0-2.12.59-2.12 1.68V12c.03.74.56 1.32 1.44 1.44.53.07 1.11.07 1.64 0 .9-.13 1.42-.72 1.42-1.5V2.07c0-.09 0-.18-.03-.28-.1-.66-.75-1.17-1.59-1.26h.01Z"/></svg><svg class="zpcarousel-play-btn" tabindex="0" role="button" aria-label="Play" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M.59 7.02C.57 5.33.57 3.63.51 1.94.45.63 1.72-.17 2.9.45c3.2 1.68 6.42 3.32 9.64 4.96.59.3.95.76.96 1.43 0 .66-.34 1.11-.91 1.43-3.18 1.75-6.35 3.5-9.52 5.25-1.2.66-2.39-.04-2.41-1.41C.63 10.42.61 8.72.59 7.03Z"/></svg><div class="zpcarousel-controller zpcarousel-controller-active" data-slide-index="0"></div>
<div class="zpcarousel-controller " data-slide-index="1"></div><div class="zpcarousel-controller " data-slide-index="2"></div>
</div></div></div><div data-element-id="elm_d-0bTKbEriK1JQULQqow8A" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_d-0bTKbEriK1JQULQqow8A"] .zpimagetext-container figure img { width: 401px !important ; height: 401px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_d-0bTKbEriK1JQULQqow8A"] .zpimagetext-container figure img { width:401px ; height:401px ; } } @media (max-width: 767px) { [data-element-id="elm_d-0bTKbEriK1JQULQqow8A"] .zpimagetext-container figure img { width:401px ; height:401px ; } } [data-element-id="elm_d-0bTKbEriK1JQULQqow8A"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-custom zpimage-tablet-fallback-custom zpimage-mobile-fallback-custom zpimage-overlay zpimage-overlay-effect-static-bottom hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/83779592_540761879870371_2175240198574390875_n.jpg" width="401" height="401" loading="lazy" size="custom" data-lightbox="true"></picture></span><figcaption class="zpimage-caption zpimage-caption-align-center"><span class="zpimage-caption-content">O aplicativo Administrador Faronics Deep Freeze permite que você gerencie o congelamento Nuvem Profundo a partir do seu dispositivo Android.</span></figcaption></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="font-size:16px;"></span></p><p><span style="font-size:16px;"><span style="color:inherit;">Aprofundando as informações sobre o <a href="https://www.uktech.com.br/faronics-deep-freeze-cloud" title="Deep Freeze" target="_blank" rel="">Deep Freeze</a>, o software conta com uma utilização básica e avançada, usarei&nbsp;alguns exemplos para você entender como é fácil para o o time de TI:</span></span><span style="font-size:16px;"><br></span></p><p><span style="font-size:16px;"><span style="color:inherit;"></span></span></p><div style="color:inherit;"><ul><li><div style="color:inherit;"><ul><li><p><strong><span style="font-size:16px;">Ativação/Desativação:</span></strong></p></li></ul><p><span style="font-size:16px;">Para congelar o estado do sistema (bloqueio total), pressione as teclas de atalho definidas durante a instalação ou acesse o console de administração.</span></p><p><span style="font-size:16px;">Para descongelar e permitir alterações, insira a senha de administração no console.</span></p></div></li><li><p><span style="font-size:16px;"></span></p><div style="color:inherit;"><ul><li><div style="color:inherit;"><ul><li><p><strong><span style="font-size:16px;">Console de Administração:</span></strong></p></li></ul><p><span style="font-size:16px;">Abra o console de administração através do ícone na barra de tarefas.</span></p><p><span style="font-size:16px;">Aqui, você pode gerenciar os estados de congelamento, configurar opções avançadas e visualizar o histórico de eventos.</span></p></div></li></ul></div></li></ul></div>
</div></div></div><div data-element-id="elm_3lEM4gyGcencwvdF2u9gLA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_3lEM4gyGcencwvdF2u9gLA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-type3 zpheading-align-left " data-editor="true"><div style="color:inherit;"><p><strong><span style="font-weight:400;font-size:20px;">Configurações Avançadas:</span></strong></p></div></h2></div>
<div data-element-id="elm_6CcEUyP0bQ31fD5ghRGyJQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_6CcEUyP0bQ31fD5ghRGyJQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><ul><li><p><strong>Agendamento:</strong></p></li></ul><p>Utilize a função de agendamento para programar horários específicos para descongelamento automático ou congelamento.</p><ul><li><p><strong>Exclusões:</strong></p></li></ul><p>Adicione exceções para pastas ou arquivos que não serão afetados pelo <a href="https://www.uktech.com.br/faronics-deep-freeze-cloud" title="Deep Freeze" target="_blank" rel="">Deep Freeze</a>. Isso é útil para preservar dados importantes.</p><ul><li><p><strong>Atualizações:</strong></p></li></ul><p>Mantenha-se atualizado com as versões mais recentes do <a href="https://www.uktech.com.br/faronics-deep-freeze-cloud" title="Deep Freeze" target="_blank" rel="">Deep Freeze</a> para garantir a compatibilidade e aproveitar melhorias de desempenho e segurança.</p><p>Antes de congelar o sistema, aplique as atualizações e patches necessários.</p><ul><li><p><strong>Suporte Técnico:</strong></p></li></ul><p>Todo apoio fornecido pela UKTech.</p></div>
</div></div><div data-element-id="elm_-sJ1C1nHr440S7D2hZq_SA" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_-sJ1C1nHr440S7D2hZq_SA"].zpelem-box{ border-radius:1px; } </style><div data-element-id="elm_xcKHV7mt_l8I4YhPvVeW5w" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_xcKHV7mt_l8I4YhPvVeW5w"].zpelem-divider{ border-radius:1px; margin-block-start:-35px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div></div></div></div></div></div></div>]]></content:encoded><pubDate>Thu, 30 Nov 2023 15:31:39 -0300</pubDate></item><item><title><![CDATA[Serialização de dados utilizando Rust, Flatbuffers e ZeroMQ]]></title><link>https://www.uktech.com.br/bloguk/post/serialização-de-dados-utilizando-rust-flatbuffers-e-zeromq</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/Untitled -8--1.png"/>Utilizamos o processo de serialização, transformaremos o formato de uma mensagem em outra.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_4ZqJLG_hS625MnE7z8S0tw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_nPTYkZnG8qTSJay1srLN4Q" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column=""><style type="text/css"> [data-element-id="elm_nPTYkZnG8qTSJay1srLN4Q"].zprow{ border-radius:1px; } </style><div data-element-id="elm_SdzvQHdzEbj52gDRx2nGGA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_SdzvQHdzEbj52gDRx2nGGA"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_O1UN10hYkEqgoLLhbs7RLg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_O1UN10hYkEqgoLLhbs7RLg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p>A troca de mensagens no formato JSON é o método mais comum de comunicação dentro de um sistema, entretanto não é o mais performático, para obter uma melhor performance é necessário otimizar o tamanho das mensagens, para isso utilizamos o processo de serialização, transformando o formato de uma mensagem em outro.</p><p><br></p><p>Existem diversas bibliotecas de serialização, sendo a Flatbuffers uma das mais performáticas. O presente artigo tem como objetivo discorrer sobre algumas funcionalidades dessa biblioteca e mostrar como utilizá-la.</p></div>
</div></div><div data-element-id="elm_NB1irJYyYFR-074_MnLXrA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_NB1irJYyYFR-074_MnLXrA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:20px;">Por que utilizar Flatbuffers para comunicação ?</span>&nbsp;</span><br></h2></div>
<div data-element-id="elm_qhG7B4rqnzDvoc_cdzql4w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_qhG7B4rqnzDvoc_cdzql4w"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><ul><li>Baixo consumo de recursos, não necessita de espaço adicional para acessar os dados serializados;</li><li>Flexível, permite retrocompatibilidade entre versões diferentes dos esquemas de serielização;</li><li>Fácil de usar;</li><li>Fortemente tipada;</li><li>Crossplatform, o compilador FlatC permite permite a utilização de Flatbuffers na maioria das linguagens;</li></ul></div>
</div></div><div data-element-id="elm_W9iWzfndk8Z0KbDqNwQj6g" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_W9iWzfndk8Z0KbDqNwQj6g"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h3><span style="font-size:20px;">Por onde começar ?</span></h3></div></h2></div>
<div data-element-id="elm_gH4JxwyKHe9gDKPOOvXKZA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_gH4JxwyKHe9gDKPOOvXKZA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Instalando o transpilador FlatC, responsável por traduzir os <span style="font-style:italic;">schemas</span> das mensagens em código, muitas distribuições linux trazem o pacote flatbuffers e flatbuffers-devel, para outros casos consulte é necessário compilar a partir do<a href="https://github.com/google/flatbuffers/releases/tag/v23.5.26"> código fonte</a>.</span><br></p></div>
</div><div data-element-id="elm_pPeQPGr0FVOe18hpMASMiQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_pPeQPGr0FVOe18hpMASMiQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h3><span style="font-size:20px;">Definindo um esquema</span></h3></div></h2></div>
<div data-element-id="elm_oJ2vbauMhK1ImOn2JFPIzw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_oJ2vbauMhK1ImOn2JFPIzw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>Vamos definir um esquema básico de comunicação seguindo a <a href="https://flatbuffers.dev/flatbuffers_guide_writing_schema.html" title="documentação:" target="_blank" rel="">documentação:</a></p></div>
</div><div data-element-id="elm_UOU1Q09nv28WrC4VCCHBVA" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://gist.github.com/MatheusReichert/be273fd4624640e7765baf9dd153197e.js"></script></div>
</div><div data-element-id="elm_c2S5JiNZhN7HRcsNislI_A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_c2S5JiNZhN7HRcsNislI_A"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p>No esquema acima temos uma mensagem Base que é composta por uma id, um nome e um dispositivo. Utilizando a declaração <em>union</em> podemos utilizar diferentes dispositivos em um campo da mensagem. Essa union se comporta como uma tupla, tendo como valor na posição 0 o campo oculto None permitindo que a mensagem seja enviada sem um dispositivo.</p><p><br></p><p>Agora basta compilar o arquivo .fbs criado utilizando o comando:</p></div>
</div></div><div data-element-id="elm_4Lm3sJrpiaRxrW9qjr0Y9w" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"> flatc --rust nome-do-arquivo.fbs </div>
</div><div data-element-id="elm_LIEstI7Kbjs3jF5u_ibxxg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_LIEstI7Kbjs3jF5u_ibxxg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p>E adicionar o arquivo <a href="http://generated.rs">generated.rs</a> ao projeto.</p><h3></h3></div>
</div></div><div data-element-id="elm_l4qyW-7LYuzAiqllfkEokA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_l4qyW-7LYuzAiqllfkEokA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Exe<span style="font-size:20px;">mplo</span></span><span style="font-size:20px;">:</span></h2></div>
<div data-element-id="elm_TBkfuUGmbISvedyRB1mH4Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_TBkfuUGmbISvedyRB1mH4Q"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div> Para exemplo vamos utilizar a biblioteca de comunicação zeromq em uma arquitetura cliente-servidor simples, considerando o projeto já com as dependências segue o código do servidor: </div>
</div></div></div><div data-element-id="elm_YtSDuckU0jMap5H0a4Rrog" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://gist.github.com/MatheusReichert/39a408c220a302b9a3491b4834c861b8.js"></script></div>
</div><div data-element-id="elm_QlnrDaenK5_1Vl_i1enClg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_QlnrDaenK5_1Vl_i1enClg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div> E do cliente:&nbsp; </div>
</div></div></div><div data-element-id="elm_wMF48ShAHu7auuKYX1kTiQ" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://gist.github.com/MatheusReichert/1f8bbed091c87bdf73b2ed2bb6ff797d.js"></script></div>
</div><div data-element-id="elm_UrOMWNblTVXvE0IVTbQOmg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_UrOMWNblTVXvE0IVTbQOmg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Resultado:</span><br></p></div>
</div><div data-element-id="elm_jv0d-DD4sLRO76QSsluVIA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_jv0d-DD4sLRO76QSsluVIA"] .zpimage-container figure img { width: 1110px ; height: 494.18px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_jv0d-DD4sLRO76QSsluVIA"] .zpimage-container figure img { width:723px ; height:321.89px ; } } @media (max-width: 767px) { [data-element-id="elm_jv0d-DD4sLRO76QSsluVIA"] .zpimage-container figure img { width:415px ; height:184.76px ; } } [data-element-id="elm_jv0d-DD4sLRO76QSsluVIA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-8--1.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-8--1.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-8--1.png" width="415" height="184.76" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_kzJqJvJ5dQd4VpYJF-VZ1A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_kzJqJvJ5dQd4VpYJF-VZ1A"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><h3><span style="font-size:16px;">Código fonte disponível em:</span></h3><p><a href="https://github.com/uktechbr/artigo-rust-flatbuffer">https://github.com/uktechbr/artigo-rust-flatbuffer</a></p></div>
</div></div></div></div></div></div></div>]]></content:encoded><pubDate>Wed, 22 Nov 2023 16:35:45 -0300</pubDate></item><item><title><![CDATA[IoT: Como as Tecnologias Inteligentes estão Presentes em nosso dia a dia]]></title><link>https://www.uktech.com.br/bloguk/post/IoT-Como-as-Tecnologias-Inteligentes-estão-Presentes-em-nosso-dia-a-dia</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/1690375867411.jpeg"/>A Internet das Coisas (IoT, sigla em inglês) é uma variedade de objetos que possuem integração com internet, sensores, softwares e outras tecnologias, estas se concatenam e trocam dados com dispositivos distintos e internet.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_U08HNvRqSFG6NYlnRl3ijA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_tbu4yoQcRjairkq9w-6feg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_Wfp3bnHWQ_WJFVFbj-mG_Q" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_Wfp3bnHWQ_WJFVFbj-mG_Q"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_n_5tnSyvTl6dIlrNHCAxug" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_n_5tnSyvTl6dIlrNHCAxug"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center "><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="/Fale-conosco" target="_blank"><span class="zpbutton-content">Fale Conosco</span></a></div>
</div><div data-element-id="elm_j0O0-kkbBooLfJ851eg84w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_j0O0-kkbBooLfJ851eg84w"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;font-size:16px;">A Internet das Coisas (IoT, sigla em inglês) é uma variedade de objetos que possuem integração com internet, sensores, softwares e outras tecnologias, estas se concatenam e trocam dados com dispositivos distintos e internet. Há itens domésticos corriqueiros a máquinas industriais com esse recurso. Segundo a pesquisa ISG Provider Lens Internet das Coisas (IoT) prevê-se que o número total de dispositivos da Internet das Coisas (IoT) crescerá de 11 bilhões hoje para 50 bilhões até 2025. O entusiasmo e a aquisição por IoT cresceram exuberantemente na última década e estão adquirindo mais força.&nbsp;</span><br></p></div>
</div><div data-element-id="elm_TcA8C5EH0LKbNJ9Z7HamVw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_TcA8C5EH0LKbNJ9Z7HamVw"] .zpimagetext-container figure img { width: 500px ; height: 433.65px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_TcA8C5EH0LKbNJ9Z7HamVw"] .zpimagetext-container figure img { width:500px ; height:433.65px ; } } @media (max-width: 767px) { [data-element-id="elm_TcA8C5EH0LKbNJ9Z7HamVw"] .zpimagetext-container figure img { width:500px ; height:433.65px ; } } [data-element-id="elm_TcA8C5EH0LKbNJ9Z7HamVw"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="right" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-right zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/1690379613182.jpeg" width="500" height="433.65" loading="lazy" size="medium" data-lightbox="true"></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:inherit;"><span style="font-size:20px;">Algumas dessas IoT's já são bem conhecidas e usuais como as assistentes Virtuais em Smartphones e outras nem tão populares como as Smart Grid.</span></span><br></p><div><ul><li><span style="font-size:16px;"><span style="color:rgb(49, 188, 173);">Dispositivos Domésticos Inteligentes:</span><span style="color:inherit;">&nbsp;Produtos como lâmpadas inteligentes, termostatos, assistentes virtuais (como Amazon Echo ou Google Home) e fechaduras inteligentes permitem controlar diferentes aspectos da casa de forma remota e automatizada.</span></span><br></li></ul></div>
</div></div></div><div data-element-id="elm_-TRSsJtO6CEWSPcjClt08Q" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_-TRSsJtO6CEWSPcjClt08Q"] .zpimagetext-container figure img { width: 500px ; height: 281.25px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_-TRSsJtO6CEWSPcjClt08Q"] .zpimagetext-container figure img { width:500px ; height:281.25px ; } } @media (max-width: 767px) { [data-element-id="elm_-TRSsJtO6CEWSPcjClt08Q"] .zpimagetext-container figure img { width:500px ; height:281.25px ; } } [data-element-id="elm_-TRSsJtO6CEWSPcjClt08Q"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/1690381622764.jpeg" width="500" height="281.25" loading="lazy" size="medium" data-lightbox="true"></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><div><ul><li><span style="font-size:16px;"><span style="color:rgb(49, 188, 173);">Wearable Devices (Dispositivos Vestíveis):</span><span style="color:inherit;">&nbsp;Smartwatches, pulseiras fitness e outros wearables coletam dados sobre atividades físicas, frequência cardíaca, qualidade do sono e muito mais.</span></span><br></li></ul></div>
</div></div></div><div data-element-id="elm_RG0iSvNjzqyklNu6Py9_hQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_RG0iSvNjzqyklNu6Py9_hQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div><ul><li><span style="color:rgb(49, 188, 173);">Wearable Devices (Dispositivos Vestíveis):&nbsp;</span><span style="color:inherit;">Smartwatches, pulseiras fitness e outros wearables coletam dados sobre atividades físicas, frequência cardíaca, qualidade do sono e muito mais.</span></li><li><span style="color:rgb(49, 188, 173);">Assistentes Virtuais em Smartphones:</span><span style="color:inherit;">&nbsp;Os assistentes de voz, como Siri (Apple), Google Assistant (Android) e Alexa (Amazon), são exemplos de tecnologias IoT que permitem realizar tarefas usando apenas comandos de voz.</span></li><li><span style="color:rgb(49, 188, 173);">Smart Home Entertainment:&nbsp;</span><span style="color:inherit;">Smart TVs e dispositivos de streaming conectados à internet permitem assistir a conteúdos sob demanda, acessar serviços de streaming e controlar a reprodução usando dispositivos móveis.</span></li><li><span style="color:rgb(49, 188, 173);">Sistemas de Segurança Inteligentes:</span><span style="color:inherit;">&nbsp;Câmeras de segurança conectadas à internet permitem monitorar e receber alertas sobre a segurança da casa mesmo quando o usuário está ausente.</span></li><li><span style="color:rgb(49, 188, 173);">Dispositivos de Saúde Conectados:</span><span style="color:inherit;">&nbsp;Monitores de saúde, como medidores de glicose, medidores de pressão arterial e balanças inteligentes, que coletam dados de saúde e os enviam para aplicativos móveis ou plataformas online para acompanhamento.</span></li></ul></div>
</div></div><div data-element-id="elm_Q7rDUSNI5196hOlbv17GTw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_Q7rDUSNI5196hOlbv17GTw"] .zpimagetext-container figure img { width: 500px ; height: 333.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_Q7rDUSNI5196hOlbv17GTw"] .zpimagetext-container figure img { width:500px ; height:333.00px ; } } @media (max-width: 767px) { [data-element-id="elm_Q7rDUSNI5196hOlbv17GTw"] .zpimagetext-container figure img { width:500px ; height:333.00px ; } } [data-element-id="elm_Q7rDUSNI5196hOlbv17GTw"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/1690380962950.jpeg" width="500" height="333.00" loading="lazy" size="medium" data-lightbox="true"></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><div style="color:inherit;"><ul><li><span style="font-size:16px;">Pagamentos por Aproximação (NFC):&nbsp;Tecnologia usada em cartões de crédito e smartphones para realizar pagamentos sem contato físico, agilizando transações em lojas, transportes públicos e outros locais.</span><br></li></ul></div>
</div></div></div><div data-element-id="elm_lZbGnZb6h2WewRUP19wdkg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_lZbGnZb6h2WewRUP19wdkg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div><ul><li><span style="font-weight:400;color:rgb(49, 188, 173);">Sistemas de Rastreamento de Ativos:</span><span style="color:inherit;">&nbsp;Tecnologias de rastreamento de localização, como GPS, são usadas em dispositivos como smartphones, relógios e veículos para ajudar na navegação e rastreamento de itens perdidos.</span><br></li><li><span style="color:rgb(49, 188, 173);">Smart Grids:</span><span style="color:inherit;">&nbsp;Sistemas inteligentes de gestão de energia que monitoram, controlam e otimizam o consumo de energia em residências e empresas, ajudando a economizar energia e reduzir custos. Como o sistemas inteligentes de gestão de energia que monitoram, controlam e otimizam o consumo de energia em residências e empresas, ajudando a economizar energia e reduzir custos.</span></li></ul><p style="color:inherit;">Com as facilidades proporcionadas pela IOT tende-se a reduzir a presença humana em muitas atividades perigosas, monótonas e cansativas, direcionado a humanidade para atividades menos perigosas, mais desafiadoras e estimulantes.</p></div>
</div></div><div data-element-id="elm_o1eEgewNRrIBhzh_-CzsqQ" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_o1eEgewNRrIBhzh_-CzsqQ"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_mVkHR4f4TcvE93wK33Fc2g" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_mVkHR4f4TcvE93wK33Fc2g"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>Referência:&nbsp;<a href="https://isg-one.com/articles/iot-in-a-zero-trust-world?searchTerms=Internet%2Bdas%2BCoisas%2B%28IoT%29%2B">https://isg-one.com/articles/iot-in-a-zero-trust-world?searchTerms=Internet+das+Coisas+%28IoT%29+</a></p></div>
</div><div data-element-id="elm_4G04hVs8OmujdKBZR1TRng" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_4G04hVs8OmujdKBZR1TRng"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div></div></div></div></div></div>]]></content:encoded><pubDate>Tue, 14 Nov 2023 15:13:29 -0300</pubDate></item><item><title><![CDATA[ESP-IDF: Publicando componentes para o Espressif IDF Component Registry]]></title><link>https://www.uktech.com.br/bloguk/post/esp-idf-publicando-componentes-para-o-espressif-idf-component-registry</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/leandra-rieger-GsiX1c51hGs-unsplash.jpg"/>O tutorial de hoje tem como objetivo ensinar a publicar componentes para o novíssimo Espressif IDF Component Registry, esse que tem por objetivo se tornar o padrão para distribuição de componentes dentro da plataforma IDF.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_QRSsl1y-k3rTRAXc5eGriw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_QRSsl1y-k3rTRAXc5eGriw"].zpsection{ border-radius:1px; } </style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_0MLKRMO2cxPWJzQL4qfF7Q" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column=""><style type="text/css"> [data-element-id="elm_0MLKRMO2cxPWJzQL4qfF7Q"].zprow{ border-radius:1px; } </style><div data-element-id="elm_bKHp4lH9Q7jLfX3HPHyrfw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_bKHp4lH9Q7jLfX3HPHyrfw"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_JV6rMVUI-R6UrK8RZEkyow" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_JV6rMVUI-R6UrK8RZEkyow"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">O tutorial de hoje tem como objetivo ensinar a publicar componentes para o novíssimo <span style="font-weight:600;"> Espressif IDF Component Registry, </span>esse que tem por objetivo se tornar o padrão para distribuição de componentes dentro da plataforma IDF.</span><br></p></div>
</div><div data-element-id="elm_LJ--EpqJcOW29KxONsKJYg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_LJ--EpqJcOW29KxONsKJYg"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;">Credenciais:</span></h2></div>
<div data-element-id="elm_LOf4oxVuQHF-3eJ6iYXigg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_LOf4oxVuQHF-3eJ6iYXigg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">O primeiro passo para publicação de um componente é a criação de uma conta no <a href="https://components.espressif.com/users/me">ESP Registry</a>, com a conta criada basta gerar um <span style="font-weight:600;">Token</span> de acesso com permissão de criação de componentes no mesmo.</span><br></p></div>
</div><div data-element-id="elm_Gq6C-GBm0cnMK7HTJfiM2g" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_Gq6C-GBm0cnMK7HTJfiM2g"] .zpimage-container figure img { width: 1110px ; height: 356.16px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_Gq6C-GBm0cnMK7HTJfiM2g"] .zpimage-container figure img { width:723px ; height:231.99px ; } } @media (max-width: 767px) { [data-element-id="elm_Gq6C-GBm0cnMK7HTJfiM2g"] .zpimage-container figure img { width:415px ; height:133.16px ; } } [data-element-id="elm_Gq6C-GBm0cnMK7HTJfiM2g"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-21-.png" width="415" height="133.16" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_UUo7pBtX1hGHc1IFgvTDVw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_UUo7pBtX1hGHc1IFgvTDVw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Com as credencias agora é necessário criar o arquivo<span style="font-weight:600;"> idf_component_manager.yml </span>dentro da pasta de instalação do IDF (no Linux ~/.espressif/idf_component_manager.yml). Com a seguinte estrutura</span><br></p></div>
</div><div data-element-id="elm_c8U1w6V9RxuPR-mwmJghZg" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"> profiles: default: api_token: token default_namespace: meu-namespace </div>
</div><div data-element-id="elm_d2ldaLSxz_GIU5LMxykzgQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_d2ldaLSxz_GIU5LMxykzgQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h3>Configurar o componente:</h3></div></h2></div>
<div data-element-id="elm_NGs7dia6zenfUrpmOrc7Zg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_NGs7dia6zenfUrpmOrc7Zg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div><p style="color:inherit;">As informações da publicação do componente são referentes a um arquivo chamado <strong>idf_component.yml</strong> que deve residir na raiz do projeto. Este contém a informação da versão, descrição, url do repositório remoto do projeto (ex: Github), dependências e a licença do componente.</p><p><span style="font-size:20px;color:rgb(17, 55, 106);">Exemplo:</span></p></div>
</div></div><div data-element-id="elm_13ll3zsDn8g2Sygd7ydlvQ" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"> version: "1.0.1" description: Emonlib ESP-IDF url: https://github.com/uktechbr/emonlib-esp-idf dependencies: idf: "&gt;=4.0" license: "AGPL-3.0-only" </div>
</div><div data-element-id="elm_wv09QhXhc8Hw2RTDmD1Y1g" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_wv09QhXhc8Hw2RTDmD1Y1g"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><h3>Publicar componente</h3></div></h2></div>
<div data-element-id="elm_22xUdR2g8utDp36wJqOo5g" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_22xUdR2g8utDp36wJqOo5g"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p>Com todas as etapas anteriores concluídas basta rodar o comando:</p><p><code>compote component upload --namespace [namespace] --name [nome do componente]</code></p></div>
</div></div><div data-element-id="elm_Rpv-ULg2Xp_hR6ADj0Boig" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_Rpv-ULg2Xp_hR6ADj0Boig"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;">Curiosidade:</span></h2></div>
<div data-element-id="elm_os3eFuthBmqXaQAmRHZDBw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_os3eFuthBmqXaQAmRHZDBw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Primeiro componente publicado pela UKTech:</span><br></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;"><a href="https://components.espressif.com/components/uktech/emonlib-esp-idf">https://components.espressif.com/components/uktech/emonlib-esp-idf</a><br></span></p></div>
</div><div data-element-id="elm_58V50Z49LutTDajW9l4RZA" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_58V50Z49LutTDajW9l4RZA"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_4q_l8zR61nPWVyNDFhlJjQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_4q_l8zR61nPWVyNDFhlJjQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div><div><span style="color:rgb(17, 55, 106);">Sobre o autor:</span><br><br></div>
<div style="color:inherit;"> Matheus desempenha o papel de desenvolvedor de sistemas de tecnologia da informação dentro da equipe da UKTech. Possui&nbsp; experiência no domínio de microcontroladores e desenvolvimento de software, e está na reta final de sua graduação em Engenharia de Computação. Em seus momentos de lazer, ele se dedica a interesses como jogos de computador e a apreciação de animes. </div>
</div></div></div><div data-element-id="elm_5HqcIecejR4SkyRvoc5N2g" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_5HqcIecejR4SkyRvoc5N2g"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div></div></div></div></div></div>]]></content:encoded><pubDate>Wed, 01 Nov 2023 17:32:52 -0300</pubDate></item><item><title><![CDATA[ESP-IDF: Criando e utilizando componentes]]></title><link>https://www.uktech.com.br/bloguk/post/esp-idf-criando-e-utilizando-componentes</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/behnam-norouzi-VgN_G9M1zXA-unsplash.jpg"/>Componentes são a base dos projetos feitos no ESP-IDF, eles são uma ótima ferramenta para modularizar, abstrair e reutilizar código.&nbsp; Os component ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_6eMBZ6WnLp8cwq1RyHzsdw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_6eMBZ6WnLp8cwq1RyHzsdw"].zpsection{ border-radius:1px; } </style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_MrR_-o2_gUcMfCLo6rXIbw" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"> [data-element-id="elm_MrR_-o2_gUcMfCLo6rXIbw"].zprow{ border-radius:1px; } </style><div data-element-id="elm_NoxmfklDA2i0EPvA5qAgEg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_NoxmfklDA2i0EPvA5qAgEg"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_pdop8bE0zi4kP604fDMZZg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_pdop8bE0zi4kP604fDMZZg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;"><span style="color:inherit;">Componentes são a base dos projetos feitos no ESP-IDF, eles são uma ótima ferramenta para modularizar, abstrair e reutilizar código.&nbsp;</span><br></p></div>
</div><div data-element-id="elm_ZPNLNFD3JkZ8KhVAzkCErw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_ZPNLNFD3JkZ8KhVAzkCErw"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Onde ficam os componentes de um projeto ?</span><br></h2></div>
<div data-element-id="elm_x-PSWbb59XjRwG1oZ3EBew" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_x-PSWbb59XjRwG1oZ3EBew"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Os componentes de um projeto por padrão se encontram na pasta <span style="font-style:italic;">components</span> dentro da raiz do mesmo.</span><br></p></div>
</div><div data-element-id="elm__l0cmBNEzAPQuDBDZkl0Zg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm__l0cmBNEzAPQuDBDZkl0Zg"] .zpimage-container figure img { width: 1110px ; height: 153.39px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm__l0cmBNEzAPQuDBDZkl0Zg"] .zpimage-container figure img { width:723px ; height:99.91px ; } } @media (max-width: 767px) { [data-element-id="elm__l0cmBNEzAPQuDBDZkl0Zg"] .zpimage-container figure img { width:415px ; height:57.35px ; } } [data-element-id="elm__l0cmBNEzAPQuDBDZkl0Zg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-13-.png" width="415" height="57.35" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_gG5woDGRQQOQKpdH1CTfvw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_gG5woDGRQQOQKpdH1CTfvw"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Criando um componente:</span><br></h2></div>
<div data-element-id="elm_gYUfSlrlh1QWhoylteObWw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_gYUfSlrlh1QWhoylteObWw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Basta utilizar o atalho CTRL + SHIFT + P e selecionar o comando <span style="font-weight:600;">ESP-IDF: Create new ESP-IDF Component</span>, em seguida declarar o nome deste novo componente.</span><br></p></div>
</div><div data-element-id="elm_2jumzDThXK79ZVHbEGdr9w" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_2jumzDThXK79ZVHbEGdr9w"] .zpimage-container figure img { width: 601px !important ; height: 448px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_2jumzDThXK79ZVHbEGdr9w"] .zpimage-container figure img { width:601px ; height:448px ; } } @media (max-width: 767px) { [data-element-id="elm_2jumzDThXK79ZVHbEGdr9w"] .zpimage-container figure img { width:601px ; height:448px ; } } [data-element-id="elm_2jumzDThXK79ZVHbEGdr9w"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-14-.png" width="601" height="448" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_dvDOnSaCjHATcZlD8Sx_kg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_dvDOnSaCjHATcZlD8Sx_kg"] .zpimage-container figure img { width: 601px !important ; height: 64px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_dvDOnSaCjHATcZlD8Sx_kg"] .zpimage-container figure img { width:601px ; height:64px ; } } @media (max-width: 767px) { [data-element-id="elm_dvDOnSaCjHATcZlD8Sx_kg"] .zpimage-container figure img { width:601px ; height:64px ; } } [data-element-id="elm_dvDOnSaCjHATcZlD8Sx_kg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-16-.png" width="601" height="64" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_f-981PiKLh8vxWTHhP1WpA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_f-981PiKLh8vxWTHhP1WpA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Estrutura de um Componente:</span></h2></div>
<div data-element-id="elm_nhhatUrEgs3HiEbWEguLvA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_nhhatUrEgs3HiEbWEguLvA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div> Por padrão um componente consiste em um pasta include para arquivos de cabeçalho, arquivos de código fonte e um arquivo CMakeLists.txt. </div>
<br><div> A função do arquivo CMakeLists.txt é justamente declarar essa estrutura, mas não só, ele também é responsável por declarar as dependências externas do componente, como por exemplo a API de log’s do próprio IDF. </div>
</div></div></div><div data-element-id="elm_K7bn7AVZqs3Vphu7hxoB-Q" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_K7bn7AVZqs3Vphu7hxoB-Q"] .zpimage-container figure img { width: 482px !important ; height: 167px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_K7bn7AVZqs3Vphu7hxoB-Q"] .zpimage-container figure img { width:482px ; height:167px ; } } @media (max-width: 767px) { [data-element-id="elm_K7bn7AVZqs3Vphu7hxoB-Q"] .zpimage-container figure img { width:482px ; height:167px ; } } [data-element-id="elm_K7bn7AVZqs3Vphu7hxoB-Q"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-17-.png" width="482" height="167" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_kdfPtVvf0xdjmE_jghYuSw" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_kdfPtVvf0xdjmE_jghYuSw"] .zpimage-container figure img { width: 672px !important ; height: 105px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_kdfPtVvf0xdjmE_jghYuSw"] .zpimage-container figure img { width:672px ; height:105px ; } } @media (max-width: 767px) { [data-element-id="elm_kdfPtVvf0xdjmE_jghYuSw"] .zpimage-container figure img { width:672px ; height:105px ; } } [data-element-id="elm_kdfPtVvf0xdjmE_jghYuSw"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-18-.png" width="672" height="105" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_xrbBGgLNpCKD9p9WpvE9Og" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_xrbBGgLNpCKD9p9WpvE9Og"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Usando um componente:</span><br></h2></div>
<div data-element-id="elm_3ip2gCmndhzffXE9LDssig" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_3ip2gCmndhzffXE9LDssig"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Vamos tomar como exemplo um componente <span style="font-weight:600;">hello </span>que tem como função imprimir um log na saída serial do microcontrolador, o nome dessa função também sera hello, basta incluir o arquivo de cabeçalho na função main.</span><br></p></div>
</div><div data-element-id="elm_TiZ_jh2acSHQbAFCPSFDRA" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://gist.github.com/MatheusReichert/269b6a3557583ec516ae7bb8d46af69d.js"></script></div>
</div><div data-element-id="elm_woHJ6aKBmrQ6iRgHSpPL8w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_woHJ6aKBmrQ6iRgHSpPL8w"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;"><span style="font-size:20px;">E declarar a dependência no arquivo CMakeLists.txt da pasta main.</span></span><br></p></div>
</div><div data-element-id="elm_ViExekmBqeJk8aSt3ejnEg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_ViExekmBqeJk8aSt3ejnEg"] .zpimage-container figure img { width: 672px !important ; height: 105px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_ViExekmBqeJk8aSt3ejnEg"] .zpimage-container figure img { width:672px ; height:105px ; } } @media (max-width: 767px) { [data-element-id="elm_ViExekmBqeJk8aSt3ejnEg"] .zpimage-container figure img { width:672px ; height:105px ; } } [data-element-id="elm_ViExekmBqeJk8aSt3ejnEg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-18-.png" width="672" height="105" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_JRJkkOs7wsynczAWEW0ObQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_JRJkkOs7wsynczAWEW0ObQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Resultado rodando no micro controlador</span></h2></div>
<div data-element-id="elm_bEplG3C8RAHGnghPQeD5ig" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_bEplG3C8RAHGnghPQeD5ig"] .zpimage-container figure img { width: 1110px ; height: 255.20px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_bEplG3C8RAHGnghPQeD5ig"] .zpimage-container figure img { width:723px ; height:166.22px ; } } @media (max-width: 767px) { [data-element-id="elm_bEplG3C8RAHGnghPQeD5ig"] .zpimage-container figure img { width:415px ; height:95.41px ; } } [data-element-id="elm_bEplG3C8RAHGnghPQeD5ig"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-20-.png" width="415" height="95.41" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_Z2d51LZch8G0Rdb795t-uA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_Z2d51LZch8G0Rdb795t-uA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Código fonte deste tutorial disponível na pasta hello-component em:</span><br></h2></div>
<div data-element-id="elm_S-irVNIIrsrnOrWIp0bVsg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_S-irVNIIrsrnOrWIp0bVsg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><a href="https://github.com/uktechbr/esp-devkit-samples/">https://github.com/uktechbr/esp-devkit-samples/</a><br></p></div>
</div></div></div></div></div></div>]]></content:encoded><pubDate>Wed, 25 Oct 2023 15:47:07 -0300</pubDate></item><item><title><![CDATA[ESP-IDF: Meu primeiro projeto (Hello World)]]></title><link>https://www.uktech.com.br/bloguk/post/esp-idf-meu-primeiro-projeto-hello-world</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/getty-images-SdaYKNBkXEg-unsplash.jpg"/>No tutorial de hoje vamos criar um projeto passo a passo utilizando o ESP-IDF, assumindo que o ESP-IDF já esta instalado, o projeto ira utilizar a saída serial do microcontrolador para imprimir o texto “Hello World” (Olá Mundo).]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_eoD8KxBWSrqfcMSggs7P4A" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_JmLTBJXcSmCSVRKMCYF5TQ" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_6dZt-FUnTYKqeF-Hv1Nh2w" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_6dZt-FUnTYKqeF-Hv1Nh2w"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_WewO3JKhQ3eg7-QGzBZGFA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_WewO3JKhQ3eg7-QGzBZGFA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;"><span style="color:inherit;">No tutorial de hoje vamos criar um projeto passo a passo utilizando o ESP-IDF, assumindo que o ESP-IDF já esta instalado, o projeto ira utilizar a saída serial do microcontrolador para imprimir o texto “Hello World” (Olá Mundo).</span><br></p></div>
</div><div data-element-id="elm_m2V3SZJeEkckCt9NUOti4g" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_m2V3SZJeEkckCt9NUOti4g"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">VSCode</span><br></h2></div>
<div data-element-id="elm_G8zmPL6J7FE0xJZIsNwXlA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_G8zmPL6J7FE0xJZIsNwXlA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Utilizando o atalho CTRL + SHIFT + P irá abrir a janela de comandos no VSCode.</span><br></p></div>
</div><div data-element-id="elm_nc5nZJpUUHqvV_Bmc3Ymqg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_nc5nZJpUUHqvV_Bmc3Ymqg"] .zpimage-container figure img { width: 1110px ; height: 625.35px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_nc5nZJpUUHqvV_Bmc3Ymqg"] .zpimage-container figure img { width:723px ; height:407.32px ; } } @media (max-width: 767px) { [data-element-id="elm_nc5nZJpUUHqvV_Bmc3Ymqg"] .zpimage-container figure img { width:415px ; height:233.80px ; } } [data-element-id="elm_nc5nZJpUUHqvV_Bmc3Ymqg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled-1.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled-1.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled-1.png" width="415" height="233.80" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_ha9fn1fw5vrO6uYCg6Q9Ig" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_ha9fn1fw5vrO6uYCg6Q9Ig"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Criando o projeto</span></h2></div>
<div data-element-id="elm_0pLzB5bqifvMJQteONQ4dg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_0pLzB5bqifvMJQteONQ4dg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Selecione a opção ESP-IDF: New Project.</span><br></p></div>
</div><div data-element-id="elm_-PLXmIRMwoqaxdJ8Fa3aHg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_-PLXmIRMwoqaxdJ8Fa3aHg"] .zpimage-container figure img { width: 613px !important ; height: 460px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_-PLXmIRMwoqaxdJ8Fa3aHg"] .zpimage-container figure img { width:613px !important ; height:460px !important ; } } @media (max-width: 767px) { [data-element-id="elm_-PLXmIRMwoqaxdJ8Fa3aHg"] .zpimage-container figure img { width:415px ; height:311.42px ; } } [data-element-id="elm_-PLXmIRMwoqaxdJ8Fa3aHg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-original" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-size-original zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-1-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-1-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-1-.png" width="415" height="311.42" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_QR8sXe6CYvz3rB2IrZDA3A" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_QR8sXe6CYvz3rB2IrZDA3A"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Configurando o projeto</span></h2></div>
<div data-element-id="elm_VzIQwYdKXuKx3wiLAoTaxw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_VzIQwYdKXuKx3wiLAoTaxw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Agora vamos definir o nome do projeto, o diretório (”pasta”) onde o mesmo deve ser salvo e as configurações relativas a placa de desenvolvimento utilizada.&nbsp;</span><br></p></div>
</div><div data-element-id="elm_11NT3I1uuQwmficTVyKkHg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_11NT3I1uuQwmficTVyKkHg"] .zpimage-container figure img { width: 1110px ; height: 495.96px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_11NT3I1uuQwmficTVyKkHg"] .zpimage-container figure img { width:723px ; height:323.04px ; } } @media (max-width: 767px) { [data-element-id="elm_11NT3I1uuQwmficTVyKkHg"] .zpimage-container figure img { width:415px ; height:185.43px ; } } [data-element-id="elm_11NT3I1uuQwmficTVyKkHg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-3-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-3-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-3-.png" width="415" height="185.43" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_CEwA8bQWfBQYIDvn6SKftg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_CEwA8bQWfBQYIDvn6SKftg"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Template</span></h2></div>
<div data-element-id="elm_0IKtTXdDCvyqRVuMsJHdDQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_0IKtTXdDCvyqRVuMsJHdDQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">O ESP-IDF nos permite iniciar nosso projeto a partir de um template, os arquivos de template geralmente são os exemplos dentro do repositório do mesmo, para o nosso projeto vamos escolher o template hello_world.</span><br></p></div>
</div><div data-element-id="elm__OFEaMeIOYKg1J7rHKfPXg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm__OFEaMeIOYKg1J7rHKfPXg"] .zpimage-container figure img { width: 1110px ; height: 529.03px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm__OFEaMeIOYKg1J7rHKfPXg"] .zpimage-container figure img { width:723px ; height:344.58px ; } } @media (max-width: 767px) { [data-element-id="elm__OFEaMeIOYKg1J7rHKfPXg"] .zpimage-container figure img { width:415px ; height:197.79px ; } } [data-element-id="elm__OFEaMeIOYKg1J7rHKfPXg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-4-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-4-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-4-.png" width="415" height="197.79" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_NuQaX_cMpeJuW4Ivk-ta3A" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_NuQaX_cMpeJuW4Ivk-ta3A"] .zpimage-container figure img { width: 1110px ; height: 529.03px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_NuQaX_cMpeJuW4Ivk-ta3A"] .zpimage-container figure img { width:723px ; height:344.58px ; } } @media (max-width: 767px) { [data-element-id="elm_NuQaX_cMpeJuW4Ivk-ta3A"] .zpimage-container figure img { width:415px ; height:197.79px ; } } [data-element-id="elm_NuQaX_cMpeJuW4Ivk-ta3A"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-5-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-5-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-5-.png" width="415" height="197.79" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_Ho_dJ_45qdXSD_3ni0C0dw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Ho_dJ_45qdXSD_3ni0C0dw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">⚠ Se atente ao pop-up que vai surgir para abrir o novo projeto criado.</span><br></p></div>
</div><div data-element-id="elm_Q1XfIKvQ-JAzG8eiXfYG3w" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_Q1XfIKvQ-JAzG8eiXfYG3w"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">CMake: como o IDF configura o projeto</span><br></h2></div>
<div data-element-id="elm_3WkYVlL2tgt2p5svX6e50A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_3WkYVlL2tgt2p5svX6e50A"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p>O ESP-IDF utiliza o CMake para gerenciar as configurações de um projeto, como esse não é o foco do tutorial cobriremos apenas o básico sobre.</p><p>Após a criação do projeto é necessário popular o arquivo sdkconfig com as variáveis relativas ao micro controlador e projeto, para isso basta selecionar na barra inferior do vscode o micro controlador.</p></div>
</div></div><div data-element-id="elm_xwnP0xFtaibT6k1Xxl850g" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_xwnP0xFtaibT6k1Xxl850g"] .zpimage-container figure img { width: 1431.31px ; height: 49px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_xwnP0xFtaibT6k1Xxl850g"] .zpimage-container figure img { width:723px ; height:24.84px ; } } @media (max-width: 767px) { [data-element-id="elm_xwnP0xFtaibT6k1Xxl850g"] .zpimage-container figure img { width:415px ; height:14.26px ; } } [data-element-id="elm_xwnP0xFtaibT6k1Xxl850g"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-6-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-6-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-6-.png" width="415" height="14.26" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_sBIVQvLDwlTt8KRbT5UpIQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_sBIVQvLDwlTt8KRbT5UpIQ"] .zpimage-container figure img { width: 1110.36px !important ; height: 459px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_sBIVQvLDwlTt8KRbT5UpIQ"] .zpimage-container figure img { width:607px !important ; height:251px !important ; } } @media (max-width: 767px) { [data-element-id="elm_sBIVQvLDwlTt8KRbT5UpIQ"] .zpimage-container figure img { width:415px ; height:171.61px ; } } [data-element-id="elm_sBIVQvLDwlTt8KRbT5UpIQ"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-original" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-size-original zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-7-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-7-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-7-.png" width="415" height="171.61" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_8TkIDLeNfW15ilcb9NBYSA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_8TkIDLeNfW15ilcb9NBYSA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Como estou utilizando o UKT-ESP32C3-DEV-MINI-USB selecionarei o ESP32-C3, para utilizar um conversor serial (opção mais comum) seleciono a opção via ESP-PROG.</span><br></p></div>
</div><div data-element-id="elm_lU1RT3z9M36M15saNVZ5UA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_lU1RT3z9M36M15saNVZ5UA"] .zpimage-container figure img { width: 1115px !important ; height: 216px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_lU1RT3z9M36M15saNVZ5UA"] .zpimage-container figure img { width:599px !important ; height:116px !important ; } } @media (max-width: 767px) { [data-element-id="elm_lU1RT3z9M36M15saNVZ5UA"] .zpimage-container figure img { width:415px ; height:80.37px ; } } [data-element-id="elm_lU1RT3z9M36M15saNVZ5UA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-original" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-size-original zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-8-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-8-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-8-.png" width="415" height="80.37" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_6kzzIDSMpreKgY36yfTzDA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_6kzzIDSMpreKgY36yfTzDA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Note que agora o arquivo sdkconfig contem todas as variáveis de ambiente necessárias.</span><br></p></div>
</div><div data-element-id="elm_WRyF68T9uowbdk68MiDoKQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_WRyF68T9uowbdk68MiDoKQ"] .zpimage-container figure img { width: 1109.96px !important ; height: 627px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_WRyF68T9uowbdk68MiDoKQ"] .zpimage-container figure img { width:723px ; height:406.69px ; } } @media (max-width: 767px) { [data-element-id="elm_WRyF68T9uowbdk68MiDoKQ"] .zpimage-container figure img { width:415px ; height:233.44px ; } } [data-element-id="elm_WRyF68T9uowbdk68MiDoKQ"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-custom zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-9-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-9-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-9-.png" width="415" height="233.44" loading="lazy" size="custom" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_wJn8S1vpTSWDkBMIvB9lNQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_wJn8S1vpTSWDkBMIvB9lNQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Estrutura de um projeto padrão utilizando o ESP-IDF</span><br></h2></div>
<div data-element-id="elm_DAFqkSD24kD86NAgvSi24Q" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_DAFqkSD24kD86NAgvSi24Q"] .zpimage-container figure img { width: 1110px ; height: 164.31px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_DAFqkSD24kD86NAgvSi24Q"] .zpimage-container figure img { width:723px ; height:107.02px ; } } @media (max-width: 767px) { [data-element-id="elm_DAFqkSD24kD86NAgvSi24Q"] .zpimage-container figure img { width:415px ; height:61.43px ; } } [data-element-id="elm_DAFqkSD24kD86NAgvSi24Q"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-fit zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-10-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-10-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-10-.png" width="415" height="61.43" loading="lazy" size="fit" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_hNsO1K1TEcdurXpyivg7-w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_hNsO1K1TEcdurXpyivg7-w"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><ul><li><em>build</em>: diretório com arquivos gerados no processo de compilação do projeto;</li><li><em>main</em>: diretório que contem o código fonte;</li><li><em>sdkconfig</em>: como citado na seção acima arquivo com todas as variáveis de ambiente do projeto;</li><li><em>CMakeLists.txt</em>: arquivo responsável pela estrutura do projeto, onde se define as pastas de componentes externos e como se estrutura o código fonte, por padrão aponta para o diretório main;</li><li><a href="http://pytest.py">pytest.py</a>: utilizado ao criar testes unitários;</li></ul></div>
</div></div><div data-element-id="elm_I9hipVz-vG-YtNddbosK_A" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_I9hipVz-vG-YtNddbosK_A"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">O código fonte e a função app_main()</span><br></h2></div>
<div data-element-id="elm_0r_8wD8yqST9S--fQjIf0A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_0r_8wD8yqST9S--fQjIf0A"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p>O código padrão ira exibir no monitor serial a string “Hello World”, para isso ele utiliza a função <em>printf</em> (<em>print formated</em> - <strong>imprimir formatado</strong>) que por padrão imprime um vetor de caracteres no monitor serial, todo código no ESP-IDF tem por inicio sua execução na função <em>app_main.</em></p><p>O código abaixo é criado automaticamente devido a seleção do template, as funções abaixo do <em>printf</em> servem para mostrar diversas informações do micro controlador no monitor serial e reiniciar.</p></div>
</div></div><div data-element-id="elm_nMXqKbUfBuxgkcuOIu608A" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><script src="https://gist.github.com/MatheusReichert/1293274c60d8484c81745c043c39b370.js"></script></div>
</div><div data-element-id="elm_rjZY3oT-0UmUOKPx-ltTNQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_rjZY3oT-0UmUOKPx-ltTNQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Compilar, descarregar o binário na memoria do microcontrolador (flash) e monitorar</span><br></h2></div>
<div data-element-id="elm_fePiA0IvztPSfSVnpwfXyQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_fePiA0IvztPSfSVnpwfXyQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Basta selecionar e aguardar, se aparecer um pop-up perguntando o método de flash, selecione UART.</span><br></p></div>
</div><div data-element-id="elm_17WYhiNaEHD8VfhzE7sPlg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_17WYhiNaEHD8VfhzE7sPlg"] .zpimage-container figure img { width: 500px ; height: 90.99px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_17WYhiNaEHD8VfhzE7sPlg"] .zpimage-container figure img { width:577px !important ; height:105px !important ; } } @media (max-width: 767px) { [data-element-id="elm_17WYhiNaEHD8VfhzE7sPlg"] .zpimage-container figure img { width:415px ; height:75.52px ; } } [data-element-id="elm_17WYhiNaEHD8VfhzE7sPlg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-original" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-size-original zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-11-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-11-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-11-.png" width="415" height="75.52" loading="lazy" size="medium" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_4ofCz168JWwbXKW_3e7X0A" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_4ofCz168JWwbXKW_3e7X0A"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Monitor serial</span><br></h2></div>
<div data-element-id="elm_aKJJkX04gNHH8PheMDweow" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_aKJJkX04gNHH8PheMDweow"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Após a etapa anterior o monitor serial ira abrir sozinho e será possível ver o projeto rodando ao vivo.</span><br></p></div>
</div><div data-element-id="elm_Mg7jHvGWOE_lzHdvaqDXKA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_Mg7jHvGWOE_lzHdvaqDXKA"] .zpimage-container figure img { width: 836px !important ; height: 284px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_Mg7jHvGWOE_lzHdvaqDXKA"] .zpimage-container figure img { width:723px ; height:245.61px ; } } @media (max-width: 767px) { [data-element-id="elm_Mg7jHvGWOE_lzHdvaqDXKA"] .zpimage-container figure img { width:415px ; height:140.98px ; } } [data-element-id="elm_Mg7jHvGWOE_lzHdvaqDXKA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-fit" data-size-mobile="size-fit" data-align="center" data-tablet-image-separate="true" data-mobile-image-separate="true" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-size-fit zpimage-mobile-size-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><source class="mobile-image-source" media="(max-width: 767.8px)" srcset="/Untitled%20-12-.png"><source class="tablet-image-source" media="(max-width: 991.8px) and (min-width: 768px)" srcset="/Untitled%20-12-.png"><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%20-12-.png" width="415" height="140.98" loading="lazy" size="original" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_Mkd0SjhTDCMkSnNpexCZBg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_Mkd0SjhTDCMkSnNpexCZBg"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Conclusão</span><br></h2></div>
<div data-element-id="elm_OVDWYxRBBjmFQgxkE71Tpw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_OVDWYxRBBjmFQgxkE71Tpw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">&nbsp;A partir deste tutorial, você aprendeu como configurar o projeto no VSCode, escolher um template, definir as configurações do projeto e compilar o código. Agora você está pronto para começar a desenvolver seus próprios projetos usando o ESP-IDF. Divirta-se explorando todas as possibilidades que esta plataforma oferece!!!</span><br></p></div>
</div><div data-element-id="elm_Qw27nXGGVRmyxh9BCUQYWg" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_Qw27nXGGVRmyxh9BCUQYWg"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_w44wMdhfd19dhJjfh7977Q" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_w44wMdhfd19dhJjfh7977Q"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Sobre o autor:</span><br></h2></div>
<div data-element-id="elm_Kdj3GUjNx2u7FwXdvuzRBw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Kdj3GUjNx2u7FwXdvuzRBw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Matheus desempenha o papel de desenvolvedor de sistemas de tecnologia da informação dentro da equipe da UKTech. Possui&nbsp; experiência no domínio de micro controladores e desenvolvimento de software, e está na reta final de sua graduação em Engenharia de Computação. Em seus momentos de lazer, ele se dedica a interesses como jogos de computador e a apreciação de animes.</span><br></p></div>
</div><div data-element-id="elm_niXea7-kGy7TECjDuqgUkQ" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_niXea7-kGy7TECjDuqgUkQ"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_Q2iXcUOj6seMh_vMje6OyA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Q2iXcUOj6seMh_vMje6OyA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p style="text-align:center;">Mídias Sociais UKTech</p></div>
</div><div data-element-id="elm_cEPSfTgVJxo4dUW_IHRMWQ" itemscope data-element-type="socialprofile" class="zpelement zpelem-socialprofile"><style type="text/css"> [data-element-id="elm_cEPSfTgVJxo4dUW_IHRMWQ"].zpelem-socialprofile{ border-radius:1px; } </style><div data-socialprofile_container class="zpsocialprofile-container zpsocialprofile-size-md zpsocialprofile-halign-center zpsocialprofile-style-none zpsocialprofile-type-color "><a href="https://api.whatsapp.com/send/?phone=554735128200" class="zpsocialprofile-wrapper zpsocialprofile-whatsapp" target="_blank" aria-label="WhatsApp"><svg aria-hidden="true" class="zpsocialprofile" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><defs><linearGradient x1="49.9999983%" y1="100%" x2="49.9999983%" y2="0.00237659529%" id="wtlinearGradient-1"><stop stop-color="#F9F9F9" offset="0%"></stop><stop stop-color="#FFFFFF" offset="100%"></stop></linearGradient></defs><g stroke="none" stroke-width="1" fill-rule="evenodd"><g fill-rule="nonzero"><path class="cl-path-transparent" d="M1.10771574,62.8926967 L5.4728797,47.0284478 C2.78074848,42.3847708 1.36440022,37.1174751 1.3659281,31.7224137 C1.37356752,14.8421228 15.1734138,1.1088243 32.1283401,1.1088243 C40.3575222,1.11186634 48.0825026,4.30144735 53.8884609,10.0874112 C59.6974751,15.873375 62.8938079,23.5651781 62.8907543,31.745229 C62.8831127,48.6255199 49.0832664,62.3603394 32.1283401,62.3603394 C32.1283401,62.3603394 32.1283401,62.3603394 32.1283401,62.3603394 L32.1145892,62.3603394 C26.9656208,62.3588184 21.9067976,61.0720346 17.4148193,58.633838 L1.10618786,62.8911757 L1.10771574,62.8926967 Z" fill="#25D266"/><path class="cl-path-inherit" d="M32.1344517,0 C40.6585153,0.00304204197 48.6585147,3.30669962 54.6753211,9.30104333 C60.6905995,15.295387 64.0030515,23.264016 64,31.7376239 C63.9924328,49.0469187 49.9804471,63.1660029 32.660306,63.4466537 L32.1344517,63.4509114 L32.1344517,63.4509114 L32.1207007,63.4509114 C26.7883863,63.4493904 21.5477449,62.116976 16.893811,59.5905602 L0.00152788378,64 L0,64 L4.52100811,47.5668893 C1.73262021,42.7574209 0.265851778,37.3015186 0.267379662,31.7117665 C0.27501908,14.2261093 14.5683718,0 32.1344517,0 Z M32.143619,5.35703591 C17.5339943,5.35703591 5.65316999,17.179932 5.6470572,31.7132875 C5.64553057,36.6931103 7.04507211,41.5436462 9.69595047,45.7401431 L10.3269665,46.7379328 L7.65011409,56.464862 L17.6745596,53.8487059 L17.6760875,53.8487059 L18.6432379,54.4190888 C22.7089366,56.8207809 27.37051,58.0908335 32.1237565,58.0938755 L32.1344517,58.0938755 C46.7318533,58.0938755 58.6142055,46.2694584 58.6203176,31.7345818 C58.6218449,24.6907337 55.8701262,18.0682083 50.8693626,13.0868646 C45.868599,8.10552083 39.2192487,5.36007795 32.143619,5.35703591 Z M20.8510299,17.0688705 C21.3827335,17.0688705 21.9129092,17.0673765 22.3773858,17.0871497 C22.9457586,17.1099651 23.5737188,17.1358224 24.1695935,18.4560686 L24.1695935,18.4560686 C24.8785316,20.0242413 26.4262779,23.9439124 26.6249028,24.3408988 C26.8235276,24.7378853 26.9564535,25.2002757 26.6906018,25.729591 C26.42475,26.2589063 26.2918241,26.5889678 25.8945743,27.0513582 C25.4957966,27.5152696 25.057294,28.0856525 24.6997692,28.4400504 C24.2994636,28.8339948 23.8854071,29.2644438 24.3498838,30.0568957 C24.8143605,30.8508686 26.4125269,33.4457304 28.7792189,35.5462604 C31.8212355,38.2460727 34.3865524,39.0826342 35.1825798,39.4796207 C35.9786073,39.8766072 36.4430839,39.8096822 36.9075606,39.2803669 C37.3720373,38.7525727 38.8983932,36.966894 39.4285688,36.1744421 C39.9602724,35.3804691 40.4904481,35.512798 41.2207765,35.7774556 C41.9511049,36.0405922 45.8655432,37.9585997 46.6615706,38.3555862 C47.4575981,38.7525727 47.9893016,38.9503054 48.1879265,39.2803669 C48.3865514,39.6119495 48.3865514,41.1983744 47.7234499,43.0494569 C47.0588204,44.9005395 43.8090116,46.6846971 42.3483547,46.8170259 C42.2952399,46.8218379 42.2422464,46.8271688 42.189112,46.8328475 L42.0290247,46.850756 C40.6602396,47.0089406 39.0295689,47.2820712 32.7929696,44.8336146 C24.6997692,41.6562017 19.5905258,33.3970578 19.1917482,32.8692635 C18.7944984,32.3399482 15.9404115,28.5708582 15.9404115,24.6709604 C15.9404115,20.7710626 17.996943,18.8530551 18.7272715,18.0606032 C19.4575999,17.2681512 20.3193264,17.0688705 20.8510299,17.0688705 Z" fill="url(#wtlinearGradient-1)"/></g></g></svg></a><a href="https://www.instagram.com/uktechtecnologia/" class="zpsocialprofile-wrapper zpsocialprofile-instagram" target="_blank" aria-label="Instagram"><svg aria-hidden="true" class="zpsocialprofile" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient x1="72.5875139%" y1="0%" x2="28.281045%" y2="106.524963%" id="linearGradient-1"><stop stop-color="#9A1DF1" offset="0%"></stop><stop stop-color="#ED1E64" offset="49.3618943%"></stop><stop stop-color="#FFD002" offset="100%"></stop></linearGradient><path d="M18.7470755,0.221595251 C15.3422244,0.382299247 13.0166948,0.927668835 10.9845413,1.72394402 C8.8808805,2.5440464 7.09761014,3.64310557 5.32364538,5.42434073 C3.54758782,7.20661909 2.45687425,8.99304465 1.64301187,11.0988238 C0.855031083,13.1361614 0.321066295,15.4627981 0.170711099,18.8697484 C0.0214311023,22.2829708 -0.012802497,23.3716107 0.00383750267,32.0611721 C0.0204135023,40.7496967 0.0587623014,41.8403975 0.221527098,45.254631 C0.384285494,48.6585158 0.927619882,50.9830597 1.72388866,53.0162565 C2.54502785,55.1199428 3.64296062,56.9022276 5.42521338,58.6772547 C7.20645494,60.4522883 8.9939045,61.5419779 11.1006629,62.3569282 C13.1359204,63.1438722 15.46353,63.6799042 18.8694627,63.8291842 C22.2826082,63.9795458 23.3722466,64.0127042 32.0596384,63.9961282 C40.7511454,63.9795458 41.8408478,63.941165 45.2539933,63.7794178 C48.6588444,63.616653 50.9822875,63.0712898 53.0165275,62.2770946 C55.1201883,61.4538563 56.9034586,60.3579395 58.6774234,58.5756547 C60.4513945,56.7943876 61.5421081,55.0069188 62.3560345,52.9001285 C63.1440153,50.8648453 63.6800089,48.5372038 63.8282777,45.1333446 C63.9775577,41.7180679 64.0128665,40.6273351 63.9962265,31.9388169 C63.9796441,23.2492555 63.9402841,22.1606092 63.7785369,18.7484684 C63.6167897,15.3414861 63.0714329,13.0179854 62.2761753,10.9837454 C61.4540249,8.88005905 60.3571033,7.0987919 58.5758618,5.32274074 C56.7946202,3.54875038 55.0071771,2.4559312 52.9004123,1.64411682 C50.8641371,0.856129637 48.5375324,0.319048049 45.1316061,0.171822452 C41.7184606,0.0204496555 40.6288222,-0.0127087437 31.9383264,0.00387365592 C23.2499298,0.0204560555 22.160285,0.0577936547 18.7470755,0.221595251 M19.1203747,58.0696835 C16.0006051,57.9338499 14.3064996,57.4154436 13.1774308,56.9810372 C11.682346,56.4024772 10.6154853,55.7088452 9.49261809,54.5942852 C8.37184371,53.4755524 7.67612533,52.4117765 7.09241974,50.9198021 C6.65381495,49.7906885 6.12611576,48.0986182 5.97993337,44.9788358 C5.82129017,41.6060871 5.78502777,40.5941383 5.76945657,32.0497481 C5.75287417,23.5074443 5.78394617,22.4954955 5.93120377,19.1196428 C6.06491897,16.0019213 6.58648055,14.3057037 7.01983094,13.1776334 C7.59834613,11.6804686 8.28988531,10.6156558 9.40655089,9.49280784 C10.5252389,8.36992787 11.5889956,7.67628948 13.081994,7.0925775 C14.2100452,6.65191191 15.9021283,6.12831512 19.0208227,5.98007832 C22.3956194,5.82038552 23.4064738,5.78618392 31.9486944,5.76960153 C40.4929438,5.75298713 41.5048734,5.78307992 44.8807453,5.93134872 C47.9983644,6.06715032 49.6945564,6.58350231 50.8216028,7.0199951 C52.3176987,7.59852308 53.3845595,8.28801427 54.5064091,9.40674704 C55.628201,10.5254798 56.323913,11.5871694 56.9076186,13.0832846 C57.3482458,14.2082189 57.8718362,15.9023821 58.0190938,19.0201036 C58.1797594,22.3949387 58.2160858,23.4068555 58.231593,31.9491913 C58.2481754,40.4935879 58.2171034,41.5054983 58.0688346,44.8792902 C57.933033,47.9990726 57.4156442,49.6942725 56.9802074,50.8243973 C56.4016858,52.3184581 55.710089,53.3853316 54.5924123,54.5082116 C53.4747995,55.6269444 52.4110427,56.3246916 50.9169691,56.9084356 C49.7910044,57.348026 48.0968988,57.8726723 44.9802333,58.0209411 C41.6055006,58.1795587 40.5945822,58.2158467 32.0492576,58.2314179 C23.507037,58.2480131 22.4961826,58.2158659 19.1203747,58.0696835 M45.2073489,14.8946189 C45.2114717,17.0138765 46.9346204,18.729806 49.053846,18.7256663 C51.1740891,18.7215116 52.8900251,16.9993549 52.8869253,14.8800973 C52.8827483,12.7608398 51.1595931,11.043899 49.03935,11.0480387 C46.9191132,11.052187 45.2031773,12.7753614 45.2073489,14.8946189 M15.5693094,32.0310857 C15.5869347,41.1063495 22.957565,48.4469894 32.0305952,48.4293954 C41.1046942,48.4117446 48.4493852,41.0430983 48.4318231,31.9678665 C48.414134,22.8957323 41.0424926,15.5509133 31.967376,15.5685072 C22.8942818,15.5861645 15.5516836,22.9579403 15.5693094,32.0310857 M21.3328633,32.0196937 C21.3225058,26.1295435 26.0897377,21.344654 31.978768,21.3342528 C37.868867,21.3228812 42.6547101,26.0880651 42.6661227,31.9792585 C42.6775581,37.870452 37.9103198,42.6542983 32.0192032,42.6657427 C26.1301793,42.6771143 21.3442722,37.9108872 21.3328633,32.0196937" id="path-2"/></defs><g stroke="none" stroke-width="1" fill-rule="evenodd"><mask fill="white"><use xlink:href="#path-2"></use></mask><use class="cl-path-inherit" fill="url(#linearGradient-1)" xlink:href="#path-2"></use></g></svg></a><a href="https://www.facebook.com/uktechti" class="zpsocialprofile-wrapper zpsocialprofile-facebook" target="_blank" aria-label="Facebook"><svg aria-hidden="true" class="zpsocialprofile" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><path d="M64,32.1989637 C64,14.4248705 49.6642636,0 32,0 C14.3357364,0 -8.52651283e-14,14.4248705 -8.52651283e-14,32.1989637 C-8.52651283e-14,48.2818653 11.6992791,61.6124352 27.0236869,64 L27.0236869,41.4839378 L18.8506694,41.4839378 L18.8506694,32.1989637 L27.0236869,32.1989637 L27.0236869,25.1025907 C27.0236869,17.0445596 31.76931,12.5678756 39.0854789,12.5678756 C42.5787848,12.5678756 46.2039135,13.2310881 46.2039135,13.2310881 L46.2039135,21.0901554 L42.1833162,21.0901554 C38.1956746,21.0901554 36.9433574,23.6103627 36.9433574,26.1305699 L36.9433574,32.1658031 L45.8414006,32.1658031 L44.4243048,41.4507772 L36.9433574,41.4507772 L36.9433574,63.9668394 C52.3007209,61.6124352 64,48.2818653 64,32.1989637 Z"/></svg></a><a href="https://www.linkedin.com/company/uktechti/" class="zpsocialprofile-wrapper zpsocialprofile-linkedin" target="_blank" aria-label="LinkedIn"><svg aria-hidden="true" class="zpsocialprofile" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><path d="M64 4.706v54.588A4.706 4.706 0 0 1 59.294 64H4.706A4.706 4.706 0 0 1 0 59.294V4.706A4.706 4.706 0 0 1 4.706 0h54.588A4.706 4.706 0 0 1 64 4.706zM18.824 24.47H9.412v30.117h9.412V24.471zm.847-10.353a5.421 5.421 0 0 0-5.384-5.46h-.17a5.459 5.459 0 0 0 0 10.918 5.421 5.421 0 0 0 5.554-5.289v-.17zm34.917 22.174c0-9.054-5.76-12.574-11.482-12.574a10.73 10.73 0 0 0-9.525 4.856h-.263v-4.103H24.47v30.117h9.411V38.57a6.25 6.25 0 0 1 5.647-6.738h.358c2.993 0 5.214 1.882 5.214 6.625v16.132h9.412l.075-18.296z"/></svg></a><a href="mailto:contato@uktech.com.br" class="zpsocialprofile-wrapper zpsocialprofile-email" target="_blank" aria-label="Email"><svg aria-hidden="true" class="zpsocialprofile" xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><path d="M58.4 8c3 0 5.6 2.5 5.6 5.6v37.7c0 3-2.5 5.6-5.6 5.6H5.6c-3 0-5.6-2.5-5.6-5.6V13.6C0 10.6 2.5 8 5.6 8h52.8zM43.2 34.9l-3.5 3.4c-2.2 2.2-5 3.4-7.9 3.4-3 0-5.7-1.2-7.9-3.4L20.4 35 3.7 51.6c.2.9.9 1.4 1.8 1.4h52.8c.8 0 1.5-.5 1.7-1.3L43.2 35zm17-17L45.6 32.3l14.4 14.4V18zM3.5 18v28.6L18 32.3 3.6 18zm54.7-6.4H5.5c-1 0-1.6.6-1.8 1.4l22.8 22.7c2.9 2.9 7.8 2.9 10.8 0L60 12.9c-.2-.8-.9-1.3-1.7-1.3z"/></svg></a><a href="https://www.youtube.com/@uktechengenhariaetecnologi9792" class="zpsocialprofile-wrapper zpsocialprofile-youtube" target="_blank" aria-label="YouTube"><svg aria-hidden="true" class="zpsocialprofile" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><path d="M32.786 10l.106.001.392.002c1.94.009 6.896.05 11.873.237l.765.03c4.589.187 9.063.504 11.068 1.04 2.71.73 4.84 2.86 5.56 5.56 1.204 4.505 1.301 13.515 1.31 14.939v.382c-.009 1.424-.106 10.434-1.31 14.939a7.885 7.885 0 0 1-5.56 5.56c-4.455 1.19-21.107 1.3-24.098 1.309h-.923c-2.99-.01-19.635-.118-24.099-1.309a7.885 7.885 0 0 1-5.56-5.56c-.401-1.502-.68-3.504-.873-5.559l-.058-.65c-.314-3.688-.368-7.394-.377-8.552L1 32.124v-.194-.054l.002-.245c.009-1.158.063-4.864.377-8.552l.058-.65c.193-2.055.472-4.057.873-5.559a7.885 7.885 0 0 1 5.56-5.56c4.296-1.146 19.878-1.29 23.706-1.307L31.97 10h.105zM26.15 22.57v18.86L42.48 32l-16.33-9.43z"/></svg></a><a href="https://business.facebook.com/latest/inbox/all?bpn_id=1911964258931436&amp;asset_id=401185193313843&amp;nav_ref=redirect_biz_inbox_comet_profile_plus_ap_page_inbox_message_button&amp;mailbox_id=401185193313843&amp;selected_item_id=340282366841710301244259355614033762281" class="zpsocialprofile-wrapper zpsocialprofile-messenger" target="_blank" aria-label="Messenger"><svg aria-hidden="true" class="zpsocialprofile" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><defs><radialGradient cx="19.2474387%" cy="99.4651948%" fx="19.2474387%" fy="99.4651948%" r="108.959789%" id="mradialGradient-1"><stop stop-color="#0099FF" offset="0%"></stop><stop stop-color="#A033FF" offset="60.9753877%"></stop><stop stop-color="#FF5280" offset="93.482299%"></stop><stop stop-color="#FF7061" offset="100%"></stop></radialGradient></defs><path d="M32,0 C13.97344,0 0,13.20448 0,31.04 C0,40.369152 3.82336,48.430592 10.049792,53.99872 C10.57248,54.46656 10.888,55.12192 10.90944,55.82336 L11.083712,61.51552 C11.139392,63.3312 13.014848,64.51264 14.676288,63.7792 L21.02784,60.97536 C21.566272,60.73792 22.1696,60.69376 22.73696,60.84992 C25.65568,61.65248 28.762112,62.08 32,62.08 C50.02656,62.08 64,48.87552 64,31.04 C64,13.20448 50.02656,0 32,0 Z" fill="url(#mradialGradient-1)"/><path d="M12.784128,40.117504 L22.184128,25.204224 C23.67936,22.831744 26.88128,22.241024 29.1248,23.923584 L36.601088,29.530816 C37.28704,30.045376 38.230848,30.042624 38.91392,29.524224 L49.011008,21.861184 C50.35872,20.838464 52.117888,22.451264 51.216,23.882496 L41.816,38.795904 C40.32064,41.168256 37.11872,41.759104 34.875328,40.076416 L27.398848,34.469056 C26.71296,33.954624 25.769088,33.957376 25.08608,34.475776 L14.988928,42.138816 C13.64128,43.161472 11.882048,41.548672 12.784128,40.117504 Z" fill="#FFFFFF"/></svg></a><a href="https://www.google.com/maps/@-26.2480107,-49.3836885,3a,75y,108.84h,95.83t/data=!3m7!1e1!3m5!1sSyt_o98HsUif-TDdVekfMw!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DSyt_o98HsUif-TDdVekfMw%26cb_client%3Dmaps_sv.tactile.gps%26w%3D203%26h%3D100%26yaw%3D148.3533%26pitch%3D0%26thumbfov%3D100!7i13312!8i6656?entry=ttu" class="zpsocialprofile-wrapper zpsocialprofile-googlemap" target="_blank" aria-label="Google Maps"><svg aria-hidden="true" class="zpsocialprofile" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(9.000000, 0.000000)" fill-rule="nonzero"><path d="M45.0743374,15.3482543 L45.0652742,15.3570852 C45.2597854,15.8959996 45.4410502,16.4416533 45.5962873,16.9982294 C45.4387263,16.4409561 45.2697782,15.8885631 45.0743374,15.3482543 Z M23.2391247,0 L6.80676698,6.80742545 L16.247878,16.2487689 C20.0905551,12.3796526 26.3421989,12.3582193 30.2113152,16.2008964 C34.0804316,20.0435735 34.1018648,26.2952172 30.2591878,30.1643336 L44.154302,16.2673602 L45.0652742,15.356388 C41.7544536,6.14841002 33.0242335,0.00602350029 23.2391247,0 Z" fill="#4285F4"/><path d="M23.2391247,33.1001273 C19.2470388,33.0994674 15.6478944,30.69564 14.1181004,27.0082995 C12.5883063,23.3209589 13.4287139,19.0752621 16.247878,16.2487689 L6.80676698,6.80742545 C2.44186099,11.1607613 -0.00781495236,17.0743576 1.98799424e-05,23.239086 C1.98799424e-05,33.4775301 5.26392407,39.8940741 11.4569081,46.4781719 C11.8721906,46.9029824 12.2177558,47.3733415 12.6093344,47.8134898 L30.1799425,30.2426493 C28.3347893,32.0748364 25.8394123,33.1021627 23.2391247,33.1001273 Z" fill="#FFBA00"/><path d="M23.2391247,0 C10.4045319,0 6.19213639e-15,10.4044932 6.19213639e-15,23.239086 C-0.00468573634,25.9653324 0.423117701,28.6750679 1.26749845,31.2672606 L31.1308859,1.40503514 C28.6020794,0.48111094 25.9314223,0.00563190491 23.2391247,0 Z" fill="#0066DA"/><path d="M25.3331987,62.4899022 C27.4440954,56.6166652 30.6206077,51.183348 34.7031982,46.4628341 C41.3600343,39.6990982 46.4782106,33.4782272 46.4782106,23.239086 C46.4728195,20.5469444 45.9977376,17.8763884 45.0743374,15.3475572 L12.6093344,47.8125602 C16.346929,52.0610809 19.1859535,57.0221406 20.9554197,62.3969458 C21.2597655,63.3354841 22.1248397,63.978528 23.1112685,63.9994735 C24.0976974,64.020419 24.9892879,63.4146756 25.3331987,62.4899022 Z" fill="#00AC47"/><path d="M11.4569081,46.4781719 C11.8721906,46.9029824 12.2177558,47.3733415 12.6093344,47.8134898 L12.6093344,47.8134898 C12.2168262,47.3740387 11.871261,46.9036796 11.4569081,46.4781719 Z M2.80499638,12.1626404 C2.0836616,13.4905702 1.49443612,14.8861083 1.04579757,16.3291761 C1.49453738,14.8861453 2.08375876,13.4906169 2.80499638,12.1626404 L2.80499638,12.1626404 Z M1.04579757,16.3291761 C0.586654018,17.8059978 0.276797908,19.3251491 0.120881953,20.863819 C0.276821106,19.3251526 0.586676746,17.8060036 1.04579757,16.3291761 L1.04579757,16.3291761 Z" fill="#0066DA" opacity="0.5"/><path d="M17.7119405,55.0694296 C17.6257235,54.9137277 17.5541471,54.7482654 17.4658385,54.5937255 C17.5532175,54.7489626 17.626653,54.9139601 17.7119405,55.0694296 Z M20.9554197,62.3969458 C20.479948,60.9970233 19.9449842,59.6362973 19.3505284,58.314768 C19.9375477,59.640093 20.479948,60.9958613 20.9554197,62.3969458 Z M31.8647762,50.0172523 C31.286123,50.8245782 30.7774194,51.6730372 30.2550047,52.5133625 C30.7757926,51.6721076 31.2875173,50.8252753 31.8647762,50.0172523 Z" fill="#FFFFFF"/><path d="M25.6717922,61.6858298 L25.6717922,61.6858298 C26.2165164,60.3116252 26.8022188,58.9615892 27.4288995,57.6357219 C26.7984231,58.9589554 26.2165164,60.3114702 25.6717922,61.6858298 Z M29.4671997,53.7482876 C28.7981464,54.9002491 28.18905,56.0879988 27.6080728,57.2903891 C28.18905,56.0868368 28.8004703,54.9016434 29.4671997,53.7482876 Z" fill="#FFFFFF"/><path d="M6.80676698,6.80742545 C2.44186099,11.1607613 -0.00781495236,17.0743576 2.06404546e-15,23.239086 C-0.00468573634,25.9653324 0.423117701,28.6750679 1.26749845,31.2672606 L16.2673989,16.2673602 L6.80676698,6.80742545 Z" fill="#EA4435"/></g></g></svg></a><a href="https://www.uktech.com.br/bloguk/" class="zpsocialprofile-wrapper zpsocialprofile-rss" target="_blank" aria-label="RSS"><svg aria-hidden="true" class="zpsocialprofile" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><path d="M8.282 47.433C3.715 47.433 0 51.15 0 55.715c0 4.567 3.715 8.282 8.282 8.282s8.282-3.715 8.282-8.282c0-4.566-3.716-8.282-8.282-8.282zM1.377 23.84a1.31 1.31 0 0 0-1.354 1.31v10.627c0 .7.552 1.277 1.252 1.31 13.98.637 25.002 11.66 25.64 25.64.032.7.609 1.25 1.309 1.25h10.627a1.313 1.313 0 0 0 1.31-1.353c-.338-10.188-4.513-19.787-11.754-27.029-7.242-7.241-16.84-11.415-27.03-11.755zm43.872-5.087C33.497 7.003 17.91.343 1.36 0a1.264 1.264 0 0 0-.943.375 1.311 1.311 0 0 0-.394.935v10.62c0 .712.567 1.293 1.278 1.311 26.605.669 48.79 22.855 49.457 49.457a1.309 1.309 0 0 0 1.31 1.277h10.62A1.312 1.312 0 0 0 64 62.638c-.343-16.551-7.003-32.138-18.751-43.885z"/></svg></a></div>
</div></div></div></div></div></div>]]></content:encoded><pubDate>Thu, 19 Oct 2023 15:08:37 -0300</pubDate></item><item><title><![CDATA[Fique na Vanguarda com Software de administração Remota de Patches: Simplifique as atualizações]]></title><link>https://www.uktech.com.br/bloguk/post/fique-na-vanguarda-com-software-de-administração-remota-de-patches-simplifique-as-atualizações</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/sqws.jpg"/>As atualizações de software são essenciais para manter os sistemas seguros e atualizados. Fornecem correções de bugs, melhorias de desempenho e, o que é mais importante: patches de segurança.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_3WIU-D1GSr-1psLFtbFysA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_R7-X-K0bQ6Kv6ysgQlATMg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_sGhwVv8zRN-xPBEseBG5PA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_qTw1-no8QUSxFPJWEHU5Pg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div style="color:inherit;"><div style="font-size:14px;"><h2 style="text-align:left;font-size:28px;"><b>A IMPORTÂNCIA DE ATUALIZAÇÕES DE SOFTWARE E ADMINISTRAÇÃO DE PATCHES</b><b></b></h2></div>
</div></div></div><div data-element-id="elm_oVaZEWQEFjzbDWzfIbFW-g" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_oVaZEWQEFjzbDWzfIbFW-g"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p style="text-align:justify;"><span style="color:inherit;font-size:16px;">As atualizações de software são essenciais para manter os sistemas seguros e atualizados. Fornecem correções de bugs, melhorias de desempenho e, o que é mais importante: patches de segurança. Sem atualizações periódicas, o software fica vulnerável a ameaças digitais e ataques maliciosos. Por outro lado, a administração de patches é o processo de aplicar essas atualizações aos softwares. Envolve identificar, adquirir, testar e implementar patches em sua rede. A administração de patches adequada garante que os sistemas estejam protegidos contra vulnerabilidades potenciais.</span><br></p></div>
</div><div data-element-id="elm_6504PHk2Pm_sYL5vISt1Mg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_6504PHk2Pm_sYL5vISt1Mg"] .zpimage-container figure img { width: 892.17px !important ; height: 560px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_6504PHk2Pm_sYL5vISt1Mg"] .zpimage-container figure img { width:892.17px ; height:560px ; } } @media (max-width: 767px) { [data-element-id="elm_6504PHk2Pm_sYL5vISt1Mg"] .zpimage-container figure img { width:892.17px ; height:560px ; } } [data-element-id="elm_6504PHk2Pm_sYL5vISt1Mg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-size-custom zpimage-tablet-fallback-custom zpimage-mobile-fallback-custom hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/hkh.jpg" width="892.17" height="560" loading="lazy" size="custom" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_t8hVFCbtvCcie4aM-9WJAQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_t8hVFCbtvCcie4aM-9WJAQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:28px;font-weight:700;">OS DESAFIOS DA ADMINISTRAÇÃO MANUAL DE PATCHES</span></span></h2></div>
<div data-element-id="elm_cJ5uS_khRX7ffgPZPydiLg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_cJ5uS_khRX7ffgPZPydiLg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p style="text-align:justify;"><span style="color:inherit;font-size:16px;">Administrar atualizações de software e patches manualmente pode ser uma tarefa árdua, especialmente para empresas com um grande número de dispositivos ou locais remotos. Requer pessoal de TI para fazer download manual, testar e implementar os patches em vários sistemas. O processo pode ser demorado e com grande probabilidade de erros. Além disso, a administração manual de patches com frequência não tem controle e visibilidade centralizados, o que torna difícil monitorar o status das atualizações e garantir a conformidade. O controle de versões é extremamente problemático com uma abordagem manual. Também deixa espaço para erros humanos, como ignorar patches críticos ou não aplicar atualizações em tempo hábil. Esses desafios podem colocar os sistemas em risco e prejudicar a sua capacidade para ficar à frente de ameaças potenciais.</span><br></p></div>
</div><div data-element-id="elm_-qJTDE1PYsyyY5Cf4BwAtg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_-qJTDE1PYsyyY5Cf4BwAtg"] .zpimage-container figure img { width: 800px ; height: 503.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_-qJTDE1PYsyyY5Cf4BwAtg"] .zpimage-container figure img { width:500px ; height:314.38px ; } } @media (max-width: 767px) { [data-element-id="elm_-qJTDE1PYsyyY5Cf4BwAtg"] .zpimage-container figure img { width:500px ; height:314.38px ; } } [data-element-id="elm_-qJTDE1PYsyyY5Cf4BwAtg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-size-large zpimage-tablet-fallback-large zpimage-mobile-fallback-large hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/gfdg-1.jpg" width="500" height="314.38" loading="lazy" size="large" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_nlKGJ5xCJe4PNhAbdTRImQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_nlKGJ5xCJe4PNhAbdTRImQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:28px;font-weight:700;">BENEFÍCIOS DOS SOFTWARES DE ADMINISTRAÇÃO REMOTA DE PATCHES</span></span></h2></div>
<div data-element-id="elm_hKkxCB8ClFI1jMSImfsENg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_hKkxCB8ClFI1jMSImfsENg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div style="font-size:14px;"><p style="text-align:justify;margin-bottom:12px;"><span style="font-size:16px;">O software de administração remota de patches oferece uma solução para os desafios da administração manual de patches Automatiza todo o processo de administração de patches, desde identificar os patches disponíveis até implementá-los na rede. Essa automação economiza tempo e esforço, permitindo que a equipe de TI se concentre em tarefas mais estratégicas. O software de administração remota de patches também fornece controle e visibilidade centralizados, com insights em tempo real sobre o status das atualizações na rede. Essa visibilidade permite monitorar a conformidade, identificar vulnerabilidades e garantir que todos os sistemas estejam atualizados. Com software de administração remota de patches, você pode dinamizar as atualizações e ficar à frente das ameaças potenciais de segurança.</span></p></div>
<div style="font-size:14px;"><p style="margin-bottom:12px;"><a href="https://www.faronics.com/en-uk/news/blog/stay-ahead-of-the-game-with-remote-patch-management-software-simplify-your-updates/jhghg"></a></p></div>
</div></div></div><div data-element-id="elm_pDZe9RUgpCdusEgeJArXVg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_pDZe9RUgpCdusEgeJArXVg"] .zpimage-container figure img { width: 800px ; height: 484.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_pDZe9RUgpCdusEgeJArXVg"] .zpimage-container figure img { width:500px ; height:302.50px ; } } @media (max-width: 767px) { [data-element-id="elm_pDZe9RUgpCdusEgeJArXVg"] .zpimage-container figure img { width:500px ; height:302.50px ; } } [data-element-id="elm_pDZe9RUgpCdusEgeJArXVg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-size-large zpimage-tablet-fallback-large zpimage-mobile-fallback-large hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/jhghg.jpg" width="500" height="302.50" loading="lazy" size="large" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_MKXPx9bqEhKf9RaGCAZYcg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_MKXPx9bqEhKf9RaGCAZYcg"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:28px;font-weight:700;">PRINCIPAIS RECURSOS QUE VOCÊ DEVE BUSCAR EM UM SOFTWARE DE ADMINISTRAÇÃO REMOTA DE PATCHES</span></span></h2></div>
<div data-element-id="elm_4PHiEyawp1C9Dlq68knJfw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_4PHiEyawp1C9Dlq68knJfw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><div style="font-size:14px;"><p style="text-align:justify;margin-bottom:12px;"><span style="font-size:16px;">Ao escolher um software de administração remota de patches para a sua empresa, vários recursos essenciais devem ser considerados. Primeiro, procure uma solução que ofereça controle e visibilidade centralizados. Isso permitirá que você monitore o status de atualizações, controle a conformidade e gere relatórios para auditoria. Em segundo lugar, certifique-se de que o software habilite verificação automática de patches e implementação em diversos sistemas operacionais e aplicativos. A compatibilidade é essencial para garantir que todos os seus dispositivos e softwares sejam cobertos. Por fim, procure escalabilidade fácil em uma plataforma de nuvem fácil de usar.</span></p></div>
<div style="font-size:14px;"><h2 style="font-size:28px;"></h2></div></div></div></div>
<div data-element-id="elm_yJJu8cc1P7XZbCBI12PzPA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_yJJu8cc1P7XZbCBI12PzPA"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><div style="color:inherit;"><div style="font-size:14px;"><h2 style="font-size:28px;"><b>ESTUDOS DE CASO</b><b></b></h2></div>
</div></h2></div><div data-element-id="elm_AjibcjorjiUiGaiuavsIrg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_AjibcjorjiUiGaiuavsIrg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-justify " data-editor="true"><div style="color:inherit;"><div style="font-size:14px;"><div style="color:inherit;"><div><p style="margin-bottom:12px;"><span style="font-size:16px;">Para exemplificar os benefícios dos softwares de administração remota de patches, vamos ver alguns estudos de caso:</span></p></div>
<div><div><p style="margin-bottom:12px;"><span style="font-size:16px;">●&nbsp;A Câmara Municipal de Birmingham, uma das maiores do Reino Unido, já não atualiza nenhum software manualmente. Quando uma máquina entra no período de manutenção semanal usando o Faronics Cloud, atualiza automaticamente os softwares especificados. Isso costumava levar cerca de três horas por software, para preparação e implementação: agora, é rapidinho.</span></p><p style="margin-bottom:12px;"><span style="font-size:16px;">●&nbsp;A Biblioteca Lewis and Clark em Montana, EUA, também usa o Faronics Cloud para colocar os computadores em modo de manutenção semanal, economizando várias horas por semana, enquanto os softwares são atualizados automaticamente. E sempre dá certo. Não é mais um problema que as filiais estejam muito distantes da equipe de TI, porque tudo é administrado com uma console de nuvem única.</span></p></div>
</div><div><p style="margin-bottom:12px;"><span style="font-size:16px;">O software de administração remota de patches pode beneficiar empresas de todos os portes e setores. Ao automatizar o processo de aplicação de patches e fornecer controle centralizado, as empresas podem dinamizar as atualizações e melhorar a postura de segurança.</span></p></div>
</div></div></div></div></div><div data-element-id="elm_L1TuLIIIl9aLb09Okq4ZUA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_L1TuLIIIl9aLb09Okq4ZUA"] .zpimage-container figure img { width: 800px ; height: 488.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_L1TuLIIIl9aLb09Okq4ZUA"] .zpimage-container figure img { width:500px ; height:305.00px ; } } @media (max-width: 767px) { [data-element-id="elm_L1TuLIIIl9aLb09Okq4ZUA"] .zpimage-container figure img { width:500px ; height:305.00px ; } } [data-element-id="elm_L1TuLIIIl9aLb09Okq4ZUA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-size-large zpimage-tablet-fallback-large zpimage-mobile-fallback-large hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/fdsd.jpg" width="500" height="305.00" loading="lazy" size="large" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_1RJnjdcE6Oe7GIscX1_2oQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_1RJnjdcE6Oe7GIscX1_2oQ"].zpelem-heading { border-radius:1px; } </style><h2 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:28px;font-weight:700;">DINAMIZE AS ATUALIZAÇÕES COM SOFTWARE DE ADMINISTRAÇÃO REMOTA DE PATCHES</span></span></h2></div>
<div data-element-id="elm_thwdldY0c2dkiUVM5Njvqg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_thwdldY0c2dkiUVM5Njvqg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;font-size:16px;">Um software de administração remota de patches é uma ferramenta potente, que simplifica o processo de atualizar os softwares. O Faronics Cloud automatiza o processo de administração de patches, economizando tempo e esforço. Ao usar software de administração remota de patches, você garante atualizações consistentes e em tempo hábil, melhora a postura de segurança e fica à frente das ameaças potenciais. Portanto, não espere mais – dinamize as suas atualizações hoje mesmo!</span><br></p></div>
</div><div data-element-id="elm_vvsppv7-d1ZvKwJrzCypXA" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_vvsppv7-d1ZvKwJrzCypXA"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_ZXBqb3XzhVvsqIf5uI7UiQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_ZXBqb3XzhVvsqIf5uI7UiQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>Sobre o autor</p></div>
</div><div data-element-id="elm_OcncrB08hur6UpNwT08J2A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_OcncrB08hur6UpNwT08J2A"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><h4 style="font-size:17px;">Tom Guy</h4><p style="margin-bottom:12px;"><span style="font-size:16px;">Tom é consultor em tecnologia e faz parte do time de produto da Faronics em Londres. Possui experiência de mais de uma década em desenvolvimento de softwares. Quando não está trabalhando com tecnologia pode ser encontrado assistindo o Everton, seu time do coração, ou passeando com Eric, seu golden retriever.</span></p></div>
</div></div><div data-element-id="elm_3KVoOl9iJxDcbf2N5bcVvA" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_3KVoOl9iJxDcbf2N5bcVvA"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div></div></div></div></div></div>]]></content:encoded><pubDate>Fri, 13 Oct 2023 10:21:21 -0300</pubDate></item><item><title><![CDATA[Utilizando o ESP32-C3 em conjunto com o display OLED para exibir imagens]]></title><link>https://www.uktech.com.br/bloguk/post/utilizando-o-esp32-c3-em-conjunto-com-o-display-oled-para-exibir-imagens</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/vishnu-mohanan-r98pDCvbcfM-unsplash.jpg"/>No tutorial de hoje vamos mostrar como usar o ESP32-C3 em conjunto com o display OLED para exibir imagens. Materiais utilizados: 1. ESP32-C3 (UKT-ESP32C ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_VvQUh915Tm-xBWyUS4_FgQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_VvQUh915Tm-xBWyUS4_FgQ"].zpsection{ border-radius:1px; } </style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_cfVpmi0SMcUt_I9LMxyePQ" data-element-type="row" class="zprow zprow-container zpalign-items-center zpjustify-content-center " data-equal-column=""><style type="text/css"> [data-element-id="elm_cfVpmi0SMcUt_I9LMxyePQ"].zprow{ border-radius:1px; } </style><div data-element-id="elm_pQ-qvL9E5-AGHbIA7f3DmQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_pQ-qvL9E5-AGHbIA7f3DmQ"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_FV1a-8_ufkf5d04WKSO1Qg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_FV1a-8_ufkf5d04WKSO1Qg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><div><div><div><p style="color:inherit;text-align:left;">No tutorial de hoje vamos mostrar como usar o ESP32-C3 em conjunto com o display OLED para exibir imagens.</p><p style="color:inherit;text-align:left;"><br></p><p style="text-align:left;"><span style="font-size:28px;color:rgba(49, 188, 173, 0.88);">Materiais utilizados:</span></p><p style="color:inherit;text-align:left;">1. ESP32-C3 (UKT-ESP32C3-DEV-MINI-USB)<a href="https://www.uktech.eng.br/MLB-3441547157-placa-desenvolvimento-esp32-c3-usb-c-carregador-de-bateria-_JM" title="(Onde comprar)" target="_blank" rel=""><br></a></p><p style="color:inherit;text-align:left;">2. Display LCD (128x32);</p><p style="color:inherit;text-align:left;">3. Jumper’s ou fios.</p><p style="color:inherit;text-align:left;"><br></p><p style="text-align:left;"><span style="font-size:28px;color:rgb(49, 188, 173);">Esquemático:</span></p></div>
</div></div></div></div><div data-element-id="elm_h23P9hnKd1Yy9d4nr4L9Dg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_h23P9hnKd1Yy9d4nr4L9Dg"] .zpimage-container figure img { width: 500px ; height: 666.67px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_h23P9hnKd1Yy9d4nr4L9Dg"] .zpimage-container figure img { width:500px ; height:666.67px ; } } @media (max-width: 767px) { [data-element-id="elm_h23P9hnKd1Yy9d4nr4L9Dg"] .zpimage-container figure img { width:500px ; height:666.67px ; } } [data-element-id="elm_h23P9hnKd1Yy9d4nr4L9Dg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled.png" width="500" height="666.67" loading="lazy" size="medium" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_5kvsAZ7lPK4sgdcItH9JkA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_5kvsAZ7lPK4sgdcItH9JkA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div><div><p style="color:inherit;">Bibliotecas Arduíno utilizadas:</p><ul style="color:inherit;"><li>SSD1306 by Adafruit.</li></ul><p style="color:inherit;">E dependências das respectivas bibliotecas acima.</p><p style="color:inherit;text-align:justify;"><br></p><p style="text-align:justify;"><span style="font-size:28px;color:rgb(49, 188, 173);">Seleção da placa na Arduíno IDE:</span></p><div style="color:inherit;"><figure><div><img src="https://media.licdn.com/dms/image/D4D12AQH30VwLri90WQ/article-inline_image-shrink_1500_2232/0/1696504869849?e=1701907200&amp;v=beta&amp;t=dJbXLspWglwmMQYgZK9lAj-iZO67x64jdRighEQL6lE" alt=""></div>
</figure></div><p style="color:inherit;">Selecionamos o módulo ESP32C3.</p><p style="color:inherit;"><br></p><p><span style="font-size:28px;color:rgb(49, 188, 173);">Código</span><span style="color:inherit;">:</span></p></div>
</div></div></div><div data-element-id="elm_5W4Q07bBKKQjDiCrQLYPSg" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><pre><code>#include "Adafruit_SSD1306.h"

// Define o tamanho do display OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32

const unsigned char uktech_negativo_branco [] PROGMEM = {
	// 'uktech_negativo_branco, 128x32px
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xe0, 0xff, 0xfe, 0xff, 0xe0, 0xfc, 0x1c, 0x0e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xe1, 0xff, 0xfe, 0xff, 0xe3, 0xff, 0x3c, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xe3, 0xff, 0xfe, 0xff, 0xe7, 0xff, 0xbc, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xe7, 0x81, 0xe0, 0xf0, 0x0f, 0xcf, 0xbc, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xef, 0x01, 0xe0, 0xf0, 0x0f, 0x02, 0x3c, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xfe, 0x01, 0xe0, 0xf0, 0x1e, 0x00, 0x3c, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xfe, 0x01, 0xe0, 0xff, 0xde, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xfe, 0x01, 0xe0, 0xff, 0xde, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x70, 0x3d, 0xff, 0x01, 0xe0, 0xff, 0xde, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x78, 0x3d, 0xe7, 0x81, 0xe0, 0xf0, 0x1e, 0x00, 0x3c, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x78, 0x3d, 0xe3, 0xc1, 0xe0, 0xf0, 0x0f, 0x03, 0xbc, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x3c, 0x79, 0xe3, 0xc1, 0xe0, 0xff, 0xef, 0xcf, 0xbc, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x3f, 0xf9, 0xe1, 0xe1, 0xe0, 0xff, 0xe7, 0xff, 0xbc, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x1f, 0xf1, 0xe0, 0xf1, 0xe0, 0xff, 0xe3, 0xff, 0x3c, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x0f, 0xc1, 0xe0, 0xf9, 0xe0, 0xff, 0xe0, 0xfc, 0x3c, 0x1e, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x20, 0x20, 0x1c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x13, 0x24, 0xb2, 0xe8, 0x89, 0x2c, 0xa9, 0x88, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x12, 0xcf, 0x6a, 0xad, 0xcb, 0xc9, 0x76, 0x98, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x1a, 0x6d, 0x6e, 0xbd, 0xcb, 0xe9, 0xad, 0x98, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, -1);


void setup() {
  //Velocidade do monitor serial
  Serial.begin(115200);
  // Pinos do barramento I2C
  Wire.begin(18, 19);

   // Verifica estado de inicialização do display, acusa falha em caso de erro
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0, false, true)) {
    Serial.println(F("Falha ao inicializar o SSD1306"));
    for (;;)
      ;
  }

}

void loop() {
display.clearDisplay();
  display.drawBitmap(0, 0, uktech_negativo_branco, 128, 32, SSD1306_WHITE); // Draw the bitmap
  display.display(); // Show the image on the display
  delay(1000); // Pause for 1 second

}</code></pre></div>
</div><div data-element-id="elm_pNMfi0P63_y2SDJfS5g3dQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_pNMfi0P63_y2SDJfS5g3dQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;"><span style="font-size:20px;">Onde o vetor uktech_negativo_branco[] foi gerado a partir da seguinte imagem.</span></span><br></p></div>
</div><div data-element-id="elm_-OsiyM1MS_4mc5gIaqILIQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_-OsiyM1MS_4mc5gIaqILIQ"] .zpimage-container figure img { width: 500px ; height: 186.25px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_-OsiyM1MS_4mc5gIaqILIQ"] .zpimage-container figure img { width:500px ; height:186.25px ; } } @media (max-width: 767px) { [data-element-id="elm_-OsiyM1MS_4mc5gIaqILIQ"] .zpimage-container figure img { width:500px ; height:186.25px ; } } [data-element-id="elm_-OsiyM1MS_4mc5gIaqILIQ"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/uktech_negativo_verde.png" width="500" height="186.25" loading="lazy" size="medium" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_KVlCK4RVlE9G8J1yi22nPg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_KVlCK4RVlE9G8J1yi22nPg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="font-size:28px;color:rgb(49, 188, 173);">Como obter o vetor de bytes a partir de uma imagem:&nbsp;</span></p><p><span style="color:inherit;">Basta utilizar algum das ferramentas abaixo:</span></p><ul><li><span style="color:inherit;"><a href="https://javl.github.io/image2cpp/" title="https://javl.github.io/image2cpp/&nbsp;" target="_blank" rel="">https://javl.github.io/image2cpp/&nbsp;</a></span><br></li><li><span style="color:inherit;"><a href="https://diyusthad.com/image2cpp" title="https://diyusthad.com/image2cpp&nbsp;" target="_blank" rel="">https://diyusthad.com/image2cpp&nbsp;</a></span><br></li><li><span style="color:inherit;"><a href="https://mischianti.org/images-to-byte-array-online-converter-cpp-arduino/" title="https://mischianti.org/images-to-byte-array-online-converter-cpp-arduino/" target="_blank" rel="">https://mischianti.org/images-to-byte-array-online-converter-cpp-arduino/</a></span><br></li></ul></div>
</div><div data-element-id="elm_aQ-iDdPyfKJ2v-hvstDiLg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_aQ-iDdPyfKJ2v-hvstDiLg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:rgb(49, 188, 173);font-size:28px;">Resultado:</span><br></p></div>
</div><div data-element-id="elm_8HfNx78h6WekdZ3wi-mDBw" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_8HfNx78h6WekdZ3wi-mDBw"] .zpimage-container figure img { width: 500px ; height: 666.67px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_8HfNx78h6WekdZ3wi-mDBw"] .zpimage-container figure img { width:500px ; height:666.67px ; } } @media (max-width: 767px) { [data-element-id="elm_8HfNx78h6WekdZ3wi-mDBw"] .zpimage-container figure img { width:500px ; height:666.67px ; } } [data-element-id="elm_8HfNx78h6WekdZ3wi-mDBw"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://www.uktech.com.br/Untitled%201.png" width="500" height="666.67" loading="lazy" size="medium" data-lightbox="true"></picture></span></figure></div>
</div><div data-element-id="elm_8qocvXLaOpfWoka3TN8a3w" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_8qocvXLaOpfWoka3TN8a3w"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_OgBEGXwO_Eg3_dhq88ZeLA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_OgBEGXwO_Eg3_dhq88ZeLA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div><p><span style="font-size:18px;color:rgb(49, 188, 173);">Sobre o autor:</span></p><p style="color:inherit;"><span style="font-family:verdana, sans-serif;">Matheus Ernan Reichert</span></p><p style="color:inherit;"><span style="color:inherit;">Matheus desempenha o papel de desenvolvedor de sistemas de tecnologia da informação dentro da equipe da UKTech. Possui experiência no domínio de micro controladores e desenvolvimento de software, e está na reta final de sua graduação em Engenharia de Computação. Em seus momentos de lazer, ele se dedica a interesses como jogos de computador e a apreciação de animes.</span><br></p></div>
</div></div><div data-element-id="elm_SKn6lUyXjU2FkJhAV4_hqA" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_SKn6lUyXjU2FkJhAV4_hqA"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid " data-divider-border-color><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_xxO0A9jJKthwKr_NQEPLNA" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_xxO0A9jJKthwKr_NQEPLNA"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center "><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="/Fale-conosco" target="_blank"><span class="zpbutton-content">Entre em contato conosco</span></a></div>
</div></div></div></div></div></div>]]></content:encoded><pubDate>Thu, 05 Oct 2023 09:37:58 -0300</pubDate></item></channel></rss>