chore(i18n): sync translations with latest source changes (chunk 1/1, 830 changes)

pull/571/head
localizeflow[bot] 8 months ago
parent b07f4e6002
commit 9395b2b625

@ -29,7 +29,7 @@ Follow these steps to get started using these resources:
#### Supported via GitHub Action (Automated & Always Up-to-Date) #### Supported via GitHub Action (Automated & Always Up-to-Date)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](./translations/ar/README.md) | [Bengali](./translations/bn/README.md) | [Bulgarian](./translations/bg/README.md) | [Burmese (Myanmar)](./translations/my/README.md) | [Chinese (Simplified)](./translations/zh/README.md) | [Chinese (Traditional, Hong Kong)](./translations/hk/README.md) | [Chinese (Traditional, Macau)](./translations/mo/README.md) | [Chinese (Traditional, Taiwan)](./translations/tw/README.md) | [Croatian](./translations/hr/README.md) | [Czech](./translations/cs/README.md) | [Danish](./translations/da/README.md) | [Dutch](./translations/nl/README.md) | [Estonian](./translations/et/README.md) | [Finnish](./translations/fi/README.md) | [French](./translations/fr/README.md) | [German](./translations/de/README.md) | [Greek](./translations/el/README.md) | [Hebrew](./translations/he/README.md) | [Hindi](./translations/hi/README.md) | [Hungarian](./translations/hu/README.md) | [Indonesian](./translations/id/README.md) | [Italian](./translations/it/README.md) | [Japanese](./translations/ja/README.md) | [Kannada](./translations/kn/README.md) | [Korean](./translations/ko/README.md) | [Lithuanian](./translations/lt/README.md) | [Malay](./translations/ms/README.md) | [Malayalam](./translations/ml/README.md) | [Marathi](./translations/mr/README.md) | [Nepali](./translations/ne/README.md) | [Nigerian Pidgin](./translations/pcm/README.md) | [Norwegian](./translations/no/README.md) | [Persian (Farsi)](./translations/fa/README.md) | [Polish](./translations/pl/README.md) | [Portuguese (Brazil)](./translations/br/README.md) | [Portuguese (Portugal)](./translations/pt/README.md) | [Punjabi (Gurmukhi)](./translations/pa/README.md) | [Romanian](./translations/ro/README.md) | [Russian](./translations/ru/README.md) | [Serbian (Cyrillic)](./translations/sr/README.md) | [Slovak](./translations/sk/README.md) | [Slovenian](./translations/sl/README.md) | [Spanish](./translations/es/README.md) | [Swahili](./translations/sw/README.md) | [Swedish](./translations/sv/README.md) | [Tagalog (Filipino)](./translations/tl/README.md) | [Tamil](./translations/ta/README.md) | [Telugu](./translations/te/README.md) | [Thai](./translations/th/README.md) | [Turkish](./translations/tr/README.md) | [Ukrainian](./translations/uk/README.md) | [Urdu](./translations/ur/README.md) | [Vietnamese](./translations/vi/README.md) [Arabic](./translations/ar/README.md) | [Bengali](./translations/bn/README.md) | [Bulgarian](./translations/bg/README.md) | [Burmese (Myanmar)](./translations/my/README.md) | [Chinese (Simplified)](./translations/zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](./translations/zh-HK/README.md) | [Chinese (Traditional, Macau)](./translations/zh-MO/README.md) | [Chinese (Traditional, Taiwan)](./translations/zh-TW/README.md) | [Croatian](./translations/hr/README.md) | [Czech](./translations/cs/README.md) | [Danish](./translations/da/README.md) | [Dutch](./translations/nl/README.md) | [Estonian](./translations/et/README.md) | [Finnish](./translations/fi/README.md) | [French](./translations/fr/README.md) | [German](./translations/de/README.md) | [Greek](./translations/el/README.md) | [Hebrew](./translations/he/README.md) | [Hindi](./translations/hi/README.md) | [Hungarian](./translations/hu/README.md) | [Indonesian](./translations/id/README.md) | [Italian](./translations/it/README.md) | [Japanese](./translations/ja/README.md) | [Kannada](./translations/kn/README.md) | [Korean](./translations/ko/README.md) | [Lithuanian](./translations/lt/README.md) | [Malay](./translations/ms/README.md) | [Malayalam](./translations/ml/README.md) | [Marathi](./translations/mr/README.md) | [Nepali](./translations/ne/README.md) | [Nigerian Pidgin](./translations/pcm/README.md) | [Norwegian](./translations/no/README.md) | [Persian (Farsi)](./translations/fa/README.md) | [Polish](./translations/pl/README.md) | [Portuguese (Brazil)](./translations/pt-BR/README.md) | [Portuguese (Portugal)](./translations/pt-PT/README.md) | [Punjabi (Gurmukhi)](./translations/pa/README.md) | [Romanian](./translations/ro/README.md) | [Russian](./translations/ru/README.md) | [Serbian (Cyrillic)](./translations/sr/README.md) | [Slovak](./translations/sk/README.md) | [Slovenian](./translations/sl/README.md) | [Spanish](./translations/es/README.md) | [Swahili](./translations/sw/README.md) | [Swedish](./translations/sv/README.md) | [Tagalog (Filipino)](./translations/tl/README.md) | [Tamil](./translations/ta/README.md) | [Telugu](./translations/te/README.md) | [Thai](./translations/th/README.md) | [Turkish](./translations/tr/README.md) | [Ukrainian](./translations/uk/README.md) | [Urdu](./translations/ur/README.md) | [Vietnamese](./translations/vi/README.md)
> **Prefer to Clone Locally?** > **Prefer to Clone Locally?**

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Introdução ao IoT # Introdução ao IoT
![Resumo visual desta lição](../../../../../translated_images/br/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) ![Resumo visual desta lição](../../../../../translated_images/pt-BR/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg)
> Resumo visual por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Resumo visual por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -79,7 +79,7 @@ Um microcontrolador (também chamado de MCU, abreviação de microcontroller uni
Microcontroladores são dispositivos de computação de baixo custo, com preços médios para aqueles usados em hardware personalizado caindo para cerca de US$0,50, e alguns dispositivos custando apenas US$0,03. Kits de desenvolvimento podem começar a partir de US$4, com custos aumentando conforme mais recursos são adicionados. O [Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html), um kit de desenvolvimento de microcontrolador da [Seeed Studios](https://www.seeedstudio.com) que possui sensores, atuadores, WiFi e uma tela, custa cerca de US$30. Microcontroladores são dispositivos de computação de baixo custo, com preços médios para aqueles usados em hardware personalizado caindo para cerca de US$0,50, e alguns dispositivos custando apenas US$0,03. Kits de desenvolvimento podem começar a partir de US$4, com custos aumentando conforme mais recursos são adicionados. O [Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html), um kit de desenvolvimento de microcontrolador da [Seeed Studios](https://www.seeedstudio.com) que possui sensores, atuadores, WiFi e uma tela, custa cerca de US$30.
![Um Wio Terminal](../../../../../translated_images/br/wio-terminal.b8299ee16587db9a.webp) ![Um Wio Terminal](../../../../../translated_images/pt-BR/wio-terminal.b8299ee16587db9a.webp)
> 💁 Ao pesquisar microcontroladores na Internet, tenha cuidado ao procurar pelo termo **MCU**, pois isso pode trazer muitos resultados relacionados ao Universo Cinematográfico da Marvel, e não a microcontroladores. > 💁 Ao pesquisar microcontroladores na Internet, tenha cuidado ao procurar pelo termo **MCU**, pois isso pode trazer muitos resultados relacionados ao Universo Cinematográfico da Marvel, e não a microcontroladores.
@ -93,7 +93,7 @@ Kits de desenvolvimento de microcontroladores geralmente vêm com sensores e atu
Um computador de placa única é um pequeno dispositivo de computação que contém todos os elementos de um computador completo em uma única placa pequena. Esses dispositivos possuem especificações próximas às de um PC ou Mac, executam um sistema operacional completo, mas são menores, consomem menos energia e são substancialmente mais baratos. Um computador de placa única é um pequeno dispositivo de computação que contém todos os elementos de um computador completo em uma única placa pequena. Esses dispositivos possuem especificações próximas às de um PC ou Mac, executam um sistema operacional completo, mas são menores, consomem menos energia e são substancialmente mais baratos.
![Um Raspberry Pi 4](../../../../../translated_images/br/raspberry-pi-4.fd4590d308c3d456.webp) ![Um Raspberry Pi 4](../../../../../translated_images/pt-BR/raspberry-pi-4.fd4590d308c3d456.webp)
O Raspberry Pi é um dos computadores de placa única mais populares. O Raspberry Pi é um dos computadores de placa única mais populares.

@ -11,7 +11,7 @@ CO_OP_TRANSLATOR_METADATA:
O [Raspberry Pi](https://raspberrypi.org) é um computador de placa única. Você pode adicionar sensores e atuadores usando uma ampla variedade de dispositivos e ecossistemas. Para estas lições, utilizaremos um ecossistema de hardware chamado [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html). Você programará seu Pi e acessará os sensores Grove usando Python. O [Raspberry Pi](https://raspberrypi.org) é um computador de placa única. Você pode adicionar sensores e atuadores usando uma ampla variedade de dispositivos e ecossistemas. Para estas lições, utilizaremos um ecossistema de hardware chamado [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html). Você programará seu Pi e acessará os sensores Grove usando Python.
![Um Raspberry Pi 4](../../../../../translated_images/br/raspberry-pi-4.fd4590d308c3d456.webp) ![Um Raspberry Pi 4](../../../../../translated_images/pt-BR/raspberry-pi-4.fd4590d308c3d456.webp)
## Configuração ## Configuração
@ -112,7 +112,7 @@ Configure o sistema operacional do Pi no modo headless.
1. No Raspberry Pi Imager, selecione o botão **CHOOSE OS**, depois escolha *Raspberry Pi OS (Other)* e, em seguida, *Raspberry Pi OS Lite (32-bit)*. 1. No Raspberry Pi Imager, selecione o botão **CHOOSE OS**, depois escolha *Raspberry Pi OS (Other)* e, em seguida, *Raspberry Pi OS Lite (32-bit)*.
![O Raspberry Pi Imager com o Raspberry Pi OS Lite selecionado](../../../../../translated_images/br/raspberry-pi-imager.24aedeab9e233d84.webp) ![O Raspberry Pi Imager com o Raspberry Pi OS Lite selecionado](../../../../../translated_images/pt-BR/raspberry-pi-imager.24aedeab9e233d84.webp)
> 💁 O Raspberry Pi OS Lite é uma versão do sistema operacional que não possui interface gráfica ou ferramentas baseadas em UI. Isso não é necessário para um Pi headless e torna a instalação menor e o tempo de inicialização mais rápido. > 💁 O Raspberry Pi OS Lite é uma versão do sistema operacional que não possui interface gráfica ou ferramentas baseadas em UI. Isso não é necessário para um Pi headless e torna a instalação menor e o tempo de inicialização mais rápido.
@ -251,7 +251,7 @@ Crie o aplicativo Hello World.
1. Abra esta pasta no VS Code selecionando *File -> Open...* e escolhendo a pasta *nightlight*, depois selecione **OK**. 1. Abra esta pasta no VS Code selecionando *File -> Open...* e escolhendo a pasta *nightlight*, depois selecione **OK**.
![A caixa de diálogo do VS Code mostrando a pasta nightlight](../../../../../translated_images/br/vscode-open-nightlight-remote.d3d2a4011e30d535.webp) ![A caixa de diálogo do VS Code mostrando a pasta nightlight](../../../../../translated_images/pt-BR/vscode-open-nightlight-remote.d3d2a4011e30d535.webp)
1. Abra o arquivo `app.py` no explorador do VS Code e adicione o seguinte código: 1. Abra o arquivo `app.py` no explorador do VS Code e adicione o seguinte código:

@ -154,11 +154,11 @@ Crie um aplicativo Python para imprimir `"Olá Mundo"` no console.
1. Quando o VS Code for iniciado, ele ativará o ambiente virtual Python. O ambiente virtual selecionado aparecerá na barra de status inferior: 1. Quando o VS Code for iniciado, ele ativará o ambiente virtual Python. O ambiente virtual selecionado aparecerá na barra de status inferior:
![VS Code mostrando o ambiente virtual selecionado](../../../../../translated_images/br/vscode-virtual-env.8ba42e04c3d533cf.webp) ![VS Code mostrando o ambiente virtual selecionado](../../../../../translated_images/pt-BR/vscode-virtual-env.8ba42e04c3d533cf.webp)
1. Se o Terminal do VS Code já estiver em execução quando o VS Code for iniciado, ele não terá o ambiente virtual ativado. A maneira mais fácil de resolver isso é encerrar o terminal usando o botão **Kill the active terminal instance**: 1. Se o Terminal do VS Code já estiver em execução quando o VS Code for iniciado, ele não terá o ambiente virtual ativado. A maneira mais fácil de resolver isso é encerrar o terminal usando o botão **Kill the active terminal instance**:
![Botão do VS Code para encerrar a instância ativa do terminal](../../../../../translated_images/br/vscode-kill-terminal.1cc4de7c6f25ee08.webp) ![Botão do VS Code para encerrar a instância ativa do terminal](../../../../../translated_images/pt-BR/vscode-kill-terminal.1cc4de7c6f25ee08.webp)
Você pode verificar se o terminal tem o ambiente virtual ativado, pois o nome do ambiente virtual será um prefixo no prompt do terminal. Por exemplo, pode ser: Você pode verificar se o terminal tem o ambiente virtual ativado, pois o nome do ambiente virtual será um prefixo no prompt do terminal. Por exemplo, pode ser:
@ -212,7 +212,7 @@ Como um segundo passo do 'Olá Mundo', você executará o aplicativo CounterFit
O aplicativo começará a ser executado e abrirá no seu navegador: O aplicativo começará a ser executado e abrirá no seu navegador:
![O aplicativo CounterFit rodando em um navegador](../../../../../translated_images/br/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png) ![O aplicativo CounterFit rodando em um navegador](../../../../../translated_images/pt-BR/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.png)
Ele será marcado como *Disconnected*, com o LED no canto superior direito apagado. Ele será marcado como *Disconnected*, com o LED no canto superior direito apagado.
@ -229,11 +229,11 @@ Como um segundo passo do 'Olá Mundo', você executará o aplicativo CounterFit
1. Você precisará iniciar um novo terminal do VS Code selecionando o botão **Create a new integrated terminal**. Isso porque o aplicativo CounterFit está rodando no terminal atual. 1. Você precisará iniciar um novo terminal do VS Code selecionando o botão **Create a new integrated terminal**. Isso porque o aplicativo CounterFit está rodando no terminal atual.
![Botão do VS Code para criar um novo terminal integrado](../../../../../translated_images/br/vscode-new-terminal.77db8fc0f9cd3182.webp) ![Botão do VS Code para criar um novo terminal integrado](../../../../../translated_images/pt-BR/vscode-new-terminal.77db8fc0f9cd3182.webp)
1. No novo terminal, execute o arquivo `app.py` como antes. O status do CounterFit mudará para **Connected** e o LED acenderá. 1. No novo terminal, execute o arquivo `app.py` como antes. O status do CounterFit mudará para **Connected** e o LED acenderá.
![CounterFit mostrando como conectado](../../../../../translated_images/br/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png) ![CounterFit mostrando como conectado](../../../../../translated_images/pt-BR/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.png)
> 💁 Você pode encontrar este código na pasta [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device). > 💁 Você pode encontrar este código na pasta [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device).

@ -11,7 +11,7 @@ CO_OP_TRANSLATOR_METADATA:
O [Wio Terminal da Seeed Studios](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) é um microcontrolador compatível com Arduino, com WiFi e alguns sensores e atuadores integrados, além de portas para adicionar mais sensores e atuadores, utilizando um ecossistema de hardware chamado [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html). O [Wio Terminal da Seeed Studios](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) é um microcontrolador compatível com Arduino, com WiFi e alguns sensores e atuadores integrados, além de portas para adicionar mais sensores e atuadores, utilizando um ecossistema de hardware chamado [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html).
![Um Wio Terminal da Seeed Studios](../../../../../translated_images/br/wio-terminal.b8299ee16587db9a.webp) ![Um Wio Terminal da Seeed Studios](../../../../../translated_images/pt-BR/wio-terminal.b8299ee16587db9a.webp)
## Configuração ## Configuração
@ -51,15 +51,15 @@ Crie o projeto no PlatformIO.
1. O ícone do PlatformIO estará na barra de menu lateral: 1. O ícone do PlatformIO estará na barra de menu lateral:
![A opção de menu do PlatformIO](../../../../../translated_images/br/vscode-platformio-menu.297be26b9733e5c4.webp) ![A opção de menu do PlatformIO](../../../../../translated_images/pt-BR/vscode-platformio-menu.297be26b9733e5c4.webp)
Selecione este item de menu e, em seguida, selecione *PIO Home -> Open*. Selecione este item de menu e, em seguida, selecione *PIO Home -> Open*.
![A opção de abrir o PlatformIO](../../../../../translated_images/br/vscode-platformio-home-open.3f9a41bfd3f4da1c.webp) ![A opção de abrir o PlatformIO](../../../../../translated_images/pt-BR/vscode-platformio-home-open.3f9a41bfd3f4da1c.webp)
1. Na tela de boas-vindas, selecione o botão **+ New Project**. 1. Na tela de boas-vindas, selecione o botão **+ New Project**.
![O botão de novo projeto](../../../../../translated_images/br/vscode-platformio-welcome-new-button.ba6fc8a4c7b78cc8.webp) ![O botão de novo projeto](../../../../../translated_images/pt-BR/vscode-platformio-welcome-new-button.ba6fc8a4c7b78cc8.webp)
1. Configure o projeto no *Project Wizard*: 1. Configure o projeto no *Project Wizard*:
@ -73,7 +73,7 @@ Crie o projeto no PlatformIO.
1. Selecione o botão **Finish**. 1. Selecione o botão **Finish**.
![O assistente de projeto preenchido](../../../../../translated_images/br/vscode-platformio-nightlight-project-wizard.5c64db4da6037420.webp) ![O assistente de projeto preenchido](../../../../../translated_images/pt-BR/vscode-platformio-nightlight-project-wizard.5c64db4da6037420.webp)
O PlatformIO fará o download dos componentes necessários para compilar o código para o Wio Terminal e criará seu projeto. Isso pode levar alguns minutos. O PlatformIO fará o download dos componentes necessários para compilar o código para o Wio Terminal e criará seu projeto. Isso pode levar alguns minutos.
@ -179,7 +179,7 @@ Escreva o aplicativo Hello World.
1. Digite `PlatformIO Upload` para buscar a opção de upload e selecione *PlatformIO: Upload*. 1. Digite `PlatformIO Upload` para buscar a opção de upload e selecione *PlatformIO: Upload*.
![A opção de upload do PlatformIO no painel de comandos](../../../../../translated_images/br/vscode-platformio-upload-command-palette.9e0f49cf80d1f1c3.webp) ![A opção de upload do PlatformIO no painel de comandos](../../../../../translated_images/pt-BR/vscode-platformio-upload-command-palette.9e0f49cf80d1f1c3.webp)
O PlatformIO compilará automaticamente o código, se necessário, antes de enviá-lo. O PlatformIO compilará automaticamente o código, se necessário, antes de enviá-lo.
@ -195,7 +195,7 @@ O PlatformIO possui um Monitor Serial que pode monitorar os dados enviados pelo
1. Digite `PlatformIO Serial` para buscar a opção de Monitor Serial e selecione *PlatformIO: Serial Monitor*. 1. Digite `PlatformIO Serial` para buscar a opção de Monitor Serial e selecione *PlatformIO: Serial Monitor*.
![A opção de Monitor Serial do PlatformIO no painel de comandos](../../../../../translated_images/br/vscode-platformio-serial-monitor-command-palette.b348ec841b8a1c14.webp) ![A opção de Monitor Serial do PlatformIO no painel de comandos](../../../../../translated_images/pt-BR/vscode-platformio-serial-monitor-command-palette.b348ec841b8a1c14.webp)
Um novo terminal será aberto, e os dados enviados pela porta serial serão exibidos neste terminal: Um novo terminal será aberto, e os dados enviados pela porta serial serão exibidos neste terminal:

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Um mergulho mais profundo no IoT # Um mergulho mais profundo no IoT
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -41,13 +41,13 @@ Os dois componentes principais de uma aplicação IoT são a *Internet* e o *dis
### O Dispositivo ### O Dispositivo
![Um Raspberry Pi 4](../../../../../translated_images/br/raspberry-pi-4.fd4590d308c3d456.webp) ![Um Raspberry Pi 4](../../../../../translated_images/pt-BR/raspberry-pi-4.fd4590d308c3d456.webp)
A parte do **Dispositivo** no IoT refere-se a um equipamento que pode interagir com o mundo físico. Esses dispositivos geralmente são pequenos, de baixo custo, com computadores que operam em baixa velocidade e consomem pouca energia - por exemplo, microcontroladores simples com apenas alguns kilobytes de RAM (em comparação com gigabytes em um PC), funcionando a algumas centenas de megahertz (em comparação com gigahertz em um PC), mas consumindo tão pouca energia que podem operar por semanas, meses ou até anos com baterias. A parte do **Dispositivo** no IoT refere-se a um equipamento que pode interagir com o mundo físico. Esses dispositivos geralmente são pequenos, de baixo custo, com computadores que operam em baixa velocidade e consomem pouca energia - por exemplo, microcontroladores simples com apenas alguns kilobytes de RAM (em comparação com gigabytes em um PC), funcionando a algumas centenas de megahertz (em comparação com gigahertz em um PC), mas consumindo tão pouca energia que podem operar por semanas, meses ou até anos com baterias.
Esses dispositivos interagem com o mundo físico, seja usando sensores para coletar dados do ambiente ou controlando saídas ou atuadores para realizar mudanças físicas. Um exemplo típico é um termostato inteligente - um dispositivo que possui um sensor de temperatura, um meio de definir a temperatura desejada, como um botão ou tela sensível ao toque, e uma conexão com um sistema de aquecimento ou resfriamento que pode ser ativado quando a temperatura detectada estiver fora da faixa desejada. O sensor de temperatura detecta que o ambiente está muito frio e um atuador liga o aquecimento. Esses dispositivos interagem com o mundo físico, seja usando sensores para coletar dados do ambiente ou controlando saídas ou atuadores para realizar mudanças físicas. Um exemplo típico é um termostato inteligente - um dispositivo que possui um sensor de temperatura, um meio de definir a temperatura desejada, como um botão ou tela sensível ao toque, e uma conexão com um sistema de aquecimento ou resfriamento que pode ser ativado quando a temperatura detectada estiver fora da faixa desejada. O sensor de temperatura detecta que o ambiente está muito frio e um atuador liga o aquecimento.
![Um diagrama mostrando a temperatura e um botão como entradas para um dispositivo IoT, e o controle de um aquecedor como saída](../../../../../translated_images/br/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png) ![Um diagrama mostrando a temperatura e um botão como entradas para um dispositivo IoT, e o controle de um aquecedor como saída](../../../../../translated_images/pt-BR/basic-thermostat.a923217fd1f37e5a6f3390396a65c22a387419ea2dd17e518ec24315ba6ae9a8.png)
Há uma enorme variedade de dispositivos que podem atuar como dispositivos IoT, desde hardware dedicado que detecta uma única coisa até dispositivos de uso geral, como seu smartphone! Um smartphone pode usar sensores para detectar o ambiente ao seu redor e atuadores para interagir com o mundo - por exemplo, usando um sensor GPS para detectar sua localização e um alto-falante para fornecer instruções de navegação até um destino. Há uma enorme variedade de dispositivos que podem atuar como dispositivos IoT, desde hardware dedicado que detecta uma única coisa até dispositivos de uso geral, como seu smartphone! Um smartphone pode usar sensores para detectar o ambiente ao seu redor e atuadores para interagir com o mundo - por exemplo, usando um sensor GPS para detectar sua localização e um alto-falante para fornecer instruções de navegação até um destino.
@ -63,11 +63,11 @@ Os dispositivos nem sempre se conectam diretamente à Internet via Wi-Fi ou cone
No exemplo de um termostato inteligente, o termostato se conectaria à rede Wi-Fi doméstica e a um serviço em nuvem. Ele enviaria os dados de temperatura para esse serviço em nuvem, que os armazenaria em um banco de dados, permitindo que o proprietário verificasse as temperaturas atuais e passadas por meio de um aplicativo no celular. Outro serviço na nuvem saberia qual temperatura o proprietário deseja e enviaria mensagens de volta ao dispositivo IoT, por meio do serviço em nuvem, para informar ao sistema de aquecimento quando ligar ou desligar. No exemplo de um termostato inteligente, o termostato se conectaria à rede Wi-Fi doméstica e a um serviço em nuvem. Ele enviaria os dados de temperatura para esse serviço em nuvem, que os armazenaria em um banco de dados, permitindo que o proprietário verificasse as temperaturas atuais e passadas por meio de um aplicativo no celular. Outro serviço na nuvem saberia qual temperatura o proprietário deseja e enviaria mensagens de volta ao dispositivo IoT, por meio do serviço em nuvem, para informar ao sistema de aquecimento quando ligar ou desligar.
![Um diagrama mostrando a temperatura e um botão como entradas para um dispositivo IoT, o dispositivo IoT com comunicação bidirecional com a nuvem, que por sua vez tem comunicação bidirecional com um telefone, e o controle de um aquecedor como saída do dispositivo IoT](../../../../../translated_images/br/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png) ![Um diagrama mostrando a temperatura e um botão como entradas para um dispositivo IoT, o dispositivo IoT com comunicação bidirecional com a nuvem, que por sua vez tem comunicação bidirecional com um telefone, e o controle de um aquecedor como saída do dispositivo IoT](../../../../../translated_images/pt-BR/mobile-controlled-thermostat.4a994010473d8d6a52ba68c67e5f02dc8928c717e93ca4b9bc55525aa75bbb60.png)
Uma versão ainda mais inteligente poderia usar IA na nuvem com dados de outros sensores conectados a outros dispositivos IoT, como sensores de ocupação que detectam quais cômodos estão em uso, além de dados como condições climáticas e até mesmo seu calendário, para tomar decisões sobre como ajustar a temperatura de forma inteligente. Por exemplo, poderia desligar o aquecimento se ler no seu calendário que você está de férias, ou ajustar o aquecimento de acordo com os cômodos que você utiliza, aprendendo com os dados para ser cada vez mais preciso ao longo do tempo. Uma versão ainda mais inteligente poderia usar IA na nuvem com dados de outros sensores conectados a outros dispositivos IoT, como sensores de ocupação que detectam quais cômodos estão em uso, além de dados como condições climáticas e até mesmo seu calendário, para tomar decisões sobre como ajustar a temperatura de forma inteligente. Por exemplo, poderia desligar o aquecimento se ler no seu calendário que você está de férias, ou ajustar o aquecimento de acordo com os cômodos que você utiliza, aprendendo com os dados para ser cada vez mais preciso ao longo do tempo.
![Um diagrama mostrando múltiplos sensores de temperatura e um botão como entradas para um dispositivo IoT, o dispositivo IoT com comunicação bidirecional com a nuvem, que por sua vez tem comunicação bidirecional com um telefone, um calendário e um serviço de clima, e o controle de um aquecedor como saída do dispositivo IoT](../../../../../translated_images/br/smarter-thermostat.a75855f15d2d9e63.webp) ![Um diagrama mostrando múltiplos sensores de temperatura e um botão como entradas para um dispositivo IoT, o dispositivo IoT com comunicação bidirecional com a nuvem, que por sua vez tem comunicação bidirecional com um telefone, um calendário e um serviço de clima, e o controle de um aquecedor como saída do dispositivo IoT](../../../../../translated_images/pt-BR/smarter-thermostat.a75855f15d2d9e63.webp)
✅ Que outros dados poderiam ajudar a tornar um termostato conectado à Internet mais inteligente? ✅ Que outros dados poderiam ajudar a tornar um termostato conectado à Internet mais inteligente?
@ -103,7 +103,7 @@ Quanto mais rápido o ciclo do relógio, mais instruções podem ser processadas
> 💁 As CPUs executam programas usando o [ciclo buscar-decodificar-executar](https://wikipedia.org/wiki/Instruction_cycle). A cada tique do relógio, a CPU buscará a próxima instrução na memória, decodificará e a executará, como usar uma unidade lógica aritmética (ALU) para somar dois números. Algumas execuções podem levar vários tiques para serem concluídas, então o próximo ciclo será executado no próximo tique após a conclusão da instrução. > 💁 As CPUs executam programas usando o [ciclo buscar-decodificar-executar](https://wikipedia.org/wiki/Instruction_cycle). A cada tique do relógio, a CPU buscará a próxima instrução na memória, decodificará e a executará, como usar uma unidade lógica aritmética (ALU) para somar dois números. Algumas execuções podem levar vários tiques para serem concluídas, então o próximo ciclo será executado no próximo tique após a conclusão da instrução.
![Os ciclos buscar-decodificar-executar mostrando a busca de uma instrução do programa armazenado na RAM, depois decodificando e executando na CPU](../../../../../translated_images/br/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png) ![Os ciclos buscar-decodificar-executar mostrando a busca de uma instrução do programa armazenado na RAM, depois decodificando e executando na CPU](../../../../../translated_images/pt-BR/fetch-decode-execute.2fd6f150f6280392807f4475382319abd0cee0b90058e1735444d6baa6f2078c.png)
Microcontroladores têm velocidades de relógio muito mais baixas do que computadores desktop ou laptops, ou mesmo a maioria dos smartphones. O Wio Terminal, por exemplo, possui uma CPU que opera a 120MHz ou 120.000.000 ciclos por segundo. Microcontroladores têm velocidades de relógio muito mais baixas do que computadores desktop ou laptops, ou mesmo a maioria dos smartphones. O Wio Terminal, por exemplo, possui uma CPU que opera a 120MHz ou 120.000.000 ciclos por segundo.
@ -135,7 +135,7 @@ Assim como no caso da CPU, a memória de um microcontrolador é muitas ordens de
O diagrama abaixo mostra a diferença de tamanho relativa entre 192KB e 8GB - o pequeno ponto no centro representa 192KB. O diagrama abaixo mostra a diferença de tamanho relativa entre 192KB e 8GB - o pequeno ponto no centro representa 192KB.
![Uma comparação entre 192KB e 8GB - mais de 40.000 vezes maior](../../../../../translated_images/br/ram-comparison.6beb73541b42ac6f.webp) ![Uma comparação entre 192KB e 8GB - mais de 40.000 vezes maior](../../../../../translated_images/pt-BR/ram-comparison.6beb73541b42ac6f.webp)
O armazenamento de programas também é menor do que em um PC. Um PC típico pode ter um disco rígido de 500GB para armazenamento de programas, enquanto um microcontrolador pode ter apenas kilobytes ou, talvez, alguns megabytes (MB) de armazenamento (1MB equivale a 1.000KB, ou 1.000.000 bytes). O terminal Wio possui 4MB de armazenamento para programas. O armazenamento de programas também é menor do que em um PC. Um PC típico pode ter um disco rígido de 500GB para armazenamento de programas, enquanto um microcontrolador pode ter apenas kilobytes ou, talvez, alguns megabytes (MB) de armazenamento (1MB equivale a 1.000KB, ou 1.000.000 bytes). O terminal Wio possui 4MB de armazenamento para programas.
@ -191,7 +191,7 @@ As placas Arduino são programadas em C ou C++. Usar C/C++ permite que seu códi
Você escreveria seu código de configuração na função `setup`, como conectar-se ao WiFi e serviços na nuvem ou inicializar pinos para entrada e saída. Seu código de processamento ficaria na função `loop`, como ler de um sensor e enviar o valor para a nuvem. Normalmente, você incluiria um atraso em cada loop; por exemplo, se quiser que os dados do sensor sejam enviados a cada 10 segundos, adicionaria um atraso de 10 segundos no final do loop para que o microcontrolador possa dormir, economizando energia, e então executar o loop novamente quando necessário, 10 segundos depois. Você escreveria seu código de configuração na função `setup`, como conectar-se ao WiFi e serviços na nuvem ou inicializar pinos para entrada e saída. Seu código de processamento ficaria na função `loop`, como ler de um sensor e enviar o valor para a nuvem. Normalmente, você incluiria um atraso em cada loop; por exemplo, se quiser que os dados do sensor sejam enviados a cada 10 segundos, adicionaria um atraso de 10 segundos no final do loop para que o microcontrolador possa dormir, economizando energia, e então executar o loop novamente quando necessário, 10 segundos depois.
![Um sketch Arduino executando setup primeiro, depois executando loop repetidamente](../../../../../translated_images/br/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png) ![Um sketch Arduino executando setup primeiro, depois executando loop repetidamente](../../../../../translated_images/pt-BR/arduino-sketch.79590cb837ff7a7c6a68d1afda6cab83fd53d3bb1bd9a8bf2eaf8d693a4d3ea6.png)
✅ Essa arquitetura de programa é conhecida como *event loop* ou *message loop*. Muitas aplicações usam isso nos bastidores e é o padrão para a maioria das aplicações desktop que rodam em SOs como Windows, macOS ou Linux. O `loop` escuta mensagens de componentes da interface do usuário, como botões, ou dispositivos como o teclado, e responde a elas. Você pode ler mais neste [artigo sobre event loop](https://wikipedia.org/wiki/Event_loop). ✅ Essa arquitetura de programa é conhecida como *event loop* ou *message loop*. Muitas aplicações usam isso nos bastidores e é o padrão para a maioria das aplicações desktop que rodam em SOs como Windows, macOS ou Linux. O `loop` escuta mensagens de componentes da interface do usuário, como botões, ou dispositivos como o teclado, e responde a elas. Você pode ler mais neste [artigo sobre event loop](https://wikipedia.org/wiki/Event_loop).
@ -211,17 +211,17 @@ Na última lição, introduzimos os computadores de placa única. Agora vamos ex
### Raspberry Pi ### Raspberry Pi
![O logotipo do Raspberry Pi](../../../../../translated_images/br/raspberry-pi-logo.4efaa16605cee054.webp) ![O logotipo do Raspberry Pi](../../../../../translated_images/pt-BR/raspberry-pi-logo.4efaa16605cee054.webp)
A [Raspberry Pi Foundation](https://www.raspberrypi.org) é uma organização de caridade do Reino Unido fundada em 2009 para promover o estudo de ciência da computação, especialmente no nível escolar. Como parte dessa missão, eles desenvolveram um computador de placa única chamado Raspberry Pi. Atualmente, os Raspberry Pis estão disponíveis em 3 variantes - uma versão de tamanho completo, o menor Pi Zero, e um módulo de computação que pode ser integrado ao seu dispositivo IoT final. A [Raspberry Pi Foundation](https://www.raspberrypi.org) é uma organização de caridade do Reino Unido fundada em 2009 para promover o estudo de ciência da computação, especialmente no nível escolar. Como parte dessa missão, eles desenvolveram um computador de placa única chamado Raspberry Pi. Atualmente, os Raspberry Pis estão disponíveis em 3 variantes - uma versão de tamanho completo, o menor Pi Zero, e um módulo de computação que pode ser integrado ao seu dispositivo IoT final.
![Um Raspberry Pi 4](../../../../../translated_images/br/raspberry-pi-4.fd4590d308c3d456.webp) ![Um Raspberry Pi 4](../../../../../translated_images/pt-BR/raspberry-pi-4.fd4590d308c3d456.webp)
A última iteração do Raspberry Pi de tamanho completo é o Raspberry Pi 4B. Ele possui uma CPU quad-core (4 núcleos) rodando a 1,5GHz, 2, 4 ou 8GB de RAM, ethernet gigabit, WiFi, 2 portas HDMI que suportam telas 4k, uma saída de áudio e vídeo composto, portas USB (2 USB 2.0, 2 USB 3.0), 40 pinos GPIO, um conector de câmera para um módulo de câmera Raspberry Pi e um slot para cartão SD. Tudo isso em uma placa de 88mm x 58mm x 19,5mm, alimentada por uma fonte USB-C de 3A. Esses modelos começam em US$35, muito mais baratos do que um PC ou Mac. A última iteração do Raspberry Pi de tamanho completo é o Raspberry Pi 4B. Ele possui uma CPU quad-core (4 núcleos) rodando a 1,5GHz, 2, 4 ou 8GB de RAM, ethernet gigabit, WiFi, 2 portas HDMI que suportam telas 4k, uma saída de áudio e vídeo composto, portas USB (2 USB 2.0, 2 USB 3.0), 40 pinos GPIO, um conector de câmera para um módulo de câmera Raspberry Pi e um slot para cartão SD. Tudo isso em uma placa de 88mm x 58mm x 19,5mm, alimentada por uma fonte USB-C de 3A. Esses modelos começam em US$35, muito mais baratos do que um PC ou Mac.
> 💁 Há também um Pi400, um computador tudo-em-um com um Pi4 embutido em um teclado. > 💁 Há também um Pi400, um computador tudo-em-um com um Pi4 embutido em um teclado.
![Um Raspberry Pi Zero](../../../../../translated_images/br/raspberry-pi-zero.f7a4133e1e7d54bb.webp) ![Um Raspberry Pi Zero](../../../../../translated_images/pt-BR/raspberry-pi-zero.f7a4133e1e7d54bb.webp)
O Pi Zero é muito menor e consome menos energia. Ele possui uma CPU de núcleo único de 1GHz, 512MB de RAM, WiFi (no modelo Zero W), uma única porta HDMI, uma porta micro-USB, 40 pinos GPIO, um conector de câmera para um módulo de câmera Raspberry Pi e um slot para cartão SD. Ele mede 65mm x 30mm x 5mm e consome muito pouca energia. O Zero custa US$5, enquanto a versão W com WiFi custa US$10. O Pi Zero é muito menor e consome menos energia. Ele possui uma CPU de núcleo único de 1GHz, 512MB de RAM, WiFi (no modelo Zero W), uma única porta HDMI, uma porta micro-USB, 40 pinos GPIO, um conector de câmera para um módulo de câmera Raspberry Pi e um slot para cartão SD. Ele mede 65mm x 30mm x 5mm e consome muito pouca energia. O Zero custa US$5, enquanto a versão W com WiFi custa US$10.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Interaja com o mundo físico com sensores e atuadores # Interaja com o mundo físico com sensores e atuadores
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -75,7 +75,7 @@ Alguns dos sensores mais básicos são analógicos. Esses sensores recebem uma t
Um exemplo disso é um potenciômetro. Este é um botão que você pode girar entre duas posições, e o sensor mede a rotação. Um exemplo disso é um potenciômetro. Este é um botão que você pode girar entre duas posições, e o sensor mede a rotação.
![Um potenciômetro ajustado para um ponto médio recebendo 5 volts e retornando 3,8 volts](../../../../../translated_images/br/potentiometer.35a348b9ce22f6ec.webp) ![Um potenciômetro ajustado para um ponto médio recebendo 5 volts e retornando 3,8 volts](../../../../../translated_images/pt-BR/potentiometer.35a348b9ce22f6ec.webp)
O dispositivo IoT enviará um sinal elétrico para o potenciômetro em uma determinada tensão, como 5 volts (5V). À medida que o potenciômetro é ajustado, ele altera a tensão que sai do outro lado. Imagine que você tem um potenciômetro rotulado como um botão que vai de 0 a [11](https://wikipedia.org/wiki/Up_to_eleven), como um botão de volume em um amplificador. Quando o potenciômetro está na posição totalmente desligada (0), 0V (0 volts) sairão. Quando está na posição totalmente ligada (11), 5V (5 volts) sairão. O dispositivo IoT enviará um sinal elétrico para o potenciômetro em uma determinada tensão, como 5 volts (5V). À medida que o potenciômetro é ajustado, ele altera a tensão que sai do outro lado. Imagine que você tem um potenciômetro rotulado como um botão que vai de 0 a [11](https://wikipedia.org/wiki/Up_to_eleven), como um botão de volume em um amplificador. Quando o potenciômetro está na posição totalmente desligada (0), 0V (0 volts) sairão. Quando está na posição totalmente ligada (11), 5V (5 volts) sairão.
@ -101,7 +101,7 @@ Sensores digitais, assim como os analógicos, detectam o mundo ao seu redor usan
O sensor digital mais simples é um botão ou interruptor. Este é um sensor com dois estados, ligado ou desligado. O sensor digital mais simples é um botão ou interruptor. Este é um sensor com dois estados, ligado ou desligado.
![Um botão recebe 5 volts. Quando não pressionado, retorna 0 volts; quando pressionado, retorna 5 volts](../../../../../translated_images/br/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png) ![Um botão recebe 5 volts. Quando não pressionado, retorna 0 volts; quando pressionado, retorna 5 volts](../../../../../translated_images/pt-BR/button.eadb560b77ac45e56f523d9d8876e40444f63b419e33eb820082d461fa79490b.png)
Pinos em dispositivos IoT, como os pinos GPIO, podem medir esse sinal diretamente como 0 ou 1. Se a tensão enviada for a mesma que a tensão retornada, o valor lido é 1; caso contrário, o valor lido é 0. Não há necessidade de converter o sinal, ele só pode ser 1 ou 0. Pinos em dispositivos IoT, como os pinos GPIO, podem medir esse sinal diretamente como 0 ou 1. Se a tensão enviada for a mesma que a tensão retornada, o valor lido é 1; caso contrário, o valor lido é 0. Não há necessidade de converter o sinal, ele só pode ser 1 ou 0.
@ -112,7 +112,7 @@ Pinos em dispositivos IoT, como os pinos GPIO, podem medir esse sinal diretament
Sensores digitais mais avançados leem valores analógicos e os convertem usando ADCs integrados para sinais digitais. Por exemplo, um sensor de temperatura digital ainda usará um termopar da mesma forma que um sensor analógico e ainda medirá a mudança na tensão causada pela resistência do termopar na temperatura atual. Em vez de retornar um valor analógico e depender do dispositivo ou da placa de conexão para converter para um sinal digital, um ADC embutido no sensor converterá o valor e o enviará como uma série de 0s e 1s para o dispositivo IoT. Esses 0s e 1s são enviados da mesma forma que o sinal digital de um botão, com 1 sendo a tensão total e 0 sendo 0V. Sensores digitais mais avançados leem valores analógicos e os convertem usando ADCs integrados para sinais digitais. Por exemplo, um sensor de temperatura digital ainda usará um termopar da mesma forma que um sensor analógico e ainda medirá a mudança na tensão causada pela resistência do termopar na temperatura atual. Em vez de retornar um valor analógico e depender do dispositivo ou da placa de conexão para converter para um sinal digital, um ADC embutido no sensor converterá o valor e o enviará como uma série de 0s e 1s para o dispositivo IoT. Esses 0s e 1s são enviados da mesma forma que o sinal digital de um botão, com 1 sendo a tensão total e 0 sendo 0V.
![Um sensor de temperatura digital convertendo uma leitura analógica para dados binários com 0 como 0 volts e 1 como 5 volts antes de enviá-los para um dispositivo IoT](../../../../../translated_images/br/temperature-as-digital.85004491b977bae1.webp) ![Um sensor de temperatura digital convertendo uma leitura analógica para dados binários com 0 como 0 volts e 1 como 5 volts antes de enviá-los para um dispositivo IoT](../../../../../translated_images/pt-BR/temperature-as-digital.85004491b977bae1.webp)
O envio de dados digitais permite que os sensores se tornem mais complexos e enviem dados mais detalhados, até mesmo dados criptografados para sensores seguros. Um exemplo é uma câmera. Este é um sensor que captura uma imagem e a envia como dados digitais contendo essa imagem, geralmente em um formato compactado como JPEG, para ser lida pelo dispositivo IoT. Ela pode até transmitir vídeo capturando imagens e enviando ou o quadro completo de cada vez ou um fluxo de vídeo compactado. O envio de dados digitais permite que os sensores se tornem mais complexos e enviem dados mais detalhados, até mesmo dados criptografados para sensores seguros. Um exemplo é uma câmera. Este é um sensor que captura uma imagem e a envia como dados digitais contendo essa imagem, geralmente em um formato compactado como JPEG, para ser lida pelo dispositivo IoT. Ela pode até transmitir vídeo capturando imagens e enviando ou o quadro completo de cada vez ou um fluxo de vídeo compactado.
@ -134,7 +134,7 @@ Alguns atuadores comuns incluem:
Siga o guia relevante abaixo para adicionar um atuador ao seu dispositivo IoT, controlado pelo sensor, para construir uma luz noturna IoT. Ela coletará os níveis de luz do sensor de luz e usará um atuador na forma de um LED para emitir luz quando o nível de luz detectado for muito baixo. Siga o guia relevante abaixo para adicionar um atuador ao seu dispositivo IoT, controlado pelo sensor, para construir uma luz noturna IoT. Ela coletará os níveis de luz do sensor de luz e usará um atuador na forma de um LED para emitir luz quando o nível de luz detectado for muito baixo.
![Um fluxograma da tarefa mostrando os níveis de luz sendo lidos e verificados, e o LED sendo controlado](../../../../../translated_images/br/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png) ![Um fluxograma da tarefa mostrando os níveis de luz sendo lidos e verificados, e o LED sendo controlado](../../../../../translated_images/pt-BR/assignment-1-flow.7552a51acb1a5ec858dca6e855cdbb44206434006df8ba3799a25afcdab1665d.png)
* [Arduino - Wio Terminal](wio-terminal-actuator.md) * [Arduino - Wio Terminal](wio-terminal-actuator.md)
* [Computador de placa única - Raspberry Pi](pi-actuator.md) * [Computador de placa única - Raspberry Pi](pi-actuator.md)
@ -149,7 +149,7 @@ Assim como os sensores, os atuadores podem ser analógicos ou digitais.
Atuadores analógicos recebem um sinal analógico e o convertem em algum tipo de interação, onde a interação muda com base na tensão fornecida. Atuadores analógicos recebem um sinal analógico e o convertem em algum tipo de interação, onde a interação muda com base na tensão fornecida.
Um exemplo é uma luz dimerizável, como as que você pode ter em sua casa. A quantidade de tensão fornecida à luz determina o quão brilhante ela será. Um exemplo é uma luz dimerizável, como as que você pode ter em sua casa. A quantidade de tensão fornecida à luz determina o quão brilhante ela será.
![Uma luz com brilho reduzido em baixa voltagem e mais intensa em alta voltagem](../../../../../translated_images/br/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png) ![Uma luz com brilho reduzido em baixa voltagem e mais intensa em alta voltagem](../../../../../translated_images/pt-BR/dimmable-light.9ceffeb195dec1a849da718b2d71b32c35171ff7dfea9c07bbf82646a67acf6b.png)
Assim como acontece com sensores, o dispositivo IoT trabalha com sinais digitais, não analógicos. Isso significa que, para enviar um sinal analógico, o dispositivo IoT precisa de um conversor digital para analógico (DAC), seja diretamente no dispositivo IoT ou em uma placa de conexão. Esse conversor transforma os 0s e 1s do dispositivo IoT em uma voltagem analógica que o atuador pode utilizar. Assim como acontece com sensores, o dispositivo IoT trabalha com sinais digitais, não analógicos. Isso significa que, para enviar um sinal analógico, o dispositivo IoT precisa de um conversor digital para analógico (DAC), seja diretamente no dispositivo IoT ou em uma placa de conexão. Esse conversor transforma os 0s e 1s do dispositivo IoT em uma voltagem analógica que o atuador pode utilizar.
@ -164,7 +164,7 @@ Por exemplo, você pode usar PWM para controlar a velocidade de um motor.
Imagine que você está controlando um motor com uma fonte de 5V. Você envia um pulso curto para o motor, alternando a voltagem para alta (5V) por dois centésimos de segundo (0,02s). Nesse tempo, o motor pode girar um décimo de uma rotação, ou 36°. O sinal então pausa por dois centésimos de segundo (0,02s), enviando um sinal baixo (0V). Cada ciclo de ligado e desligado dura 0,04s. O ciclo então se repete. Imagine que você está controlando um motor com uma fonte de 5V. Você envia um pulso curto para o motor, alternando a voltagem para alta (5V) por dois centésimos de segundo (0,02s). Nesse tempo, o motor pode girar um décimo de uma rotação, ou 36°. O sinal então pausa por dois centésimos de segundo (0,02s), enviando um sinal baixo (0V). Cada ciclo de ligado e desligado dura 0,04s. O ciclo então se repete.
![Modulação por largura de pulso girando um motor a 150 RPM](../../../../../translated_images/br/pwm-motor-150rpm.83347ac04ca38482.webp) ![Modulação por largura de pulso girando um motor a 150 RPM](../../../../../translated_images/pt-BR/pwm-motor-150rpm.83347ac04ca38482.webp)
Isso significa que, em um segundo, você tem 25 pulsos de 5V com duração de 0,02s que giram o motor, cada um seguido por uma pausa de 0,02s com 0V, onde o motor não gira. Cada pulso gira o motor um décimo de uma rotação, o que significa que o motor completa 2,5 rotações por segundo. Você usou um sinal digital para girar o motor a 2,5 rotações por segundo, ou 150 [rotações por minuto](https://wikipedia.org/wiki/Revolutions_per_minute) (uma medida não padronizada de velocidade de rotação). Isso significa que, em um segundo, você tem 25 pulsos de 5V com duração de 0,02s que giram o motor, cada um seguido por uma pausa de 0,02s com 0V, onde o motor não gira. Cada pulso gira o motor um décimo de uma rotação, o que significa que o motor completa 2,5 rotações por segundo. Você usou um sinal digital para girar o motor a 2,5 rotações por segundo, ou 150 [rotações por minuto](https://wikipedia.org/wiki/Revolutions_per_minute) (uma medida não padronizada de velocidade de rotação).
@ -175,7 +175,7 @@ Isso significa que, em um segundo, você tem 25 pulsos de 5V com duração de 0,
> 🎓 Quando um sinal PWM está ligado por metade do tempo e desligado pela outra metade, isso é chamado de [ciclo de trabalho de 50%](https://wikipedia.org/wiki/Duty_cycle). Ciclos de trabalho são medidos como a porcentagem de tempo em que o sinal está no estado ligado em comparação ao estado desligado. > 🎓 Quando um sinal PWM está ligado por metade do tempo e desligado pela outra metade, isso é chamado de [ciclo de trabalho de 50%](https://wikipedia.org/wiki/Duty_cycle). Ciclos de trabalho são medidos como a porcentagem de tempo em que o sinal está no estado ligado em comparação ao estado desligado.
![Modulação por largura de pulso girando um motor a 75 RPM](../../../../../translated_images/br/pwm-motor-75rpm.a5e4c939934b6e14.webp) ![Modulação por largura de pulso girando um motor a 75 RPM](../../../../../translated_images/pt-BR/pwm-motor-75rpm.a5e4c939934b6e14.webp)
Você pode alterar a velocidade do motor mudando o tamanho dos pulsos. Por exemplo, com o mesmo motor, você pode manter o mesmo tempo de ciclo de 0,04s, reduzindo o pulso ligado para 0,01s e aumentando o pulso desligado para 0,03s. Você tem o mesmo número de pulsos por segundo (25), mas cada pulso ligado tem metade do comprimento. Um pulso com metade do comprimento gira o motor um vigésimo de uma rotação, e com 25 pulsos por segundo, o motor completará 1,25 rotações por segundo ou 75rpm. Alterando a velocidade dos pulsos de um sinal digital, você reduziu pela metade a velocidade de um motor analógico. Você pode alterar a velocidade do motor mudando o tamanho dos pulsos. Por exemplo, com o mesmo motor, você pode manter o mesmo tempo de ciclo de 0,04s, reduzindo o pulso ligado para 0,01s e aumentando o pulso desligado para 0,03s. Você tem o mesmo número de pulsos por segundo (25), mas cada pulso ligado tem metade do comprimento. Um pulso com metade do comprimento gira o motor um vigésimo de uma rotação, e com 25 pulsos por segundo, o motor completará 1,25 rotações por segundo ou 75rpm. Alterando a velocidade dos pulsos de um sinal digital, você reduziu pela metade a velocidade de um motor analógico.
@ -196,7 +196,7 @@ Atuadores digitais, assim como sensores digitais, possuem dois estados controlad
Um atuador digital simples é um LED. Quando um dispositivo envia um sinal digital de 1, uma voltagem alta é enviada, acendendo o LED. Quando um sinal digital de 0 é enviado, a voltagem cai para 0V e o LED se apaga. Um atuador digital simples é um LED. Quando um dispositivo envia um sinal digital de 1, uma voltagem alta é enviada, acendendo o LED. Quando um sinal digital de 0 é enviado, a voltagem cai para 0V e o LED se apaga.
![Um LED apagado com 0 volts e aceso com 5V](../../../../../translated_images/br/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png) ![Um LED apagado com 0 volts e aceso com 5V](../../../../../translated_images/pt-BR/led.ec6d94f66676a174ad06d9fa9ea49c2ee89beb18b312d5c6476467c66375b07f.png)
✅ Que outros atuadores simples de 2 estados você consegue pensar? Um exemplo é um solenóide, que é um eletroímã que pode ser ativado para realizar ações como mover o trinco de uma porta, travando ou destravando-a. ✅ Que outros atuadores simples de 2 estados você consegue pensar? Um exemplo é um solenóide, que é um eletroímã que pode ser ativado para realizar ações como mover o trinco de uma porta, travando ou destravando-a.

@ -35,7 +35,7 @@ O LED Grove vem como um módulo com uma seleção de LEDs, permitindo que você
Conecte o LED. Conecte o LED.
![Um LED Grove](../../../../../translated_images/br/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) ![Um LED Grove](../../../../../translated_images/pt-BR/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png)
1. Escolha seu LED favorito e insira as pernas nos dois orifícios do módulo LED. 1. Escolha seu LED favorito e insira as pernas nos dois orifícios do módulo LED.
@ -49,7 +49,7 @@ Conecte o LED.
1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao soquete digital marcado como **D5** no Grove Base Hat conectado ao Pi. Este soquete é o segundo da esquerda, na fileira de soquetes ao lado dos pinos GPIO. 1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao soquete digital marcado como **D5** no Grove Base Hat conectado ao Pi. Este soquete é o segundo da esquerda, na fileira de soquetes ao lado dos pinos GPIO.
![O LED Grove conectado ao soquete D5](../../../../../translated_images/br/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png) ![O LED Grove conectado ao soquete D5](../../../../../translated_images/pt-BR/pi-led.97f1d474981dc35d1c7996c7b17de355d3d0a6bc9606d79fa5f89df933415122.png)
## Programe a luz noturna ## Programe a luz noturna

@ -25,13 +25,13 @@ O sensor de luz Grove, usado para detectar os níveis de luz, precisa ser conect
Conecte o sensor de luz. Conecte o sensor de luz.
![Um sensor de luz Grove](../../../../../translated_images/br/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png) ![Um sensor de luz Grove](../../../../../translated_images/pt-BR/grove-light-sensor.b8127b7c434e632d6bcdb57587a14e9ef69a268a22df95d08628f62b8fa5505c.png)
1. Insira uma extremidade de um cabo Grove no conector do módulo do sensor de luz. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no conector do módulo do sensor de luz. Ele só encaixará de uma maneira.
1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao conector analógico marcado como **A0** no Grove Base Hat conectado ao Pi. Este conector é o segundo da direita, na fileira de conectores ao lado dos pinos GPIO. 1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao conector analógico marcado como **A0** no Grove Base Hat conectado ao Pi. Este conector é o segundo da direita, na fileira de conectores ao lado dos pinos GPIO.
![O sensor de luz Grove conectado ao conector A0](../../../../../translated_images/br/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png) ![O sensor de luz Grove conectado ao conector A0](../../../../../translated_images/pt-BR/pi-light-sensor.66cc1e31fa48cd7d5f23400d4b2119aa41508275cb7c778053a7923b4e972d7e.png)
## Programe o sensor de luz ## Programe o sensor de luz

@ -45,11 +45,11 @@ Adicione o LED ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar o LED no pino 5. 1. Selecione o botão **Add** para criar o LED no pino 5.
![As configurações do LED](../../../../../translated_images/br/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png) ![As configurações do LED](../../../../../translated_images/pt-BR/counterfit-create-led.ba9db1c9b8c622a635d6dfae5cdc4e70c2b250635bd4f0601c6cf0bd22b7ba46.png)
O LED será criado e aparecerá na lista de atuadores. O LED será criado e aparecerá na lista de atuadores.
![O LED criado](../../../../../translated_images/br/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png) ![O LED criado](../../../../../translated_images/pt-BR/counterfit-led.c0ab02de6d256ad84d9bad4d67a7faa709f0ea83e410cfe9b5561ef0cef30b1c.png)
Depois que o LED for criado, você pode alterar a cor usando o seletor *Color*. Selecione o botão **Set** para alterar a cor após escolhê-la. Depois que o LED for criado, você pode alterar a cor usando o seletor *Color*. Selecione o botão **Set** para alterar a cor após escolhê-la.

@ -37,11 +37,11 @@ Adicione o sensor de luz ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar o sensor de luz no pino 0. 1. Selecione o botão **Add** para criar o sensor de luz no pino 0.
![As configurações do sensor de luz](../../../../../translated_images/br/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png) ![As configurações do sensor de luz](../../../../../translated_images/pt-BR/counterfit-create-light-sensor.9f36a5e0d4458d8d554d54b34d2c806d56093d6e49fddcda2d20f6fef7f5cce1.png)
O sensor de luz será criado e aparecerá na lista de sensores. O sensor de luz será criado e aparecerá na lista de sensores.
![O sensor de luz criado](../../../../../translated_images/br/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png) ![O sensor de luz criado](../../../../../translated_images/pt-BR/counterfit-light-sensor.5d0f5584df56b90f6b2561910d9cb20dfbd73eeff2177c238d38f4de54aefae1.png)
## Programar o sensor de luz ## Programar o sensor de luz

@ -35,7 +35,7 @@ O Grove LED vem como um módulo com uma seleção de LEDs, permitindo que você
Conecte o LED. Conecte o LED.
![Um Grove LED](../../../../../translated_images/br/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png) ![Um Grove LED](../../../../../translated_images/pt-BR/grove-led.6c853be93f473cf2c439cfc74bb1064732b22251a83cedf66e62f783f9cc1a79.png)
1. Escolha seu LED favorito e insira as pernas nos dois orifícios do módulo LED. 1. Escolha seu LED favorito e insira as pernas nos dois orifícios do módulo LED.
@ -51,7 +51,7 @@ Conecte o LED.
> 💁 O soquete Grove do lado direito pode ser usado com sensores e atuadores analógicos ou digitais. O soquete do lado esquerdo é apenas para sensores e atuadores digitais. O C será abordado em uma lição posterior. > 💁 O soquete Grove do lado direito pode ser usado com sensores e atuadores analógicos ou digitais. O soquete do lado esquerdo é apenas para sensores e atuadores digitais. O C será abordado em uma lição posterior.
![O Grove LED conectado ao soquete do lado direito](../../../../../translated_images/br/wio-led.265a1897e72d7f21.webp) ![O Grove LED conectado ao soquete do lado direito](../../../../../translated_images/pt-BR/wio-led.265a1897e72d7f21.webp)
## Programe a luz noturna ## Programe a luz noturna

@ -17,7 +17,7 @@ O sensor para esta lição é um **sensor de luz** que utiliza um [fotodiodo](ht
O sensor de luz está integrado ao Wio Terminal e é visível através da janela de plástico transparente na parte traseira. O sensor de luz está integrado ao Wio Terminal e é visível através da janela de plástico transparente na parte traseira.
![O sensor de luz na parte traseira do Wio Terminal](../../../../../translated_images/br/wio-light-sensor.b1f529f3c95f5165.webp) ![O sensor de luz na parte traseira do Wio Terminal](../../../../../translated_images/pt-BR/wio-light-sensor.b1f529f3c95f5165.webp)
## Programar o sensor de luz ## Programar o sensor de luz

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Conecte seu dispositivo à Internet # Conecte seu dispositivo à Internet
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -46,7 +46,7 @@ Nesta lição, abordaremos:
Existem vários protocolos de comunicação populares usados por dispositivos IoT para se comunicar com a Internet. Os mais comuns são baseados em mensagens de publicação/assinatura via algum tipo de broker. Os dispositivos IoT se conectam ao broker, publicam telemetria e assinam comandos. Os serviços na nuvem também se conectam ao broker, assinam todas as mensagens de telemetria e publicam comandos, seja para dispositivos específicos ou para grupos de dispositivos. Existem vários protocolos de comunicação populares usados por dispositivos IoT para se comunicar com a Internet. Os mais comuns são baseados em mensagens de publicação/assinatura via algum tipo de broker. Os dispositivos IoT se conectam ao broker, publicam telemetria e assinam comandos. Os serviços na nuvem também se conectam ao broker, assinam todas as mensagens de telemetria e publicam comandos, seja para dispositivos específicos ou para grupos de dispositivos.
![Dispositivos IoT se conectam a um broker, publicam telemetria e assinam comandos. Serviços na nuvem se conectam ao broker, assinam toda a telemetria e enviam comandos para dispositivos específicos.](../../../../../translated_images/br/pub-sub.7c7ed43fe9fd15d4.webp) ![Dispositivos IoT se conectam a um broker, publicam telemetria e assinam comandos. Serviços na nuvem se conectam ao broker, assinam toda a telemetria e enviam comandos para dispositivos específicos.](../../../../../translated_images/pt-BR/pub-sub.7c7ed43fe9fd15d4.webp)
O MQTT é o protocolo de comunicação mais popular para dispositivos IoT e será abordado nesta lição. Outros protocolos incluem AMQP e HTTP/HTTPS. O MQTT é o protocolo de comunicação mais popular para dispositivos IoT e será abordado nesta lição. Outros protocolos incluem AMQP e HTTP/HTTPS.
@ -56,7 +56,7 @@ O MQTT é o protocolo de comunicação mais popular para dispositivos IoT e ser
O MQTT possui um único broker e vários clientes. Todos os clientes se conectam ao broker, e o broker roteia mensagens para os clientes relevantes. As mensagens são roteadas usando tópicos nomeados, em vez de serem enviadas diretamente para um cliente individual. Um cliente pode publicar em um tópico, e qualquer cliente que assinar esse tópico receberá a mensagem. O MQTT possui um único broker e vários clientes. Todos os clientes se conectam ao broker, e o broker roteia mensagens para os clientes relevantes. As mensagens são roteadas usando tópicos nomeados, em vez de serem enviadas diretamente para um cliente individual. Um cliente pode publicar em um tópico, e qualquer cliente que assinar esse tópico receberá a mensagem.
![Dispositivo IoT publicando telemetria no tópico /telemetry, e o serviço na nuvem assinando esse tópico](../../../../../translated_images/br/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png) ![Dispositivo IoT publicando telemetria no tópico /telemetry, e o serviço na nuvem assinando esse tópico](../../../../../translated_images/pt-BR/mqtt.cbf7f21d9adc3e17548b359444cc11bb4bf2010543e32ece9a47becf54438c23.png)
✅ Faça uma pesquisa. Se você tiver muitos dispositivos IoT, como garantir que seu broker MQTT consiga lidar com todas as mensagens? ✅ Faça uma pesquisa. Se você tiver muitos dispositivos IoT, como garantir que seu broker MQTT consiga lidar com todas as mensagens?
@ -78,7 +78,7 @@ Em vez de lidar com as complexidades de configurar um broker MQTT como parte des
> 💁 Este broker de teste é público e não seguro. Qualquer pessoa pode ouvir o que você publica, então ele não deve ser usado com dados que precisam ser mantidos privados. > 💁 Este broker de teste é público e não seguro. Qualquer pessoa pode ouvir o que você publica, então ele não deve ser usado com dados que precisam ser mantidos privados.
![Um fluxograma da tarefa mostrando os níveis de luz sendo lidos e verificados, e o LED sendo controlado](../../../../../translated_images/br/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png) ![Um fluxograma da tarefa mostrando os níveis de luz sendo lidos e verificados, e o LED sendo controlado](../../../../../translated_images/pt-BR/assignment-1-internet-flow.3256feab5f052fd273bf4e331157c574c2c3fa42e479836fc9c3586f41db35a5.png)
Siga a etapa relevante abaixo para conectar seu dispositivo ao broker MQTT: Siga a etapa relevante abaixo para conectar seu dispositivo ao broker MQTT:
@ -115,7 +115,7 @@ A palavra telemetria é derivada de raízes gregas que significam medir remotame
Vamos voltar ao exemplo do termostato inteligente da Lição 1. Vamos voltar ao exemplo do termostato inteligente da Lição 1.
![Um termostato conectado à Internet usando múltiplos sensores de ambiente](../../../../../translated_images/br/telemetry.21e5d8b97649d2eb.webp) ![Um termostato conectado à Internet usando múltiplos sensores de ambiente](../../../../../translated_images/pt-BR/telemetry.21e5d8b97649d2eb.webp)
O termostato possui sensores de temperatura para coletar telemetria. Ele provavelmente teria um sensor de temperatura embutido e poderia se conectar a vários sensores de temperatura externos por meio de um protocolo sem fio, como [Bluetooth Low Energy](https://wikipedia.org/wiki/Bluetooth_Low_Energy) (BLE). O termostato possui sensores de temperatura para coletar telemetria. Ele provavelmente teria um sensor de temperatura embutido e poderia se conectar a vários sensores de temperatura externos por meio de um protocolo sem fio, como [Bluetooth Low Energy](https://wikipedia.org/wiki/Bluetooth_Low_Energy) (BLE).
@ -267,11 +267,11 @@ Escreva o código do servidor.
1. Quando o VS Code for iniciado, ele ativará o ambiente virtual Python. Isso será indicado na barra de status inferior: 1. Quando o VS Code for iniciado, ele ativará o ambiente virtual Python. Isso será indicado na barra de status inferior:
![VS Code mostrando o ambiente virtual selecionado](../../../../../translated_images/br/vscode-virtual-env.8ba42e04c3d533cf.webp) ![VS Code mostrando o ambiente virtual selecionado](../../../../../translated_images/pt-BR/vscode-virtual-env.8ba42e04c3d533cf.webp)
1. Se o terminal do VS Code já estiver em execução quando o VS Code for iniciado, ele não terá o ambiente virtual ativado. A maneira mais fácil de resolver isso é encerrar o terminal usando o botão **Encerrar a instância ativa do terminal**: 1. Se o terminal do VS Code já estiver em execução quando o VS Code for iniciado, ele não terá o ambiente virtual ativado. A maneira mais fácil de resolver isso é encerrar o terminal usando o botão **Encerrar a instância ativa do terminal**:
![Botão para encerrar a instância ativa do terminal no VS Code](../../../../../translated_images/br/vscode-kill-terminal.1cc4de7c6f25ee08.webp) ![Botão para encerrar a instância ativa do terminal no VS Code](../../../../../translated_images/pt-BR/vscode-kill-terminal.1cc4de7c6f25ee08.webp)
1. Inicie um novo terminal no VS Code selecionando *Terminal -> Novo Terminal*, ou pressionando `` CTRL+` ``. O novo terminal carregará o ambiente virtual, com a chamada para ativá-lo aparecendo no terminal. O nome do ambiente virtual (`.venv`) também estará no prompt: 1. Inicie um novo terminal no VS Code selecionando *Terminal -> Novo Terminal*, ou pressionando `` CTRL+` ``. O novo terminal carregará o ambiente virtual, com a chamada para ativá-lo aparecendo no terminal. O nome do ambiente virtual (`.venv`) também estará no prompt:
@ -359,7 +359,7 @@ Para máquinas, você pode querer manter os dados, especialmente se forem usados
Os designers de dispositivos IoT também devem considerar se o dispositivo IoT pode ser usado durante uma interrupção da Internet ou perda de sinal causada pela localização. Um termostato inteligente deve ser capaz de tomar algumas decisões limitadas para controlar o aquecimento se não puder enviar telemetria para a nuvem devido a uma interrupção. Os designers de dispositivos IoT também devem considerar se o dispositivo IoT pode ser usado durante uma interrupção da Internet ou perda de sinal causada pela localização. Um termostato inteligente deve ser capaz de tomar algumas decisões limitadas para controlar o aquecimento se não puder enviar telemetria para a nuvem devido a uma interrupção.
[![Este Ferrari ficou inutilizado porque alguém tentou atualizá-lo em um local subterrâneo sem sinal de celular](../../../../../translated_images/br/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832) [![Este Ferrari ficou inutilizado porque alguém tentou atualizá-lo em um local subterrâneo sem sinal de celular](../../../../../translated_images/pt-BR/bricked-car.dc38f8efadc6c59d76211f981a521efb300939283dee468f79503aae3ec67615.png)](https://twitter.com/internetofshit/status/1315736960082808832)
Para o MQTT lidar com uma perda de conectividade, o código do dispositivo e do servidor será responsável por garantir a entrega das mensagens, se necessário, por exemplo, exigindo que todas as mensagens enviadas sejam respondidas por mensagens adicionais em um tópico de resposta e, caso contrário, sejam enfileiradas manualmente para serem reproduzidas posteriormente. Para o MQTT lidar com uma perda de conectividade, o código do dispositivo e do servidor será responsável por garantir a entrega das mensagens, se necessário, por exemplo, exigindo que todas as mensagens enviadas sejam respondidas por mensagens adicionais em um tópico de resposta e, caso contrário, sejam enfileiradas manualmente para serem reproduzidas posteriormente.
@ -367,7 +367,7 @@ Para o MQTT lidar com uma perda de conectividade, o código do dispositivo e do
Comandos são mensagens enviadas pela nuvem para um dispositivo, instruindo-o a fazer algo. Na maioria das vezes, isso envolve fornecer algum tipo de saída por meio de um atuador, mas pode ser uma instrução para o próprio dispositivo, como reiniciar ou coletar telemetria extra e retorná-la como resposta ao comando. Comandos são mensagens enviadas pela nuvem para um dispositivo, instruindo-o a fazer algo. Na maioria das vezes, isso envolve fornecer algum tipo de saída por meio de um atuador, mas pode ser uma instrução para o próprio dispositivo, como reiniciar ou coletar telemetria extra e retorná-la como resposta ao comando.
![Um termostato conectado à Internet recebendo um comando para ligar o aquecimento](../../../../../translated_images/br/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png) ![Um termostato conectado à Internet recebendo um comando para ligar o aquecimento](../../../../../translated_images/pt-BR/commands.d6c06bbbb3a02cce95f2831a1c331daf6dedd4e470c4aa2b0ae54f332016e504.png)
Um termostato pode receber um comando da nuvem para ligar o aquecimento. Com base nos dados de telemetria de todos os sensores, se o serviço na nuvem decidiu que o aquecimento deve estar ligado, ele envia o comando relevante. Um termostato pode receber um comando da nuvem para ligar o aquecimento. Com base nos dados de telemetria de todos os sensores, se o serviço na nuvem decidiu que o aquecimento deve estar ligado, ele envia o comando relevante.

@ -64,7 +64,7 @@ Conecte o Wio Terminal ao WiFi.
1. Crie um novo arquivo na pasta `src` chamado `config.h`. Você pode fazer isso selecionando a pasta `src` ou o arquivo `main.cpp` dentro dela e clicando no botão **Novo arquivo** no explorador. Esse botão só aparece quando o cursor está sobre o explorador. 1. Crie um novo arquivo na pasta `src` chamado `config.h`. Você pode fazer isso selecionando a pasta `src` ou o arquivo `main.cpp` dentro dela e clicando no botão **Novo arquivo** no explorador. Esse botão só aparece quando o cursor está sobre o explorador.
![O botão de novo arquivo](../../../../../translated_images/br/vscode-new-file-button.182702340fe6723c.webp) ![O botão de novo arquivo](../../../../../translated_images/pt-BR/vscode-new-file-button.182702340fe6723c.webp)
1. Adicione o seguinte código a este arquivo para definir constantes para suas credenciais de WiFi: 1. Adicione o seguinte código a este arquivo para definir constantes para suas credenciais de WiFi:

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Prever o crescimento de plantas com IoT # Prever o crescimento de plantas com IoT
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-5.42b234299279d263143148b88ab4583861a32ddb03110c6c1120e41bb88b2592.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -65,7 +65,7 @@ Cada espécie de planta tem valores diferentes para sua temperatura base, ótima
✅ Faça uma pesquisa. Para qualquer planta que você tenha em seu jardim, escola ou parque local, veja se consegue encontrar a temperatura base. ✅ Faça uma pesquisa. Para qualquer planta que você tenha em seu jardim, escola ou parque local, veja se consegue encontrar a temperatura base.
![Um gráfico mostrando a taxa de crescimento aumentando conforme a temperatura sobe, depois caindo quando a temperatura fica muito alta](../../../../../translated_images/br/plant-growth-temp-graph.c6d69c9478e6ca83.webp) ![Um gráfico mostrando a taxa de crescimento aumentando conforme a temperatura sobe, depois caindo quando a temperatura fica muito alta](../../../../../translated_images/pt-BR/plant-growth-temp-graph.c6d69c9478e6ca83.webp)
O gráfico acima mostra um exemplo de taxa de crescimento em relação à temperatura. Até a temperatura base, não há crescimento. A taxa de crescimento aumenta até a temperatura ótima e depois cai após atingir esse pico. Na temperatura máxima, o crescimento para. O gráfico acima mostra um exemplo de taxa de crescimento em relação à temperatura. Até a temperatura base, não há crescimento. A taxa de crescimento aumenta até a temperatura ótima e depois cai após atingir esse pico. Na temperatura máxima, o crescimento para.
@ -99,7 +99,7 @@ Os graus-dia de crescimento, ou GDD, são calculados por dia como a temperatura
A fórmula completa para GDD é um pouco complicada, mas existe uma equação simplificada que é frequentemente usada como uma boa aproximação: A fórmula completa para GDD é um pouco complicada, mas existe uma equação simplificada que é frequentemente usada como uma boa aproximação:
![GDD = T max + T min dividido por 2, tudo menos T base](../../../../../translated_images/br/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png) ![GDD = T max + T min dividido por 2, tudo menos T base](../../../../../translated_images/pt-BR/gdd-calculation.79b3660f9c5757aa92dc2dd2cdde75344e2d2c1565c4b3151640f7887edc0275.png)
* **GDD** - este é o número de graus-dia de crescimento * **GDD** - este é o número de graus-dia de crescimento
* **T max** - esta é a temperatura máxima diária em graus Celsius * **T max** - esta é a temperatura máxima diária em graus Celsius
@ -127,7 +127,7 @@ Substituindo esses números na nossa fórmula:
Isso resulta no cálculo: Isso resulta no cálculo:
![GDD = 16 + 12 dividido por 2, tudo menos 10, resultando em 4](../../../../../translated_images/br/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png) ![GDD = 16 + 12 dividido por 2, tudo menos 10, resultando em 4](../../../../../translated_images/pt-BR/gdd-calculation-corn.64a58b7a7afcd0dfd46ff733996d939f17f4f3feac9f0d1c632be3523e51ebd9.png)
O milho recebeu 4 GDD nesse dia. Supondo uma variedade de milho que precisa de 800 GDD para amadurecer, ainda serão necessários mais 796 GDD para atingir a maturidade. O milho recebeu 4 GDD nesse dia. Supondo uma variedade de milho que precisa de 800 GDD para amadurecer, ainda serão necessários mais 796 GDD para atingir a maturidade.
@ -141,7 +141,7 @@ Isso tem um grande impacto no trabalho em uma grande fazenda e corre o risco de
Ao coletar dados de temperatura usando um dispositivo IoT, um agricultor pode ser notificado automaticamente quando as plantas estiverem próximas da maturidade. Uma arquitetura típica para isso é ter os dispositivos IoT medindo a temperatura e publicando esses dados de telemetria pela Internet usando algo como MQTT. O código do servidor então escuta esses dados e os salva em algum lugar, como em um banco de dados. Isso significa que os dados podem ser analisados posteriormente, como em uma tarefa noturna para calcular os GDD do dia, somar os GDD totais para cada cultura até o momento e alertar se uma planta estiver próxima da maturidade. Ao coletar dados de temperatura usando um dispositivo IoT, um agricultor pode ser notificado automaticamente quando as plantas estiverem próximas da maturidade. Uma arquitetura típica para isso é ter os dispositivos IoT medindo a temperatura e publicando esses dados de telemetria pela Internet usando algo como MQTT. O código do servidor então escuta esses dados e os salva em algum lugar, como em um banco de dados. Isso significa que os dados podem ser analisados posteriormente, como em uma tarefa noturna para calcular os GDD do dia, somar os GDD totais para cada cultura até o momento e alertar se uma planta estiver próxima da maturidade.
![Os dados de telemetria são enviados para um servidor e depois salvos em um banco de dados](../../../../../translated_images/br/save-telemetry-database.ddc9c6bea0c5ba39.webp) ![Os dados de telemetria são enviados para um servidor e depois salvos em um banco de dados](../../../../../translated_images/pt-BR/save-telemetry-database.ddc9c6bea0c5ba39.webp)
O código do servidor também pode complementar os dados adicionando informações extras. Por exemplo, o dispositivo IoT pode publicar um identificador para indicar qual dispositivo está enviando os dados, e o código do servidor pode usar isso para buscar a localização do dispositivo e quais culturas ele está monitorando. Ele também pode adicionar dados básicos, como a hora atual, já que alguns dispositivos IoT não possuem o hardware necessário para manter um horário preciso ou exigem código adicional para ler a hora atual pela Internet. O código do servidor também pode complementar os dados adicionando informações extras. Por exemplo, o dispositivo IoT pode publicar um identificador para indicar qual dispositivo está enviando os dados, e o código do servidor pode usar isso para buscar a localização do dispositivo e quais culturas ele está monitorando. Ele também pode adicionar dados básicos, como a hora atual, já que alguns dispositivos IoT não possuem o hardware necessário para manter um horário preciso ou exigem código adicional para ler a hora atual pela Internet.
@ -228,7 +228,7 @@ Este código abre o arquivo CSV e adiciona uma nova linha no final. A linha cont
> 💁 Se você estiver usando um Dispositivo IoT Virtual, selecione a caixa de seleção aleatória e defina um intervalo para evitar obter a mesma temperatura toda vez que o valor de temperatura for retornado. > 💁 Se você estiver usando um Dispositivo IoT Virtual, selecione a caixa de seleção aleatória e defina um intervalo para evitar obter a mesma temperatura toda vez que o valor de temperatura for retornado.
![Selecione a caixa de seleção aleatória e defina um intervalo](../../../../../translated_images/br/select-the-random-checkbox-and-set-a-range.32cf4bc7c12e797f.webp) ![Selecione a caixa de seleção aleatória e defina um intervalo](../../../../../translated_images/pt-BR/select-the-random-checkbox-and-set-a-range.32cf4bc7c12e797f.webp)
> 💁 Se você quiser executar isso por um dia inteiro, então você precisa garantir que o computador onde seu código de servidor está rodando não entre em modo de suspensão, seja alterando as configurações de energia ou executando algo como [este script Python para manter o sistema ativo](https://github.com/jaqsparow/keep-system-active). > 💁 Se você quiser executar isso por um dia inteiro, então você precisa garantir que o computador onde seu código de servidor está rodando não entre em modo de suspensão, seja alterando as configurações de energia ou executando algo como [este script Python para manter o sistema ativo](https://github.com/jaqsparow/keep-system-active).
@ -248,7 +248,7 @@ Os passos para fazer isso manualmente são:
Por exemplo, se a temperatura mais alta do dia for 25°C e a mais baixa for 12°C: Por exemplo, se a temperatura mais alta do dia for 25°C e a mais baixa for 12°C:
![GDD = 25 + 12 dividido por 2, depois subtraia 10 do resultado, obtendo 8.5](../../../../../translated_images/br/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png) ![GDD = 25 + 12 dividido por 2, depois subtraia 10 do resultado, obtendo 8.5](../../../../../translated_images/pt-BR/gdd-calculation-strawberries.59f57db94b22adb8ff6efb951ace33af104a1c6ccca3ffb0f8169c14cb160c90.png)
* 25 + 12 = 37 * 25 + 12 = 37
* 37 / 2 = 18.5 * 37 / 2 = 18.5

@ -42,7 +42,7 @@ Depois de ter os dados de temperatura, você pode usar o Jupyter Notebook neste
O Jupyter será iniciado e abrirá o notebook no seu navegador. Siga as instruções no notebook para visualizar as temperaturas medidas e calcular os graus-dia de crescimento. O Jupyter será iniciado e abrirá o notebook no seu navegador. Siga as instruções no notebook para visualizar as temperaturas medidas e calcular os graus-dia de crescimento.
![O jupyter notebook](../../../../../translated_images/br/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png) ![O jupyter notebook](../../../../../translated_images/pt-BR/gdd-jupyter-notebook.c5b52cf21094f158a61f47f455490fd95f1729777ff90861a4521820bf354cdc.png)
## Rubrica ## Rubrica

@ -25,13 +25,13 @@ O sensor de temperatura Grove pode ser conectado ao Raspberry Pi.
Conecte o sensor de temperatura Conecte o sensor de temperatura
![Um sensor de temperatura Grove](../../../../../translated_images/br/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) ![Um sensor de temperatura Grove](../../../../../translated_images/pt-BR/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png)
1. Insira uma extremidade do cabo Grove no conector do sensor de umidade e temperatura. Ele só encaixará de uma maneira. 1. Insira uma extremidade do cabo Grove no conector do sensor de umidade e temperatura. Ele só encaixará de uma maneira.
1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao conector digital marcado como **D5** no Grove Base Hat conectado ao Pi. Este conector é o segundo da esquerda, na fileira de conectores ao lado dos pinos GPIO. 1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao conector digital marcado como **D5** no Grove Base Hat conectado ao Pi. Este conector é o segundo da esquerda, na fileira de conectores ao lado dos pinos GPIO.
![O sensor de temperatura Grove conectado ao conector A0](../../../../../translated_images/br/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png) ![O sensor de temperatura Grove conectado ao conector A0](../../../../../translated_images/pt-BR/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.png)
## Programar o sensor de temperatura ## Programar o sensor de temperatura

@ -47,11 +47,11 @@ Adicione os sensores de umidade e temperatura ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar o sensor de umidade no pino 5. 1. Selecione o botão **Add** para criar o sensor de umidade no pino 5.
![As configurações do sensor de umidade](../../../../../translated_images/br/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png) ![As configurações do sensor de umidade](../../../../../translated_images/pt-BR/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.png)
O sensor de umidade será criado e aparecerá na lista de sensores. O sensor de umidade será criado e aparecerá na lista de sensores.
![O sensor de umidade criado](../../../../../translated_images/br/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png) ![O sensor de umidade criado](../../../../../translated_images/pt-BR/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.png)
1. Crie um sensor de temperatura: 1. Crie um sensor de temperatura:
@ -63,11 +63,11 @@ Adicione os sensores de umidade e temperatura ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar o sensor de temperatura no pino 6. 1. Selecione o botão **Add** para criar o sensor de temperatura no pino 6.
![As configurações do sensor de temperatura](../../../../../translated_images/br/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png) ![As configurações do sensor de temperatura](../../../../../translated_images/pt-BR/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.png)
O sensor de temperatura será criado e aparecerá na lista de sensores. O sensor de temperatura será criado e aparecerá na lista de sensores.
![O sensor de temperatura criado](../../../../../translated_images/br/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png) ![O sensor de temperatura criado](../../../../../translated_images/pt-BR/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.png)
## Programar o aplicativo do sensor de temperatura ## Programar o aplicativo do sensor de temperatura

@ -27,13 +27,13 @@ O sensor de temperatura Grove pode ser conectado à porta digital do Wio Termina
Conecte o sensor de temperatura. Conecte o sensor de temperatura.
![Um sensor de temperatura Grove](../../../../../translated_images/br/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png) ![Um sensor de temperatura Grove](../../../../../translated_images/pt-BR/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.png)
1. Insira uma extremidade de um cabo Grove no conector do sensor de umidade e temperatura. Ele só se encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no conector do sensor de umidade e temperatura. Ele só se encaixará de uma maneira.
1. Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado direito do Wio Terminal, olhando para a tela. Este é o conector mais distante do botão de energia. 1. Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado direito do Wio Terminal, olhando para a tela. Este é o conector mais distante do botão de energia.
![O sensor de temperatura Grove conectado ao conector do lado direito](../../../../../translated_images/br/wio-temperature-sensor.2934928f38c7f79a.webp) ![O sensor de temperatura Grove conectado ao conector do lado direito](../../../../../translated_images/pt-BR/wio-temperature-sensor.2934928f38c7f79a.webp)
## Programar o sensor de temperatura ## Programar o sensor de temperatura

@ -22,7 +22,7 @@ O I²C possui um barramento composto por 2 fios principais, além de 2 fios de a
| VCC | Coletor Comum de Voltagem | A fonte de alimentação para os dispositivos. Este fio está conectado aos fios SDA e SCL para fornecer energia por meio de um resistor pull-up que desliga o sinal quando nenhum dispositivo é o controlador. | | VCC | Coletor Comum de Voltagem | A fonte de alimentação para os dispositivos. Este fio está conectado aos fios SDA e SCL para fornecer energia por meio de um resistor pull-up que desliga o sinal quando nenhum dispositivo é o controlador. |
| GND | Terra | Fornece um terra comum para o circuito elétrico. | | GND | Terra | Fornece um terra comum para o circuito elétrico. |
![Barramento I2C com 3 dispositivos conectados aos fios SDA e SCL, compartilhando um fio de terra comum](../../../../../translated_images/br/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png) ![Barramento I2C com 3 dispositivos conectados aos fios SDA e SCL, compartilhando um fio de terra comum](../../../../../translated_images/pt-BR/i2c.83da845dde02256bdd462dbe0d5145461416b74930571b89d1ae142841eeb584.png)
Para enviar dados, um dispositivo emitirá uma condição de início para indicar que está pronto para enviar dados. Ele então se tornará o controlador. O controlador envia o endereço do dispositivo com o qual deseja se comunicar, juntamente com a informação se deseja ler ou escrever dados. Após a transmissão dos dados, o controlador envia uma condição de parada para indicar que terminou. Depois disso, outro dispositivo pode se tornar o controlador e enviar ou receber dados. Para enviar dados, um dispositivo emitirá uma condição de início para indicar que está pronto para enviar dados. Ele então se tornará o controlador. O controlador envia o endereço do dispositivo com o qual deseja se comunicar, juntamente com a informação se deseja ler ou escrever dados. Após a transmissão dos dados, o controlador envia uma condição de parada para indicar que terminou. Depois disso, outro dispositivo pode se tornar o controlador e enviar ou receber dados.
@ -37,7 +37,7 @@ UART envolve circuitos físicos que permitem a comunicação entre dois disposit
* O Dispositivo 1 transmite dados do seu pino Tx, que são recebidos pelo Dispositivo 2 no seu pino Rx. * O Dispositivo 1 transmite dados do seu pino Tx, que são recebidos pelo Dispositivo 2 no seu pino Rx.
* O Dispositivo 1 recebe dados no seu pino Rx que são transmitidos pelo Dispositivo 2 a partir do seu pino Tx. * O Dispositivo 1 recebe dados no seu pino Rx que são transmitidos pelo Dispositivo 2 a partir do seu pino Tx.
![UART com o pino Tx de um chip conectado ao pino Rx de outro, e vice-versa](../../../../../translated_images/br/uart.d0dbd3fb9e3728c6.webp) ![UART com o pino Tx de um chip conectado ao pino Rx de outro, e vice-versa](../../../../../translated_images/pt-BR/uart.d0dbd3fb9e3728c6.webp)
> 🎓 Os dados são enviados um bit por vez, e isso é conhecido como comunicação *serial*. A maioria dos sistemas operacionais e microcontroladores possuem *portas seriais*, ou seja, conexões que podem enviar e receber dados seriais disponíveis para o seu código. > 🎓 Os dados são enviados um bit por vez, e isso é conhecido como comunicação *serial*. A maioria dos sistemas operacionais e microcontroladores possuem *portas seriais*, ou seja, conexões que podem enviar e receber dados seriais disponíveis para o seu código.
@ -66,7 +66,7 @@ Controladores SPI utilizam 3 fios, junto com 1 fio extra por periférico. Perif
| SCLK | Relógio Serial | Este fio envia um sinal de relógio em uma taxa definida pelo controlador. | | SCLK | Relógio Serial | Este fio envia um sinal de relógio em uma taxa definida pelo controlador. |
| CS | Seleção de Chip | O controlador possui múltiplos fios, um por periférico, e cada fio conecta ao fio CS no periférico correspondente. | | CS | Seleção de Chip | O controlador possui múltiplos fios, um por periférico, e cada fio conecta ao fio CS no periférico correspondente. |
![SPI com um controlador e dois periféricos](../../../../../translated_images/br/spi.297431d6f98b386b.webp) ![SPI com um controlador e dois periféricos](../../../../../translated_images/pt-BR/spi.297431d6f98b386b.webp)
O fio CS é usado para ativar um periférico por vez, comunicando-se pelos fios COPI e CIPO. Quando o controlador precisa mudar de periférico, ele desativa o fio CS conectado ao periférico ativo e ativa o fio conectado ao periférico com o qual deseja se comunicar. O fio CS é usado para ativar um periférico por vez, comunicando-se pelos fios COPI e CIPO. Quando o controlador precisa mudar de periférico, ele desativa o fio CS conectado ao periférico ativo e ativa o fio conectado ao periférico com o qual deseja se comunicar.
@ -127,13 +127,13 @@ A umidade do solo é medida usando o conteúdo de água gravimétrico ou volumé
Sensores de umidade do solo medem resistência elétrica ou capacitância - isso não apenas varia com a umidade do solo, mas também com o tipo de solo, já que os componentes do solo podem alterar suas características elétricas. Idealmente, os sensores devem ser calibrados - ou seja, realizar leituras do sensor e compará-las com medições obtidas por um método mais científico. Por exemplo, um laboratório pode calcular a umidade gravimétrica do solo usando amostras de um campo específico algumas vezes por ano, e esses números podem ser usados para calibrar o sensor, associando a leitura do sensor à umidade gravimétrica do solo. Sensores de umidade do solo medem resistência elétrica ou capacitância - isso não apenas varia com a umidade do solo, mas também com o tipo de solo, já que os componentes do solo podem alterar suas características elétricas. Idealmente, os sensores devem ser calibrados - ou seja, realizar leituras do sensor e compará-las com medições obtidas por um método mais científico. Por exemplo, um laboratório pode calcular a umidade gravimétrica do solo usando amostras de um campo específico algumas vezes por ano, e esses números podem ser usados para calibrar o sensor, associando a leitura do sensor à umidade gravimétrica do solo.
![Um gráfico de tensão vs. conteúdo de umidade do solo](../../../../../translated_images/br/soil-moisture-to-voltage.df86d80cda158700.webp) ![Um gráfico de tensão vs. conteúdo de umidade do solo](../../../../../translated_images/pt-BR/soil-moisture-to-voltage.df86d80cda158700.webp)
O gráfico acima mostra como calibrar um sensor. A tensão é capturada para uma amostra de solo que é então medida em um laboratório, comparando o peso úmido ao peso seco (medindo o peso úmido, depois secando no forno e medindo o peso seco). Após algumas leituras, os dados podem ser plotados em um gráfico e uma linha ajustada aos pontos. Essa linha pode então ser usada para converter leituras do sensor de umidade do solo feitas por um dispositivo IoT em medições reais de umidade do solo. O gráfico acima mostra como calibrar um sensor. A tensão é capturada para uma amostra de solo que é então medida em um laboratório, comparando o peso úmido ao peso seco (medindo o peso úmido, depois secando no forno e medindo o peso seco). Após algumas leituras, os dados podem ser plotados em um gráfico e uma linha ajustada aos pontos. Essa linha pode então ser usada para converter leituras do sensor de umidade do solo feitas por um dispositivo IoT em medições reais de umidade do solo.
💁 Para sensores resistivos de umidade do solo, a tensão aumenta à medida que a umidade do solo aumenta. Para sensores capacitivos de umidade do solo, a tensão diminui à medida que a umidade do solo aumenta, então os gráficos para esses sensores teriam uma inclinação descendente, não ascendente. 💁 Para sensores resistivos de umidade do solo, a tensão aumenta à medida que a umidade do solo aumenta. Para sensores capacitivos de umidade do solo, a tensão diminui à medida que a umidade do solo aumenta, então os gráficos para esses sensores teriam uma inclinação descendente, não ascendente.
![Um valor de umidade do solo interpolado a partir do gráfico](../../../../../translated_images/br/soil-moisture-to-voltage-with-reading.681cb3e1f8b68caf.webp) ![Um valor de umidade do solo interpolado a partir do gráfico](../../../../../translated_images/pt-BR/soil-moisture-to-voltage-with-reading.681cb3e1f8b68caf.webp)
O gráfico acima mostra uma leitura de tensão de um sensor de umidade do solo e, ao seguir essa leitura até a linha no gráfico, a umidade real do solo pode ser calculada. O gráfico acima mostra uma leitura de tensão de um sensor de umidade do solo e, ao seguir essa leitura até a linha no gráfico, a umidade real do solo pode ser calculada.

@ -29,7 +29,7 @@ Será necessário repetir esses passos várias vezes para obter as leituras nece
A umidade gravimétrica do solo é calculada como: A umidade gravimétrica do solo é calculada como:
![umidade do solo % é o peso úmido menos o peso seco, dividido pelo peso seco, vezes 100](../../../../../translated_images/br/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png) ![umidade do solo % é o peso úmido menos o peso seco, dividido pelo peso seco, vezes 100](../../../../../translated_images/pt-BR/gsm-calculation.6da38c6201eec14e7573bb2647aa18892883193553d23c9d77e5dc681522dfb2.png)
* W * W
- o peso do solo úmido - o peso do solo úmido
@ -38,7 +38,7 @@ A umidade gravimétrica do solo é calculada como:
Por exemplo, suponha que você tenha uma amostra de solo que pesa 212g úmida e 197g seca. Por exemplo, suponha que você tenha uma amostra de solo que pesa 212g úmida e 197g seca.
![O cálculo preenchido](../../../../../translated_images/br/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png) ![O cálculo preenchido](../../../../../translated_images/pt-BR/gsm-calculation-example.99f9803b4f29e97668e7c15412136c0c399ab12dbba0b89596fdae9d8aedb6fb.png)
* W = 212g * W = 212g
* W = 197g * W = 197g

@ -27,17 +27,17 @@ O sensor de umidade do solo Grove pode ser conectado ao Raspberry Pi.
Conecte o sensor de umidade do solo. Conecte o sensor de umidade do solo.
![Um sensor de umidade do solo Grove](../../../../../translated_images/br/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) ![Um sensor de umidade do solo Grove](../../../../../translated_images/pt-BR/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png)
1. Insira uma extremidade de um cabo Grove no conector do sensor de umidade do solo. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no conector do sensor de umidade do solo. Ele só encaixará de uma maneira.
1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao conector analógico marcado como **A0** no Grove Base Hat conectado ao Raspberry Pi. Este conector é o segundo da direita, na fileira de conectores ao lado dos pinos GPIO. 1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao conector analógico marcado como **A0** no Grove Base Hat conectado ao Raspberry Pi. Este conector é o segundo da direita, na fileira de conectores ao lado dos pinos GPIO.
![O sensor de umidade do solo Grove conectado ao conector A0](../../../../../translated_images/br/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png) ![O sensor de umidade do solo Grove conectado ao conector A0](../../../../../translated_images/pt-BR/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.png)
1. Insira o sensor de umidade do solo no solo. Ele possui uma "linha de posição máxima" - uma linha branca atravessando o sensor. Insira o sensor até essa linha, mas não ultrapasse. 1. Insira o sensor de umidade do solo no solo. Ele possui uma "linha de posição máxima" - uma linha branca atravessando o sensor. Insira o sensor até essa linha, mas não ultrapasse.
![O sensor de umidade do solo Grove no solo](../../../../../translated_images/br/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp) ![O sensor de umidade do solo Grove no solo](../../../../../translated_images/pt-BR/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp)
## Programar o sensor de umidade do solo ## Programar o sensor de umidade do solo

@ -43,11 +43,11 @@ Adicione o sensor de umidade do solo ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar o sensor *Soil Moisture* no Pin 0. 1. Selecione o botão **Add** para criar o sensor *Soil Moisture* no Pin 0.
![As configurações do sensor de umidade do solo](../../../../../translated_images/br/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png) ![As configurações do sensor de umidade do solo](../../../../../translated_images/pt-BR/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.png)
O sensor de umidade do solo será criado e aparecerá na lista de sensores. O sensor de umidade do solo será criado e aparecerá na lista de sensores.
![O sensor de umidade do solo criado](../../../../../translated_images/br/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png) ![O sensor de umidade do solo criado](../../../../../translated_images/pt-BR/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.png)
## Programar o aplicativo do sensor de umidade do solo ## Programar o aplicativo do sensor de umidade do solo

@ -27,17 +27,17 @@ O sensor de umidade do solo Grove pode ser conectado à porta analógica/digital
Conecte o sensor de umidade do solo. Conecte o sensor de umidade do solo.
![Um sensor de umidade do solo Grove](../../../../../translated_images/br/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png) ![Um sensor de umidade do solo Grove](../../../../../translated_images/pt-BR/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.png)
1. Insira uma extremidade de um cabo Grove no conector do sensor de umidade do solo. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no conector do sensor de umidade do solo. Ele só encaixará de uma maneira.
1. Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado direito do Wio Terminal, olhando para a tela. Este é o conector mais distante do botão de energia. 1. Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado direito do Wio Terminal, olhando para a tela. Este é o conector mais distante do botão de energia.
![O sensor de umidade do solo Grove conectado ao conector do lado direito](../../../../../translated_images/br/wio-soil-moisture-sensor.46919b61c3f6cb74.webp) ![O sensor de umidade do solo Grove conectado ao conector do lado direito](../../../../../translated_images/pt-BR/wio-soil-moisture-sensor.46919b61c3f6cb74.webp)
1. Insira o sensor de umidade do solo no solo. Ele possui uma 'linha de posição máxima' - uma linha branca atravessando o sensor. Insira o sensor até essa linha, mas não ultrapasse. 1. Insira o sensor de umidade do solo no solo. Ele possui uma 'linha de posição máxima' - uma linha branca atravessando o sensor. Insira o sensor até essa linha, mas não ultrapasse.
![O sensor de umidade do solo Grove no solo](../../../../../translated_images/br/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp) ![O sensor de umidade do solo Grove no solo](../../../../../translated_images/pt-BR/soil-moisture-sensor-in-soil.bfad91002bda5e96.webp)
1. Agora você pode conectar o Wio Terminal ao seu computador. 1. Agora você pode conectar o Wio Terminal ao seu computador.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Irrigação automatizada de plantas # Irrigação automatizada de plantas
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-7.30b5f577d3cb8e031238751475cb519c7d6dbaea261b5df4643d086ffb2a03bb.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -41,7 +41,7 @@ Dispositivos IoT utilizam baixa voltagem. Embora isso seja suficiente para senso
A solução para isso é conectar a bomba a uma fonte de energia externa e usar um atuador para ligar a bomba, semelhante a como você ligaria uma luz. É necessário apenas uma pequena quantidade de energia (na forma de energia do seu corpo) para seu dedo acionar um interruptor, conectando a luz à eletricidade da rede elétrica de 110v/240v. A solução para isso é conectar a bomba a uma fonte de energia externa e usar um atuador para ligar a bomba, semelhante a como você ligaria uma luz. É necessário apenas uma pequena quantidade de energia (na forma de energia do seu corpo) para seu dedo acionar um interruptor, conectando a luz à eletricidade da rede elétrica de 110v/240v.
![Um interruptor de luz liga a energia para uma lâmpada](../../../../../translated_images/br/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png) ![Um interruptor de luz liga a energia para uma lâmpada](../../../../../translated_images/pt-BR/light-switch.760317ad6ab8bd6d611da5352dfe9c73a94a0822ccec7df3c8bae35da18e1658.png)
> 🎓 [Eletricidade da rede](https://wikipedia.org/wiki/Mains_electricity) refere-se à eletricidade fornecida a residências e empresas por meio de infraestrutura nacional em muitas partes do mundo. > 🎓 [Eletricidade da rede](https://wikipedia.org/wiki/Mains_electricity) refere-se à eletricidade fornecida a residências e empresas por meio de infraestrutura nacional em muitas partes do mundo.
@ -55,11 +55,11 @@ Um relé é um interruptor eletromecânico que converte um sinal elétrico em um
> 🎓 [Eletroímãs](https://wikipedia.org/wiki/Electromagnet) são ímãs criados ao passar eletricidade por uma bobina de fio. Quando a eletricidade é ligada, a bobina se torna magnetizada. Quando a eletricidade é desligada, a bobina perde seu magnetismo. > 🎓 [Eletroímãs](https://wikipedia.org/wiki/Electromagnet) são ímãs criados ao passar eletricidade por uma bobina de fio. Quando a eletricidade é ligada, a bobina se torna magnetizada. Quando a eletricidade é desligada, a bobina perde seu magnetismo.
![Quando ligado, o eletroímã cria um campo magnético, acionando o interruptor do circuito de saída](../../../../../translated_images/br/relay-on.4db16a0fd6b66926.webp) ![Quando ligado, o eletroímã cria um campo magnético, acionando o interruptor do circuito de saída](../../../../../translated_images/pt-BR/relay-on.4db16a0fd6b66926.webp)
Em um relé, um circuito de controle alimenta o eletroímã. Quando o eletroímã está ligado, ele puxa uma alavanca que move um interruptor, fechando um par de contatos e completando um circuito de saída. Em um relé, um circuito de controle alimenta o eletroímã. Quando o eletroímã está ligado, ele puxa uma alavanca que move um interruptor, fechando um par de contatos e completando um circuito de saída.
![Quando desligado, o eletroímã não cria um campo magnético, desligando o interruptor do circuito de saída](../../../../../translated_images/br/relay-off.c34a178a2960fecd.webp) ![Quando desligado, o eletroímã não cria um campo magnético, desligando o interruptor do circuito de saída](../../../../../translated_images/pt-BR/relay-off.c34a178a2960fecd.webp)
Quando o circuito de controle está desligado, o eletroímã desliga, liberando a alavanca e abrindo os contatos, desligando o circuito de saída. Relés são atuadores digitais - um sinal alto para o relé o liga, um sinal baixo o desliga. Quando o circuito de controle está desligado, o eletroímã desliga, liberando a alavanca e abrindo os contatos, desligando o circuito de saída. Relés são atuadores digitais - um sinal alto para o relé o liga, um sinal baixo o desliga.
@ -81,11 +81,11 @@ Quando a alavanca se move, geralmente é possível ouvir o contato com o eletro
O eletroímã não precisa de muita energia para ativar e puxar a alavanca, podendo ser controlado usando a saída de 3.3V ou 5V de um kit de desenvolvimento IoT. O circuito de saída pode transportar muito mais energia, dependendo do relé, incluindo voltagem da rede elétrica ou até níveis de potência mais altos para uso industrial. Dessa forma, um kit de desenvolvimento IoT pode controlar um sistema de irrigação, desde uma pequena bomba para uma única planta até um sistema industrial massivo para uma fazenda comercial inteira. O eletroímã não precisa de muita energia para ativar e puxar a alavanca, podendo ser controlado usando a saída de 3.3V ou 5V de um kit de desenvolvimento IoT. O circuito de saída pode transportar muito mais energia, dependendo do relé, incluindo voltagem da rede elétrica ou até níveis de potência mais altos para uso industrial. Dessa forma, um kit de desenvolvimento IoT pode controlar um sistema de irrigação, desde uma pequena bomba para uma única planta até um sistema industrial massivo para uma fazenda comercial inteira.
![Um relé Grove com o circuito de controle, circuito de saída e relé identificados](../../../../../translated_images/br/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png) ![Um relé Grove com o circuito de controle, circuito de saída e relé identificados](../../../../../translated_images/pt-BR/grove-relay-labelled.293e068f5c3c2a199bd7892f2661fdc9e10c920b535cfed317fbd6d1d4ae1168.png)
A imagem acima mostra um relé Grove. O circuito de controle conecta-se a um dispositivo IoT e liga ou desliga o relé usando 3.3V ou 5V. O circuito de saída possui dois terminais, qualquer um pode ser energia ou terra. O circuito de saída pode lidar com até 250V a 10A, suficiente para uma variedade de dispositivos alimentados pela rede elétrica. Você pode encontrar relés que suportam níveis de potência ainda mais altos. A imagem acima mostra um relé Grove. O circuito de controle conecta-se a um dispositivo IoT e liga ou desliga o relé usando 3.3V ou 5V. O circuito de saída possui dois terminais, qualquer um pode ser energia ou terra. O circuito de saída pode lidar com até 250V a 10A, suficiente para uma variedade de dispositivos alimentados pela rede elétrica. Você pode encontrar relés que suportam níveis de potência ainda mais altos.
![Uma bomba conectada através de um relé](../../../../../translated_images/br/pump-wired-to-relay.66c5cfc0d8918990.webp) ![Uma bomba conectada através de um relé](../../../../../translated_images/pt-BR/pump-wired-to-relay.66c5cfc0d8918990.webp)
Na imagem acima, a energia é fornecida a uma bomba via relé. Há um fio vermelho conectando o terminal +5V de uma fonte de alimentação USB a um terminal do circuito de saída do relé, e outro fio vermelho conectando o outro terminal do circuito de saída à bomba. Um fio preto conecta a bomba ao terra na fonte de alimentação USB. Quando o relé é ligado, ele completa o circuito, enviando 5V para a bomba, ligando-a. Na imagem acima, a energia é fornecida a uma bomba via relé. Há um fio vermelho conectando o terminal +5V de uma fonte de alimentação USB a um terminal do circuito de saída do relé, e outro fio vermelho conectando o outro terminal do circuito de saída à bomba. Um fio preto conecta a bomba ao terra na fonte de alimentação USB. Quando o relé é ligado, ele completa o circuito, enviando 5V para a bomba, ligando-a.
@ -135,7 +135,7 @@ Na lição 3, você construiu uma luz noturna - um LED que acende assim que um n
Se você fez a última lição sobre umidade do solo usando um sensor físico, deve ter notado que levou alguns segundos para a leitura de umidade do solo cair após você regar sua planta. Isso não ocorre porque o sensor é lento, mas porque leva tempo para a água se infiltrar no solo. Se você fez a última lição sobre umidade do solo usando um sensor físico, deve ter notado que levou alguns segundos para a leitura de umidade do solo cair após você regar sua planta. Isso não ocorre porque o sensor é lento, mas porque leva tempo para a água se infiltrar no solo.
💁 Se você regou muito perto do sensor, pode ter notado que a leitura caiu rapidamente e depois voltou a subir - isso acontece porque a água próxima ao sensor se espalha pelo restante do solo, reduzindo a umidade do solo ao redor do sensor. 💁 Se você regou muito perto do sensor, pode ter notado que a leitura caiu rapidamente e depois voltou a subir - isso acontece porque a água próxima ao sensor se espalha pelo restante do solo, reduzindo a umidade do solo ao redor do sensor.
![Uma medição de umidade do solo de 658 não muda durante a irrigação, apenas cai para 320 após a irrigação quando a água penetra no solo](../../../../../translated_images/br/soil-moisture-travel.a0e31af222cf1438.webp) ![Uma medição de umidade do solo de 658 não muda durante a irrigação, apenas cai para 320 após a irrigação quando a água penetra no solo](../../../../../translated_images/pt-BR/soil-moisture-travel.a0e31af222cf1438.webp)
No diagrama acima, uma leitura de umidade do solo mostra 658. A planta é irrigada, mas essa leitura não muda imediatamente, pois a água ainda não alcançou o sensor. A irrigação pode até terminar antes que a água chegue ao sensor e o valor caia para refletir o novo nível de umidade. No diagrama acima, uma leitura de umidade do solo mostra 658. A planta é irrigada, mas essa leitura não muda imediatamente, pois a água ainda não alcançou o sensor. A irrigação pode até terminar antes que a água chegue ao sensor e o valor caia para refletir o novo nível de umidade.
@ -157,11 +157,11 @@ Quanto tempo o relé deve ficar ligado a cada vez? É melhor errar por excesso d
> 💁 Esse tipo de controle de tempo é muito específico para o dispositivo IoT que você está construindo, a propriedade que está medindo e os sensores e atuadores utilizados. > 💁 Esse tipo de controle de tempo é muito específico para o dispositivo IoT que você está construindo, a propriedade que está medindo e os sensores e atuadores utilizados.
![Uma planta de morango conectada à água via uma bomba, com a bomba conectada a um relé. O relé e um sensor de umidade do solo na planta estão conectados a um Raspberry Pi](../../../../../translated_images/br/strawberry-with-pump.b410fc72ac6aabad.webp) ![Uma planta de morango conectada à água via uma bomba, com a bomba conectada a um relé. O relé e um sensor de umidade do solo na planta estão conectados a um Raspberry Pi](../../../../../translated_images/pt-BR/strawberry-with-pump.b410fc72ac6aabad.webp)
Por exemplo, eu tenho uma planta de morango com um sensor de umidade do solo e uma bomba controlada por um relé. Observei que, quando adiciono água, leva cerca de 20 segundos para a leitura de umidade do solo se estabilizar. Isso significa que preciso desligar o relé e esperar 20 segundos antes de verificar os níveis de umidade. Prefiro ter pouca água do que muita - sempre posso ligar a bomba novamente, mas não posso retirar água da planta. Por exemplo, eu tenho uma planta de morango com um sensor de umidade do solo e uma bomba controlada por um relé. Observei que, quando adiciono água, leva cerca de 20 segundos para a leitura de umidade do solo se estabilizar. Isso significa que preciso desligar o relé e esperar 20 segundos antes de verificar os níveis de umidade. Prefiro ter pouca água do que muita - sempre posso ligar a bomba novamente, mas não posso retirar água da planta.
![Passo 1, fazer a medição. Passo 2, adicionar água. Passo 3, esperar que a água penetre no solo. Passo 4, refazer a medição](../../../../../translated_images/br/soil-moisture-delay.865f3fae206db01d.webp) ![Passo 1, fazer a medição. Passo 2, adicionar água. Passo 3, esperar que a água penetre no solo. Passo 4, refazer a medição](../../../../../translated_images/pt-BR/soil-moisture-delay.865f3fae206db01d.webp)
Isso significa que o melhor processo seria um ciclo de irrigação semelhante a: Isso significa que o melhor processo seria um ciclo de irrigação semelhante a:

@ -27,13 +27,13 @@ O relé Grove pode ser conectado ao Raspberry Pi.
Conecte o relé. Conecte o relé.
![Um relé Grove](../../../../../translated_images/br/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) ![Um relé Grove](../../../../../translated_images/pt-BR/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png)
1. Insira uma extremidade de um cabo Grove no soquete do relé. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no soquete do relé. Ele só encaixará de uma maneira.
1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao soquete digital marcado como **D5** no Grove Base Hat conectado ao Pi. Este soquete é o segundo da esquerda, na fileira de soquetes ao lado dos pinos GPIO. Deixe o sensor de umidade do solo conectado ao soquete **A0**. 1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao soquete digital marcado como **D5** no Grove Base Hat conectado ao Pi. Este soquete é o segundo da esquerda, na fileira de soquetes ao lado dos pinos GPIO. Deixe o sensor de umidade do solo conectado ao soquete **A0**.
![O relé Grove conectado ao soquete D5 e o sensor de umidade do solo conectado ao soquete A0](../../../../../translated_images/br/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png) ![O relé Grove conectado ao soquete D5 e o sensor de umidade do solo conectado ao soquete A0](../../../../../translated_images/pt-BR/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.png)
1. Insira o sensor de umidade do solo na terra, caso ele ainda não esteja inserido da lição anterior. 1. Insira o sensor de umidade do solo na terra, caso ele ainda não esteja inserido da lição anterior.

@ -37,11 +37,11 @@ Adicione o relé ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar o relé no pino 5. 1. Selecione o botão **Add** para criar o relé no pino 5.
![As configurações do relé](../../../../../translated_images/br/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png) ![As configurações do relé](../../../../../translated_images/pt-BR/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.png)
O relé será criado e aparecerá na lista de atuadores. O relé será criado e aparecerá na lista de atuadores.
![O relé criado](../../../../../translated_images/br/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png) ![O relé criado](../../../../../translated_images/pt-BR/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.png)
## Programar o relé ## Programar o relé

@ -27,13 +27,13 @@ O relé Grove pode ser conectado à porta digital do Wio Terminal.
Conecte o relé. Conecte o relé.
![Um relé Grove](../../../../../translated_images/br/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png) ![Um relé Grove](../../../../../translated_images/pt-BR/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.png)
1. Insira uma extremidade de um cabo Grove no soquete do relé. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no soquete do relé. Ele só encaixará de uma maneira.
1. Com o Wio Terminal desconectado do computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao soquete Grove do lado esquerdo do Wio Terminal, olhando para a tela. Deixe o sensor de umidade do solo conectado ao soquete do lado direito. 1. Com o Wio Terminal desconectado do computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao soquete Grove do lado esquerdo do Wio Terminal, olhando para a tela. Deixe o sensor de umidade do solo conectado ao soquete do lado direito.
![O relé Grove conectado ao soquete esquerdo e o sensor de umidade do solo conectado ao soquete direito](../../../../../translated_images/br/wio-relay-and-soil-moisture-sensor.ed722202d42babe0.webp) ![O relé Grove conectado ao soquete esquerdo e o sensor de umidade do solo conectado ao soquete direito](../../../../../translated_images/pt-BR/wio-relay-and-soil-moisture-sensor.ed722202d42babe0.webp)
1. Insira o sensor de umidade do solo no solo, caso ele ainda não esteja inserido da lição anterior. 1. Insira o sensor de umidade do solo no solo, caso ele ainda não esteja inserido da lição anterior.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Migre sua planta para a nuvem # Migre sua planta para a nuvem
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-8.3f21f3c11159e6a0a376351973ea5724d5de68fa23b4288853a174bed9ac48c3.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -55,8 +55,8 @@ Isso podia ser muito caro, exigir uma ampla gama de funcionários qualificados e
A nuvem é frequentemente chamada de "o computador de outra pessoa" como uma brincadeira. A ideia inicial era simples: em vez de comprar computadores, você aluga o computador de outra pessoa. Essa "outra pessoa", um provedor de computação em nuvem, gerenciaria enormes data centers. Eles seriam responsáveis por comprar e instalar o hardware, gerenciar energia e refrigeração, rede, segurança do prédio, atualizações de hardware e software, tudo. Como cliente, você alugaria os computadores necessários, alugando mais conforme a demanda aumentasse e reduzindo o número alugado se a demanda diminuísse. Esses data centers estão espalhados pelo mundo. A nuvem é frequentemente chamada de "o computador de outra pessoa" como uma brincadeira. A ideia inicial era simples: em vez de comprar computadores, você aluga o computador de outra pessoa. Essa "outra pessoa", um provedor de computação em nuvem, gerenciaria enormes data centers. Eles seriam responsáveis por comprar e instalar o hardware, gerenciar energia e refrigeração, rede, segurança do prédio, atualizações de hardware e software, tudo. Como cliente, você alugaria os computadores necessários, alugando mais conforme a demanda aumentasse e reduzindo o número alugado se a demanda diminuísse. Esses data centers estão espalhados pelo mundo.
![Um data center da nuvem da Microsoft](../../../../../translated_images/br/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png) ![Um data center da nuvem da Microsoft](../../../../../translated_images/pt-BR/azure-region-existing.73f704604f2aa6cb9b5a49ed40e93d4fd81ae3f4e6af4a8ca504023902832f56.png)
![Expansão planejada de um data center da nuvem da Microsoft](../../../../../translated_images/br/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png) ![Expansão planejada de um data center da nuvem da Microsoft](../../../../../translated_images/pt-BR/azure-region-planned-expansion.a5074a1e8af74f156a73552d502429e5b126ea5019274d767ecb4b9afdad442b.png)
Esses data centers podem ter vários quilômetros quadrados de tamanho. As imagens acima foram tiradas há alguns anos em um data center da nuvem da Microsoft e mostram o tamanho inicial, junto com uma expansão planejada. A área limpa para a expansão tem mais de 5 quilômetros quadrados. Esses data centers podem ter vários quilômetros quadrados de tamanho. As imagens acima foram tiradas há alguns anos em um data center da nuvem da Microsoft e mostram o tamanho inicial, junto com uma expansão planejada. A área limpa para a expansão tem mais de 5 quilômetros quadrados.
@ -72,7 +72,7 @@ O provedor de nuvem pode então usar economias de escala para reduzir os custos,
Azure é a nuvem para desenvolvedores da Microsoft, e é a nuvem que você usará nestas lições. O vídeo abaixo oferece uma breve visão geral do Azure: Azure é a nuvem para desenvolvedores da Microsoft, e é a nuvem que você usará nestas lições. O vídeo abaixo oferece uma breve visão geral do Azure:
[![Vídeo de visão geral do Azure](../../../../../translated_images/br/what-is-azure-video-thumbnail.20174db09e03bbb8.webp)](https://www.microsoft.com/videoplayer/embed/RE4Ibng?WT.mc_id=academic-17441-jabenn) [![Vídeo de visão geral do Azure](../../../../../translated_images/pt-BR/what-is-azure-video-thumbnail.20174db09e03bbb8.webp)](https://www.microsoft.com/videoplayer/embed/RE4Ibng?WT.mc_id=academic-17441-jabenn)
## Criar uma assinatura de nuvem ## Criar uma assinatura de nuvem
@ -117,11 +117,11 @@ Os serviços de IoT na nuvem resolvem esses problemas. Eles são mantidos por gr
Dispositivos IoT se conectam a um serviço de nuvem usando um SDK de dispositivo (uma biblioteca que fornece código para trabalhar com os recursos do serviço) ou diretamente via um protocolo de comunicação como MQTT ou HTTP. O SDK de dispositivo geralmente é a rota mais fácil, pois lida com tudo para você, como saber quais tópicos publicar ou assinar e como gerenciar a segurança. Dispositivos IoT se conectam a um serviço de nuvem usando um SDK de dispositivo (uma biblioteca que fornece código para trabalhar com os recursos do serviço) ou diretamente via um protocolo de comunicação como MQTT ou HTTP. O SDK de dispositivo geralmente é a rota mais fácil, pois lida com tudo para você, como saber quais tópicos publicar ou assinar e como gerenciar a segurança.
![Dispositivos se conectam a um serviço usando um SDK de dispositivo. Código de servidor também se conecta ao serviço via um SDK](../../../../../translated_images/br/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png) ![Dispositivos se conectam a um serviço usando um SDK de dispositivo. Código de servidor também se conecta ao serviço via um SDK](../../../../../translated_images/pt-BR/iot-service-connectivity.7e873847921a5d6fd60d0ba3a943210194518cee0d4e362476624316443275c3.png)
Seu dispositivo então se comunica com outras partes de sua aplicação por meio desse serviço - semelhante à forma como você enviou telemetria e recebeu comandos via MQTT. Isso geralmente é feito usando um SDK de serviço ou uma biblioteca semelhante. As mensagens vêm do seu dispositivo para o serviço, onde outros componentes da sua aplicação podem lê-las, e mensagens podem ser enviadas de volta ao seu dispositivo. Seu dispositivo então se comunica com outras partes de sua aplicação por meio desse serviço - semelhante à forma como você enviou telemetria e recebeu comandos via MQTT. Isso geralmente é feito usando um SDK de serviço ou uma biblioteca semelhante. As mensagens vêm do seu dispositivo para o serviço, onde outros componentes da sua aplicação podem lê-las, e mensagens podem ser enviadas de volta ao seu dispositivo.
![Dispositivos sem uma chave secreta válida não podem se conectar ao serviço de IoT](../../../../../translated_images/br/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png) ![Dispositivos sem uma chave secreta válida não podem se conectar ao serviço de IoT](../../../../../translated_images/pt-BR/iot-service-allowed-denied-connection.818b0063ac213fb84204a7229303764d9b467ca430fb822b4ac2fca267d56726.png)
Esses serviços implementam segurança conhecendo todos os dispositivos que podem se conectar e enviar dados, seja registrando os dispositivos previamente no serviço ou fornecendo aos dispositivos chaves secretas ou certificados que podem usar para se registrar no serviço na primeira vez que se conectarem. Dispositivos desconhecidos não conseguem se conectar; se tentarem, o serviço rejeita a conexão e ignora as mensagens enviadas por eles. Esses serviços implementam segurança conhecendo todos os dispositivos que podem se conectar e enviar dados, seja registrando os dispositivos previamente no serviço ou fornecendo aos dispositivos chaves secretas ou certificados que podem usar para se registrar no serviço na primeira vez que se conectarem. Dispositivos desconhecidos não conseguem se conectar; se tentarem, o serviço rejeita a conexão e ignora as mensagens enviadas por eles.
@ -133,7 +133,7 @@ Outros componentes da sua aplicação podem se conectar ao serviço de IoT e apr
Agora que você tem uma assinatura do Azure, pode se inscrever em um serviço de IoT. O serviço de IoT da Microsoft é chamado Azure IoT Hub. Agora que você tem uma assinatura do Azure, pode se inscrever em um serviço de IoT. O serviço de IoT da Microsoft é chamado Azure IoT Hub.
![O logotipo do Azure IoT Hub](../../../../../translated_images/br/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png) ![O logotipo do Azure IoT Hub](../../../../../translated_images/pt-BR/azure-iot-hub-logo.28a19de76d0a1932464d858f7558712bcdace3e5ec69c434d482ed7ce41c3a26.png)
O vídeo abaixo oferece uma breve visão geral do Azure IoT Hub: O vídeo abaixo oferece uma breve visão geral do Azure IoT Hub:

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Migre a lógica da sua aplicação para a nuvem # Migre a lógica da sua aplicação para a nuvem
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-9.dfe99c8e891f48e179724520da9f5794392cf9a625079281ccdcbf09bd85e1b6.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -37,11 +37,11 @@ Nesta lição, abordaremos:
Serverless, ou computação sem servidor, envolve criar pequenos blocos de código que são executados na nuvem em resposta a diferentes tipos de eventos. Quando o evento ocorre, seu código é executado e recebe dados sobre o evento. Esses eventos podem vir de várias fontes, incluindo requisições web, mensagens colocadas em uma fila, alterações em dados de um banco de dados ou mensagens enviadas a um serviço de IoT por dispositivos IoT. Serverless, ou computação sem servidor, envolve criar pequenos blocos de código que são executados na nuvem em resposta a diferentes tipos de eventos. Quando o evento ocorre, seu código é executado e recebe dados sobre o evento. Esses eventos podem vir de várias fontes, incluindo requisições web, mensagens colocadas em uma fila, alterações em dados de um banco de dados ou mensagens enviadas a um serviço de IoT por dispositivos IoT.
![Eventos sendo enviados de um serviço IoT para um serviço serverless, todos processados ao mesmo tempo por várias funções sendo executadas](../../../../../translated_images/br/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png) ![Eventos sendo enviados de um serviço IoT para um serviço serverless, todos processados ao mesmo tempo por várias funções sendo executadas](../../../../../translated_images/pt-BR/iot-messages-to-serverless.0194da1cc0732bb7d0f823aed3fce54735c6b1ad3bf36089804d8aaefc0a774f.png)
> 💁 Se você já usou gatilhos de banco de dados antes, pode pensar nisso como algo semelhante: código sendo acionado por um evento, como a inserção de uma linha. > 💁 Se você já usou gatilhos de banco de dados antes, pode pensar nisso como algo semelhante: código sendo acionado por um evento, como a inserção de uma linha.
![Quando muitos eventos são enviados ao mesmo tempo, o serviço serverless escala para executá-los todos simultaneamente](../../../../../translated_images/br/serverless-scaling.f8c769adf0413fd1.webp) ![Quando muitos eventos são enviados ao mesmo tempo, o serviço serverless escala para executá-los todos simultaneamente](../../../../../translated_images/pt-BR/serverless-scaling.f8c769adf0413fd1.webp)
Seu código só é executado quando o evento ocorre, não há nada mantendo seu código ativo em outros momentos. O evento acontece, seu código é carregado e executado. Isso torna o serverless muito escalável - se muitos eventos ocorrerem ao mesmo tempo, o provedor de nuvem pode executar sua função quantas vezes forem necessárias simultaneamente, utilizando os servidores disponíveis. A desvantagem disso é que, se você precisar compartilhar informações entre eventos, será necessário armazená-las em algum lugar, como um banco de dados, em vez de mantê-las na memória. Seu código só é executado quando o evento ocorre, não há nada mantendo seu código ativo em outros momentos. O evento acontece, seu código é carregado e executado. Isso torna o serverless muito escalável - se muitos eventos ocorrerem ao mesmo tempo, o provedor de nuvem pode executar sua função quantas vezes forem necessárias simultaneamente, utilizando os servidores disponíveis. A desvantagem disso é que, se você precisar compartilhar informações entre eventos, será necessário armazená-las em algum lugar, como um banco de dados, em vez de mantê-las na memória.
@ -63,7 +63,7 @@ Como desenvolvedor de IoT, o modelo serverless é ideal. Você pode escrever uma
O serviço de computação serverless da Microsoft é chamado Azure Functions. O serviço de computação serverless da Microsoft é chamado Azure Functions.
![O logotipo do Azure Functions](../../../../../translated_images/br/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png) ![O logotipo do Azure Functions](../../../../../translated_images/pt-BR/azure-functions-logo.1cfc8e3204c9c44aaf80fcf406fc8544d80d7f00f8d3e8ed6fed764563e17564.png)
O vídeo curto abaixo oferece uma visão geral do Azure Functions. O vídeo curto abaixo oferece uma visão geral do Azure Functions.
@ -244,7 +244,7 @@ A CLI do Azure Functions pode ser usada para criar um novo aplicativo de funçõ
VS Code. Initialize for optimal use with VS Code? VS Code. Initialize for optimal use with VS Code?
``` ```
![A notificação](../../../../../translated_images/br/vscode-azure-functions-init-notification.bd19b49229963edb.webp) ![A notificação](../../../../../translated_images/pt-BR/vscode-azure-functions-init-notification.bd19b49229963edb.webp)
Selecione **Sim** nesta notificação. Selecione **Sim** nesta notificação.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Mantenha sua planta segura # Mantenha sua planta segura
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-10.829c86b80b9403bb770929ee553a1d293afe50dc23121aaf9be144673ae012cc.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -61,11 +61,11 @@ Esses são cenários do mundo real e acontecem o tempo todo. Alguns exemplos for
Quando um dispositivo se conecta a um serviço IoT, ele usa um ID para se identificar. O problema é que esse ID pode ser clonado - um hacker poderia configurar um dispositivo malicioso que usa o mesmo ID de um dispositivo real, mas envia dados falsos. Quando um dispositivo se conecta a um serviço IoT, ele usa um ID para se identificar. O problema é que esse ID pode ser clonado - um hacker poderia configurar um dispositivo malicioso que usa o mesmo ID de um dispositivo real, mas envia dados falsos.
![Tanto dispositivos válidos quanto maliciosos poderiam usar o mesmo ID para enviar telemetria](../../../../../translated_images/br/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png) ![Tanto dispositivos válidos quanto maliciosos poderiam usar o mesmo ID para enviar telemetria](../../../../../translated_images/pt-BR/iot-device-and-hacked-device-connecting.e0671675df74d6d99eb1dedb5a670e606f698efa6202b1ad4c8ae548db299cc6.png)
A solução para isso é converter os dados enviados em um formato embaralhado, usando algum valor conhecido apenas pelo dispositivo e pela nuvem. Esse processo é chamado de *criptografia*, e o valor usado para criptografar os dados é chamado de *chave de criptografia*. A solução para isso é converter os dados enviados em um formato embaralhado, usando algum valor conhecido apenas pelo dispositivo e pela nuvem. Esse processo é chamado de *criptografia*, e o valor usado para criptografar os dados é chamado de *chave de criptografia*.
![Se a criptografia for usada, apenas mensagens criptografadas serão aceitas, outras serão rejeitadas](../../../../../translated_images/br/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png) ![Se a criptografia for usada, apenas mensagens criptografadas serão aceitas, outras serão rejeitadas](../../../../../translated_images/pt-BR/iot-device-and-hacked-device-connecting-encryption.5941aff601fc978f979e46f2849b573564eeb4a4dc5b52f669f62745397492fb.png)
O serviço na nuvem pode então converter os dados de volta para um formato legível, usando um processo chamado *descriptografia*, utilizando a mesma chave de criptografia ou uma *chave de descriptografia*. Se a mensagem criptografada não puder ser descriptografada pela chave, o dispositivo foi comprometido e a mensagem é rejeitada. O serviço na nuvem pode então converter os dados de volta para um formato legível, usando um processo chamado *descriptografia*, utilizando a mesma chave de criptografia ou uma *chave de descriptografia*. Se a mensagem criptografada não puder ser descriptografada pela chave, o dispositivo foi comprometido e a mensagem é rejeitada.
@ -97,15 +97,15 @@ A criptografia pode ser de dois tipos - simétrica e assimétrica.
A criptografia **simétrica** usa a mesma chave para criptografar e descriptografar os dados. Tanto o remetente quanto o destinatário precisam conhecer a mesma chave. Este é o tipo menos seguro, pois a chave precisa ser compartilhada de alguma forma. Para que um remetente envie uma mensagem criptografada a um destinatário, o remetente pode precisar enviar a chave ao destinatário primeiro. A criptografia **simétrica** usa a mesma chave para criptografar e descriptografar os dados. Tanto o remetente quanto o destinatário precisam conhecer a mesma chave. Este é o tipo menos seguro, pois a chave precisa ser compartilhada de alguma forma. Para que um remetente envie uma mensagem criptografada a um destinatário, o remetente pode precisar enviar a chave ao destinatário primeiro.
![A criptografia simétrica usa a mesma chave para criptografar e descriptografar uma mensagem](../../../../../translated_images/br/send-message-symmetric-key.a2e8ad0d495896ff.webp) ![A criptografia simétrica usa a mesma chave para criptografar e descriptografar uma mensagem](../../../../../translated_images/pt-BR/send-message-symmetric-key.a2e8ad0d495896ff.webp)
Se a chave for roubada durante o envio, ou se o remetente ou destinatário forem hackeados e a chave for descoberta, a criptografia pode ser comprometida. Se a chave for roubada durante o envio, ou se o remetente ou destinatário forem hackeados e a chave for descoberta, a criptografia pode ser comprometida.
![A criptografia simétrica é segura apenas se um hacker não obtiver a chave - caso contrário, ele pode interceptar e descriptografar a mensagem](../../../../../translated_images/br/send-message-symmetric-key-hacker.e7cb53db1707adfb.webp) ![A criptografia simétrica é segura apenas se um hacker não obtiver a chave - caso contrário, ele pode interceptar e descriptografar a mensagem](../../../../../translated_images/pt-BR/send-message-symmetric-key-hacker.e7cb53db1707adfb.webp)
A criptografia **assimétrica** usa 2 chaves - uma chave para criptografar e outra para descriptografar, conhecidas como par de chaves pública/privada. A chave pública é usada para criptografar a mensagem, mas não pode ser usada para descriptografá-la; a chave privada é usada para descriptografar a mensagem, mas não pode ser usada para criptografá-la. A criptografia **assimétrica** usa 2 chaves - uma chave para criptografar e outra para descriptografar, conhecidas como par de chaves pública/privada. A chave pública é usada para criptografar a mensagem, mas não pode ser usada para descriptografá-la; a chave privada é usada para descriptografar a mensagem, mas não pode ser usada para criptografá-la.
![A criptografia assimétrica usa uma chave diferente para criptografar e descriptografar. A chave pública é enviada aos remetentes para que possam criptografar uma mensagem antes de enviá-la ao destinatário que possui as chaves](../../../../../translated_images/br/send-message-asymmetric.7abe327c62615b8c.webp) ![A criptografia assimétrica usa uma chave diferente para criptografar e descriptografar. A chave pública é enviada aos remetentes para que possam criptografar uma mensagem antes de enviá-la ao destinatário que possui as chaves](../../../../../translated_images/pt-BR/send-message-asymmetric.7abe327c62615b8c.webp)
O destinatário compartilha sua chave pública, e o remetente a utiliza para criptografar a mensagem. Após o envio, o destinatário descriptografa a mensagem com sua chave privada. A criptografia assimétrica é mais segura, pois a chave privada é mantida em segredo pelo destinatário e nunca é compartilhada. Qualquer pessoa pode ter a chave pública, já que ela só pode ser usada para criptografar mensagens. O destinatário compartilha sua chave pública, e o remetente a utiliza para criptografar a mensagem. Após o envio, o destinatário descriptografa a mensagem com sua chave privada. A criptografia assimétrica é mais segura, pois a chave privada é mantida em segredo pelo destinatário e nunca é compartilhada. Qualquer pessoa pode ter a chave pública, já que ela só pode ser usada para criptografar mensagens.
@ -165,7 +165,7 @@ Esses certificados possuem vários campos, incluindo quem é o proprietário da
Ao usar certificados X.509, tanto o remetente quanto o destinatário terão suas próprias chaves públicas e privadas, além de certificados X.509 contendo suas respectivas chaves públicas. Eles então trocam os certificados X.509 de alguma forma, utilizando as chaves públicas um do outro para criptografar os dados enviados e suas próprias chaves privadas para descriptografar os dados recebidos. Ao usar certificados X.509, tanto o remetente quanto o destinatário terão suas próprias chaves públicas e privadas, além de certificados X.509 contendo suas respectivas chaves públicas. Eles então trocam os certificados X.509 de alguma forma, utilizando as chaves públicas um do outro para criptografar os dados enviados e suas próprias chaves privadas para descriptografar os dados recebidos.
![Em vez de compartilhar uma chave pública, você pode compartilhar um certificado. O usuário do certificado pode verificar que ele vem de você consultando a autoridade certificadora que o assinou.](../../../../../translated_images/br/send-message-certificate.9cc576ac1e46b76e.webp) ![Em vez de compartilhar uma chave pública, você pode compartilhar um certificado. O usuário do certificado pode verificar que ele vem de você consultando a autoridade certificadora que o assinou.](../../../../../translated_images/pt-BR/send-message-certificate.9cc576ac1e46b76e.webp)
Uma grande vantagem de usar certificados X.509 é que eles podem ser compartilhados entre dispositivos. Você pode criar um certificado, carregá-lo no IoT Hub e usá-lo para todos os seus dispositivos. Cada dispositivo só precisa conhecer a chave privada para descriptografar as mensagens recebidas do IoT Hub. Uma grande vantagem de usar certificados X.509 é que eles podem ser compartilhados entre dispositivos. Você pode criar um certificado, carregá-lo no IoT Hub e usá-lo para todos os seus dispositivos. Cada dispositivo só precisa conhecer a chave privada para descriptografar as mensagens recebidas do IoT Hub.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Rastreamento de localização # Rastreamento de localização
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-11.9fddbac4b664c6d50ab7ac9bb32f1fc3f945f03760e72f7f43938073762fb017.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -72,13 +72,13 @@ A Terra é uma esfera - um círculo tridimensional. Por causa disso, os pontos s
> 💁 Ninguém sabe ao certo o motivo original de os círculos serem divididos em 360 graus. A [página sobre grau (ângulo) na Wikipedia](https://wikipedia.org/wiki/Degree_(angle)) aborda algumas das possíveis razões. > 💁 Ninguém sabe ao certo o motivo original de os círculos serem divididos em 360 graus. A [página sobre grau (ângulo) na Wikipedia](https://wikipedia.org/wiki/Degree_(angle)) aborda algumas das possíveis razões.
![Linhas de latitude de 90° no Polo Norte, 45° entre o Polo Norte e o equador, 0° no equador, -45° entre o equador e o Polo Sul, e -90° no Polo Sul](../../../../../translated_images/br/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png) ![Linhas de latitude de 90° no Polo Norte, 45° entre o Polo Norte e o equador, 0° no equador, -45° entre o equador e o Polo Sul, e -90° no Polo Sul](../../../../../translated_images/pt-BR/latitude-lines.11d8d91dfb2014a57437272d7db7fd6607243098e8685f06e0c5f1ec984cb7eb.png)
Latitude é medida usando linhas que circundam a Terra e correm paralelas ao equador, dividindo os hemisférios Norte e Sul em 90° cada. O equador está em 0°, o Polo Norte em 90°, também conhecido como 90° Norte, e o Polo Sul em -90°, ou 90° Sul. Latitude é medida usando linhas que circundam a Terra e correm paralelas ao equador, dividindo os hemisférios Norte e Sul em 90° cada. O equador está em 0°, o Polo Norte em 90°, também conhecido como 90° Norte, e o Polo Sul em -90°, ou 90° Sul.
Longitude é medida como o número de graus de leste a oeste. A origem de 0° da longitude é chamada de *Meridiano de Greenwich*, definida em 1884 como uma linha do Polo Norte ao Polo Sul que passa pelo [Observatório Real Britânico em Greenwich, Inglaterra](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich). Longitude é medida como o número de graus de leste a oeste. A origem de 0° da longitude é chamada de *Meridiano de Greenwich*, definida em 1884 como uma linha do Polo Norte ao Polo Sul que passa pelo [Observatório Real Britânico em Greenwich, Inglaterra](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich).
![Linhas de longitude que vão de -180° a oeste do Meridiano de Greenwich, até 0° no Meridiano de Greenwich, até 180° a leste do Meridiano de Greenwich](../../../../../translated_images/br/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png) ![Linhas de longitude que vão de -180° a oeste do Meridiano de Greenwich, até 0° no Meridiano de Greenwich, até 180° a leste do Meridiano de Greenwich](../../../../../translated_images/pt-BR/longitude-meridians.ab4ef1c91c064586b0185a3c8d39e585903696c6a7d28c098a93a629cddb5d20.png)
> 🎓 Um meridiano é uma linha imaginária reta que vai do Polo Norte ao Polo Sul, formando um semicírculo. > 🎓 Um meridiano é uma linha imaginária reta que vai do Polo Norte ao Polo Sul, formando um semicírculo.
@ -109,7 +109,7 @@ As coordenadas de um ponto são sempre dadas como `latitude, longitude`, então
* Uma latitude de 47.6423109 (47.6423109 graus ao norte do equador) * Uma latitude de 47.6423109 (47.6423109 graus ao norte do equador)
* Uma longitude de -122.1390293 (122.1390293 graus a oeste do Meridiano de Greenwich). * Uma longitude de -122.1390293 (122.1390293 graus a oeste do Meridiano de Greenwich).
![O Campus da Microsoft em 47.6423109,-122.117198](../../../../../translated_images/br/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png) ![O Campus da Microsoft em 47.6423109,-122.117198](../../../../../translated_images/pt-BR/microsoft-gps-location-world.a321d481b010f6adfcca139b2ba0adc53b79f58a540495b8e2ce7f779ea64bfe.png)
## Sistemas de Posicionamento Global (GPS) ## Sistemas de Posicionamento Global (GPS)
@ -121,7 +121,7 @@ Sistemas GPS funcionam ao ter vários satélites que enviam um sinal com a posi
> 💁 Sensores GPS precisam de antenas para detectar ondas de rádio. As antenas embutidas em caminhões e carros com GPS integrado são posicionadas para obter um bom sinal, geralmente no para-brisa ou no teto. Se você estiver usando um sistema GPS separado, como um smartphone ou um dispositivo IoT, então precisa garantir que a antena embutida no sistema GPS ou telefone tenha uma visão clara do céu, como sendo montada no para-brisa. > 💁 Sensores GPS precisam de antenas para detectar ondas de rádio. As antenas embutidas em caminhões e carros com GPS integrado são posicionadas para obter um bom sinal, geralmente no para-brisa ou no teto. Se você estiver usando um sistema GPS separado, como um smartphone ou um dispositivo IoT, então precisa garantir que a antena embutida no sistema GPS ou telefone tenha uma visão clara do céu, como sendo montada no para-brisa.
![Sabendo a distância do sensor para múltiplos satélites, a localização pode ser calculada](../../../../../translated_images/br/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png) ![Sabendo a distância do sensor para múltiplos satélites, a localização pode ser calculada](../../../../../translated_images/pt-BR/gps-satellites.04acf1148fe25fbf1586bc2e8ba698e8d79b79a50c36824b38417dd13372b90f.png)
Satélites GPS estão circulando a Terra, não em um ponto fixo acima do sensor, então os dados de localização incluem altitude acima do nível do mar, além de latitude e longitude. Satélites GPS estão circulando a Terra, não em um ponto fixo acima do sensor, então os dados de localização incluem altitude acima do nível do mar, além de latitude e longitude.

@ -27,13 +27,13 @@ O sensor Grove GPS pode ser conectado ao Raspberry Pi.
Conecte o sensor GPS. Conecte o sensor GPS.
![Um sensor Grove GPS](../../../../../translated_images/br/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) ![Um sensor Grove GPS](../../../../../translated_images/pt-BR/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png)
1. Insira uma extremidade do cabo Grove no conector do sensor GPS. Ele só encaixará de uma maneira. 1. Insira uma extremidade do cabo Grove no conector do sensor GPS. Ele só encaixará de uma maneira.
1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao conector UART marcado como **UART** no Grove Base Hat conectado ao Pi. Este conector está na fileira do meio, no lado mais próximo ao slot do cartão SD, oposto às portas USB e ao conector Ethernet. 1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao conector UART marcado como **UART** no Grove Base Hat conectado ao Pi. Este conector está na fileira do meio, no lado mais próximo ao slot do cartão SD, oposto às portas USB e ao conector Ethernet.
![O sensor Grove GPS conectado ao conector UART](../../../../../translated_images/br/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png) ![O sensor Grove GPS conectado ao conector UART](../../../../../translated_images/pt-BR/pi-gps-sensor.1f99ee2b2f6528915047ec78967bd362e0e4ee0ed594368a3837b9cf9cdaca64.png)
1. Posicione o sensor GPS de forma que a antena conectada tenha visibilidade para o céu - idealmente próximo a uma janela aberta ou ao ar livre. É mais fácil obter um sinal claro sem obstruções na frente da antena. 1. Posicione o sensor GPS de forma que a antena conectada tenha visibilidade para o céu - idealmente próximo a uma janela aberta ou ao ar livre. É mais fácil obter um sinal claro sem obstruções na frente da antena.

@ -47,11 +47,11 @@ Adicione o sensor GPS ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar o sensor GPS na porta `/dev/ttyAMA0`. 1. Selecione o botão **Add** para criar o sensor GPS na porta `/dev/ttyAMA0`.
![As configurações do sensor GPS](../../../../../translated_images/br/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png) ![As configurações do sensor GPS](../../../../../translated_images/pt-BR/counterfit-create-gps-sensor.6385dc9357d85ad1d47b4abb2525e7651fd498917d25eefc5a72feab09eedc70.png)
O sensor GPS será criado e aparecerá na lista de sensores. O sensor GPS será criado e aparecerá na lista de sensores.
![O sensor GPS criado](../../../../../translated_images/br/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png) ![O sensor GPS criado](../../../../../translated_images/pt-BR/counterfit-gps-sensor.3fbb15af0a5367566f2f11324ef5a6f30861cdf2b497071a5e002b7aa473550e.png)
## Programar o sensor GPS ## Programar o sensor GPS
@ -111,17 +111,17 @@ Programe o aplicativo do sensor GPS.
* Defina a **Source** como `Lat/Lon` e configure uma latitude, longitude e número de satélites usados para obter a localização GPS. Este valor será enviado apenas uma vez, então marque a caixa **Repeat** para que os dados sejam repetidos a cada segundo. * Defina a **Source** como `Lat/Lon` e configure uma latitude, longitude e número de satélites usados para obter a localização GPS. Este valor será enviado apenas uma vez, então marque a caixa **Repeat** para que os dados sejam repetidos a cada segundo.
![O sensor GPS com lat lon selecionado](../../../../../translated_images/br/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png) ![O sensor GPS com lat lon selecionado](../../../../../translated_images/pt-BR/counterfit-gps-sensor-latlon.008c867d75464fbe7f84107cc57040df565ac07cb57d2f21db37d087d470197d.png)
* Defina a **Source** como `NMEA` e adicione algumas sentenças NMEA na caixa de texto. Todos esses valores serão enviados, com um atraso de 1 segundo antes de cada nova sentença GGA (fixação de posição) ser lida. * Defina a **Source** como `NMEA` e adicione algumas sentenças NMEA na caixa de texto. Todos esses valores serão enviados, com um atraso de 1 segundo antes de cada nova sentença GGA (fixação de posição) ser lida.
![O sensor GPS com sentenças NMEA configuradas](../../../../../translated_images/br/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png) ![O sensor GPS com sentenças NMEA configuradas](../../../../../translated_images/pt-BR/counterfit-gps-sensor-nmea.c62eea442171e17e19528b051b104cfcecdc9cd18db7bc72920f29821ae63f73.png)
Você pode usar uma ferramenta como [nmeagen.org](https://www.nmeagen.org) para gerar essas sentenças desenhando em um mapa. Esses valores serão enviados apenas uma vez, então marque a caixa **Repeat** para que os dados sejam repetidos um segundo após todos terem sido enviados. Você pode usar uma ferramenta como [nmeagen.org](https://www.nmeagen.org) para gerar essas sentenças desenhando em um mapa. Esses valores serão enviados apenas uma vez, então marque a caixa **Repeat** para que os dados sejam repetidos um segundo após todos terem sido enviados.
* Defina a **Source** como arquivo GPX e carregue um arquivo GPX com localizações de trilhas. Você pode baixar arquivos GPX de vários sites populares de mapas e trilhas, como [AllTrails](https://www.alltrails.com/). Esses arquivos contêm múltiplas localizações GPS como uma trilha, e o sensor GPS retornará cada nova localização em intervalos de 1 segundo. * Defina a **Source** como arquivo GPX e carregue um arquivo GPX com localizações de trilhas. Você pode baixar arquivos GPX de vários sites populares de mapas e trilhas, como [AllTrails](https://www.alltrails.com/). Esses arquivos contêm múltiplas localizações GPS como uma trilha, e o sensor GPS retornará cada nova localização em intervalos de 1 segundo.
![O sensor GPS com um arquivo GPX configurado](../../../../../translated_images/br/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png) ![O sensor GPS com um arquivo GPX configurado](../../../../../translated_images/pt-BR/counterfit-gps-sensor-gpxfile.8310b063ce8a425ccc8ebeec8306aeac5e8e55207f007d52c6e1194432a70cd9.png)
Esses valores serão enviados apenas uma vez, então marque a caixa **Repeat** para que os dados sejam repetidos um segundo após todos terem sido enviados. Esses valores serão enviados apenas uma vez, então marque a caixa **Repeat** para que os dados sejam repetidos um segundo após todos terem sido enviados.

@ -27,13 +27,13 @@ O sensor Grove GPS pode ser conectado ao Wio Terminal.
Conecte o sensor GPS. Conecte o sensor GPS.
![Um sensor Grove GPS](../../../../../translated_images/br/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png) ![Um sensor Grove GPS](../../../../../translated_images/pt-BR/grove-gps-sensor.247943bf69b03f0d1820ef6ed10c587f9b650e8db55b936851c92412180bd3e2.png)
1. Insira uma extremidade de um cabo Grove no conector do sensor GPS. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no conector do sensor GPS. Ele só encaixará de uma maneira.
1. Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado esquerdo do Wio Terminal, olhando para a tela. Este é o conector mais próximo do botão de energia. 1. Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado esquerdo do Wio Terminal, olhando para a tela. Este é o conector mais próximo do botão de energia.
![O sensor Grove GPS conectado ao conector do lado esquerdo](../../../../../translated_images/br/wio-gps-sensor.19fd52b81ce58095.webp) ![O sensor Grove GPS conectado ao conector do lado esquerdo](../../../../../translated_images/pt-BR/wio-gps-sensor.19fd52b81ce58095.webp)
1. Posicione o sensor GPS de forma que a antena conectada tenha visibilidade para o céu - de preferência próximo a uma janela aberta ou ao ar livre. É mais fácil obter um sinal claro sem nada obstruindo a antena. 1. Posicione o sensor GPS de forma que a antena conectada tenha visibilidade para o céu - de preferência próximo a uma janela aberta ou ao ar livre. É mais fácil obter um sinal claro sem nada obstruindo a antena.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Dados de localização da loja # Dados de localização da loja
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -66,7 +66,7 @@ Bancos de dados são serviços que permitem armazenar e consultar dados. Eles v
Os primeiros bancos de dados eram Sistemas de Gerenciamento de Banco de Dados Relacional (RDBMS), ou banco de dados relacional. Eles também são conhecidos como bancos de dados SQL devido à Linguagem de Consulta Estruturada (SQL) usada para interagir com eles para adicionar, remover, atualizar ou consultar dados. Esses bancos de dados consistem em um esquema - um conjunto bem definido de tabelas de dados, semelhante a uma planilha. Cada tabela tem várias colunas nomeadas. Quando você insere dados, adiciona uma linha à tabela, colocando valores em cada uma das colunas. Isso mantém os dados em uma estrutura muito rígida - embora você possa deixar colunas vazias, se quiser adicionar uma nova coluna, terá que fazer isso no banco de dados, populando valores para as linhas existentes. Esses bancos de dados são relacionais - ou seja, uma tabela pode ter um relacionamento com outra. Os primeiros bancos de dados eram Sistemas de Gerenciamento de Banco de Dados Relacional (RDBMS), ou banco de dados relacional. Eles também são conhecidos como bancos de dados SQL devido à Linguagem de Consulta Estruturada (SQL) usada para interagir com eles para adicionar, remover, atualizar ou consultar dados. Esses bancos de dados consistem em um esquema - um conjunto bem definido de tabelas de dados, semelhante a uma planilha. Cada tabela tem várias colunas nomeadas. Quando você insere dados, adiciona uma linha à tabela, colocando valores em cada uma das colunas. Isso mantém os dados em uma estrutura muito rígida - embora você possa deixar colunas vazias, se quiser adicionar uma nova coluna, terá que fazer isso no banco de dados, populando valores para as linhas existentes. Esses bancos de dados são relacionais - ou seja, uma tabela pode ter um relacionamento com outra.
![Um banco de dados relacional com o ID da tabela de Usuários relacionado à coluna de ID de usuário da tabela de compras, e o ID da tabela de produtos relacionado ao ID de produto da tabela de compras](../../../../../translated_images/br/sql-database.be160f12bfccefd3.webp) ![Um banco de dados relacional com o ID da tabela de Usuários relacionado à coluna de ID de usuário da tabela de compras, e o ID da tabela de produtos relacionado ao ID de produto da tabela de compras](../../../../../translated_images/pt-BR/sql-database.be160f12bfccefd3.webp)
Por exemplo, se você armazenar os detalhes pessoais de um usuário em uma tabela, terá algum tipo de ID único interno por usuário que é usado em uma linha em uma tabela que contém o nome e endereço do usuário. Se você quiser armazenar outros detalhes sobre esse usuário, como suas compras, em outra tabela, terá uma coluna na nova tabela para o ID desse usuário. Quando você procura um usuário, pode usar seu ID para obter seus detalhes pessoais de uma tabela e suas compras de outra. Por exemplo, se você armazenar os detalhes pessoais de um usuário em uma tabela, terá algum tipo de ID único interno por usuário que é usado em uma linha em uma tabela que contém o nome e endereço do usuário. Se você quiser armazenar outros detalhes sobre esse usuário, como suas compras, em outra tabela, terá uma coluna na nova tabela para o ID desse usuário. Quando você procura um usuário, pode usar seu ID para obter seus detalhes pessoais de uma tabela e suas compras de outra.
@ -84,7 +84,7 @@ Bancos de dados NoSQL são chamados assim porque não possuem a mesma estrutura
> 💁 Apesar do nome, alguns bancos de dados NoSQL permitem usar SQL para consultar os dados. > 💁 Apesar do nome, alguns bancos de dados NoSQL permitem usar SQL para consultar os dados.
![Documentos em pastas em um banco de dados NoSQL](../../../../../translated_images/br/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png) ![Documentos em pastas em um banco de dados NoSQL](../../../../../translated_images/pt-BR/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.png)
Bancos de dados NoSQL não possuem um esquema pré-definido que limite como os dados são armazenados; em vez disso, você pode inserir qualquer dado não estruturado, geralmente usando documentos JSON. Esses documentos podem ser organizados em pastas, semelhante a arquivos no seu computador. Cada documento pode ter campos diferentes de outros documentos - por exemplo, se você estivesse armazenando dados de IoT de seus veículos agrícolas, alguns poderiam ter campos para dados de acelerômetro e velocidade, enquanto outros poderiam ter campos para a temperatura no trailer. Se você adicionasse um novo tipo de caminhão, como um com balanças integradas para rastrear o peso dos produtos transportados, então seu dispositivo IoT poderia adicionar esse novo campo e ele poderia ser armazenado sem alterações no banco de dados. Bancos de dados NoSQL não possuem um esquema pré-definido que limite como os dados são armazenados; em vez disso, você pode inserir qualquer dado não estruturado, geralmente usando documentos JSON. Esses documentos podem ser organizados em pastas, semelhante a arquivos no seu computador. Cada documento pode ter campos diferentes de outros documentos - por exemplo, se você estivesse armazenando dados de IoT de seus veículos agrícolas, alguns poderiam ter campos para dados de acelerômetro e velocidade, enquanto outros poderiam ter campos para a temperatura no trailer. Se você adicionasse um novo tipo de caminhão, como um com balanças integradas para rastrear o peso dos produtos transportados, então seu dispositivo IoT poderia adicionar esse novo campo e ele poderia ser armazenado sem alterações no banco de dados.
@ -98,7 +98,7 @@ Nesta lição, você usará armazenamento NoSQL para armazenar dados de IoT.
Na última lição, você capturou dados de GPS de um sensor GPS conectado ao seu dispositivo IoT. Para armazenar esses dados de IoT na nuvem, você precisa enviá-los para um serviço de IoT. Mais uma vez, você usará o Azure IoT Hub, o mesmo serviço de IoT na nuvem que utilizou no projeto anterior. Na última lição, você capturou dados de GPS de um sensor GPS conectado ao seu dispositivo IoT. Para armazenar esses dados de IoT na nuvem, você precisa enviá-los para um serviço de IoT. Mais uma vez, você usará o Azure IoT Hub, o mesmo serviço de IoT na nuvem que utilizou no projeto anterior.
![Enviando telemetria de GPS de um dispositivo IoT para o IoT Hub](../../../../../translated_images/br/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png) ![Enviando telemetria de GPS de um dispositivo IoT para o IoT Hub](../../../../../translated_images/pt-BR/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.png)
### Tarefa - enviar dados de GPS para um IoT Hub ### Tarefa - enviar dados de GPS para um IoT Hub
@ -180,7 +180,7 @@ Os dados do caminho frio são armazenados em data warehouses - bancos de dados p
Uma vez que os dados estão fluindo para o seu IoT Hub, você pode escrever algum código serverless para escutar eventos publicados no endpoint compatível com Event-Hub. Este é o caminho morno - esses dados serão armazenados e usados na próxima lição para relatórios sobre a jornada. Uma vez que os dados estão fluindo para o seu IoT Hub, você pode escrever algum código serverless para escutar eventos publicados no endpoint compatível com Event-Hub. Este é o caminho morno - esses dados serão armazenados e usados na próxima lição para relatórios sobre a jornada.
![Enviando telemetria de GPS de um dispositivo IoT para o IoT Hub, depois para Azure Functions via um gatilho de Event Hub](../../../../../translated_images/br/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png) ![Enviando telemetria de GPS de um dispositivo IoT para o IoT Hub, depois para Azure Functions via um gatilho de Event Hub](../../../../../translated_images/pt-BR/gps-telemetry-iot-hub-functions.24d3fa5592455e9f4e2fe73856b40c3915a292b90263c31d652acfd976cfedd8.png)
### Tarefa - lidar com eventos de GPS usando código serverless ### Tarefa - lidar com eventos de GPS usando código serverless
@ -202,7 +202,7 @@ Uma vez que os dados estão fluindo para o seu IoT Hub, você pode escrever algu
## Contas de Armazenamento do Azure ## Contas de Armazenamento do Azure
![O logotipo do Azure Storage](../../../../../translated_images/br/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png) ![O logotipo do Azure Storage](../../../../../translated_images/pt-BR/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.png)
As Contas de Armazenamento do Azure são um serviço de armazenamento de propósito geral que pode armazenar dados de várias formas diferentes. Você pode armazenar dados como blobs, em filas, em tabelas ou como arquivos, tudo ao mesmo tempo. As Contas de Armazenamento do Azure são um serviço de armazenamento de propósito geral que pode armazenar dados de várias formas diferentes. Você pode armazenar dados como blobs, em filas, em tabelas ou como arquivos, tudo ao mesmo tempo.
@ -241,7 +241,7 @@ Seu aplicativo de funções agora precisa se conectar ao armazenamento de blobs
Nesta lição, você usará o SDK do Python para ver como interagir com o armazenamento de blobs. Nesta lição, você usará o SDK do Python para ver como interagir com o armazenamento de blobs.
![Enviando telemetria GPS de um dispositivo IoT para o IoT Hub, depois para o Azure Functions via um gatilho de Event Hub, e então salvando no armazenamento de blobs](../../../../../translated_images/br/save-telemetry-to-storage-from-functions.ed3b1820980097f1.webp) ![Enviando telemetria GPS de um dispositivo IoT para o IoT Hub, depois para o Azure Functions via um gatilho de Event Hub, e então salvando no armazenamento de blobs](../../../../../translated_images/pt-BR/save-telemetry-to-storage-from-functions.ed3b1820980097f1.webp)
Os dados serão salvos como um blob JSON com o seguinte formato: Os dados serão salvos como um blob JSON com o seguinte formato:

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Visualizar dados de localização # Visualizar dados de localização
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-13.a259db1485021be7d7c72e90842fbe0ab977529e8684c179b5fb1ea75e92b3ef.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -73,11 +73,11 @@ Tomando um exemplo simples - no projeto da fazenda, você capturou leituras de u
Para um humano, entender esses dados pode ser difícil. É uma parede de números sem significado. Como primeiro passo para visualizar esses dados, eles podem ser plotados em um gráfico de linha: Para um humano, entender esses dados pode ser difícil. É uma parede de números sem significado. Como primeiro passo para visualizar esses dados, eles podem ser plotados em um gráfico de linha:
![Um gráfico de linha dos dados acima](../../../../../translated_images/br/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png) ![Um gráfico de linha dos dados acima](../../../../../translated_images/pt-BR/chart-soil-moisture.fd6d9d0cdc0b5f75e78038ecb8945dfc84b38851359de99d84b16e3336d6d7c2.png)
Isso pode ser ainda mais aprimorado adicionando uma linha para indicar quando o sistema de irrigação automatizado foi ativado em uma leitura de umidade do solo de 450: Isso pode ser ainda mais aprimorado adicionando uma linha para indicar quando o sistema de irrigação automatizado foi ativado em uma leitura de umidade do solo de 450:
![Um gráfico de linha de umidade do solo com uma linha em 450](../../../../../translated_images/br/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png) ![Um gráfico de linha de umidade do solo com uma linha em 450](../../../../../translated_images/pt-BR/chart-soil-moisture-relay.fbb391236d34a64d0abf1df396e9197e0a24df14150620b9cc820a64a55c9326.png)
Este gráfico mostra rapidamente não apenas quais eram os níveis de umidade do solo, mas os pontos onde o sistema de irrigação foi ativado. Este gráfico mostra rapidamente não apenas quais eram os níveis de umidade do solo, mas os pontos onde o sistema de irrigação foi ativado.
@ -93,7 +93,7 @@ Ao trabalhar com dados de GPS, a visualização mais clara pode ser plotar os da
Trabalhar com mapas é um exercício interessante, e há muitos para escolher, como Bing Maps, Leaflet, Open Street Maps e Google Maps. Nesta lição, você aprenderá sobre [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) e como eles podem exibir seus dados de GPS. Trabalhar com mapas é um exercício interessante, e há muitos para escolher, como Bing Maps, Leaflet, Open Street Maps e Google Maps. Nesta lição, você aprenderá sobre [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) e como eles podem exibir seus dados de GPS.
![O logotipo do Azure Maps](../../../../../translated_images/br/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png) ![O logotipo do Azure Maps](../../../../../translated_images/pt-BR/azure-maps-logo.35d01dcfbd81fe6140e94257aaa1538f785a58c91576d14e0ebe7a2f6c694b99.png)
Azure Maps é "uma coleção de serviços geoespaciais e SDKs que utilizam dados de mapeamento atualizados para fornecer contexto geográfico a aplicativos web e móveis." Os desenvolvedores recebem ferramentas para criar mapas bonitos e interativos que podem fazer coisas como fornecer rotas de tráfego recomendadas, dar informações sobre incidentes de tráfego, navegação interna, capacidades de busca, informações de elevação, serviços meteorológicos e muito mais. Azure Maps é "uma coleção de serviços geoespaciais e SDKs que utilizam dados de mapeamento atualizados para fornecer contexto geográfico a aplicativos web e móveis." Os desenvolvedores recebem ferramentas para criar mapas bonitos e interativos que podem fazer coisas como fornecer rotas de tráfego recomendadas, dar informações sobre incidentes de tráfego, navegação interna, capacidades de busca, informações de elevação, serviços meteorológicos e muito mais.
@ -194,7 +194,7 @@ Agora você pode dar o próximo passo, que é exibir seu mapa em uma página da
Se você abrir sua página `index.html` em um navegador web, deverá ver um mapa carregado, focado na área de Seattle. Se você abrir sua página `index.html` em um navegador web, deverá ver um mapa carregado, focado na área de Seattle.
![Um mapa mostrando Seattle, uma cidade no estado de Washington, EUA](../../../../../translated_images/br/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png) ![Um mapa mostrando Seattle, uma cidade no estado de Washington, EUA](../../../../../translated_images/pt-BR/map-image.8fb2c53eb23ef39c1c0a4410a5282e879b3b452b707eb066ff04c5488d3d72b7.png)
✅ Experimente os parâmetros de zoom e centro para alterar a exibição do mapa. Você pode adicionar diferentes coordenadas correspondentes à latitude e longitude dos seus dados para re-centralizar o mapa. ✅ Experimente os parâmetros de zoom e centro para alterar a exibição do mapa. Você pode adicionar diferentes coordenadas correspondentes à latitude e longitude dos seus dados para re-centralizar o mapa.
@ -328,7 +328,7 @@ Se você fizer uma chamada ao seu armazenamento para buscar os dados, pode se su
1. Carregue a página HTML no seu navegador. Ela carregará o mapa, depois carregará todos os dados de GPS do armazenamento e os exibirá no mapa. 1. Carregue a página HTML no seu navegador. Ela carregará o mapa, depois carregará todos os dados de GPS do armazenamento e os exibirá no mapa.
![Um mapa do Saint Edward State Park perto de Seattle, com círculos mostrando um caminho ao redor da borda do parque](../../../../../translated_images/br/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png) ![Um mapa do Saint Edward State Park perto de Seattle, com círculos mostrando um caminho ao redor da borda do parque](../../../../../translated_images/pt-BR/map-path.896832e72dc696ffe20650e4051027d4855442d955f93fdbb80bb417ca8a406f.png)
> 💁 Você pode encontrar este código na [pasta de código](../../../../../3-transport/lessons/3-visualize-location-data/code). > 💁 Você pode encontrar este código na [pasta de código](../../../../../3-transport/lessons/3-visualize-location-data/code).

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Geofences # Geofences
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-14.63980c5150ae3c153e770fb71d044c1845dce79248d86bed9fc525adf3ede73c.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -44,7 +44,7 @@ Nesta lição, abordaremos:
Uma geofence é um perímetro virtual para uma região geográfica do mundo real. Geofences podem ser círculos definidos como um ponto e um raio (por exemplo, um círculo de 100m ao redor de um edifício) ou um polígono cobrindo uma área, como uma zona escolar, limites de uma cidade ou campus de uma universidade ou escritório. Uma geofence é um perímetro virtual para uma região geográfica do mundo real. Geofences podem ser círculos definidos como um ponto e um raio (por exemplo, um círculo de 100m ao redor de um edifício) ou um polígono cobrindo uma área, como uma zona escolar, limites de uma cidade ou campus de uma universidade ou escritório.
![Alguns exemplos de geofences mostrando uma geofence circular ao redor da loja da Microsoft e uma geofence poligonal ao redor do campus oeste da Microsoft](../../../../../translated_images/br/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png) ![Alguns exemplos de geofences mostrando uma geofence circular ao redor da loja da Microsoft e uma geofence poligonal ao redor do campus oeste da Microsoft](../../../../../translated_images/pt-BR/geofence-examples.172fbc534665769f6e1a1ddcf75e3b25183cd10354c80cc603ba44b635390e1a.png)
> 💁 Você pode já ter usado geofences sem saber. Se você configurou um lembrete usando o aplicativo de lembretes do iOS ou o Google Keep baseado em uma localização, você utilizou uma geofence. Esses aplicativos configuram uma geofence com base na localização fornecida e alertam você quando seu telefone entra na geofence. > 💁 Você pode já ter usado geofences sem saber. Se você configurou um lembrete usando o aplicativo de lembretes do iOS ou o Google Keep baseado em uma localização, você utilizou uma geofence. Esses aplicativos configuram uma geofence com base na localização fornecida e alertam você quando seu telefone entra na geofence.
@ -110,7 +110,7 @@ Cada ponto no polígono é definido como um par de longitude e latitude em um ar
O array de coordenadas do polígono sempre tem 1 entrada a mais do que o número de pontos no polígono, com a última entrada sendo igual à primeira, fechando o polígono. Por exemplo, para um retângulo, haveria 5 pontos. O array de coordenadas do polígono sempre tem 1 entrada a mais do que o número de pontos no polígono, com a última entrada sendo igual à primeira, fechando o polígono. Por exemplo, para um retângulo, haveria 5 pontos.
![Um retângulo com coordenadas](../../../../../translated_images/br/polygon-points.302193da381cb415.webp) ![Um retângulo com coordenadas](../../../../../translated_images/pt-BR/polygon-points.302193da381cb415.webp)
Na imagem acima, há um retângulo. As coordenadas do polígono começam no canto superior esquerdo em 47,-122, depois vão para a direita em 47,-121, depois para baixo em 46,-121, depois para a esquerda em 46,-122, e finalmente voltam ao ponto inicial em 47,-122. Isso dá ao polígono 5 pontos - canto superior esquerdo, canto superior direito, canto inferior direito, canto inferior esquerdo e, por fim, canto superior esquerdo para fechá-lo. Na imagem acima, há um retângulo. As coordenadas do polígono começam no canto superior esquerdo em 47,-122, depois vão para a direita em 47,-121, depois para baixo em 46,-121, depois para a esquerda em 46,-122, e finalmente voltam ao ponto inicial em 47,-122. Isso dá ao polígono 5 pontos - canto superior esquerdo, canto superior direito, canto inferior direito, canto inferior esquerdo e, por fim, canto superior esquerdo para fechá-lo.
@ -208,7 +208,7 @@ Ao fazer essa requisição, você também pode passar um valor chamado `searchBu
Quando os resultados são retornados da chamada da API, uma das partes do resultado é uma `distance` medida até o ponto mais próximo na borda da geofence, com um valor positivo se o ponto estiver fora da geofence e negativo se estiver dentro. Se essa distância for menor que o search buffer, a distância real é retornada em metros; caso contrário, o valor será 999 ou -999. 999 significa que o ponto está fora da geofence por mais do que o search buffer, -999 significa que está dentro da geofence por mais do que o search buffer. Quando os resultados são retornados da chamada da API, uma das partes do resultado é uma `distance` medida até o ponto mais próximo na borda da geofence, com um valor positivo se o ponto estiver fora da geofence e negativo se estiver dentro. Se essa distância for menor que o search buffer, a distância real é retornada em metros; caso contrário, o valor será 999 ou -999. 999 significa que o ponto está fora da geofence por mais do que o search buffer, -999 significa que está dentro da geofence por mais do que o search buffer.
![Uma geofence com um search buffer de 50m ao redor dela](../../../../../translated_images/br/search-buffer-and-distance.e6a79af3898183c7.webp) ![Uma geofence com um search buffer de 50m ao redor dela](../../../../../translated_images/pt-BR/search-buffer-and-distance.e6a79af3898183c7.webp)
Na imagem acima, a geofence tem um search buffer de 50m. Na imagem acima, a geofence tem um search buffer de 50m.
@ -221,7 +221,7 @@ Na imagem acima, a geofence tem um search buffer de 50m.
Por exemplo, imagine leituras de GPS mostrando que um veículo estava dirigindo ao longo de uma estrada que passa ao lado de uma geofence. Se um único valor de GPS for impreciso e colocar o veículo dentro da geofence, apesar de não haver acesso veicular, ele pode ser ignorado. Por exemplo, imagine leituras de GPS mostrando que um veículo estava dirigindo ao longo de uma estrada que passa ao lado de uma geofence. Se um único valor de GPS for impreciso e colocar o veículo dentro da geofence, apesar de não haver acesso veicular, ele pode ser ignorado.
![Um trajeto de GPS mostrando um veículo passando pelo campus da Microsoft na 520, com leituras de GPS ao longo da estrada, exceto uma no campus, dentro de uma geofence](../../../../../translated_images/br/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png) ![Um trajeto de GPS mostrando um veículo passando pelo campus da Microsoft na 520, com leituras de GPS ao longo da estrada, exceto uma no campus, dentro de uma geofence](../../../../../translated_images/pt-BR/geofence-crossing-inaccurate-gps.6a3ed911202ad9cabb66d3964888cec03a42c61d5b8f536ad5bdc99716b370f5.png)
Na imagem acima, há uma geofence sobre parte do campus da Microsoft. A linha vermelha mostra um caminhão dirigindo ao longo da 520, com círculos indicando as leituras de GPS. A maioria dessas leituras é precisa e está ao longo da 520, com uma leitura imprecisa dentro da geofence. Não há como essa leitura estar correta - não existem estradas para o caminhão desviar repentinamente da 520 para o campus e depois voltar para a 520. O código que verifica essa geofence precisará considerar as leituras anteriores antes de agir com base nos resultados do teste da geofence. Na imagem acima, há uma geofence sobre parte do campus da Microsoft. A linha vermelha mostra um caminhão dirigindo ao longo da 520, com círculos indicando as leituras de GPS. A maioria dessas leituras é precisa e está ao longo da 520, com uma leitura imprecisa dentro da geofence. Não há como essa leitura estar correta - não existem estradas para o caminhão desviar repentinamente da 520 para o campus e depois voltar para a 520. O código que verifica essa geofence precisará considerar as leituras anteriores antes de agir com base nos resultados do teste da geofence.
✅ Quais dados adicionais você precisaria verificar para determinar se uma leitura de GPS pode ser considerada correta? ✅ Quais dados adicionais você precisaria verificar para determinar se uma leitura de GPS pode ser considerada correta?
@ -293,7 +293,7 @@ Como você deve se lembrar de lições anteriores, o IoT Hub permite que você r
A resposta é que ele não sabe! Em vez disso, você pode definir múltiplas conexões separadas para ler eventos, e cada uma pode gerenciar a reprodução de mensagens não lidas. Esses são chamados de *grupos de consumidores*. Quando você se conecta ao endpoint, pode especificar qual grupo de consumidores deseja conectar. Cada componente do seu aplicativo se conectará a um grupo de consumidores diferente. A resposta é que ele não sabe! Em vez disso, você pode definir múltiplas conexões separadas para ler eventos, e cada uma pode gerenciar a reprodução de mensagens não lidas. Esses são chamados de *grupos de consumidores*. Quando você se conecta ao endpoint, pode especificar qual grupo de consumidores deseja conectar. Cada componente do seu aplicativo se conectará a um grupo de consumidores diferente.
![Um IoT Hub com 3 grupos de consumidores distribuindo as mesmas mensagens para 3 diferentes aplicativos Functions](../../../../../translated_images/br/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png) ![Um IoT Hub com 3 grupos de consumidores distribuindo as mesmas mensagens para 3 diferentes aplicativos Functions](../../../../../translated_images/pt-BR/consumer-groups.a3262e26fc27ba2092863678ad57af15c7223416e388a23f330c058cf4358630.png)
Em teoria, até 5 aplicativos podem se conectar a cada grupo de consumidores, e todos receberão mensagens quando elas chegarem. É uma boa prática ter apenas um aplicativo acessando cada grupo de consumidores para evitar o processamento duplicado de mensagens e garantir que, ao reiniciar, todas as mensagens enfileiradas sejam processadas corretamente. Por exemplo, se você lançar seu aplicativo Functions localmente, além de executá-lo na nuvem, ambos processariam mensagens, levando ao armazenamento duplicado de blobs na conta de armazenamento. Em teoria, até 5 aplicativos podem se conectar a cada grupo de consumidores, e todos receberão mensagens quando elas chegarem. É uma boa prática ter apenas um aplicativo acessando cada grupo de consumidores para evitar o processamento duplicado de mensagens e garantir que, ao reiniciar, todas as mensagens enfileiradas sejam processadas corretamente. Por exemplo, se você lançar seu aplicativo Functions localmente, além de executá-lo na nuvem, ambos processariam mensagens, levando ao armazenamento duplicado de blobs na conta de armazenamento.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Treine um detector de qualidade de frutas # Treine um detector de qualidade de frutas
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-15.843d21afdc6fb2bba70cd9db7b7d2f91598859fafda2078b0bdc44954194b6c0.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -47,7 +47,7 @@ Nem todas as culturas amadurecem de forma uniforme. Tomates, por exemplo, podem
O surgimento da colheita automatizada transferiu a classificação dos produtos da colheita para a fábrica. Os alimentos viajavam em longas esteiras transportadoras com equipes de pessoas selecionando os produtos e removendo qualquer coisa que não atendesse ao padrão de qualidade exigido. A colheita ficou mais barata graças às máquinas, mas ainda havia um custo para classificar os alimentos manualmente. O surgimento da colheita automatizada transferiu a classificação dos produtos da colheita para a fábrica. Os alimentos viajavam em longas esteiras transportadoras com equipes de pessoas selecionando os produtos e removendo qualquer coisa que não atendesse ao padrão de qualidade exigido. A colheita ficou mais barata graças às máquinas, mas ainda havia um custo para classificar os alimentos manualmente.
![Se um tomate vermelho é detectado, ele continua seu caminho sem interrupções. Se um tomate verde é detectado, ele é jogado em uma lixeira por uma alavanca](../../../../../translated_images/br/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png) ![Se um tomate vermelho é detectado, ele continua seu caminho sem interrupções. Se um tomate verde é detectado, ele é jogado em uma lixeira por uma alavanca](../../../../../translated_images/pt-BR/optical-tomato-sorting.61aa134bdda4e5b1bfb16a212c1e35a6ef0c426cbb8b1c975f79d7bfbf48d068.png)
A próxima evolução foi o uso de máquinas para classificar, seja integradas à colheitadeira ou nas plantas de processamento. A primeira geração dessas máquinas usava sensores ópticos para detectar cores, controlando atuadores para empurrar tomates verdes para uma lixeira usando alavancas ou jatos de ar, deixando os tomates vermelhos continuarem em uma rede de esteiras transportadoras. A próxima evolução foi o uso de máquinas para classificar, seja integradas à colheitadeira ou nas plantas de processamento. A primeira geração dessas máquinas usava sensores ópticos para detectar cores, controlando atuadores para empurrar tomates verdes para uma lixeira usando alavancas ou jatos de ar, deixando os tomates vermelhos continuarem em uma rede de esteiras transportadoras.
@ -61,7 +61,7 @@ As evoluções mais recentes dessas máquinas de classificação aproveitam a IA
A programação tradicional é onde você pega dados, aplica um algoritmo a esses dados e obtém um resultado. Por exemplo, no último projeto, você usou coordenadas de GPS e uma geofence, aplicou um algoritmo fornecido pelo Azure Maps e obteve um resultado indicando se o ponto estava dentro ou fora da geofence. Você insere mais dados e obtém mais resultados. A programação tradicional é onde você pega dados, aplica um algoritmo a esses dados e obtém um resultado. Por exemplo, no último projeto, você usou coordenadas de GPS e uma geofence, aplicou um algoritmo fornecido pelo Azure Maps e obteve um resultado indicando se o ponto estava dentro ou fora da geofence. Você insere mais dados e obtém mais resultados.
![O desenvolvimento tradicional usa entrada e um algoritmo para gerar saída. O aprendizado de máquina usa dados de entrada e saída conhecidos para treinar um modelo, e esse modelo pode usar novos dados de entrada para gerar novas saídas](../../../../../translated_images/br/traditional-vs-ml.5c20c169621fa539.webp) ![O desenvolvimento tradicional usa entrada e um algoritmo para gerar saída. O aprendizado de máquina usa dados de entrada e saída conhecidos para treinar um modelo, e esse modelo pode usar novos dados de entrada para gerar novas saídas](../../../../../translated_images/pt-BR/traditional-vs-ml.5c20c169621fa539.webp)
O aprendizado de máquina inverte esse processo - você começa com dados e saídas conhecidas, e o algoritmo de aprendizado de máquina aprende com os dados. Você pode então usar esse algoritmo treinado, chamado de *modelo de aprendizado de máquina* ou *modelo*, para inserir novos dados e obter novas saídas. O aprendizado de máquina inverte esse processo - você começa com dados e saídas conhecidas, e o algoritmo de aprendizado de máquina aprende com os dados. Você pode então usar esse algoritmo treinado, chamado de *modelo de aprendizado de máquina* ou *modelo*, para inserir novos dados e obter novas saídas.
@ -71,7 +71,7 @@ Por exemplo, você poderia fornecer a um modelo milhões de fotos de bananas ver
> 🎓 Os resultados dos modelos de ML são chamados de *previsões*. > 🎓 Os resultados dos modelos de ML são chamados de *previsões*.
![2 bananas, uma madura com uma previsão de 99,7% madura, 0,3% verde, e uma verde com uma previsão de 1,4% madura, 98,6% verde](../../../../../translated_images/br/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png) ![2 bananas, uma madura com uma previsão de 99,7% madura, 0,3% verde, e uma verde com uma previsão de 1,4% madura, 98,6% verde](../../../../../translated_images/pt-BR/bananas-ripe-vs-unripe-predictions.8d0e2034014aa50ece4e4589e724b142da0681f35470fe3db3f7d51240f69c85.png)
Os modelos de ML não fornecem uma resposta binária; em vez disso, eles fornecem probabilidades. Por exemplo, um modelo pode receber uma foto de uma banana e prever `madura` com 99,7% e `verde` com 0,3%. Seu código então escolheria a melhor previsão e decidiria que a banana está madura. Os modelos de ML não fornecem uma resposta binária; em vez disso, eles fornecem probabilidades. Por exemplo, um modelo pode receber uma foto de uma banana e prever `madura` com 99,7% e `verde` com 0,3%. Seu código então escolheria a melhor previsão e decidiria que a banana está madura.
@ -87,7 +87,7 @@ Para treinar com sucesso um classificador de imagens, você precisa de milhões
Uma vez que um classificador de imagens foi treinado para uma ampla variedade de imagens, seus componentes internos são ótimos para reconhecer formas, cores e padrões. O transfer learning permite que o modelo use o que já aprendeu para reconhecer partes de imagens e aplique isso ao reconhecimento de novas imagens. Uma vez que um classificador de imagens foi treinado para uma ampla variedade de imagens, seus componentes internos são ótimos para reconhecer formas, cores e padrões. O transfer learning permite que o modelo use o que já aprendeu para reconhecer partes de imagens e aplique isso ao reconhecimento de novas imagens.
![Uma vez que você pode reconhecer formas, elas podem ser organizadas em diferentes configurações para formar um barco ou um gato](../../../../../translated_images/br/shapes-to-images.1a309f0ea88dd66f.webp) ![Uma vez que você pode reconhecer formas, elas podem ser organizadas em diferentes configurações para formar um barco ou um gato](../../../../../translated_images/pt-BR/shapes-to-images.1a309f0ea88dd66f.webp)
Você pode pensar nisso como os livros de formas para crianças, onde, uma vez que você reconhece um semicírculo, um retângulo e um triângulo, pode reconhecer um barco à vela ou um gato, dependendo da configuração dessas formas. O classificador de imagens pode reconhecer as formas, e o transfer learning ensina quais combinações formam um barco ou um gato - ou uma banana madura. Você pode pensar nisso como os livros de formas para crianças, onde, uma vez que você reconhece um semicírculo, um retângulo e um triângulo, pode reconhecer um barco à vela ou um gato, dependendo da configuração dessas formas. O classificador de imagens pode reconhecer as formas, e o transfer learning ensina quais combinações formam um barco ou um gato - ou uma banana madura.
@ -99,7 +99,7 @@ Existem várias ferramentas que podem ajudá-lo a fazer isso, incluindo serviço
O Custom Vision é uma ferramenta baseada na nuvem para treinar classificadores de imagens. Ele permite treinar um classificador usando apenas um pequeno número de imagens. Você pode fazer upload de imagens por meio de um portal web, API ou SDK, atribuindo a cada imagem uma *tag* que classifica essa imagem. Depois, você treina o modelo e o testa para ver como ele se sai. Quando estiver satisfeito com o modelo, pode publicar versões dele que podem ser acessadas por meio de uma API web ou SDK. O Custom Vision é uma ferramenta baseada na nuvem para treinar classificadores de imagens. Ele permite treinar um classificador usando apenas um pequeno número de imagens. Você pode fazer upload de imagens por meio de um portal web, API ou SDK, atribuindo a cada imagem uma *tag* que classifica essa imagem. Depois, você treina o modelo e o testa para ver como ele se sai. Quando estiver satisfeito com o modelo, pode publicar versões dele que podem ser acessadas por meio de uma API web ou SDK.
![O logotipo do Azure Custom Vision](../../../../../translated_images/br/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png) ![O logotipo do Azure Custom Vision](../../../../../translated_images/pt-BR/custom-vision-logo.d3d4e7c8a87ec9daf825e72e210576c3cbf60312577be7a139e22dd97ab7f1e6.png)
> 💁 Você pode treinar um modelo Custom Vision com apenas 5 imagens por classificação, mas mais imagens geram melhores resultados. Resultados mais precisos podem ser obtidos com pelo menos 30 imagens. > 💁 Você pode treinar um modelo Custom Vision com apenas 5 imagens por classificação, mas mais imagens geram melhores resultados. Resultados mais precisos podem ser obtidos com pelo menos 30 imagens.
@ -155,7 +155,7 @@ Para usar o Custom Vision, primeiro você precisa criar dois recursos de serviç
Ao criar seu projeto, certifique-se de usar o recurso `fruit-quality-detector-training` criado anteriormente. Use o tipo de projeto *Classificação*, o tipo de classificação *Multiclasse* e o domínio *Alimentos*. Ao criar seu projeto, certifique-se de usar o recurso `fruit-quality-detector-training` criado anteriormente. Use o tipo de projeto *Classificação*, o tipo de classificação *Multiclasse* e o domínio *Alimentos*.
![As configurações do projeto Custom Vision com o nome definido como fruit-quality-detector, sem descrição, o recurso definido como fruit-quality-detector-training, o tipo de projeto definido como classificação, o tipo de classificação definido como multiclasse e o domínio definido como alimentos](../../../../../translated_images/br/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png) ![As configurações do projeto Custom Vision com o nome definido como fruit-quality-detector, sem descrição, o recurso definido como fruit-quality-detector-training, o tipo de projeto definido como classificação, o tipo de classificação definido como multiclasse e o domínio definido como alimentos](../../../../../translated_images/pt-BR/custom-vision-create-project.cf46325b92d8b131089f6647cf5e07b664cb77850e106d66e3c057b6b69756c6.png)
✅ Reserve um tempo para explorar a interface do Custom Vision para seu classificador de imagens. ✅ Reserve um tempo para explorar a interface do Custom Vision para seu classificador de imagens.
@ -173,7 +173,7 @@ Classificadores de imagem operam em resoluções muito baixas. Por exemplo, o Cu
* Usando 2 bananas maduras, tire algumas fotos de cada uma de diferentes ângulos, tirando pelo menos 7 fotos (5 para treinar, 2 para testar), mas idealmente mais. * Usando 2 bananas maduras, tire algumas fotos de cada uma de diferentes ângulos, tirando pelo menos 7 fotos (5 para treinar, 2 para testar), mas idealmente mais.
![Fotos de 2 bananas diferentes](../../../../../translated_images/br/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png) ![Fotos de 2 bananas diferentes](../../../../../translated_images/pt-BR/banana-training-images.530eb203346d73bc23b8b990fb4609470bf4ff7c942ccc13d4cfffeed9be1ad4.png)
* Repita o mesmo processo usando 2 bananas verdes. * Repita o mesmo processo usando 2 bananas verdes.
@ -183,7 +183,7 @@ Classificadores de imagem operam em resoluções muito baixas. Por exemplo, o Cu
1. Siga a seção [fazer upload e marcar imagens do guia rápido para criar um classificador nos documentos da Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) para fazer upload das suas imagens de treinamento. Marque as frutas maduras como `ripe` e as frutas verdes como `unripe`. 1. Siga a seção [fazer upload e marcar imagens do guia rápido para criar um classificador nos documentos da Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) para fazer upload das suas imagens de treinamento. Marque as frutas maduras como `ripe` e as frutas verdes como `unripe`.
![Os diálogos de upload mostrando o envio de fotos de bananas maduras e verdes](../../../../../translated_images/br/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png) ![Os diálogos de upload mostrando o envio de fotos de bananas maduras e verdes](../../../../../translated_images/pt-BR/image-upload-bananas.0751639f3815e0ec42bdbc6254d1e4357a185834d1ae10c9948a0e7d6d336695.png)
1. Siga a seção [treinar o classificador do guia rápido para criar um classificador nos documentos da Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) para treinar o classificador de imagens com suas imagens enviadas. 1. Siga a seção [treinar o classificador do guia rápido para criar um classificador nos documentos da Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) para treinar o classificador de imagens com suas imagens enviadas.
@ -201,7 +201,7 @@ Depois que o classificador estiver treinado, você pode testá-lo fornecendo uma
1. Siga a seção [testar seu modelo nos documentos da Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) para testar seu classificador de imagens. Use as imagens de teste que você criou anteriormente, e não as imagens usadas para treinamento. 1. Siga a seção [testar seu modelo nos documentos da Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) para testar seu classificador de imagens. Use as imagens de teste que você criou anteriormente, e não as imagens usadas para treinamento.
![Uma banana verde prevista como verde com 98,9% de probabilidade, madura com 1,1% de probabilidade](../../../../../translated_images/br/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png) ![Uma banana verde prevista como verde com 98,9% de probabilidade, madura com 1,1% de probabilidade](../../../../../translated_images/pt-BR/banana-unripe-quick-test-prediction.dae9b5e1c4ef7c64886422438850ea14f0be6ac918c217ea3b255c685abfabe7.png)
1. Teste todas as imagens de teste que você tiver e observe as probabilidades. 1. Teste todas as imagens de teste que você tiver e observe as probabilidades.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Verifique a qualidade das frutas com um dispositivo IoT # Verifique a qualidade das frutas com um dispositivo IoT
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-16.215daf18b00631fbdfd64c6fc2dc6044dff5d544288825d8076f9fb83d964c23.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -35,7 +35,7 @@ Nesta lição, abordaremos:
Sensores de câmera, como o nome sugere, são câmeras que você pode conectar ao seu dispositivo IoT. Eles podem tirar fotos ou capturar vídeos em streaming. Alguns retornam dados de imagem brutos, enquanto outros comprimem os dados em arquivos de imagem, como JPEG ou PNG. Geralmente, as câmeras que funcionam com dispositivos IoT são muito menores e têm resolução mais baixa do que aquelas que você pode estar acostumado, mas é possível obter câmeras de alta resolução que rivalizam com os melhores smartphones. Você pode encontrar lentes intercambiáveis, configurações com múltiplas câmeras, câmeras térmicas infravermelhas ou câmeras UV. Sensores de câmera, como o nome sugere, são câmeras que você pode conectar ao seu dispositivo IoT. Eles podem tirar fotos ou capturar vídeos em streaming. Alguns retornam dados de imagem brutos, enquanto outros comprimem os dados em arquivos de imagem, como JPEG ou PNG. Geralmente, as câmeras que funcionam com dispositivos IoT são muito menores e têm resolução mais baixa do que aquelas que você pode estar acostumado, mas é possível obter câmeras de alta resolução que rivalizam com os melhores smartphones. Você pode encontrar lentes intercambiáveis, configurações com múltiplas câmeras, câmeras térmicas infravermelhas ou câmeras UV.
![A luz de uma cena passa por uma lente e é focada em um sensor CMOS](../../../../../translated_images/br/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png) ![A luz de uma cena passa por uma lente e é focada em um sensor CMOS](../../../../../translated_images/pt-BR/cmos-sensor.75f9cd74decb137149a4c9ea825251a4549497d67c0ae2776159e6102bb53aa9.png)
A maioria dos sensores de câmera usa sensores de imagem onde cada pixel é um fotodiodo. Uma lente foca a imagem no sensor de imagem, e milhares ou milhões de fotodiodos detectam a luz que incide sobre cada um, registrando isso como dados de pixel. A maioria dos sensores de câmera usa sensores de imagem onde cada pixel é um fotodiodo. Uma lente foca a imagem no sensor de imagem, e milhares ou milhões de fotodiodos detectam a luz que incide sobre cada um, registrando isso como dados de pixel.
@ -83,7 +83,7 @@ As iterações são publicadas no portal Custom Vision.
1. Clique no botão **Publish** para a iteração. 1. Clique no botão **Publish** para a iteração.
![O botão de publicação](../../../../../translated_images/br/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png) ![O botão de publicação](../../../../../translated_images/pt-BR/custom-vision-publish-button.b7174e1977b0c33b8b72d4e5b1326c779e0af196f3849d09985ee2d7d5493a39.png)
1. No diálogo *Publish Model*, defina o *Prediction resource* como o recurso `fruit-quality-detector-prediction` que você criou na última lição. Mantenha o nome como `Iteration2` e clique no botão **Publish**. 1. No diálogo *Publish Model*, defina o *Prediction resource* como o recurso `fruit-quality-detector-prediction` que você criou na última lição. Mantenha o nome como `Iteration2` e clique no botão **Publish**.
@ -97,7 +97,7 @@ As iterações são publicadas no portal Custom Vision.
Também copie o valor de *Prediction-Key*. Esta é uma chave segura que você deve passar ao chamar o modelo. Apenas aplicativos que fornecem essa chave podem usar o modelo; qualquer outro aplicativo será rejeitado. Também copie o valor de *Prediction-Key*. Esta é uma chave segura que você deve passar ao chamar o modelo. Apenas aplicativos que fornecem essa chave podem usar o modelo; qualquer outro aplicativo será rejeitado.
![O diálogo da API de previsão mostrando o URL e a chave](../../../../../translated_images/br/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) ![O diálogo da API de previsão mostrando o URL e a chave](../../../../../translated_images/pt-BR/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png)
✅ Quando uma nova iteração é publicada, ela terá um nome diferente. Como você acha que poderia alterar a iteração que um dispositivo IoT está usando? ✅ Quando uma nova iteração é publicada, ela terá um nome diferente. Como você acha que poderia alterar a iteração que um dispositivo IoT está usando?
@ -118,7 +118,7 @@ Você pode perceber que os resultados obtidos ao usar a câmera conectada ao seu
Para obter os melhores resultados de um classificador de imagens, você deve treinar o modelo com imagens o mais semelhantes possível às usadas para previsões. Por exemplo, se você usou a câmera do seu celular para capturar imagens para treinamento, a qualidade, nitidez e cor da imagem serão diferentes de uma câmera conectada a um dispositivo IoT. Para obter os melhores resultados de um classificador de imagens, você deve treinar o modelo com imagens o mais semelhantes possível às usadas para previsões. Por exemplo, se você usou a câmera do seu celular para capturar imagens para treinamento, a qualidade, nitidez e cor da imagem serão diferentes de uma câmera conectada a um dispositivo IoT.
![2 fotos de banana, uma de baixa resolução com iluminação ruim de um dispositivo IoT, e outra de alta resolução com boa iluminação de um celular](../../../../../translated_images/br/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png) ![2 fotos de banana, uma de baixa resolução com iluminação ruim de um dispositivo IoT, e outra de alta resolução com boa iluminação de um celular](../../../../../translated_images/pt-BR/banana-picture-compare.174df164dc326a42cf7fb051a7497e6113c620e91552d92ca914220305d47d9a.png)
Na imagem acima, a foto da banana à esquerda foi tirada usando uma câmera Raspberry Pi, enquanto a da direita foi tirada da mesma banana no mesmo local usando um iPhone. Há uma diferença notável na qualidade - a foto do iPhone é mais nítida, com cores mais vibrantes e maior contraste. Na imagem acima, a foto da banana à esquerda foi tirada usando uma câmera Raspberry Pi, enquanto a da direita foi tirada da mesma banana no mesmo local usando um iPhone. Há uma diferença notável na qualidade - a foto do iPhone é mais nítida, com cores mais vibrantes e maior contraste.

@ -25,7 +25,7 @@ A câmera pode ser conectada ao Raspberry Pi usando um cabo flat.
### Tarefa - conectar a câmera ### Tarefa - conectar a câmera
![Uma câmera Raspberry Pi](../../../../../translated_images/br/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png) ![Uma câmera Raspberry Pi](../../../../../translated_images/pt-BR/pi-camera-module.4278753c31bd6e757aa2b858be97d72049f71616278cefe4fb5abb485b40a078.png)
1. Desligue o Raspberry Pi. 1. Desligue o Raspberry Pi.
@ -33,17 +33,17 @@ A câmera pode ser conectada ao Raspberry Pi usando um cabo flat.
Você pode encontrar uma animação mostrando como abrir o clipe e inserir o cabo na [documentação de introdução ao módulo de câmera do Raspberry Pi](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2). Você pode encontrar uma animação mostrando como abrir o clipe e inserir o cabo na [documentação de introdução ao módulo de câmera do Raspberry Pi](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2).
![O cabo flat inserido no módulo de câmera](../../../../../translated_images/br/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png) ![O cabo flat inserido no módulo de câmera](../../../../../translated_images/pt-BR/pi-camera-ribbon-cable.0bf82acd251611c21ac616f082849413e2b322a261d0e4f8fec344248083b07e.png)
1. Remova o Grove Base Hat do Raspberry Pi. 1. Remova o Grove Base Hat do Raspberry Pi.
1. Passe o cabo flat pelo slot da câmera no Grove Base Hat. Certifique-se de que o lado azul do cabo esteja voltado para as portas analógicas rotuladas como **A0**, **A1**, etc. 1. Passe o cabo flat pelo slot da câmera no Grove Base Hat. Certifique-se de que o lado azul do cabo esteja voltado para as portas analógicas rotuladas como **A0**, **A1**, etc.
![O cabo flat passando pelo Grove Base Hat](../../../../../translated_images/br/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png) ![O cabo flat passando pelo Grove Base Hat](../../../../../translated_images/pt-BR/grove-base-hat-ribbon-cable.501fed202fcf73b11b2b68f6d246189f7d15d3e4423c572ddee79d77b4632b47.png)
1. Insira o cabo flat no conector da câmera no Raspberry Pi. Novamente, puxe o clipe de plástico preto para cima, insira o cabo e empurre o clipe de volta ao lugar. O lado azul do cabo deve estar voltado para as portas USB e Ethernet. 1. Insira o cabo flat no conector da câmera no Raspberry Pi. Novamente, puxe o clipe de plástico preto para cima, insira o cabo e empurre o clipe de volta ao lugar. O lado azul do cabo deve estar voltado para as portas USB e Ethernet.
![O cabo flat conectado ao conector da câmera no Raspberry Pi](../../../../../translated_images/br/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png) ![O cabo flat conectado ao conector da câmera no Raspberry Pi](../../../../../translated_images/pt-BR/pi-camera-socket-ribbon-cable.a18309920b11800911082ed7aa6fb28e6d9be3a022e4079ff990016cae3fca10.png)
1. Recoloque o Grove Base Hat. 1. Recoloque o Grove Base Hat.
@ -110,7 +110,7 @@ Programe o dispositivo.
A linha `camera.rotation = 0` define a rotação da imagem. O cabo flat entra na parte inferior da câmera, mas se sua câmera estiver girada para facilitar o apontamento para o item que você deseja classificar, você pode alterar esta linha para o número de graus de rotação. A linha `camera.rotation = 0` define a rotação da imagem. O cabo flat entra na parte inferior da câmera, mas se sua câmera estiver girada para facilitar o apontamento para o item que você deseja classificar, você pode alterar esta linha para o número de graus de rotação.
![A câmera pendurada sobre uma lata de bebida](../../../../../translated_images/br/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png) ![A câmera pendurada sobre uma lata de bebida](../../../../../translated_images/pt-BR/pi-camera-upside-down.5376961ba31459883362124152ad6b823d5ac5fc14e85f317e22903bd681c2b6.png)
Por exemplo, se você suspender o cabo flat sobre algo para que ele fique na parte superior da câmera, defina a rotação como 180: Por exemplo, se você suspender o cabo flat sobre algo para que ele fique na parte superior da câmera, defina a rotação como 180:

@ -93,7 +93,7 @@ O serviço Custom Vision possui um SDK para Python que você pode usar para clas
Você poderá ver a imagem que foi capturada e esses valores na aba **Predictions** no Custom Vision. Você poderá ver a imagem que foi capturada e esses valores na aba **Predictions** no Custom Vision.
![Uma banana no Custom Vision prevista como madura com 56,8% e não madura com 43,1%](../../../../../translated_images/br/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) ![Uma banana no Custom Vision prevista como madura com 56,8% e não madura com 43,1%](../../../../../translated_images/pt-BR/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png)
> 💁 Você pode encontrar este código na pasta [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) ou [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device). > 💁 Você pode encontrar este código na pasta [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) ou [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device).

@ -43,11 +43,11 @@ Adicione a câmera ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar a câmera. 1. Selecione o botão **Add** para criar a câmera.
![As configurações da câmera](../../../../../translated_images/br/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png) ![As configurações da câmera](../../../../../translated_images/pt-BR/counterfit-create-camera.a5de97f59c0bd3cbe0416d7e89a3cfe86d19fbae05c641c53a91286412af0a34.png)
A câmera será criada e aparecerá na lista de sensores. A câmera será criada e aparecerá na lista de sensores.
![A câmera criada](../../../../../translated_images/br/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png) ![A câmera criada](../../../../../translated_images/pt-BR/counterfit-camera.001ec52194c8ee5d3f617173da2c79e1df903d10882adc625cbfc493525125d4.png)
## Programar a câmera ## Programar a câmera
@ -112,7 +112,7 @@ Programe o dispositivo.
1. Configure a imagem que a câmera no CounterFit capturará. Você pode definir a *Source* como *File* e fazer upload de um arquivo de imagem, ou definir a *Source* como *WebCam*, e as imagens serão capturadas da sua webcam. Certifique-se de selecionar o botão **Set** após selecionar uma imagem ou sua webcam. 1. Configure a imagem que a câmera no CounterFit capturará. Você pode definir a *Source* como *File* e fazer upload de um arquivo de imagem, ou definir a *Source* como *WebCam*, e as imagens serão capturadas da sua webcam. Certifique-se de selecionar o botão **Set** após selecionar uma imagem ou sua webcam.
![CounterFit com um arquivo definido como fonte de imagem e uma webcam mostrando uma pessoa segurando uma banana em uma pré-visualização da webcam](../../../../../translated_images/br/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png) ![CounterFit com um arquivo definido como fonte de imagem e uma webcam mostrando uma pessoa segurando uma banana em uma pré-visualização da webcam](../../../../../translated_images/pt-BR/counterfit-camera-options.eb3bd5150a8e7dffbf24bc5bcaba0cf2cdef95fbe6bbe393695d173817d6b8df.png)
1. Uma imagem será capturada e salva como `image.jpg` na pasta atual. Você verá este arquivo no explorador do VS Code. Selecione o arquivo para visualizar a imagem. Se precisar de rotação, atualize a linha `camera.rotation = 0` conforme necessário e tire outra foto. 1. Uma imagem será capturada e salva como `image.jpg` na pasta atual. Você verá este arquivo no explorador do VS Code. Selecione o arquivo para visualizar a imagem. Se precisar de rotação, atualize a linha `camera.rotation = 0` conforme necessário e tire outra foto.

@ -25,11 +25,11 @@ A ArduCam não possui um conector Grove; em vez disso, ela se conecta aos barram
Conecte a câmera. Conecte a câmera.
![Um sensor ArduCam](../../../../../translated_images/br/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png) ![Um sensor ArduCam](../../../../../translated_images/pt-BR/arducam.20e4e4cbb268296570b5914e20d6c349fc42ddac9ed4e1b9deba2188204eebae.png)
1. Os pinos na base da ArduCam precisam ser conectados aos pinos GPIO no Wio Terminal. Para facilitar a identificação dos pinos corretos, coloque o adesivo de pinos GPIO que vem com o Wio Terminal ao redor dos pinos: 1. Os pinos na base da ArduCam precisam ser conectados aos pinos GPIO no Wio Terminal. Para facilitar a identificação dos pinos corretos, coloque o adesivo de pinos GPIO que vem com o Wio Terminal ao redor dos pinos:
![O Wio Terminal com o adesivo de pinos GPIO](../../../../../translated_images/br/wio-terminal-pin-sticker.b90b1535937b84bd.webp) ![O Wio Terminal com o adesivo de pinos GPIO](../../../../../translated_images/pt-BR/wio-terminal-pin-sticker.b90b1535937b84bd.webp)
1. Usando fios jumper, faça as seguintes conexões: 1. Usando fios jumper, faça as seguintes conexões:
@ -44,7 +44,7 @@ Conecte a câmera.
| SDA | 3 (I2C1_SDA) | Dados Seriais I2C | | SDA | 3 (I2C1_SDA) | Dados Seriais I2C |
| SCL | 5 (I2C1_SCL) | Clock Serial I2C | | SCL | 5 (I2C1_SCL) | Clock Serial I2C |
![O Wio Terminal conectado à ArduCam com fios jumper](../../../../../translated_images/br/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png) ![O Wio Terminal conectado à ArduCam com fios jumper](../../../../../translated_images/pt-BR/arducam-wio-terminal-connections.a4d5a4049bdb5ab800a2877389fc6ecf5e4ff307e6451ff56c517e6786467d0a.png)
As conexões GND e VCC fornecem uma fonte de alimentação de 5V para a ArduCam. Ela funciona com 5V, diferente dos sensores Grove que funcionam com 3V. Essa energia vem diretamente da conexão USB-C que alimenta o dispositivo. As conexões GND e VCC fornecem uma fonte de alimentação de 5V para a ArduCam. Ela funciona com 5V, diferente dos sensores Grove que funcionam com 3V. Essa energia vem diretamente da conexão USB-C que alimenta o dispositivo.
@ -297,7 +297,7 @@ O Wio Terminal agora pode ser programado para capturar uma imagem quando um bot
1. Microcontroladores executam seu código continuamente, então não é fácil acionar algo como tirar uma foto sem reagir a um sensor. O Wio Terminal possui botões, então a câmera pode ser configurada para ser acionada por um dos botões. Adicione o seguinte código ao final da função `setup` para configurar o botão C (um dos três botões na parte superior, o mais próximo do interruptor de energia). 1. Microcontroladores executam seu código continuamente, então não é fácil acionar algo como tirar uma foto sem reagir a um sensor. O Wio Terminal possui botões, então a câmera pode ser configurada para ser acionada por um dos botões. Adicione o seguinte código ao final da função `setup` para configurar o botão C (um dos três botões na parte superior, o mais próximo do interruptor de energia).
![O botão C na parte superior, próximo ao interruptor de energia](../../../../../translated_images/br/wio-terminal-c-button.73df3cb1c1445ea0.webp) ![O botão C na parte superior, próximo ao interruptor de energia](../../../../../translated_images/pt-BR/wio-terminal-c-button.73df3cb1c1445ea0.webp)
```cpp ```cpp
pinMode(WIO_KEY_C, INPUT_PULLUP); pinMode(WIO_KEY_C, INPUT_PULLUP);
@ -465,7 +465,7 @@ O Wio Terminal suporta apenas cartões microSD de até 16GB. Se você tiver um c
1. Desligue o microSD e ejete-o pressionando-o levemente e soltando, e ele sairá. Você pode precisar usar uma ferramenta fina para fazer isso. Conecte o cartão microSD ao seu computador para visualizar as imagens. 1. Desligue o microSD e ejete-o pressionando-o levemente e soltando, e ele sairá. Você pode precisar usar uma ferramenta fina para fazer isso. Conecte o cartão microSD ao seu computador para visualizar as imagens.
![Uma foto de uma banana capturada usando a ArduCam](../../../../../translated_images/br/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg) ![Uma foto de uma banana capturada usando a ArduCam](../../../../../translated_images/pt-BR/banana-arducam.be1b32d4267a8194b0fd042362e56faa431da9cd4af172051b37243ea9be0256.jpg)
💁 Pode levar algumas imagens para que o balanço de branco da câmera se ajuste. Você notará isso com base na cor das imagens capturadas, as primeiras podem parecer com cores alteradas. Você sempre pode contornar isso alterando o código para capturar algumas imagens que são ignoradas na função `setup`. 💁 Pode levar algumas imagens para que o balanço de branco da câmera se ajuste. Você notará isso com base na cor das imagens capturadas, as primeiras podem parecer com cores alteradas. Você sempre pode contornar isso alterando o código para capturar algumas imagens que são ignoradas na função `setup`.

@ -217,7 +217,7 @@ Esses certificados contêm chaves públicas e não precisam ser mantidos em segr
Você poderá ver a imagem que foi capturada e esses valores na aba **Predictions** no Custom Vision. Você poderá ver a imagem que foi capturada e esses valores na aba **Predictions** no Custom Vision.
![Uma banana no Custom Vision prevista como madura com 56.8% e não madura com 43.1%](../../../../../translated_images/br/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png) ![Uma banana no Custom Vision prevista como madura com 56.8% e não madura com 43.1%](../../../../../translated_images/pt-BR/custom-vision-banana-prediction.30cdff4e1d72db5d9a0be0193790a47c2b387da034e12dc1314dd57ca2131b59.png)
> 💁 Você pode encontrar este código na pasta [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal). > 💁 Você pode encontrar este código na pasta [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal).

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Execute seu detector de frutas na borda # Execute seu detector de frutas na borda
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-17.bc333c3c35ba8e42cce666cfffa82b915f787f455bd94e006aea2b6f2722421a.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -42,11 +42,11 @@ Nesta lição, abordaremos:
Computação na borda envolve ter computadores que processam dados de IoT o mais próximo possível de onde os dados são gerados. Em vez de realizar esse processamento na nuvem, ele é movido para a borda da nuvem - sua rede interna. Computação na borda envolve ter computadores que processam dados de IoT o mais próximo possível de onde os dados são gerados. Em vez de realizar esse processamento na nuvem, ele é movido para a borda da nuvem - sua rede interna.
![Um diagrama de arquitetura mostrando serviços de internet na nuvem e dispositivos IoT em uma rede local](../../../../../translated_images/br/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png) ![Um diagrama de arquitetura mostrando serviços de internet na nuvem e dispositivos IoT em uma rede local](../../../../../translated_images/pt-BR/cloud-without-edge.b4da641f6022c95ed6b91fde8b5323abd2f94e0d52073ad54172ae8f5dac90e9.png)
Nas lições anteriores, você teve dispositivos coletando dados e enviando-os para a nuvem para serem analisados, executando funções sem servidor ou modelos de IA na nuvem. Nas lições anteriores, você teve dispositivos coletando dados e enviando-os para a nuvem para serem analisados, executando funções sem servidor ou modelos de IA na nuvem.
![Um diagrama de arquitetura mostrando dispositivos IoT em uma rede local conectando-se a dispositivos de borda, e esses dispositivos de borda conectando-se à nuvem](../../../../../translated_images/br/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png) ![Um diagrama de arquitetura mostrando dispositivos IoT em uma rede local conectando-se a dispositivos de borda, e esses dispositivos de borda conectando-se à nuvem](../../../../../translated_images/pt-BR/cloud-with-edge.1e26462c62c126fe150bd15a5714ddf0be599f09bacbad08b85be02b76ea1ae1.png)
Computação na borda envolve mover alguns dos serviços da nuvem para computadores que operam na mesma rede que os dispositivos IoT, comunicando-se com a nuvem apenas quando necessário. Por exemplo, você pode executar modelos de IA em dispositivos de borda para analisar a maturação de frutas e enviar apenas análises para a nuvem, como o número de frutas maduras versus não maduras. Computação na borda envolve mover alguns dos serviços da nuvem para computadores que operam na mesma rede que os dispositivos IoT, comunicando-se com a nuvem apenas quando necessário. Por exemplo, você pode executar modelos de IA em dispositivos de borda para analisar a maturação de frutas e enviar apenas análises para a nuvem, como o número de frutas maduras versus não maduras.
@ -94,7 +94,7 @@ Para sistemas de IoT, você frequentemente desejará uma combinação de computa
## Azure IoT Edge ## Azure IoT Edge
![O logotipo do Azure IoT Edge](../../../../../translated_images/br/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png) ![O logotipo do Azure IoT Edge](../../../../../translated_images/pt-BR/azure-iot-edge-logo.c1c076749b5cba2e8755262fadc2f19ca1146b948d76990b1229199ac2292d79.png)
Azure IoT Edge é um serviço que pode ajudar você a mover cargas de trabalho da nuvem para a borda. Você configura um dispositivo como um dispositivo de borda e, a partir da nuvem, pode implantar código nesse dispositivo de borda. Isso permite misturar as capacidades da nuvem e da borda. Azure IoT Edge é um serviço que pode ajudar você a mover cargas de trabalho da nuvem para a borda. Você configura um dispositivo como um dispositivo de borda e, a partir da nuvem, pode implantar código nesse dispositivo de borda. Isso permite misturar as capacidades da nuvem e da borda.
@ -108,7 +108,7 @@ IoT Edge está integrado ao IoT Hub, então você pode gerenciar dispositivos de
IoT Edge executa código a partir de *contêineres* - aplicativos autônomos que são executados isoladamente do restante dos aplicativos no seu computador. Quando você executa um contêiner, ele age como um computador separado operando dentro do seu computador, com seu próprio software, serviços e aplicativos em execução. Na maioria das vezes, os contêineres não podem acessar nada no seu computador, a menos que você escolha compartilhar algo, como uma pasta, com o contêiner. O contêiner então expõe serviços por meio de uma porta aberta que você pode conectar ou expor à sua rede. IoT Edge executa código a partir de *contêineres* - aplicativos autônomos que são executados isoladamente do restante dos aplicativos no seu computador. Quando você executa um contêiner, ele age como um computador separado operando dentro do seu computador, com seu próprio software, serviços e aplicativos em execução. Na maioria das vezes, os contêineres não podem acessar nada no seu computador, a menos que você escolha compartilhar algo, como uma pasta, com o contêiner. O contêiner então expõe serviços por meio de uma porta aberta que você pode conectar ou expor à sua rede.
![Uma solicitação web redirecionada para um contêiner](../../../../../translated_images/br/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png) ![Uma solicitação web redirecionada para um contêiner](../../../../../translated_images/pt-BR/container-web-browser.4ee81dd4f0d8838ce622b2a0d600b6a4322b5d4fe43159facd87b7b34f84d66a.png)
Por exemplo, você pode ter um contêiner com um site operando na porta 80, a porta padrão do HTTP, e pode expô-lo do seu computador também na porta 80. Por exemplo, você pode ter um contêiner com um site operando na porta 80, a porta padrão do HTTP, e pode expô-lo do seu computador também na porta 80.
@ -204,11 +204,11 @@ Depois que o modelo for treinado, ele precisa ser exportado como um contêiner.
## Preparar seu contêiner para implantação ## Preparar seu contêiner para implantação
![Os contêineres são construídos, enviados para um registro de contêiner e, em seguida, implantados do registro para um dispositivo de borda usando o IoT Edge](../../../../../translated_images/br/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png) ![Os contêineres são construídos, enviados para um registro de contêiner e, em seguida, implantados do registro para um dispositivo de borda usando o IoT Edge](../../../../../translated_images/pt-BR/container-edge-flow.c246050dd60ceefdb6ace026a4ce5c6aa4112bb5898ae23fbb2ab4be29ae3e1b.png)
Depois de baixar seu modelo, ele precisa ser transformado em um contêiner e enviado para um registro de contêiner - um local online onde você pode armazenar contêineres. O IoT Edge pode então baixar o contêiner do registro e enviá-lo para o seu dispositivo. Depois de baixar seu modelo, ele precisa ser transformado em um contêiner e enviado para um registro de contêiner - um local online onde você pode armazenar contêineres. O IoT Edge pode então baixar o contêiner do registro e enviá-lo para o seu dispositivo.
![Logotipo do Azure Container Registry](../../../../../translated_images/br/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png) ![Logotipo do Azure Container Registry](../../../../../translated_images/pt-BR/azure-container-registry-logo.09494206991d4b295025ebff7d4e2900325e527a59184ffbc8464b6ab59654be.png)
O registro de contêiner que você usará nesta lição é o Azure Container Registry. Este não é um serviço gratuito, então, para economizar dinheiro, certifique-se de [limpar seu projeto](../../../clean-up.md) quando terminar. O registro de contêiner que você usará nesta lição é o Azure Container Registry. Este não é um serviço gratuito, então, para economizar dinheiro, certifique-se de [limpar seu projeto](../../../clean-up.md) quando terminar.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Acionar a detecção de qualidade de frutas a partir de um sensor # Acionar a detecção de qualidade de frutas a partir de um sensor
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -48,7 +48,7 @@ As aplicações de IoT podem ser descritas como *coisas* (dispositivos) enviando
### Arquitetura de referência para IoT ### Arquitetura de referência para IoT
![Uma arquitetura de referência para IoT](../../../../../translated_images/br/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png) ![Uma arquitetura de referência para IoT](../../../../../translated_images/pt-BR/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.png)
O diagrama acima mostra uma arquitetura de referência para IoT. O diagrama acima mostra uma arquitetura de referência para IoT.
@ -58,7 +58,7 @@ O diagrama acima mostra uma arquitetura de referência para IoT.
* **Insights** vêm de aplicações serverless ou de análises realizadas em dados armazenados. * **Insights** vêm de aplicações serverless ou de análises realizadas em dados armazenados.
* **Ações** podem ser comandos enviados para dispositivos ou visualizações de dados que permitem que humanos tomem decisões. * **Ações** podem ser comandos enviados para dispositivos ou visualizações de dados que permitem que humanos tomem decisões.
![Uma arquitetura de referência para IoT no Azure](../../../../../translated_images/br/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png) ![Uma arquitetura de referência para IoT no Azure](../../../../../translated_images/pt-BR/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.png)
O diagrama acima mostra alguns dos componentes e serviços abordados até agora nestas lições e como eles se conectam em uma arquitetura de referência para IoT. O diagrama acima mostra alguns dos componentes e serviços abordados até agora nestas lições e como eles se conectam em uma arquitetura de referência para IoT.
@ -98,7 +98,7 @@ Você precisa construir um sistema onde as frutas sejam detectadas à medida que
### Prototipando sua aplicação ### Prototipando sua aplicação
![Uma arquitetura de referência para IoT para verificação de qualidade de frutas](../../../../../translated_images/br/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png) ![Uma arquitetura de referência para IoT para verificação de qualidade de frutas](../../../../../translated_images/pt-BR/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.png)
O diagrama acima mostra uma arquitetura de referência para esta aplicação protótipo. O diagrama acima mostra uma arquitetura de referência para esta aplicação protótipo.
@ -115,7 +115,7 @@ Para o protótipo, você implementará tudo isso em um único dispositivo. Se es
O dispositivo IoT precisa de algum tipo de gatilho para indicar quando a fruta está pronta para ser classificada. Um desses gatilhos seria medir quando a fruta está na posição correta na esteira, medindo a distância até um sensor. O dispositivo IoT precisa de algum tipo de gatilho para indicar quando a fruta está pronta para ser classificada. Um desses gatilhos seria medir quando a fruta está na posição correta na esteira, medindo a distância até um sensor.
![Sensores de proximidade enviam feixes de laser para objetos como bananas e medem o tempo até o feixe ser refletido de volta](../../../../../translated_images/br/proximity-sensor.f5cd752c77fb62fe.webp) ![Sensores de proximidade enviam feixes de laser para objetos como bananas e medem o tempo até o feixe ser refletido de volta](../../../../../translated_images/pt-BR/proximity-sensor.f5cd752c77fb62fe.webp)
Sensores de proximidade podem ser usados para medir a distância entre o sensor e um objeto. Eles geralmente transmitem um feixe de radiação eletromagnética, como um feixe de laser ou luz infravermelha, e detectam a radiação refletida por um objeto. O tempo entre o envio do feixe e o sinal refletido pode ser usado para calcular a distância até o sensor. Sensores de proximidade podem ser usados para medir a distância entre o sensor e um objeto. Eles geralmente transmitem um feixe de radiação eletromagnética, como um feixe de laser ou luz infravermelha, e detectam a radiação refletida por um objeto. O tempo entre o envio do feixe e o sinal refletido pode ser usado para calcular a distância até o sensor.
@ -133,7 +133,7 @@ Siga o guia relevante para usar um sensor de proximidade para detectar um objeto
O protótipo do detector de frutas possui múltiplos componentes que se comunicam entre si. O protótipo do detector de frutas possui múltiplos componentes que se comunicam entre si.
![Os componentes se comunicando entre si](../../../../../translated_images/br/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png) ![Os componentes se comunicando entre si](../../../../../translated_images/pt-BR/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.png)
* Um sensor de proximidade medindo a distância até uma fruta e enviando isso para o IoT Hub * Um sensor de proximidade medindo a distância até uma fruta e enviando isso para o IoT Hub
* O comando para controlar a câmera vindo do IoT Hub para o dispositivo da câmera * O comando para controlar a câmera vindo do IoT Hub para o dispositivo da câmera

@ -29,13 +29,13 @@ O sensor Grove Time of Flight pode ser conectado ao Raspberry Pi.
Conecte o sensor Time of Flight. Conecte o sensor Time of Flight.
![Um sensor Grove Time of Flight](../../../../../translated_images/br/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) ![Um sensor Grove Time of Flight](../../../../../translated_images/pt-BR/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png)
1. Insira uma extremidade de um cabo Grove no conector do sensor Time of Flight. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no conector do sensor Time of Flight. Ele só encaixará de uma maneira.
1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove a um dos conectores I²C marcados como **I²C** no Grove Base Hat conectado ao Pi. Esses conectores estão na fileira inferior, no lado oposto aos pinos GPIO e próximos ao slot do cabo da câmera. 1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove a um dos conectores I²C marcados como **I²C** no Grove Base Hat conectado ao Pi. Esses conectores estão na fileira inferior, no lado oposto aos pinos GPIO e próximos ao slot do cabo da câmera.
![O sensor Grove Time of Flight conectado ao conector I²C](../../../../../translated_images/br/pi-time-of-flight-sensor.58c8dc04eb3bfb57.webp) ![O sensor Grove Time of Flight conectado ao conector I²C](../../../../../translated_images/pt-BR/pi-time-of-flight-sensor.58c8dc04eb3bfb57.webp)
## Programar o sensor Time of Flight ## Programar o sensor Time of Flight
@ -106,7 +106,7 @@ Programe o dispositivo.
O medidor de distância está na parte traseira do sensor, então certifique-se de usar o lado correto ao medir a distância. O medidor de distância está na parte traseira do sensor, então certifique-se de usar o lado correto ao medir a distância.
![O medidor de distância na parte traseira do sensor Time of Flight apontando para uma banana](../../../../../translated_images/br/time-of-flight-banana.079921ad8b1496e4.webp) ![O medidor de distância na parte traseira do sensor Time of Flight apontando para uma banana](../../../../../translated_images/pt-BR/time-of-flight-banana.079921ad8b1496e4.webp)
> 💁 Você pode encontrar este código na pasta [code-proximity/pi](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/pi). > 💁 Você pode encontrar este código na pasta [code-proximity/pi](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/pi).

@ -45,11 +45,11 @@ Adicione o sensor de distância ao aplicativo CounterFit.
1. Selecione o botão **Add** para criar o sensor de distância. 1. Selecione o botão **Add** para criar o sensor de distância.
![As configurações do sensor de distância](../../../../../translated_images/br/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png) ![As configurações do sensor de distância](../../../../../translated_images/pt-BR/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.png)
O sensor de distância será criado e aparecerá na lista de sensores. O sensor de distância será criado e aparecerá na lista de sensores.
![O sensor de distância criado](../../../../../translated_images/br/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png) ![O sensor de distância criado](../../../../../translated_images/pt-BR/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.png)
## Programar o sensor de distância ## Programar o sensor de distância

@ -29,13 +29,13 @@ O sensor Grove time of flight pode ser conectado ao Wio Terminal.
Conecte o sensor time of flight. Conecte o sensor time of flight.
![Um sensor Grove time of flight](../../../../../translated_images/br/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png) ![Um sensor Grove time of flight](../../../../../translated_images/pt-BR/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.png)
1. Insira uma extremidade de um cabo Grove no conector do sensor time of flight. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no conector do sensor time of flight. Ele só encaixará de uma maneira.
1. Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado esquerdo do Wio Terminal, olhando para a tela. Este é o conector mais próximo do botão de energia. Este é um socket combinado digital e I²C. 1. Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado esquerdo do Wio Terminal, olhando para a tela. Este é o conector mais próximo do botão de energia. Este é um socket combinado digital e I²C.
![O sensor Grove time of flight conectado ao conector esquerdo](../../../../../translated_images/br/wio-time-of-flight-sensor.c4c182131d2ea73d.webp) ![O sensor Grove time of flight conectado ao conector esquerdo](../../../../../translated_images/pt-BR/wio-time-of-flight-sensor.c4c182131d2ea73d.webp)
1. Agora você pode conectar o Wio Terminal ao seu computador. 1. Agora você pode conectar o Wio Terminal ao seu computador.
@ -101,7 +101,7 @@ Agora o Wio Terminal pode ser programado para usar o sensor time of flight conec
O medidor de distância está na parte traseira do sensor, então certifique-se de usar o lado correto ao medir a distância. O medidor de distância está na parte traseira do sensor, então certifique-se de usar o lado correto ao medir a distância.
![O medidor de distância na parte traseira do sensor time of flight apontando para uma banana](../../../../../translated_images/br/time-of-flight-banana.079921ad8b1496e4.webp) ![O medidor de distância na parte traseira do sensor time of flight apontando para uma banana](../../../../../translated_images/pt-BR/time-of-flight-banana.079921ad8b1496e4.webp)
> 💁 Você pode encontrar este código na pasta [code-proximity/wio-terminal](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/wio-terminal). > 💁 Você pode encontrar este código na pasta [code-proximity/wio-terminal](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/wio-terminal).

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Treine um detector de estoque # Treine um detector de estoque
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -45,7 +45,7 @@ A detecção de objetos envolve identificar objetos em imagens usando IA. Difere
A classificação de imagens consiste em classificar uma imagem como um todo - quais são as probabilidades de que a imagem inteira corresponda a cada tag. Você recebe de volta as probabilidades para cada tag usada para treinar o modelo. A classificação de imagens consiste em classificar uma imagem como um todo - quais são as probabilidades de que a imagem inteira corresponda a cada tag. Você recebe de volta as probabilidades para cada tag usada para treinar o modelo.
![Classificação de imagens de castanhas de caju e extrato de tomate](../../../../../translated_images/br/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png) ![Classificação de imagens de castanhas de caju e extrato de tomate](../../../../../translated_images/pt-BR/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.png)
No exemplo acima, duas imagens são classificadas usando um modelo treinado para classificar potes de castanhas de caju ou latas de extrato de tomate. A primeira imagem é um pote de castanhas de caju e apresenta dois resultados do classificador de imagens: No exemplo acima, duas imagens são classificadas usando um modelo treinado para classificar potes de castanhas de caju ou latas de extrato de tomate. A primeira imagem é um pote de castanhas de caju e apresenta dois resultados do classificador de imagens:
@ -69,7 +69,7 @@ Quando você o utiliza para prever imagens, em vez de receber uma lista de tags
> 🎓 *Caixas delimitadoras* são as caixas ao redor de um objeto. > 🎓 *Caixas delimitadoras* são as caixas ao redor de um objeto.
![Detecção de objetos de castanhas de caju e extrato de tomate](../../../../../translated_images/br/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png) ![Detecção de objetos de castanhas de caju e extrato de tomate](../../../../../translated_images/pt-BR/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.png)
A imagem acima contém tanto um pote de castanhas de caju quanto três latas de extrato de tomate. O detector de objetos detectou as castanhas de caju, retornando a caixa delimitadora que contém as castanhas com a probabilidade de 97,6%. O detector de objetos também detectou três latas de extrato de tomate, fornecendo três caixas delimitadoras separadas, uma para cada lata detectada, e cada uma com uma probabilidade de que a caixa delimitadora contenha uma lata de extrato de tomate. A imagem acima contém tanto um pote de castanhas de caju quanto três latas de extrato de tomate. O detector de objetos detectou as castanhas de caju, retornando a caixa delimitadora que contém as castanhas com a probabilidade de 97,6%. O detector de objetos também detectou três latas de extrato de tomate, fornecendo três caixas delimitadoras separadas, uma para cada lata detectada, e cada uma com uma probabilidade de que a caixa delimitadora contenha uma lata de extrato de tomate.
@ -120,7 +120,7 @@ Você pode treinar um detector de objetos usando o Custom Vision, de forma semel
Ao criar seu projeto, certifique-se de usar o recurso `stock-detector-training` que você criou anteriormente. Use o tipo de projeto *Detecção de Objetos* e o domínio *Produtos em Prateleiras*. Ao criar seu projeto, certifique-se de usar o recurso `stock-detector-training` que você criou anteriormente. Use o tipo de projeto *Detecção de Objetos* e o domínio *Produtos em Prateleiras*.
![As configurações do projeto no Custom Vision com o nome definido como fruit-quality-detector, sem descrição, o recurso definido como fruit-quality-detector-training, o tipo de projeto definido como classificação, os tipos de classificação definidos como multi-classe e os domínios definidos como alimentos](../../../../../translated_images/br/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png) ![As configurações do projeto no Custom Vision com o nome definido como fruit-quality-detector, sem descrição, o recurso definido como fruit-quality-detector-training, o tipo de projeto definido como classificação, os tipos de classificação definidos como multi-classe e os domínios definidos como alimentos](../../../../../translated_images/pt-BR/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.png)
✅ O domínio de produtos em prateleiras é especificamente direcionado para detectar estoque em prateleiras de lojas. Leia mais sobre os diferentes domínios na [documentação Selecionar um domínio na Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection). ✅ O domínio de produtos em prateleiras é especificamente direcionado para detectar estoque em prateleiras de lojas. Leia mais sobre os diferentes domínios na [documentação Selecionar um domínio na Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection).
@ -142,11 +142,11 @@ Para treinar seu modelo, você precisará de um conjunto de imagens contendo os
1. Siga a [seção Fazer upload e marcar imagens do guia rápido de construção de um detector de objetos na documentação da Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) para fazer upload de suas imagens de treinamento. Crie tags relevantes dependendo dos tipos de objetos que deseja detectar. 1. Siga a [seção Fazer upload e marcar imagens do guia rápido de construção de um detector de objetos na documentação da Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) para fazer upload de suas imagens de treinamento. Crie tags relevantes dependendo dos tipos de objetos que deseja detectar.
![Os diálogos de upload mostrando o upload de imagens de bananas maduras e não maduras](../../../../../translated_images/br/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png) ![Os diálogos de upload mostrando o upload de imagens de bananas maduras e não maduras](../../../../../translated_images/pt-BR/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.png)
Ao desenhar caixas delimitadoras para os objetos, mantenha-as bem ajustadas ao redor do objeto. Pode levar algum tempo para marcar todas as imagens, mas a ferramenta detectará o que acredita serem as caixas delimitadoras, tornando o processo mais rápido. Ao desenhar caixas delimitadoras para os objetos, mantenha-as bem ajustadas ao redor do objeto. Pode levar algum tempo para marcar todas as imagens, mas a ferramenta detectará o que acredita serem as caixas delimitadoras, tornando o processo mais rápido.
![Marcando um extrato de tomate](../../../../../translated_images/br/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png) ![Marcando um extrato de tomate](../../../../../translated_images/pt-BR/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.png)
> 💁 Se você tiver mais de 15 imagens para cada objeto, pode treinar após 15 e usar o recurso **Tags sugeridas**. Isso usará o modelo treinado para detectar os objetos na imagem não marcada. Você pode então confirmar os objetos detectados ou rejeitar e redesenhar as caixas delimitadoras. Isso pode economizar *muito* tempo. > 💁 Se você tiver mais de 15 imagens para cada objeto, pode treinar após 15 e usar o recurso **Tags sugeridas**. Isso usará o modelo treinado para detectar os objetos na imagem não marcada. Você pode então confirmar os objetos detectados ou rejeitar e redesenhar as caixas delimitadoras. Isso pode economizar *muito* tempo.
@ -164,7 +164,7 @@ Depois que seu detector de objetos for treinado, você poderá testá-lo fornece
1. Use o botão **Teste Rápido** para fazer upload de imagens de teste e verificar se os objetos são detectados. Use as imagens de teste que você criou anteriormente, não as imagens usadas para treinamento. 1. Use o botão **Teste Rápido** para fazer upload de imagens de teste e verificar se os objetos são detectados. Use as imagens de teste que você criou anteriormente, não as imagens usadas para treinamento.
![3 latas de extrato de tomate detectadas com probabilidades de 38%, 35,5% e 34,6%](../../../../../translated_images/br/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png) ![3 latas de extrato de tomate detectadas com probabilidades de 38%, 35,5% e 34,6%](../../../../../translated_images/pt-BR/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.png)
1. Teste todas as imagens de teste que você tiver e observe as probabilidades. 1. Teste todas as imagens de teste que você tiver e observe as probabilidades.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Verificar estoque com um dispositivo IoT # Verificar estoque com um dispositivo IoT
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -39,7 +39,7 @@ Detectores de objetos podem ser usados para verificar estoque, seja contando ite
Por exemplo, se uma câmera estiver apontada para uma prateleira que pode conter 8 latas de extrato de tomate, e um detector de objetos identificar apenas 7 latas, então uma está faltando e precisa ser reabastecida. Por exemplo, se uma câmera estiver apontada para uma prateleira que pode conter 8 latas de extrato de tomate, e um detector de objetos identificar apenas 7 latas, então uma está faltando e precisa ser reabastecida.
![7 latas de extrato de tomate em uma prateleira, 4 na fileira superior, 3 na inferior](../../../../../translated_images/br/stock-7-cans-tomato-paste.f86059cc573d7bec.webp) ![7 latas de extrato de tomate em uma prateleira, 4 na fileira superior, 3 na inferior](../../../../../translated_images/pt-BR/stock-7-cans-tomato-paste.f86059cc573d7bec.webp)
Na imagem acima, um detector de objetos identificou 7 latas de extrato de tomate em uma prateleira que pode conter 8 latas. O dispositivo IoT não apenas pode enviar uma notificação sobre a necessidade de reabastecimento, mas também pode indicar a localização do item faltante, um dado importante se você estiver usando robôs para reabastecer prateleiras. Na imagem acima, um detector de objetos identificou 7 latas de extrato de tomate em uma prateleira que pode conter 8 latas. O dispositivo IoT não apenas pode enviar uma notificação sobre a necessidade de reabastecimento, mas também pode indicar a localização do item faltante, um dado importante se você estiver usando robôs para reabastecer prateleiras.
@ -51,7 +51,7 @@ Na imagem acima, um detector de objetos identificou 7 latas de extrato de tomate
A detecção de objetos pode ser usada para identificar itens inesperados, alertando um humano ou robô para devolver o item assim que for detectado. A detecção de objetos pode ser usada para identificar itens inesperados, alertando um humano ou robô para devolver o item assim que for detectado.
![Uma lata de milho em conserva fora do lugar na prateleira de extrato de tomate](../../../../../translated_images/br/stock-rogue-corn.be1f3ada8c457854.webp) ![Uma lata de milho em conserva fora do lugar na prateleira de extrato de tomate](../../../../../translated_images/pt-BR/stock-rogue-corn.be1f3ada8c457854.webp)
Na imagem acima, uma lata de milho em conserva foi colocada na prateleira ao lado do extrato de tomate. O detector de objetos identificou isso, permitindo que o dispositivo IoT notificasse um humano ou robô para devolver a lata ao local correto. Na imagem acima, uma lata de milho em conserva foi colocada na prateleira ao lado do extrato de tomate. O detector de objetos identificou isso, permitindo que o dispositivo IoT notificasse um humano ou robô para devolver a lata ao local correto.
@ -71,7 +71,7 @@ As iterações são publicadas no portal Custom Vision.
1. Clique no botão **Publish** para a iteração. 1. Clique no botão **Publish** para a iteração.
![O botão de publicação](../../../../../translated_images/br/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png) ![O botão de publicação](../../../../../translated_images/pt-BR/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.png)
1. No diálogo *Publish Model*, configure o *Prediction resource* para o recurso `stock-detector-prediction` que você criou na última lição. Mantenha o nome como `Iteration2` e clique no botão **Publish**. 1. No diálogo *Publish Model*, configure o *Prediction resource* para o recurso `stock-detector-prediction` que você criou na última lição. Mantenha o nome como `Iteration2` e clique no botão **Publish**.
@ -85,7 +85,7 @@ As iterações são publicadas no portal Custom Vision.
Também copie o valor de *Prediction-Key*. Esta é uma chave segura que você deve passar ao chamar o modelo. Apenas aplicativos que fornecem essa chave podem usar o modelo; qualquer outro será rejeitado. Também copie o valor de *Prediction-Key*. Esta é uma chave segura que você deve passar ao chamar o modelo. Apenas aplicativos que fornecem essa chave podem usar o modelo; qualquer outro será rejeitado.
![O diálogo da API de previsão mostrando o URL e a chave](../../../../../translated_images/br/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png) ![O diálogo da API de previsão mostrando o URL e a chave](../../../../../translated_images/pt-BR/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.png)
✅ Quando uma nova iteração é publicada, ela terá um nome diferente. Como você acha que poderia alterar a iteração que um dispositivo IoT está usando? ✅ Quando uma nova iteração é publicada, ela terá um nome diferente. Como você acha que poderia alterar a iteração que um dispositivo IoT está usando?
@ -104,7 +104,7 @@ Ao usar o detector de objetos, você não apenas recebe os objetos detectados co
Os resultados de uma previsão na aba **Predictions** do Custom Vision têm as caixas delimitadoras desenhadas na imagem enviada para previsão. Os resultados de uma previsão na aba **Predictions** do Custom Vision têm as caixas delimitadoras desenhadas na imagem enviada para previsão.
![4 latas de extrato de tomate em uma prateleira com previsões para as 4 detecções de 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/br/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) ![4 latas de extrato de tomate em uma prateleira com previsões para as 4 detecções de 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/pt-BR/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png)
Na imagem acima, 4 latas de extrato de tomate foram detectadas. Nos resultados, um quadrado vermelho é sobreposto para cada objeto detectado na imagem, indicando a caixa delimitadora. Na imagem acima, 4 latas de extrato de tomate foram detectadas. Nos resultados, um quadrado vermelho é sobreposto para cada objeto detectado na imagem, indicando a caixa delimitadora.
@ -112,7 +112,7 @@ Na imagem acima, 4 latas de extrato de tomate foram detectadas. Nos resultados,
As caixas delimitadoras são definidas com 4 valores - topo, esquerda, altura e largura. Esses valores estão em uma escala de 0-1, representando as posições como uma porcentagem do tamanho da imagem. A origem (posição 0,0) é o canto superior esquerdo da imagem, então o valor de topo é a distância do topo, e o fundo da caixa delimitadora é o topo mais a altura. As caixas delimitadoras são definidas com 4 valores - topo, esquerda, altura e largura. Esses valores estão em uma escala de 0-1, representando as posições como uma porcentagem do tamanho da imagem. A origem (posição 0,0) é o canto superior esquerdo da imagem, então o valor de topo é a distância do topo, e o fundo da caixa delimitadora é o topo mais a altura.
![Uma caixa delimitadora ao redor de uma lata de extrato de tomate](../../../../../translated_images/br/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png) ![Uma caixa delimitadora ao redor de uma lata de extrato de tomate](../../../../../translated_images/pt-BR/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.png)
A imagem acima tem 600 pixels de largura e 800 pixels de altura. A caixa delimitadora começa a 320 pixels abaixo, dando um valor de topo de 0.4 (800 x 0.4 = 320). Da esquerda, a caixa começa a 240 pixels, dando um valor de esquerda de 0.4 (600 x 0.4 = 240). A altura da caixa é de 240 pixels, dando um valor de altura de 0.3 (800 x 0.3 = 240). A largura da caixa é de 120 pixels, dando um valor de largura de 0.2 (600 x 0.2 = 120). A imagem acima tem 600 pixels de largura e 800 pixels de altura. A caixa delimitadora começa a 320 pixels abaixo, dando um valor de topo de 0.4 (800 x 0.4 = 320). Da esquerda, a caixa começa a 240 pixels, dando um valor de esquerda de 0.4 (600 x 0.4 = 240). A altura da caixa é de 240 pixels, dando um valor de altura de 0.3 (800 x 0.3 = 240). A largura da caixa é de 120 pixels, dando um valor de largura de 0.2 (600 x 0.2 = 120).
@ -127,7 +127,7 @@ Usar valores percentuais de 0-1 significa que, independentemente do tamanho da i
Você pode usar caixas delimitadoras combinadas com probabilidades para avaliar a precisão de uma detecção. Por exemplo, um detector de objetos pode identificar múltiplos objetos que se sobrepõem, como detectar uma lata dentro de outra. Seu código pode analisar as caixas delimitadoras, entender que isso é impossível e ignorar quaisquer objetos que tenham uma sobreposição significativa com outros. Você pode usar caixas delimitadoras combinadas com probabilidades para avaliar a precisão de uma detecção. Por exemplo, um detector de objetos pode identificar múltiplos objetos que se sobrepõem, como detectar uma lata dentro de outra. Seu código pode analisar as caixas delimitadoras, entender que isso é impossível e ignorar quaisquer objetos que tenham uma sobreposição significativa com outros.
![Duas caixas delimitadoras sobrepondo uma lata de extrato de tomate](../../../../../translated_images/br/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png) ![Duas caixas delimitadoras sobrepondo uma lata de extrato de tomate](../../../../../translated_images/pt-BR/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.png)
No exemplo acima, uma caixa delimitadora indicou uma lata de extrato de tomate com 78.3% de probabilidade. Uma segunda caixa delimitadora é ligeiramente menor e está dentro da primeira, com uma probabilidade de 64.3%. Seu código pode verificar as caixas delimitadoras, ver que elas se sobrepõem completamente e ignorar a probabilidade menor, já que não há como uma lata estar dentro de outra. No exemplo acima, uma caixa delimitadora indicou uma lata de extrato de tomate com 78.3% de probabilidade. Uma segunda caixa delimitadora é ligeiramente menor e está dentro da primeira, com uma probabilidade de 64.3%. Seu código pode verificar as caixas delimitadoras, ver que elas se sobrepõem completamente e ignorar a probabilidade menor, já que não há como uma lata estar dentro de outra.

@ -81,7 +81,7 @@ Como uma etapa útil de depuração, você pode não apenas imprimir as caixas d
1. Execute o aplicativo com a câmera apontada para algum estoque em uma prateleira. Você verá o arquivo `image.jpg` no explorador do VS Code e poderá selecioná-lo para visualizar as caixas delimitadoras. 1. Execute o aplicativo com a câmera apontada para algum estoque em uma prateleira. Você verá o arquivo `image.jpg` no explorador do VS Code e poderá selecioná-lo para visualizar as caixas delimitadoras.
![4 latas de extrato de tomate com caixas delimitadoras ao redor de cada lata](../../../../../translated_images/br/rpi-stock-with-bounding-boxes.b5540e2ecb7cd49f.webp) ![4 latas de extrato de tomate com caixas delimitadoras ao redor de cada lata](../../../../../translated_images/pt-BR/rpi-stock-with-bounding-boxes.b5540e2ecb7cd49f.webp)
## Contar estoque ## Contar estoque

@ -76,7 +76,7 @@ O código que você usou para classificar imagens é muito semelhante ao código
Você poderá ver a imagem que foi capturada e esses valores na aba **Predictions** no Custom Vision. Você poderá ver a imagem que foi capturada e esses valores na aba **Predictions** no Custom Vision.
![4 latas de extrato de tomate em uma prateleira com previsões para as 4 detecções de 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/br/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) ![4 latas de extrato de tomate em uma prateleira com previsões para as 4 detecções de 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/pt-BR/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png)
> 💁 Você pode encontrar este código na pasta [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) ou [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device). > 💁 Você pode encontrar este código na pasta [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) ou [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device).

@ -13,7 +13,7 @@ Uma combinação de previsões e suas caixas delimitadoras pode ser usada para c
## Contar estoque ## Contar estoque
![4 latas de extrato de tomate com caixas delimitadoras ao redor de cada lata](../../../../../translated_images/br/rpi-stock-with-bounding-boxes.b5540e2ecb7cd49f.webp) ![4 latas de extrato de tomate com caixas delimitadoras ao redor de cada lata](../../../../../translated_images/pt-BR/rpi-stock-with-bounding-boxes.b5540e2ecb7cd49f.webp)
Na imagem mostrada acima, as caixas delimitadoras têm uma pequena sobreposição. Se essa sobreposição fosse muito maior, as caixas delimitadoras poderiam indicar o mesmo objeto. Para contar os objetos corretamente, você precisa ignorar caixas com uma sobreposição significativa. Na imagem mostrada acima, as caixas delimitadoras têm uma pequena sobreposição. Se essa sobreposição fosse muito maior, as caixas delimitadoras poderiam indicar o mesmo objeto. Para contar os objetos corretamente, você precisa ignorar caixas com uma sobreposição significativa.

@ -104,7 +104,7 @@ O código que você usou para classificar imagens é muito semelhante ao código
Você poderá ver a imagem que foi capturada e esses valores na aba **Predictions** no Custom Vision. Você poderá ver a imagem que foi capturada e esses valores na aba **Predictions** no Custom Vision.
![4 latas de extrato de tomate em uma prateleira com previsões para as 4 detecções de 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/br/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png) ![4 latas de extrato de tomate em uma prateleira com previsões para as 4 detecções de 35.8%, 33.5%, 25.7% e 16.6%](../../../../../translated_images/pt-BR/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.png)
> 💁 Você pode encontrar este código na pasta [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal). > 💁 Você pode encontrar este código na pasta [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal).

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Reconheça fala com um dispositivo IoT # Reconheça fala com um dispositivo IoT
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-21.e34de51354d6606fb5ee08d8c89d0222eea0a2a7aaf744a8805ae847c4f69dc4.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -60,19 +60,19 @@ Microfones vêm em uma variedade de tipos:
Microfones dinâmicos não precisam de energia para funcionar, o sinal elétrico é gerado inteiramente pelo microfone. Microfones dinâmicos não precisam de energia para funcionar, o sinal elétrico é gerado inteiramente pelo microfone.
![Patti Smith cantando em um microfone Shure SM58 (tipo dinâmico cardioide)](../../../../../translated_images/br/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg) ![Patti Smith cantando em um microfone Shure SM58 (tipo dinâmico cardioide)](../../../../../translated_images/pt-BR/dynamic-mic.8babac890a2d80dfb0874b5bf37d4b851fe2aeb9da6fd72945746176978bf3bb.jpg)
* Fita - Microfones de fita são semelhantes aos microfones dinâmicos, exceto que possuem uma fita de metal em vez de um diafragma. Essa fita se move em um campo magnético, gerando uma corrente elétrica. Assim como os microfones dinâmicos, os microfones de fita não precisam de energia para funcionar. * Fita - Microfones de fita são semelhantes aos microfones dinâmicos, exceto que possuem uma fita de metal em vez de um diafragma. Essa fita se move em um campo magnético, gerando uma corrente elétrica. Assim como os microfones dinâmicos, os microfones de fita não precisam de energia para funcionar.
![Edmund Lowe, ator americano, em pé ao lado de um microfone de rádio (etiquetado para a rede Blue da NBC), segurando um roteiro, 1942](../../../../../translated_images/br/ribbon-mic.eacc8e092c7441ca.webp) ![Edmund Lowe, ator americano, em pé ao lado de um microfone de rádio (etiquetado para a rede Blue da NBC), segurando um roteiro, 1942](../../../../../translated_images/pt-BR/ribbon-mic.eacc8e092c7441ca.webp)
* Condensador - Microfones condensadores possuem um diafragma de metal fino e uma placa traseira de metal fixa. Eletricidade é aplicada a ambos, e à medida que o diafragma vibra, a carga estática entre as placas muda, gerando um sinal. Microfones condensadores precisam de energia para funcionar - chamada de *Phantom power*. * Condensador - Microfones condensadores possuem um diafragma de metal fino e uma placa traseira de metal fixa. Eletricidade é aplicada a ambos, e à medida que o diafragma vibra, a carga estática entre as placas muda, gerando um sinal. Microfones condensadores precisam de energia para funcionar - chamada de *Phantom power*.
![Microfone condensador de pequeno diafragma C451B da AKG Acoustics](../../../../../translated_images/br/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg) ![Microfone condensador de pequeno diafragma C451B da AKG Acoustics](../../../../../translated_images/pt-BR/condenser-mic.6f6ed5b76ca19e0ec3fd0c544601542d4479a6cb7565db336de49fbbf69f623e.jpg)
* MEMS - Microfones de sistemas microeletromecânicos, ou MEMS, são microfones em um chip. Eles possuem um diafragma sensível à pressão gravado em um chip de silício e funcionam de maneira semelhante a um microfone condensador. Esses microfones podem ser minúsculos e integrados em circuitos. * MEMS - Microfones de sistemas microeletromecânicos, ou MEMS, são microfones em um chip. Eles possuem um diafragma sensível à pressão gravado em um chip de silício e funcionam de maneira semelhante a um microfone condensador. Esses microfones podem ser minúsculos e integrados em circuitos.
![Um microfone MEMS em uma placa de circuito](../../../../../translated_images/br/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png) ![Um microfone MEMS em uma placa de circuito](../../../../../translated_images/pt-BR/mems-microphone.80574019e1f5e4d9ee72fed720ecd25a39fc2969c91355d17ebb24ba4159e4c4.png)
Na imagem acima, o chip rotulado como **LEFT** é um microfone MEMS, com um diafragma minúsculo de menos de um milímetro de largura. Na imagem acima, o chip rotulado como **LEFT** é um microfone MEMS, com um diafragma minúsculo de menos de um milímetro de largura.
@ -84,7 +84,7 @@ O áudio é um sinal analógico que carrega informações muito detalhadas. Para
> 🎓 Amostragem é o processo de converter o sinal de áudio em um valor digital que representa o sinal naquele momento específico. > 🎓 Amostragem é o processo de converter o sinal de áudio em um valor digital que representa o sinal naquele momento específico.
![Um gráfico de linha mostrando um sinal, com pontos discretos em intervalos fixos](../../../../../translated_images/br/sampling.6f4fadb3f2d9dfe7.webp) ![Um gráfico de linha mostrando um sinal, com pontos discretos em intervalos fixos](../../../../../translated_images/pt-BR/sampling.6f4fadb3f2d9dfe7.webp)
O áudio digital é amostrado usando Modulação por Código de Pulso, ou PCM. PCM envolve a leitura da voltagem do sinal e a seleção do valor discreto mais próximo dessa voltagem usando um tamanho definido. O áudio digital é amostrado usando Modulação por Código de Pulso, ou PCM. PCM envolve a leitura da voltagem do sinal e a seleção do valor discreto mais próximo dessa voltagem usando um tamanho definido.
@ -168,7 +168,7 @@ Para evitar a complexidade de treinar e usar um modelo de palavra de ativação,
## Converter fala em texto ## Converter fala em texto
![Logotipo dos serviços de fala](../../../../../translated_images/br/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) ![Logotipo dos serviços de fala](../../../../../translated_images/pt-BR/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png)
Assim como na classificação de imagens em um projeto anterior, existem serviços de IA pré-construídos que podem pegar fala como um arquivo de áudio e convertê-la em texto. Um desses serviços é o Speech Service, parte dos Cognitive Services, serviços de IA pré-construídos que você pode usar em seus aplicativos. Assim como na classificação de imagens em um projeto anterior, existem serviços de IA pré-construídos que podem pegar fala como um arquivo de áudio e convertê-la em texto. Um desses serviços é o Speech Service, parte dos Cognitive Services, serviços de IA pré-construídos que você pode usar em seus aplicativos.

@ -25,13 +25,13 @@ O botão pode ser conectado ao Grove Base Hat.
#### Tarefa - conectar o botão #### Tarefa - conectar o botão
![Um botão Grove](../../../../../translated_images/br/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png) ![Um botão Grove](../../../../../translated_images/pt-BR/grove-button.a70cfbb809a8563681003250cf5b06d68cdcc68624f9e2f493d5a534ae2da1e5.png)
1. Insira uma extremidade de um cabo Grove no soquete do módulo do botão. Ele só encaixará de uma maneira. 1. Insira uma extremidade de um cabo Grove no soquete do módulo do botão. Ele só encaixará de uma maneira.
1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao soquete digital marcado como **D5** no Grove Base Hat conectado ao Pi. Este soquete é o segundo da esquerda, na fileira de soquetes ao lado dos pinos GPIO. 1. Com o Raspberry Pi desligado, conecte a outra extremidade do cabo Grove ao soquete digital marcado como **D5** no Grove Base Hat conectado ao Pi. Este soquete é o segundo da esquerda, na fileira de soquetes ao lado dos pinos GPIO.
![O botão Grove conectado ao soquete D5](../../../../../translated_images/br/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png) ![O botão Grove conectado ao soquete D5](../../../../../translated_images/pt-BR/pi-button.c7a1a4f55943341ce1baf1057658e9a205804d4131d258e820c93f951df0abf3.png)
## Capturar áudio ## Capturar áudio

@ -43,7 +43,7 @@ O microfone e os alto-falantes precisam ser conectados e configurados.
1. Se você estiver usando o ReSpeaker 2-Mics Pi HAT, pode remover o Grove base hat e encaixar o ReSpeaker hat no lugar. 1. Se você estiver usando o ReSpeaker 2-Mics Pi HAT, pode remover o Grove base hat e encaixar o ReSpeaker hat no lugar.
![Um Raspberry Pi com um ReSpeaker hat](../../../../../translated_images/br/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png) ![Um Raspberry Pi com um ReSpeaker hat](../../../../../translated_images/pt-BR/pi-respeaker-hat.f00fabe7dd039a93e2e0aa0fc946c9af0c6a9eb17c32fa1ca097fb4e384f69f0.png)
Você precisará de um botão Grove mais tarde nesta lição, mas um já está embutido neste hat, então o Grove base hat não é necessário. Você precisará de um botão Grove mais tarde nesta lição, mas um já está embutido neste hat, então o Grove base hat não é necessário.

@ -19,7 +19,7 @@ O microfone embutido captura um sinal analógico, que é convertido em um sinal
✅ Leia mais sobre DMA na [página de acesso direto à memória na Wikipedia](https://wikipedia.org/wiki/Direct_memory_access). ✅ Leia mais sobre DMA na [página de acesso direto à memória na Wikipedia](https://wikipedia.org/wiki/Direct_memory_access).
![O áudio do microfone vai para um ADC e depois para o DMAC. Este escreve em um buffer. Quando este buffer está cheio, ele é processado e o DMAC escreve em um segundo buffer](../../../../../translated_images/br/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png) ![O áudio do microfone vai para um ADC e depois para o DMAC. Este escreve em um buffer. Quando este buffer está cheio, ele é processado e o DMAC escreve em um segundo buffer](../../../../../translated_images/pt-BR/dmac-adc-buffers.4509aee49145c90bc2e1be472b8ed2ddfcb2b6a81ad3e559114aca55f5fff759.png)
O DMAC pode capturar áudio do ADC em intervalos fixos, como 16.000 vezes por segundo para áudio de 16KHz. Ele pode gravar esses dados capturados em um buffer de memória pré-alocado e, quando este estiver cheio, torná-lo disponível para o seu código processar. Usar essa memória pode atrasar a captura de áudio, mas você pode configurar múltiplos buffers. O DMAC escreve no buffer 1 e, quando este está cheio, notifica seu código para processar o buffer 1, enquanto o DMAC escreve no buffer 2. Quando o buffer 2 está cheio, ele notifica seu código e volta a escrever no buffer 1. Dessa forma, desde que você processe cada buffer em menos tempo do que leva para preencher um, você não perderá nenhum dado. O DMAC pode capturar áudio do ADC em intervalos fixos, como 16.000 vezes por segundo para áudio de 16KHz. Ele pode gravar esses dados capturados em um buffer de memória pré-alocado e, quando este estiver cheio, torná-lo disponível para o seu código processar. Usar essa memória pode atrasar a captura de áudio, mas você pode configurar múltiplos buffers. O DMAC escreve no buffer 1 e, quando este está cheio, notifica seu código para processar o buffer 1, enquanto o DMAC escreve no buffer 2. Quando o buffer 2 está cheio, ele notifica seu código e volta a escrever no buffer 1. Dessa forma, desde que você processe cada buffer em menos tempo do que leva para preencher um, você não perderá nenhum dado.

@ -15,11 +15,11 @@ Nesta parte da lição, você adicionará alto-falantes ao seu Wio Terminal. O W
O Wio Terminal já vem com um microfone embutido, que pode ser usado para capturar áudio para reconhecimento de fala. O Wio Terminal já vem com um microfone embutido, que pode ser usado para capturar áudio para reconhecimento de fala.
![O microfone no Wio Terminal](../../../../../translated_images/br/wio-mic.3f8c843dbe8ad917.webp) ![O microfone no Wio Terminal](../../../../../translated_images/pt-BR/wio-mic.3f8c843dbe8ad917.webp)
Para adicionar um alto-falante, você pode usar o [ReSpeaker 2-Mics Pi Hat](https://www.seeedstudio.com/ReSpeaker-2-Mics-Pi-HAT.html). Esta é uma placa externa que contém 2 microfones MEMS, além de um conector para alto-falante e uma entrada para fones de ouvido. Para adicionar um alto-falante, você pode usar o [ReSpeaker 2-Mics Pi Hat](https://www.seeedstudio.com/ReSpeaker-2-Mics-Pi-HAT.html). Esta é uma placa externa que contém 2 microfones MEMS, além de um conector para alto-falante e uma entrada para fones de ouvido.
![O ReSpeaker 2-Mics Pi Hat](../../../../../translated_images/br/respeaker.f5d19d1c6b14ab16.webp) ![O ReSpeaker 2-Mics Pi Hat](../../../../../translated_images/pt-BR/respeaker.f5d19d1c6b14ab16.webp)
Você precisará adicionar fones de ouvido, um alto-falante com conector de 3,5 mm ou um alto-falante com conexão JST, como o [Mono Enclosed Speaker - 2W 6 Ohm](https://www.seeedstudio.com/Mono-Enclosed-Speaker-2W-6-Ohm-p-2832.html). Você precisará adicionar fones de ouvido, um alto-falante com conector de 3,5 mm ou um alto-falante com conexão JST, como o [Mono Enclosed Speaker - 2W 6 Ohm](https://www.seeedstudio.com/Mono-Enclosed-Speaker-2W-6-Ohm-p-2832.html).
@ -35,7 +35,7 @@ Você também precisará de um cartão SD para baixar e reproduzir áudio. O Wio
Os pinos precisam ser conectados desta forma: Os pinos precisam ser conectados desta forma:
![Um diagrama de pinos](../../../../../translated_images/br/wio-respeaker-wiring-0.767f80aa65081038.webp) ![Um diagrama de pinos](../../../../../translated_images/pt-BR/wio-respeaker-wiring-0.767f80aa65081038.webp)
1. Posicione o ReSpeaker e o Wio Terminal com os soquetes GPIO voltados para cima e no lado esquerdo. 1. Posicione o ReSpeaker e o Wio Terminal com os soquetes GPIO voltados para cima e no lado esquerdo.
@ -43,33 +43,33 @@ Você também precisará de um cartão SD para baixar e reproduzir áudio. O Wio
1. Repita isso até o final dos soquetes GPIO no lado esquerdo. Certifique-se de que os pinos estejam bem encaixados. 1. Repita isso até o final dos soquetes GPIO no lado esquerdo. Certifique-se de que os pinos estejam bem encaixados.
![Um ReSpeaker com os pinos do lado esquerdo conectados aos pinos do lado esquerdo do Wio Terminal](../../../../../translated_images/br/wio-respeaker-wiring-1.8d894727f2ba2400.webp) ![Um ReSpeaker com os pinos do lado esquerdo conectados aos pinos do lado esquerdo do Wio Terminal](../../../../../translated_images/pt-BR/wio-respeaker-wiring-1.8d894727f2ba2400.webp)
![Um ReSpeaker com os pinos do lado esquerdo conectados aos pinos do lado esquerdo do Wio Terminal](../../../../../translated_images/br/wio-respeaker-wiring-2.329e1cbd306e754f.webp) ![Um ReSpeaker com os pinos do lado esquerdo conectados aos pinos do lado esquerdo do Wio Terminal](../../../../../translated_images/pt-BR/wio-respeaker-wiring-2.329e1cbd306e754f.webp)
> 💁 Se seus cabos jumper estiverem conectados em fitas, mantenha-os juntos - isso facilita garantir que todos os cabos estejam conectados na ordem correta. > 💁 Se seus cabos jumper estiverem conectados em fitas, mantenha-os juntos - isso facilita garantir que todos os cabos estejam conectados na ordem correta.
1. Repita o processo usando os soquetes GPIO do lado direito no ReSpeaker e no Wio Terminal. Esses cabos precisam passar ao redor dos cabos que já estão conectados. 1. Repita o processo usando os soquetes GPIO do lado direito no ReSpeaker e no Wio Terminal. Esses cabos precisam passar ao redor dos cabos que já estão conectados.
![Um ReSpeaker com os pinos do lado direito conectados aos pinos do lado direito do Wio Terminal](../../../../../translated_images/br/wio-respeaker-wiring-3.75b0be447e2fa930.webp) ![Um ReSpeaker com os pinos do lado direito conectados aos pinos do lado direito do Wio Terminal](../../../../../translated_images/pt-BR/wio-respeaker-wiring-3.75b0be447e2fa930.webp)
![Um ReSpeaker com os pinos do lado direito conectados aos pinos do lado direito do Wio Terminal](../../../../../translated_images/br/wio-respeaker-wiring-4.aa9cd434d8779437.webp) ![Um ReSpeaker com os pinos do lado direito conectados aos pinos do lado direito do Wio Terminal](../../../../../translated_images/pt-BR/wio-respeaker-wiring-4.aa9cd434d8779437.webp)
> 💁 Se seus cabos jumper estiverem conectados em fitas, divida-os em duas fitas. Passe uma de cada lado dos cabos já existentes. > 💁 Se seus cabos jumper estiverem conectados em fitas, divida-os em duas fitas. Passe uma de cada lado dos cabos já existentes.
> 💁 Você pode usar fita adesiva para manter os pinos em um bloco, ajudando a evitar que eles se soltem enquanto você os conecta. > 💁 Você pode usar fita adesiva para manter os pinos em um bloco, ajudando a evitar que eles se soltem enquanto você os conecta.
> >
> ![Os pinos fixados com fita adesiva](../../../../../translated_images/br/wio-respeaker-wiring-5.af117c20acf622f3.webp) > ![Os pinos fixados com fita adesiva](../../../../../translated_images/pt-BR/wio-respeaker-wiring-5.af117c20acf622f3.webp)
1. Você precisará adicionar um alto-falante. 1. Você precisará adicionar um alto-falante.
* Se estiver usando um alto-falante com cabo JST, conecte-o à porta JST no ReSpeaker. * Se estiver usando um alto-falante com cabo JST, conecte-o à porta JST no ReSpeaker.
![Um alto-falante conectado ao ReSpeaker com um cabo JST](../../../../../translated_images/br/respeaker-jst-speaker.a441d177809df945.webp) ![Um alto-falante conectado ao ReSpeaker com um cabo JST](../../../../../translated_images/pt-BR/respeaker-jst-speaker.a441d177809df945.webp)
* Se estiver usando um alto-falante com conector de 3,5 mm ou fones de ouvido, insira-o na entrada de 3,5 mm. * Se estiver usando um alto-falante com conector de 3,5 mm ou fones de ouvido, insira-o na entrada de 3,5 mm.
![Um alto-falante conectado ao ReSpeaker via entrada de 3,5 mm](../../../../../translated_images/br/respeaker-35mm-speaker.ad79ef4f128c7751.webp) ![Um alto-falante conectado ao ReSpeaker via entrada de 3,5 mm](../../../../../translated_images/pt-BR/respeaker-35mm-speaker.ad79ef4f128c7751.webp)
### Tarefa - configurar o cartão SD ### Tarefa - configurar o cartão SD
@ -79,7 +79,7 @@ Você também precisará de um cartão SD para baixar e reproduzir áudio. O Wio
1. Insira o cartão SD no slot do Wio Terminal, localizado no lado esquerdo, logo abaixo do botão de energia. Certifique-se de que o cartão esteja completamente inserido e faça um clique - você pode precisar de uma ferramenta fina ou outro cartão SD para ajudar a empurrá-lo completamente. 1. Insira o cartão SD no slot do Wio Terminal, localizado no lado esquerdo, logo abaixo do botão de energia. Certifique-se de que o cartão esteja completamente inserido e faça um clique - você pode precisar de uma ferramenta fina ou outro cartão SD para ajudar a empurrá-lo completamente.
![Inserindo o cartão SD no slot abaixo do botão de energia](../../../../../translated_images/br/wio-sd-card.acdcbe322fa4ee7f.webp) ![Inserindo o cartão SD no slot abaixo do botão de energia](../../../../../translated_images/pt-BR/wio-sd-card.acdcbe322fa4ee7f.webp)
> 💁 Para ejetar o cartão SD, você precisa empurrá-lo levemente para dentro, e ele será ejetado. Você precisará de uma ferramenta fina, como uma chave de fenda de cabeça chata ou outro cartão SD, para fazer isso. > 💁 Para ejetar o cartão SD, você precisa empurrá-lo levemente para dentro, e ele será ejetado. Você precisará de uma ferramenta fina, como uma chave de fenda de cabeça chata ou outro cartão SD, para fazer isso.

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Entenda a linguagem # Entenda a linguagem
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-22.6148ea28500d9e00c396aaa2649935fb6641362c8f03d8e5e90a676977ab01dd.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -55,7 +55,7 @@ Modelos de entendimento de linguagem são modelos de IA que são treinados para
## Criar um modelo de entendimento de linguagem ## Criar um modelo de entendimento de linguagem
![O logotipo do LUIS](../../../../../translated_images/br/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png) ![O logotipo do LUIS](../../../../../translated_images/pt-BR/luis-logo.5cb4f3e88c020ee6df4f614e8831f4a4b6809a7247bf52085fb48d629ef9be52.png)
Você pode criar modelos de entendimento de linguagem usando o LUIS, um serviço de entendimento de linguagem da Microsoft que faz parte dos Serviços Cognitivos. Você pode criar modelos de entendimento de linguagem usando o LUIS, um serviço de entendimento de linguagem da Microsoft que faz parte dos Serviços Cognitivos.
@ -126,7 +126,7 @@ Depois de definir as entidades, você cria intenções. Estas são aprendidas pe
Você então informa ao LUIS quais partes dessas frases correspondem às entidades: Você então informa ao LUIS quais partes dessas frases correspondem às entidades:
![A frase "defina um cronômetro para 1 minuto e 12 segundos" dividida em entidades](../../../../../translated_images/br/sentence-as-intent-entities.301401696f992259.webp) ![A frase "defina um cronômetro para 1 minuto e 12 segundos" dividida em entidades](../../../../../translated_images/pt-BR/sentence-as-intent-entities.301401696f992259.webp)
A frase `defina um cronômetro para 1 minuto e 12 segundos` tem a intenção de `definir cronômetro`. Ela também possui 2 entidades com 2 valores cada: A frase `defina um cronômetro para 1 minuto e 12 segundos` tem a intenção de `definir cronômetro`. Ela também possui 2 entidades com 2 valores cada:
@ -178,7 +178,7 @@ Você pode encontrar instruções para usar o portal do LUIS na [Documentação
1. Conforme você insere cada exemplo, o LUIS começará a detectar entidades e sublinhará e rotulará qualquer uma que encontrar. 1. Conforme você insere cada exemplo, o LUIS começará a detectar entidades e sublinhará e rotulará qualquer uma que encontrar.
![Os exemplos com os números e unidades de tempo sublinhados pelo LUIS](../../../../../translated_images/br/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png) ![Os exemplos com os números e unidades de tempo sublinhados pelo LUIS](../../../../../translated_images/pt-BR/luis-intent-examples.25716580b2d2723cf1bafdf277d015c7f046d8cfa20f27bddf3a0873ec45fab7.png)
### Tarefa - treinar e testar o modelo ### Tarefa - treinar e testar o modelo

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Configure um temporizador e forneça feedback falado # Configure um temporizador e forneça feedback falado
![Uma visão geral em sketchnote desta lição](../../../../../translated_images/br/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg) ![Uma visão geral em sketchnote desta lição](../../../../../translated_images/pt-BR/lesson-23.f38483e1d4df4828990d3f02d60e46c978b075d384ae7cb4f7bab738e107c850.jpg)
> Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -37,7 +37,7 @@ Nesta lição, abordaremos:
Texto para fala, como o nome sugere, é o processo de converter texto em áudio que contém as palavras faladas. O princípio básico é decompor as palavras do texto em seus sons constituintes (conhecidos como fonemas) e juntar áudios desses sons, seja usando gravações pré-existentes ou áudios gerados por modelos de IA. Texto para fala, como o nome sugere, é o processo de converter texto em áudio que contém as palavras faladas. O princípio básico é decompor as palavras do texto em seus sons constituintes (conhecidos como fonemas) e juntar áudios desses sons, seja usando gravações pré-existentes ou áudios gerados por modelos de IA.
![As três etapas dos sistemas típicos de texto para fala](../../../../../translated_images/br/tts-overview.193843cf3f5ee09f.webp) ![As três etapas dos sistemas típicos de texto para fala](../../../../../translated_images/pt-BR/tts-overview.193843cf3f5ee09f.webp)
Os sistemas de texto para fala geralmente têm 3 etapas: Os sistemas de texto para fala geralmente têm 3 etapas:

@ -9,7 +9,7 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
# Suporte a múltiplos idiomas # Suporte a múltiplos idiomas
![Uma visão geral ilustrada desta lição](../../../../../translated_images/br/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg) ![Uma visão geral ilustrada desta lição](../../../../../translated_images/pt-BR/lesson-24.4246968ed058510ab275052e87ef9aa89c7b2f938915d103c605c04dc6cd5bb7.jpg)
> Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Ilustração por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.
@ -83,7 +83,7 @@ Existem vários serviços de IA que podem ser usados em seus aplicativos para tr
### Serviço de fala dos serviços cognitivos ### Serviço de fala dos serviços cognitivos
![O logotipo do serviço de fala](../../../../../translated_images/br/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png) ![O logotipo do serviço de fala](../../../../../translated_images/pt-BR/azure-speech-logo.a1f08c4befb0159f2cb5d692d3baf5b599e7b44759d316da907bda1508f46a4a.png)
O serviço de fala que você tem usado nas últimas lições possui capacidades de tradução para reconhecimento de fala. Quando você reconhece fala, pode solicitar não apenas o texto da fala no mesmo idioma, mas também em outros idiomas. O serviço de fala que você tem usado nas últimas lições possui capacidades de tradução para reconhecimento de fala. Quando você reconhece fala, pode solicitar não apenas o texto da fala no mesmo idioma, mas também em outros idiomas.
@ -91,7 +91,7 @@ O serviço de fala que você tem usado nas últimas lições possui capacidades
### Serviço de tradutor dos serviços cognitivos ### Serviço de tradutor dos serviços cognitivos
![O logotipo do serviço de tradutor](../../../../../translated_images/br/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png) ![O logotipo do serviço de tradutor](../../../../../translated_images/pt-BR/azure-translator-logo.c6ed3a4a433edfd2f11577eca105412c50b8396b194cbbd730723dd1d0793bcd.png)
O serviço de tradutor é um serviço dedicado de tradução que pode traduzir texto de um idioma para um ou mais idiomas de destino. Além de traduzir, ele suporta uma ampla gama de recursos extras, incluindo mascaramento de palavrões. Ele também permite que você forneça uma tradução específica para uma palavra ou frase, para trabalhar com termos que você não deseja traduzir ou que possuem uma tradução bem conhecida. O serviço de tradutor é um serviço dedicado de tradução que pode traduzir texto de um idioma para um ou mais idiomas de destino. Além de traduzir, ele suporta uma ampla gama de recursos extras, incluindo mascaramento de palavrões. Ele também permite que você forneça uma tradução específica para uma palavra ou frase, para trabalhar com termos que você não deseja traduzir ou que possuem uma tradução bem conhecida.
@ -130,7 +130,7 @@ Para esta lição, você precisará de um recurso de tradutor. Você usará a AP
Em um mundo ideal, todo o seu aplicativo deveria entender o maior número possível de idiomas diferentes, desde ouvir a fala até compreender a linguagem e responder com fala. Isso dá muito trabalho, então os serviços de tradução podem acelerar o tempo de entrega do seu aplicativo. Em um mundo ideal, todo o seu aplicativo deveria entender o maior número possível de idiomas diferentes, desde ouvir a fala até compreender a linguagem e responder com fala. Isso dá muito trabalho, então os serviços de tradução podem acelerar o tempo de entrega do seu aplicativo.
![Uma arquitetura de cronômetro inteligente traduzindo japonês para inglês, processando em inglês e depois traduzindo de volta para japonês](../../../../../translated_images/br/translated-smart-timer.08ac20057fdc5c37.webp) ![Uma arquitetura de cronômetro inteligente traduzindo japonês para inglês, processando em inglês e depois traduzindo de volta para japonês](../../../../../translated_images/pt-BR/translated-smart-timer.08ac20057fdc5c37.webp)
Imagine que você está construindo um cronômetro inteligente que usa inglês de ponta a ponta, entendendo inglês falado e convertendo isso em texto, executando a compreensão de linguagem em inglês, criando respostas em inglês e respondendo com fala em inglês. Se você quisesse adicionar suporte ao japonês, poderia começar traduzindo japonês falado para texto em inglês, mantendo o núcleo do aplicativo o mesmo, e depois traduzir o texto da resposta para japonês antes de falar a resposta. Isso permitiria adicionar suporte ao japonês rapidamente, e você poderia expandir para fornecer suporte completo de ponta a ponta em japonês mais tarde. Imagine que você está construindo um cronômetro inteligente que usa inglês de ponta a ponta, entendendo inglês falado e convertendo isso em texto, executando a compreensão de linguagem em inglês, criando respostas em inglês e respondendo com fala em inglês. Se você quisesse adicionar suporte ao japonês, poderia começar traduzindo japonês falado para texto em inglês, mantendo o núcleo do aplicativo o mesmo, e depois traduzir o texto da resposta para japonês antes de falar a resposta. Isso permitiria adicionar suporte ao japonês rapidamente, e você poderia expandir para fornecer suporte completo de ponta a ponta em japonês mais tarde.

@ -34,7 +34,7 @@ A API REST do serviço de fala não suporta traduções diretas. Em vez disso, v
> >
> Por exemplo, se você treinar o LUIS em inglês, mas quiser usar francês como idioma do usuário, pode traduzir frases como "set a 2 minute and 27 second timer" do inglês para o francês usando o Bing Translate e, em seguida, usar o botão **Ouvir tradução** para falar a tradução no seu microfone. > Por exemplo, se você treinar o LUIS em inglês, mas quiser usar francês como idioma do usuário, pode traduzir frases como "set a 2 minute and 27 second timer" do inglês para o francês usando o Bing Translate e, em seguida, usar o botão **Ouvir tradução** para falar a tradução no seu microfone.
> >
> ![O botão ouvir tradução no Bing Translate](../../../../../translated_images/br/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) > ![O botão ouvir tradução no Bing Translate](../../../../../translated_images/pt-BR/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png)
1. Adicione a chave da API do tradutor abaixo da `speech_api_key`: 1. Adicione a chave da API do tradutor abaixo da `speech_api_key`:

@ -46,7 +46,7 @@ O serviço de fala pode pegar uma fala e não apenas convertê-la em texto no me
> >
> Por exemplo, se você treinar o LUIS em inglês, mas quiser usar francês como idioma do usuário, pode traduzir frases como "set a 2 minute and 27 second timer" de inglês para francês usando o Bing Translate, e depois usar o botão **Ouvir tradução** para falar a tradução no seu microfone. > Por exemplo, se você treinar o LUIS em inglês, mas quiser usar francês como idioma do usuário, pode traduzir frases como "set a 2 minute and 27 second timer" de inglês para francês usando o Bing Translate, e depois usar o botão **Ouvir tradução** para falar a tradução no seu microfone.
> >
> ![O botão ouvir tradução no Bing Translate](../../../../../translated_images/br/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) > ![O botão ouvir tradução no Bing Translate](../../../../../translated_images/pt-BR/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png)
1. Substitua as declarações `recognizer_config` e `recognizer` pelo seguinte: 1. Substitua as declarações `recognizer_config` e `recognizer` pelo seguinte:

@ -114,7 +114,7 @@ A API REST do serviço de fala não suporta traduções diretas. Em vez disso, v
> >
> Por exemplo, se você treinar o LUIS em inglês, mas quiser usar francês como idioma do usuário, pode traduzir frases como "set a 2 minute and 27 second timer" do inglês para o francês usando o Bing Translate e, em seguida, usar o botão **Ouvir tradução** para falar a tradução no seu microfone. > Por exemplo, se você treinar o LUIS em inglês, mas quiser usar francês como idioma do usuário, pode traduzir frases como "set a 2 minute and 27 second timer" do inglês para o francês usando o Bing Translate e, em seguida, usar o botão **Ouvir tradução** para falar a tradução no seu microfone.
> >
> ![O botão ouvir tradução no Bing Translate](../../../../../translated_images/br/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png) > ![O botão ouvir tradução no Bing Translate](../../../../../translated_images/pt-BR/bing-translate.348aa796d6efe2a92f41ea74a5cf42bb4c63d6faaa08e7f46924e072a35daa48.png)
1. Adicione a chave da API do Translator e a localização abaixo de `SPEECH_LOCATION`: 1. Adicione a chave da API do Translator e a localização abaixo de `SPEECH_LOCATION`:

@ -57,7 +57,7 @@ Os Defensores da Nuvem Azure da Microsoft têm o prazer de oferecer um currícul
Os projetos cobrem a jornada da comida da fazenda à mesa. Isso inclui agricultura, logística, manufatura, varejo e consumidor — todas áreas populares da indústria para dispositivos IoT. Os projetos cobrem a jornada da comida da fazenda à mesa. Isso inclui agricultura, logística, manufatura, varejo e consumidor — todas áreas populares da indústria para dispositivos IoT.
![Um mapa do curso mostrando 24 lições cobrindo introdução, agricultura, transporte, processamento, varejo e cozinha](../../translated_images/br/Roadmap.bb1dec285dda0eda.webp) ![Um mapa do curso mostrando 24 lições cobrindo introdução, agricultura, transporte, processamento, varejo e cozinha](../../translated_images/pt-BR/Roadmap.bb1dec285dda0eda.webp)
> Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior. > Sketchnote por [Nitya Narasimhan](https://github.com/nitya). Clique na imagem para uma versão maior.

@ -21,7 +21,7 @@ Você também precisará de alguns itens não técnicos, como terra ou uma plant
## Compre os kits ## Compre os kits
![O logotipo da Seeed Studios](../../translated_images/br/seeed-logo.74732b6b482b6e8e.webp) ![O logotipo da Seeed Studios](../../translated_images/pt-BR/seeed-logo.74732b6b482b6e8e.webp)
A Seeed Studios gentilmente disponibilizou todo o hardware em kits fáceis de adquirir: A Seeed Studios gentilmente disponibilizou todo o hardware em kits fáceis de adquirir:
@ -29,13 +29,13 @@ A Seeed Studios gentilmente disponibilizou todo o hardware em kits fáceis de ad
**[IoT para iniciantes com Seeed e Microsoft - Kit Inicial Wio Terminal](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Wio-Terminal-Starter-Kit-p-5006.html)** **[IoT para iniciantes com Seeed e Microsoft - Kit Inicial Wio Terminal](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Wio-Terminal-Starter-Kit-p-5006.html)**
[![O kit de hardware Wio Terminal](../../translated_images/br/wio-hardware-kit.4c70c48b85e4283a.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Wio-Terminal-Starter-Kit-p-5006.html) [![O kit de hardware Wio Terminal](../../translated_images/pt-BR/wio-hardware-kit.4c70c48b85e4283a.webp)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Wio-Terminal-Starter-Kit-p-5006.html)
### Raspberry Pi ### Raspberry Pi
**[IoT para iniciantes com Seeed e Microsoft - Kit Inicial Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)** **[IoT para iniciantes com Seeed e Microsoft - Kit Inicial Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)**
[![O kit de hardware Raspberry Pi Terminal](../../translated_images/br/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html) [![O kit de hardware Raspberry Pi Terminal](../../translated_images/pt-BR/pi-hardware-kit.26dbadaedb7dd44c73b0131d5d68ea29472ed0a9744f90d5866c6d82f2d16380.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)
## Arduino ## Arduino

@ -0,0 +1,830 @@
{
"1-getting-started/README.md": {
"original_hash": "e2b1b891b08ef7633d285547fbe73290",
"translation_date": "2025-08-28T19:49:42+00:00",
"source_file": "1-getting-started/README.md",
"language_code": "en"
},
"1-getting-started/lessons/1-introduction-to-iot/README.md": {
"original_hash": "9bae08314d8487cb76ddf3d8797e1544",
"translation_date": "2025-08-28T19:59:08+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/README.md",
"language_code": "en"
},
"1-getting-started/lessons/1-introduction-to-iot/assignment.md": {
"original_hash": "7ef1cec2d27b086032d46ab1958f3e99",
"translation_date": "2025-08-28T20:04:12+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/assignment.md",
"language_code": "en"
},
"1-getting-started/lessons/1-introduction-to-iot/pi.md": {
"original_hash": "8ff0d0a1d29832bb896b9c103b69a452",
"translation_date": "2025-08-28T20:02:22+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/pi.md",
"language_code": "en"
},
"1-getting-started/lessons/1-introduction-to-iot/virtual-device.md": {
"original_hash": "52b4de6144b2efdced7797a5339d6035",
"translation_date": "2025-08-28T20:01:15+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/virtual-device.md",
"language_code": "en"
},
"1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md": {
"original_hash": "a4f0c166010e31fd7b6ca20bc88dec6d",
"translation_date": "2025-08-28T20:04:24+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md",
"language_code": "en"
},
"1-getting-started/lessons/2-deeper-dive/README.md": {
"original_hash": "9dd7f645ad1c6f20b72fee512987f772",
"translation_date": "2025-08-28T19:49:58+00:00",
"source_file": "1-getting-started/lessons/2-deeper-dive/README.md",
"language_code": "en"
},
"1-getting-started/lessons/2-deeper-dive/assignment.md": {
"original_hash": "750bd75866471141f857240219084767",
"translation_date": "2025-08-28T19:53:04+00:00",
"source_file": "1-getting-started/lessons/2-deeper-dive/assignment.md",
"language_code": "en"
},
"1-getting-started/lessons/3-sensors-and-actuators/README.md": {
"original_hash": "e9ee00eb5fc55922a73762acc542166b",
"translation_date": "2025-08-28T20:05:28+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/README.md",
"language_code": "en"
},
"1-getting-started/lessons/3-sensors-and-actuators/assignment.md": {
"original_hash": "c5a568320b1159394108544807895337",
"translation_date": "2025-08-28T20:10:32+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/assignment.md",
"language_code": "en"
},
"1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md": {
"original_hash": "4db8a3879a53490513571df2f6cf7641",
"translation_date": "2025-08-28T20:08:06+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md",
"language_code": "en"
},
"1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md": {
"original_hash": "ea733bd0cdf2479e082373f765a08678",
"translation_date": "2025-08-28T20:08:50+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md",
"language_code": "en"
},
"1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md": {
"original_hash": "9c640f93263fd9adbfda920739e09feb",
"translation_date": "2025-08-28T20:07:32+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md",
"language_code": "en"
},
"1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md": {
"original_hash": "11f10c6760fb8202cf368422702fdf70",
"translation_date": "2025-08-28T20:09:56+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md",
"language_code": "en"
},
"1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md": {
"original_hash": "db44083b4dc6fb06eac83c4f16448940",
"translation_date": "2025-08-28T20:09:22+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md",
"language_code": "en"
},
"1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-sensor.md": {
"original_hash": "7f4ad0ef54f248b85b92187c94cf9dcb",
"translation_date": "2025-08-28T20:10:46+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-sensor.md",
"language_code": "en"
},
"1-getting-started/lessons/4-connect-internet/README.md": {
"original_hash": "71b5040e0b3472f1c0949c9b55f224c0",
"translation_date": "2025-08-28T19:53:18+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/README.md",
"language_code": "en"
},
"1-getting-started/lessons/4-connect-internet/assignment.md": {
"original_hash": "0d4033cdd7b5b5475c63770102e38480",
"translation_date": "2025-08-28T19:58:50+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/assignment.md",
"language_code": "en"
},
"1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md": {
"original_hash": "c527ce85d69b1a3875366ec61cbed8aa",
"translation_date": "2025-08-28T19:57:43+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md",
"language_code": "en"
},
"1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md": {
"original_hash": "90fb93446e03c38f3c0e4009c2471906",
"translation_date": "2025-08-28T19:58:23+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
"language_code": "en"
},
"1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md": {
"original_hash": "1226517aae5f5b6f904434670394c688",
"translation_date": "2025-08-28T19:57:23+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md",
"language_code": "en"
},
"1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md": {
"original_hash": "6754c915dae64ba70fcd5e52c37f3adf",
"translation_date": "2025-08-28T19:56:08+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md",
"language_code": "en"
},
"1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md": {
"original_hash": "d6faf0e8d3c2d6d20c0aef2a305dab18",
"translation_date": "2025-08-28T19:56:34+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md",
"language_code": "en"
},
"1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md": {
"original_hash": "4bcc29fe2b65e56eada83d2476279227",
"translation_date": "2025-08-28T19:58:04+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md",
"language_code": "en"
},
"2-farm/README.md": {
"original_hash": "428bda82d9e6016ecea7c797564bf081",
"translation_date": "2025-08-28T20:18:19+00:00",
"source_file": "2-farm/README.md",
"language_code": "en"
},
"2-farm/lessons/1-predict-plant-growth/README.md": {
"original_hash": "d105b44deae539165855c976dcdeca99",
"translation_date": "2025-08-28T20:36:16+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/README.md",
"language_code": "en"
},
"2-farm/lessons/1-predict-plant-growth/assignment.md": {
"original_hash": "1e21b012c6685f8bf73e0e76cdca3347",
"translation_date": "2025-08-28T20:38:58+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/assignment.md",
"language_code": "en"
},
"2-farm/lessons/1-predict-plant-growth/pi-temp.md": {
"original_hash": "7678f7c67b97ee52d5727496dcd7d346",
"translation_date": "2025-08-28T20:35:23+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/pi-temp.md",
"language_code": "en"
},
"2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md": {
"original_hash": "4efc74299e19f5d08f2f3f34451a11ba",
"translation_date": "2025-08-28T20:39:20+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md",
"language_code": "en"
},
"2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md": {
"original_hash": "70e5a428b607cd5a9a4f422c2a4df03d",
"translation_date": "2025-08-28T20:39:44+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md",
"language_code": "en"
},
"2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md": {
"original_hash": "df28cd649cd892bcce034e064913b2f3",
"translation_date": "2025-08-28T20:38:36+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md",
"language_code": "en"
},
"2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md": {
"original_hash": "59263d094f20b302053888cd236880c3",
"translation_date": "2025-08-28T20:40:32+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md",
"language_code": "en"
},
"2-farm/lessons/2-detect-soil-moisture/README.md": {
"original_hash": "4fb20273d299dc8d07a8f06c9cd0cdd9",
"translation_date": "2025-08-28T20:19:53+00:00",
"source_file": "2-farm/lessons/2-detect-soil-moisture/README.md",
"language_code": "en"
},
"2-farm/lessons/2-detect-soil-moisture/assignment.md": {
"original_hash": "506d21b544d5de47406c89ad496a21cd",
"translation_date": "2025-08-28T20:23:21+00:00",
"source_file": "2-farm/lessons/2-detect-soil-moisture/assignment.md",
"language_code": "en"
},
"2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md": {
"original_hash": "9d4d00a47d5d0f3e6ce42c0d1020064a",
"translation_date": "2025-08-28T20:18:37+00:00",
"source_file": "2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md",
"language_code": "en"
},
"2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md": {
"original_hash": "2bf65f162bcebd35fbcba5fd245afac4",
"translation_date": "2025-08-28T20:22:37+00:00",
"source_file": "2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md",
"language_code": "en"
},
"2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md": {
"original_hash": "0d55caa8c23d73635b7559102cd17b8a",
"translation_date": "2025-08-28T20:23:44+00:00",
"source_file": "2-farm/lessons/2-detect-soil-moisture/wio-terminal-soil-moisture.md",
"language_code": "en"
},
"2-farm/lessons/3-automated-plant-watering/README.md": {
"original_hash": "f7bb24ba53fb627ddb38a8b24a05e594",
"translation_date": "2025-08-28T20:41:08+00:00",
"source_file": "2-farm/lessons/3-automated-plant-watering/README.md",
"language_code": "en"
},
"2-farm/lessons/3-automated-plant-watering/assignment.md": {
"original_hash": "ed0fbd6aed084bfba7d5e2f206968c50",
"translation_date": "2025-08-28T20:45:15+00:00",
"source_file": "2-farm/lessons/3-automated-plant-watering/assignment.md",
"language_code": "en"
},
"2-farm/lessons/3-automated-plant-watering/pi-relay.md": {
"original_hash": "66b81165e60f8f169bd52a401b6a0f8b",
"translation_date": "2025-08-28T20:44:12+00:00",
"source_file": "2-farm/lessons/3-automated-plant-watering/pi-relay.md",
"language_code": "en"
},
"2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md": {
"original_hash": "f8f541ee945545017a51aaf309aa37c3",
"translation_date": "2025-08-28T20:43:38+00:00",
"source_file": "2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md",
"language_code": "en"
},
"2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md": {
"original_hash": "f3c5d8afa2ef6a0b425ef8ff20615cb4",
"translation_date": "2025-08-28T20:44:46+00:00",
"source_file": "2-farm/lessons/3-automated-plant-watering/wio-terminal-relay.md",
"language_code": "en"
},
"2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md": {
"original_hash": "4d8e7a066d75b625e7a979c14157041d",
"translation_date": "2025-08-28T20:30:40+00:00",
"source_file": "2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md",
"language_code": "en"
},
"2-farm/lessons/4-migrate-your-plant-to-the-cloud/assignment.md": {
"original_hash": "bfd35499bd68d7d740242bfea784bbeb",
"translation_date": "2025-08-28T20:34:10+00:00",
"source_file": "2-farm/lessons/4-migrate-your-plant-to-the-cloud/assignment.md",
"language_code": "en"
},
"2-farm/lessons/4-migrate-your-plant-to-the-cloud/single-board-computer-connect-hub.md": {
"original_hash": "3ac42e284a7222c0e83d2d43231a364f",
"translation_date": "2025-08-28T20:33:39+00:00",
"source_file": "2-farm/lessons/4-migrate-your-plant-to-the-cloud/single-board-computer-connect-hub.md",
"language_code": "en"
},
"2-farm/lessons/4-migrate-your-plant-to-the-cloud/wio-terminal-connect-hub.md": {
"original_hash": "28320305a35ea3bc59c41fe146a2e6ed",
"translation_date": "2025-08-28T20:34:28+00:00",
"source_file": "2-farm/lessons/4-migrate-your-plant-to-the-cloud/wio-terminal-connect-hub.md",
"language_code": "en"
},
"2-farm/lessons/5-migrate-application-to-the-cloud/README.md": {
"original_hash": "5f2d2f4a5a023c93ab34a0cc5b47c0c4",
"translation_date": "2025-08-28T20:24:17+00:00",
"source_file": "2-farm/lessons/5-migrate-application-to-the-cloud/README.md",
"language_code": "en"
},
"2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md": {
"original_hash": "c24b6e4d90501c9199f2ceb6a648a337",
"translation_date": "2025-08-28T20:27:10+00:00",
"source_file": "2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md",
"language_code": "en"
},
"2-farm/lessons/6-keep-your-plant-secure/README.md": {
"original_hash": "81c437c568eee1b0dda1f04e88150d37",
"translation_date": "2025-08-28T20:27:33+00:00",
"source_file": "2-farm/lessons/6-keep-your-plant-secure/README.md",
"language_code": "en"
},
"2-farm/lessons/6-keep-your-plant-secure/assignment.md": {
"original_hash": "34010c663d96d5f419eda6ac2366a78d",
"translation_date": "2025-08-28T20:30:14+00:00",
"source_file": "2-farm/lessons/6-keep-your-plant-secure/assignment.md",
"language_code": "en"
},
"2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md": {
"original_hash": "9aea84bcc7520222b0e1c50469d62d6a",
"translation_date": "2025-08-28T20:29:49+00:00",
"source_file": "2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md",
"language_code": "en"
},
"2-farm/lessons/6-keep-your-plant-secure/wio-terminal-x509.md": {
"original_hash": "8a74f789f3c1bf41a13c007190360c19",
"translation_date": "2025-08-28T20:30:30+00:00",
"source_file": "2-farm/lessons/6-keep-your-plant-secure/wio-terminal-x509.md",
"language_code": "en"
},
"3-transport/README.md": {
"original_hash": "e978534a245b000725ed2a048f943213",
"translation_date": "2025-08-28T19:34:33+00:00",
"source_file": "3-transport/README.md",
"language_code": "en"
},
"3-transport/lessons/1-location-tracking/README.md": {
"original_hash": "52ed2bd997d08040f79a1a6ef2bac958",
"translation_date": "2025-08-28T19:34:55+00:00",
"source_file": "3-transport/lessons/1-location-tracking/README.md",
"language_code": "en"
},
"3-transport/lessons/1-location-tracking/assignment.md": {
"original_hash": "bded364fc06ce37d7a76aed3be1ba73a",
"translation_date": "2025-08-28T19:39:34+00:00",
"source_file": "3-transport/lessons/1-location-tracking/assignment.md",
"language_code": "en"
},
"3-transport/lessons/1-location-tracking/pi-gps-sensor.md": {
"original_hash": "3b2448c7ab4e9673e77e35a50c5e350d",
"translation_date": "2025-08-28T19:36:51+00:00",
"source_file": "3-transport/lessons/1-location-tracking/pi-gps-sensor.md",
"language_code": "en"
},
"3-transport/lessons/1-location-tracking/single-board-computer-gps-decode.md": {
"original_hash": "cbb8c285bc64c5192fae3368fb5077d2",
"translation_date": "2025-08-28T19:38:26+00:00",
"source_file": "3-transport/lessons/1-location-tracking/single-board-computer-gps-decode.md",
"language_code": "en"
},
"3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md": {
"original_hash": "64f18a8f8aaa1fef5e7320e0992d8b3a",
"translation_date": "2025-08-28T19:38:46+00:00",
"source_file": "3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md",
"language_code": "en"
},
"3-transport/lessons/1-location-tracking/wio-terminal-gps-decode.md": {
"original_hash": "fbbcf96a9b63ccd661db98bbf854bb06",
"translation_date": "2025-08-28T19:37:38+00:00",
"source_file": "3-transport/lessons/1-location-tracking/wio-terminal-gps-decode.md",
"language_code": "en"
},
"3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md": {
"original_hash": "da6ae0a795cf06be33d23ca5b8493fc8",
"translation_date": "2025-08-28T19:37:58+00:00",
"source_file": "3-transport/lessons/1-location-tracking/wio-terminal-gps-sensor.md",
"language_code": "en"
},
"3-transport/lessons/2-store-location-data/README.md": {
"original_hash": "e345843ccfeb7261d81500d19c64d476",
"translation_date": "2025-08-28T19:46:24+00:00",
"source_file": "3-transport/lessons/2-store-location-data/README.md",
"language_code": "en"
},
"3-transport/lessons/2-store-location-data/assignment.md": {
"original_hash": "b2e0a965723082b068f735aec0faf3f6",
"translation_date": "2025-08-28T19:49:25+00:00",
"source_file": "3-transport/lessons/2-store-location-data/assignment.md",
"language_code": "en"
},
"3-transport/lessons/3-visualize-location-data/README.md": {
"original_hash": "9095c61445c2bca7245ef9b59a186a11",
"translation_date": "2025-08-28T19:42:48+00:00",
"source_file": "3-transport/lessons/3-visualize-location-data/README.md",
"language_code": "en"
},
"3-transport/lessons/3-visualize-location-data/assignment.md": {
"original_hash": "0ccdc1faa676a485c4c6ecbddb9f9067",
"translation_date": "2025-08-28T19:46:08+00:00",
"source_file": "3-transport/lessons/3-visualize-location-data/assignment.md",
"language_code": "en"
},
"3-transport/lessons/4-geofences/README.md": {
"original_hash": "078ae664c7b686bf069545e9a5fc95b2",
"translation_date": "2025-08-28T19:39:48+00:00",
"source_file": "3-transport/lessons/4-geofences/README.md",
"language_code": "en"
},
"3-transport/lessons/4-geofences/assignment.md": {
"original_hash": "5cb65a6ec4387ed177e145347e8e308e",
"translation_date": "2025-08-28T19:42:32+00:00",
"source_file": "3-transport/lessons/4-geofences/assignment.md",
"language_code": "en"
},
"4-manufacturing/README.md": {
"original_hash": "3764e089adf2d5801272bc0895f8498b",
"translation_date": "2025-08-28T18:58:00+00:00",
"source_file": "4-manufacturing/README.md",
"language_code": "en"
},
"4-manufacturing/lessons/1-train-fruit-detector/README.md": {
"original_hash": "f5e63c916d2dd97d58be12aaf76bd9f1",
"translation_date": "2025-08-28T18:58:23+00:00",
"source_file": "4-manufacturing/lessons/1-train-fruit-detector/README.md",
"language_code": "en"
},
"4-manufacturing/lessons/1-train-fruit-detector/assignment.md": {
"original_hash": "e74eb2fc7cc3b81916b52e957802f182",
"translation_date": "2025-08-28T19:00:35+00:00",
"source_file": "4-manufacturing/lessons/1-train-fruit-detector/assignment.md",
"language_code": "en"
},
"4-manufacturing/lessons/2-check-fruit-from-device/README.md": {
"original_hash": "557f4ee96b752e0651d2e6e74aa6bd14",
"translation_date": "2025-08-28T19:08:35+00:00",
"source_file": "4-manufacturing/lessons/2-check-fruit-from-device/README.md",
"language_code": "en"
},
"4-manufacturing/lessons/2-check-fruit-from-device/assignment.md": {
"original_hash": "022e21f8629b721424c1de25195fff67",
"translation_date": "2025-08-28T19:12:37+00:00",
"source_file": "4-manufacturing/lessons/2-check-fruit-from-device/assignment.md",
"language_code": "en"
},
"4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md": {
"original_hash": "c677667095f6133eee418c7e53615d05",
"translation_date": "2025-08-28T19:09:49+00:00",
"source_file": "4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md",
"language_code": "en"
},
"4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md": {
"original_hash": "e5896207b304ce1abaf065b8acc0cc79",
"translation_date": "2025-08-28T19:12:53+00:00",
"source_file": "4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-classify-image.md",
"language_code": "en"
},
"4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md": {
"original_hash": "3ba7150ffc4a6999f6c3cfb4906ec7df",
"translation_date": "2025-08-28T19:10:31+00:00",
"source_file": "4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md",
"language_code": "en"
},
"4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md": {
"original_hash": "160be8c0f558687f6686dca64f10f739",
"translation_date": "2025-08-28T19:11:09+00:00",
"source_file": "4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-camera.md",
"language_code": "en"
},
"4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md": {
"original_hash": "32a1f23e7834fbe7715da8c4ebb450b9",
"translation_date": "2025-08-28T19:13:17+00:00",
"source_file": "4-manufacturing/lessons/2-check-fruit-from-device/wio-terminal-classify-image.md",
"language_code": "en"
},
"4-manufacturing/lessons/3-run-fruit-detector-edge/README.md": {
"original_hash": "2625af24587465c5547ae33d6cc000a5",
"translation_date": "2025-08-28T19:04:11+00:00",
"source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/README.md",
"language_code": "en"
},
"4-manufacturing/lessons/3-run-fruit-detector-edge/assignment.md": {
"original_hash": "cc7ad255517f5f618f9c8899e6ff6783",
"translation_date": "2025-08-28T19:07:30+00:00",
"source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/assignment.md",
"language_code": "en"
},
"4-manufacturing/lessons/3-run-fruit-detector-edge/single-board-computer.md": {
"original_hash": "50151d9f9dce2801348a93880ef16d86",
"translation_date": "2025-08-28T19:07:47+00:00",
"source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/single-board-computer.md",
"language_code": "en"
},
"4-manufacturing/lessons/3-run-fruit-detector-edge/vm-iotedge.md": {
"original_hash": "24dc783a600e20251211987b36370e93",
"translation_date": "2025-08-28T19:06:58+00:00",
"source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/vm-iotedge.md",
"language_code": "en"
},
"4-manufacturing/lessons/3-run-fruit-detector-edge/wio-terminal.md": {
"original_hash": "48ac21ec80329c930db7b84bd6b592ec",
"translation_date": "2025-08-28T19:08:12+00:00",
"source_file": "4-manufacturing/lessons/3-run-fruit-detector-edge/wio-terminal.md",
"language_code": "en"
},
"4-manufacturing/lessons/4-trigger-fruit-detector/README.md": {
"original_hash": "f74f4ccb61f00e5f7e9f49c3ed416e36",
"translation_date": "2025-08-28T19:00:51+00:00",
"source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/README.md",
"language_code": "en"
},
"4-manufacturing/lessons/4-trigger-fruit-detector/assignment.md": {
"original_hash": "1a85e50c33c38dcd2cde2a97d132f248",
"translation_date": "2025-08-28T19:03:26+00:00",
"source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/assignment.md",
"language_code": "en"
},
"4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md": {
"original_hash": "6145a1d791731c8a9d0afd0a1bae5108",
"translation_date": "2025-08-28T19:02:28+00:00",
"source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md",
"language_code": "en"
},
"4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md": {
"original_hash": "7e9f05bdc50a40fd924b1d66934471bf",
"translation_date": "2025-08-28T19:03:47+00:00",
"source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md",
"language_code": "en"
},
"4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md": {
"original_hash": "288aebb0c59f7be1d2719b8f9660a313",
"translation_date": "2025-08-28T19:03:00+00:00",
"source_file": "4-manufacturing/lessons/4-trigger-fruit-detector/wio-terminal-proximity.md",
"language_code": "en"
},
"5-retail/README.md": {
"original_hash": "22a1d6e49f2a689fe5bfa7802a7241fc",
"translation_date": "2025-08-28T20:12:20+00:00",
"source_file": "5-retail/README.md",
"language_code": "en"
},
"5-retail/lessons/1-train-stock-detector/README.md": {
"original_hash": "8df310a42f902139a01417dacb1ffbef",
"translation_date": "2025-08-28T20:12:37+00:00",
"source_file": "5-retail/lessons/1-train-stock-detector/README.md",
"language_code": "en"
},
"5-retail/lessons/1-train-stock-detector/assignment.md": {
"original_hash": "d93ee76fac4c2199973689ecd05baaf9",
"translation_date": "2025-08-28T20:14:08+00:00",
"source_file": "5-retail/lessons/1-train-stock-detector/assignment.md",
"language_code": "en"
},
"5-retail/lessons/2-check-stock-device/README.md": {
"original_hash": "1c9e5fa8b7be726c75a97232b1e41c97",
"translation_date": "2025-08-28T20:14:23+00:00",
"source_file": "5-retail/lessons/2-check-stock-device/README.md",
"language_code": "en"
},
"5-retail/lessons/2-check-stock-device/assignment.md": {
"original_hash": "3cf7783991ec0ee4f6041223924894c7",
"translation_date": "2025-08-28T20:17:34+00:00",
"source_file": "5-retail/lessons/2-check-stock-device/assignment.md",
"language_code": "en"
},
"5-retail/lessons/2-check-stock-device/single-board-computer-count-stock.md": {
"original_hash": "9c4320311c0f2c1884a6a21265d98a51",
"translation_date": "2025-08-28T20:16:08+00:00",
"source_file": "5-retail/lessons/2-check-stock-device/single-board-computer-count-stock.md",
"language_code": "en"
},
"5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md": {
"original_hash": "a3fdfec1d1e2cb645ea11c2930b51299",
"translation_date": "2025-08-28T20:17:47+00:00",
"source_file": "5-retail/lessons/2-check-stock-device/single-board-computer-object-detector.md",
"language_code": "en"
},
"5-retail/lessons/2-check-stock-device/wio-terminal-count-stock.md": {
"original_hash": "0b2ae20b0fc8e73c9598dea937cac038",
"translation_date": "2025-08-28T20:16:59+00:00",
"source_file": "5-retail/lessons/2-check-stock-device/wio-terminal-count-stock.md",
"language_code": "en"
},
"5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md": {
"original_hash": "4cf1421420a6fab9ab4f2c391bd523b7",
"translation_date": "2025-08-28T20:15:38+00:00",
"source_file": "5-retail/lessons/2-check-stock-device/wio-terminal-object-detector.md",
"language_code": "en"
},
"6-consumer/README.md": {
"original_hash": "5de7dc1e2ddc402d415473bb795568d4",
"translation_date": "2025-08-28T19:13:55+00:00",
"source_file": "6-consumer/README.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/README.md": {
"original_hash": "6d6aa1be033625d201a190fc9c5cbfb4",
"translation_date": "2025-08-28T19:22:38+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/README.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/assignment.md": {
"original_hash": "5ae7654f519ae831179409dc8e528055",
"translation_date": "2025-08-28T19:28:02+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/assignment.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/pi-audio.md": {
"original_hash": "0ac0afcfb40cb5970ef4cb74f01c32e9",
"translation_date": "2025-08-28T19:24:53+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/pi-audio.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/pi-microphone.md": {
"original_hash": "7e45d884493c5222348b43fbc4481b6a",
"translation_date": "2025-08-28T19:26:40+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/pi-microphone.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/pi-speech-to-text.md": {
"original_hash": "af249a24d4fe4f4de4806adbc3bc9d86",
"translation_date": "2025-08-28T19:27:17+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/pi-speech-to-text.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/virtual-device-audio.md": {
"original_hash": "e4f2925acb211765889c3b51b9116ceb",
"translation_date": "2025-08-28T19:27:52+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/virtual-device-audio.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/virtual-device-microphone.md": {
"original_hash": "7a65ee743f916276a2848b8a9491feb7",
"translation_date": "2025-08-28T19:24:41+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/virtual-device-microphone.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/virtual-device-speech-to-text.md": {
"original_hash": "c0550b254b9ba2539baf1e6bb5fc05f8",
"translation_date": "2025-08-28T19:25:32+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/virtual-device-speech-to-text.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md": {
"original_hash": "2f336726b9410e97c3aaed76cc89b0d8",
"translation_date": "2025-08-28T19:28:12+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/wio-terminal-audio.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/wio-terminal-microphone.md": {
"original_hash": "93d352de36526b8990e41dd538100324",
"translation_date": "2025-08-28T19:26:01+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/wio-terminal-microphone.md",
"language_code": "en"
},
"6-consumer/lessons/1-speech-recognition/wio-terminal-speech-to-text.md": {
"original_hash": "3f92edf2975175577174910caca4a389",
"translation_date": "2025-08-28T19:29:31+00:00",
"source_file": "6-consumer/lessons/1-speech-recognition/wio-terminal-speech-to-text.md",
"language_code": "en"
},
"6-consumer/lessons/2-language-understanding/README.md": {
"original_hash": "6f4ba69d77f16c4a5110623a96a215c3",
"translation_date": "2025-08-28T19:15:04+00:00",
"source_file": "6-consumer/lessons/2-language-understanding/README.md",
"language_code": "en"
},
"6-consumer/lessons/2-language-understanding/assignment.md": {
"original_hash": "5a7262a0c48dfacdfe1ff91b20bf16fd",
"translation_date": "2025-08-28T19:17:17+00:00",
"source_file": "6-consumer/lessons/2-language-understanding/assignment.md",
"language_code": "en"
},
"6-consumer/lessons/3-spoken-feedback/README.md": {
"original_hash": "b73fe10ec6b580fba2affb6f6e0a5c4d",
"translation_date": "2025-08-28T19:17:58+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/README.md",
"language_code": "en"
},
"6-consumer/lessons/3-spoken-feedback/assignment.md": {
"original_hash": "da5d9360fe02fdcc1e91a725016c846d",
"translation_date": "2025-08-28T19:22:24+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/assignment.md",
"language_code": "en"
},
"6-consumer/lessons/3-spoken-feedback/pi-text-to-speech.md": {
"original_hash": "606f3af1c78e3741e48ce77c31cea626",
"translation_date": "2025-08-28T19:20:19+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/pi-text-to-speech.md",
"language_code": "en"
},
"6-consumer/lessons/3-spoken-feedback/single-board-computer-set-timer.md": {
"original_hash": "64ad4ddb4de81a18b7252e968f10b404",
"translation_date": "2025-08-28T19:21:46+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/single-board-computer-set-timer.md",
"language_code": "en"
},
"6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-speech.md": {
"original_hash": "7966848a1f870e4c42edb4db67b13c57",
"translation_date": "2025-08-28T19:17:31+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-speech.md",
"language_code": "en"
},
"6-consumer/lessons/3-spoken-feedback/wio-terminal-set-timer.md": {
"original_hash": "012b69d57d898d670adf61304f42a137",
"translation_date": "2025-08-28T19:20:57+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/wio-terminal-set-timer.md",
"language_code": "en"
},
"6-consumer/lessons/3-spoken-feedback/wio-terminal-text-to-speech.md": {
"original_hash": "a202fa5889790a3777bfc33dd9f4b459",
"translation_date": "2025-08-28T19:18:54+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/wio-terminal-text-to-speech.md",
"language_code": "en"
},
"6-consumer/lessons/4-multiple-language-support/README.md": {
"original_hash": "c16de27b0074abe81d6a8bad5e5b1a6b",
"translation_date": "2025-08-28T19:30:48+00:00",
"source_file": "6-consumer/lessons/4-multiple-language-support/README.md",
"language_code": "en"
},
"6-consumer/lessons/4-multiple-language-support/assignment.md": {
"original_hash": "701f4a4466f9309b6e1d863077df0c06",
"translation_date": "2025-08-28T19:34:14+00:00",
"source_file": "6-consumer/lessons/4-multiple-language-support/assignment.md",
"language_code": "en"
},
"6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md": {
"original_hash": "bbb5aa34221fe129dd3ce4d9ec33831a",
"translation_date": "2025-08-28T19:32:40+00:00",
"source_file": "6-consumer/lessons/4-multiple-language-support/pi-translate-speech.md",
"language_code": "en"
},
"6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md": {
"original_hash": "d620a470d9dd8614d99824832978360a",
"translation_date": "2025-08-28T19:33:20+00:00",
"source_file": "6-consumer/lessons/4-multiple-language-support/virtual-device-translate-speech.md",
"language_code": "en"
},
"6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md": {
"original_hash": "5f6c164e349f8989959e02a90f37908d",
"translation_date": "2025-08-28T19:31:57+00:00",
"source_file": "6-consumer/lessons/4-multiple-language-support/wio-terminal-translate-speech.md",
"language_code": "en"
},
"CODE_OF_CONDUCT.md": {
"original_hash": "c06b12caf3c901eb3156e3dd5b0aea56",
"translation_date": "2025-08-28T18:57:27+00:00",
"source_file": "CODE_OF_CONDUCT.md",
"language_code": "en"
},
"CONTRIBUTING.md": {
"original_hash": "d6f80293fa9c213283eac7e79b078671",
"translation_date": "2025-08-28T18:55:35+00:00",
"source_file": "CONTRIBUTING.md",
"language_code": "en"
},
"README.md": {
"original_hash": "3fcc056cd3837e33d2bdf79f9c359fcf",
"translation_date": "2026-01-30T00:59:38+00:00",
"source_file": "README.md",
"language_code": "en"
},
"SECURITY.md": {
"original_hash": "8587f83cfded1bfab99fda4022f4df89",
"translation_date": "2025-08-28T18:56:18+00:00",
"source_file": "SECURITY.md",
"language_code": "en"
},
"SUPPORT.md": {
"original_hash": "cd89329575372232e59605f7a08ae0df",
"translation_date": "2025-08-28T18:54:15+00:00",
"source_file": "SUPPORT.md",
"language_code": "en"
},
"TROUBLESHOOTING.md": {
"original_hash": "9713e21a309662f6fcb271b573d47848",
"translation_date": "2026-01-05T12:31:46+00:00",
"source_file": "TROUBLESHOOTING.md",
"language_code": "en"
},
"attributions.md": {
"original_hash": "4506d33bbda7acc0ab20980172687090",
"translation_date": "2025-08-28T18:55:50+00:00",
"source_file": "attributions.md",
"language_code": "en"
},
"clean-up.md": {
"original_hash": "5a94fbab1ba737e9bd6cc6c64f114fa0",
"translation_date": "2025-08-28T18:56:45+00:00",
"source_file": "clean-up.md",
"language_code": "en"
},
"docs/_sidebar.md": {
"original_hash": "686f22febaa2b67aa03b738c0dc0bf9b",
"translation_date": "2025-08-28T18:57:37+00:00",
"source_file": "docs/_sidebar.md",
"language_code": "en"
},
"docs/troubleshooting.md": {
"original_hash": "271dcd720357806934b2f0d94e19410e",
"translation_date": "2026-01-05T12:42:00+00:00",
"source_file": "docs/troubleshooting.md",
"language_code": "en"
},
"for-teachers.md": {
"original_hash": "9fd36f5dc734203ee28b6cf2573e5eab",
"translation_date": "2025-08-28T18:57:04+00:00",
"source_file": "for-teachers.md",
"language_code": "en"
},
"hardware.md": {
"original_hash": "3dce18fab38adf93ff30b8c221b1eec5",
"translation_date": "2025-08-28T18:54:26+00:00",
"source_file": "hardware.md",
"language_code": "en"
},
"images/README.md": {
"original_hash": "50abd54997afa7e7a3fc7019379e49e3",
"translation_date": "2025-08-28T20:11:45+00:00",
"source_file": "images/README.md",
"language_code": "en"
},
"lesson-template/README.md": {
"original_hash": "0494be70ad7fadd13a8c3d549c23e355",
"translation_date": "2025-08-28T20:11:13+00:00",
"source_file": "lesson-template/README.md",
"language_code": "en"
},
"lesson-template/assignment.md": {
"original_hash": "b5f62ec256c7e43e771f0d3b4e1a9130",
"translation_date": "2025-08-28T20:11:31+00:00",
"source_file": "lesson-template/assignment.md",
"language_code": "en"
},
"quiz-app/README.md": {
"original_hash": "2a459ea9177fb0508ca96068ae1009d2",
"translation_date": "2025-08-28T20:11:56+00:00",
"source_file": "quiz-app/README.md",
"language_code": "en"
},
"recommended-learning-model.md": {
"original_hash": "012bbd19f13171be32ac9ba21d4186c2",
"translation_date": "2025-08-28T18:51:53+00:00",
"source_file": "recommended-learning-model.md",
"language_code": "en"
}
}

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "e2b1b891b08ef7633d285547fbe73290",
"translation_date": "2025-08-28T19:49:42+00:00",
"source_file": "1-getting-started/README.md",
"language_code": "en"
}
-->
# Getting Started with IoT # Getting Started with IoT
In this section of the curriculum, you will be introduced to the Internet of Things and learn the basic concepts, including creating your first 'Hello World' IoT project that connects to the cloud. This project is a nightlight that turns on when the light levels measured by a sensor decrease. In this section of the curriculum, you will be introduced to the Internet of Things and learn the basic concepts, including creating your first 'Hello World' IoT project that connects to the cloud. This project is a nightlight that turns on when the light levels measured by a sensor decrease.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9bae08314d8487cb76ddf3d8797e1544",
"translation_date": "2025-08-28T19:59:08+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/README.md",
"language_code": "en"
}
-->
# Introduction to IoT # Introduction to IoT
![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg) ![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.jpg)

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "7ef1cec2d27b086032d46ab1958f3e99",
"translation_date": "2025-08-28T20:04:12+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/assignment.md",
"language_code": "en"
}
-->
# Explore an IoT Project # Explore an IoT Project
## Instructions ## Instructions

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "8ff0d0a1d29832bb896b9c103b69a452",
"translation_date": "2025-08-28T20:02:22+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/pi.md",
"language_code": "en"
}
-->
# Raspberry Pi # Raspberry Pi
The [Raspberry Pi](https://raspberrypi.org) is a single-board computer. You can connect sensors and actuators using a variety of devices and ecosystems. For these lessons, you'll use a hardware ecosystem called [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html). You'll program your Pi and interact with the Grove sensors using Python. The [Raspberry Pi](https://raspberrypi.org) is a single-board computer. You can connect sensors and actuators using a variety of devices and ecosystems. For these lessons, you'll use a hardware ecosystem called [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html). You'll program your Pi and interact with the Grove sensors using Python.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "52b4de6144b2efdced7797a5339d6035",
"translation_date": "2025-08-28T20:01:15+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/virtual-device.md",
"language_code": "en"
}
-->
# Virtual single-board computer # Virtual single-board computer
Instead of buying an IoT device along with sensors and actuators, you can use your computer to simulate IoT hardware. The [CounterFit project](https://github.com/CounterFit-IoT/CounterFit) allows you to run an app locally that simulates IoT hardware like sensors and actuators, and access them from local Python code written in the same way as you would on a Raspberry Pi with physical hardware. Instead of buying an IoT device along with sensors and actuators, you can use your computer to simulate IoT hardware. The [CounterFit project](https://github.com/CounterFit-IoT/CounterFit) allows you to run an app locally that simulates IoT hardware like sensors and actuators, and access them from local Python code written in the same way as you would on a Raspberry Pi with physical hardware.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a4f0c166010e31fd7b6ca20bc88dec6d",
"translation_date": "2025-08-28T20:04:24+00:00",
"source_file": "1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md",
"language_code": "en"
}
-->
# Wio Terminal # Wio Terminal
The [Wio Terminal from Seeed Studios](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) is an Arduino-compatible microcontroller that comes with built-in WiFi, sensors, and actuators. It also has ports to connect additional sensors and actuators using a hardware ecosystem called [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html). The [Wio Terminal from Seeed Studios](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) is an Arduino-compatible microcontroller that comes with built-in WiFi, sensors, and actuators. It also has ports to connect additional sensors and actuators using a hardware ecosystem called [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html).

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9dd7f645ad1c6f20b72fee512987f772",
"translation_date": "2025-08-28T19:49:58+00:00",
"source_file": "1-getting-started/lessons/2-deeper-dive/README.md",
"language_code": "en"
}
-->
# A deeper dive into IoT # A deeper dive into IoT
![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg) ![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-2.324b0580d620c25e0a24fb7fddfc0b29a846dd4b82c08e7a9466d580ee78ce51.jpg)

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "750bd75866471141f857240219084767",
"translation_date": "2025-08-28T19:53:04+00:00",
"source_file": "1-getting-started/lessons/2-deeper-dive/assignment.md",
"language_code": "en"
}
-->
# Compare and contrast microcontrollers and single-board computers # Compare and contrast microcontrollers and single-board computers
## Instructions ## Instructions

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "e9ee00eb5fc55922a73762acc542166b",
"translation_date": "2025-08-28T20:05:28+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/README.md",
"language_code": "en"
}
-->
# Interact with the physical world using sensors and actuators # Interact with the physical world using sensors and actuators
![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg) ![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-3.cc3b7b4cd646de598698cce043c0393fd62ef42bac2eaf60e61272cd844250f4.jpg)

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "c5a568320b1159394108544807895337",
"translation_date": "2025-08-28T20:10:32+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/assignment.md",
"language_code": "en"
}
-->
# Research sensors and actuators # Research sensors and actuators
## Instructions ## Instructions

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "4db8a3879a53490513571df2f6cf7641",
"translation_date": "2025-08-28T20:08:06+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md",
"language_code": "en"
}
-->
# Build a nightlight - Raspberry Pi # Build a nightlight - Raspberry Pi
In this part of the lesson, you will add an LED to your Raspberry Pi and use it to create a nightlight. In this part of the lesson, you will add an LED to your Raspberry Pi and use it to create a nightlight.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "ea733bd0cdf2479e082373f765a08678",
"translation_date": "2025-08-28T20:08:50+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/pi-sensor.md",
"language_code": "en"
}
-->
# Build a nightlight - Raspberry Pi # Build a nightlight - Raspberry Pi
In this part of the lesson, you will add a light sensor to your Raspberry Pi. In this part of the lesson, you will add a light sensor to your Raspberry Pi.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9c640f93263fd9adbfda920739e09feb",
"translation_date": "2025-08-28T20:07:32+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/virtual-device-actuator.md",
"language_code": "en"
}
-->
# Build a nightlight - Virtual IoT Hardware # Build a nightlight - Virtual IoT Hardware
In this part of the lesson, you will add an LED to your virtual IoT device and use it to create a nightlight. In this part of the lesson, you will add an LED to your virtual IoT device and use it to create a nightlight.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "11f10c6760fb8202cf368422702fdf70",
"translation_date": "2025-08-28T20:09:56+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/virtual-device-sensor.md",
"language_code": "en"
}
-->
# Build a nightlight - Virtual IoT Hardware # Build a nightlight - Virtual IoT Hardware
In this part of the lesson, you will add a light sensor to your virtual IoT device. In this part of the lesson, you will add a light sensor to your virtual IoT device.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "db44083b4dc6fb06eac83c4f16448940",
"translation_date": "2025-08-28T20:09:22+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-actuator.md",
"language_code": "en"
}
-->
# Build a nightlight - Wio Terminal # Build a nightlight - Wio Terminal
In this part of the lesson, you will add an LED to your Wio Terminal and use it to create a nightlight. In this part of the lesson, you will add an LED to your Wio Terminal and use it to create a nightlight.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "7f4ad0ef54f248b85b92187c94cf9dcb",
"translation_date": "2025-08-28T20:10:46+00:00",
"source_file": "1-getting-started/lessons/3-sensors-and-actuators/wio-terminal-sensor.md",
"language_code": "en"
}
-->
# Add a sensor - Wio Terminal # Add a sensor - Wio Terminal
In this part of the lesson, you will use the light sensor on your Wio Terminal. In this part of the lesson, you will use the light sensor on your Wio Terminal.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "71b5040e0b3472f1c0949c9b55f224c0",
"translation_date": "2025-08-28T19:53:18+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/README.md",
"language_code": "en"
}
-->
# Connect your device to the Internet # Connect your device to the Internet
![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg) ![A sketchnote overview of this lesson](../../../../../translated_images/en/lesson-4.7344e074ea68fa545fd320b12dce36d72dd62d28c3b4596cb26cf315f434b98f.jpg)

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "0d4033cdd7b5b5475c63770102e38480",
"translation_date": "2025-08-28T19:58:50+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/assignment.md",
"language_code": "en"
}
-->
# Compare and contrast MQTT with other communication protocols # Compare and contrast MQTT with other communication protocols
## Instructions ## Instructions

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "c527ce85d69b1a3875366ec61cbed8aa",
"translation_date": "2025-08-28T19:57:43+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md",
"language_code": "en"
}
-->
# Control your nightlight over the Internet - Virtual IoT Hardware and Raspberry Pi # Control your nightlight over the Internet - Virtual IoT Hardware and Raspberry Pi
In this part of the lesson, you will subscribe to commands sent from an MQTT broker to your Raspberry Pi or virtual IoT device. In this part of the lesson, you will subscribe to commands sent from an MQTT broker to your Raspberry Pi or virtual IoT device.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "90fb93446e03c38f3c0e4009c2471906",
"translation_date": "2025-08-28T19:58:23+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
"language_code": "en"
}
-->
# Control your nightlight over the Internet - Virtual IoT Hardware and Raspberry Pi # Control your nightlight over the Internet - Virtual IoT Hardware and Raspberry Pi
The IoT device needs to be programmed to communicate with *test.mosquitto.org* using MQTT to send telemetry data with the light sensor readings and receive commands to control the LED. The IoT device needs to be programmed to communicate with *test.mosquitto.org* using MQTT to send telemetry data with the light sensor readings and receive commands to control the LED.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1226517aae5f5b6f904434670394c688",
"translation_date": "2025-08-28T19:57:23+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md",
"language_code": "en"
}
-->
# Control your nightlight over the Internet - Virtual IoT Hardware and Raspberry Pi # Control your nightlight over the Internet - Virtual IoT Hardware and Raspberry Pi
In this part of the lesson, you will send telemetry data with light levels from your Raspberry Pi or virtual IoT device to an MQTT broker. In this part of the lesson, you will send telemetry data with light levels from your Raspberry Pi or virtual IoT device to an MQTT broker.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "6754c915dae64ba70fcd5e52c37f3adf",
"translation_date": "2025-08-28T19:56:08+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md",
"language_code": "en"
}
-->
# Control your nightlight over the Internet - Wio Terminal # Control your nightlight over the Internet - Wio Terminal
In this part of the lesson, you will configure your Wio Terminal to receive and respond to commands sent from an MQTT broker. In this part of the lesson, you will configure your Wio Terminal to receive and respond to commands sent from an MQTT broker.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "d6faf0e8d3c2d6d20c0aef2a305dab18",
"translation_date": "2025-08-28T19:56:34+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md",
"language_code": "en"
}
-->
# Control your nightlight over the Internet - Wio Terminal # Control your nightlight over the Internet - Wio Terminal
The IoT device needs to be programmed to communicate with *test.mosquitto.org* using MQTT to send telemetry data based on the light sensor readings and receive commands to control the LED. The IoT device needs to be programmed to communicate with *test.mosquitto.org* using MQTT to send telemetry data based on the light sensor readings and receive commands to control the LED.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "4bcc29fe2b65e56eada83d2476279227",
"translation_date": "2025-08-28T19:58:04+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md",
"language_code": "en"
}
-->
# Control your nightlight over the Internet - Wio Terminal # Control your nightlight over the Internet - Wio Terminal
In this part of the lesson, you will send telemetry data with light levels from your Wio Terminal to the MQTT broker. In this part of the lesson, you will send telemetry data with light levels from your Wio Terminal to the MQTT broker.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "428bda82d9e6016ecea7c797564bf081",
"translation_date": "2025-08-28T20:18:19+00:00",
"source_file": "2-farm/README.md",
"language_code": "en"
}
-->
# Farming with IoT # Farming with IoT
As the global population increases, so does the pressure on agriculture. While the amount of available land remains constant, the changing climate adds further challenges for farmers, particularly the 2 billion [subsistence farmers](https://wikipedia.org/wiki/Subsistence_agriculture) who depend on their crops for food and to support their families. IoT can assist farmers in making smarter decisions about what to grow and when to harvest, boost crop yields, reduce manual labor, and identify and address pest issues. As the global population increases, so does the pressure on agriculture. While the amount of available land remains constant, the changing climate adds further challenges for farmers, particularly the 2 billion [subsistence farmers](https://wikipedia.org/wiki/Subsistence_agriculture) who depend on their crops for food and to support their families. IoT can assist farmers in making smarter decisions about what to grow and when to harvest, boost crop yields, reduce manual labor, and identify and address pest issues.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "d105b44deae539165855c976dcdeca99",
"translation_date": "2025-08-28T20:36:16+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/README.md",
"language_code": "en"
}
-->
This code extracts the temperature from the telemetry message and gets the current date and time. It then appends a new row to the CSV file with the date and temperature. This code extracts the temperature from the telemetry message and gets the current date and time. It then appends a new row to the CSV file with the date and temperature.
1. Run the server code and ensure it is receiving telemetry from your IoT device. Check the CSV file to confirm that temperature data is being saved correctly. 1. Run the server code and ensure it is receiving telemetry from your IoT device. Check the CSV file to confirm that temperature data is being saved correctly.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1e21b012c6685f8bf73e0e76cdca3347",
"translation_date": "2025-08-28T20:38:58+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/assignment.md",
"language_code": "en"
}
-->
# Visualize GDD Data Using a Jupyter Notebook # Visualize GDD Data Using a Jupyter Notebook
## Instructions ## Instructions

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "7678f7c67b97ee52d5727496dcd7d346",
"translation_date": "2025-08-28T20:35:23+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/pi-temp.md",
"language_code": "en"
}
-->
# Measure temperature - Raspberry Pi # Measure temperature - Raspberry Pi
In this part of the lesson, you will add a temperature sensor to your Raspberry Pi. In this part of the lesson, you will add a temperature sensor to your Raspberry Pi.

@ -1,12 +1,3 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "4efc74299e19f5d08f2f3f34451a11ba",
"translation_date": "2025-08-28T20:39:20+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md",
"language_code": "en"
}
-->
# Publish temperature - Virtual IoT Hardware and Raspberry Pi # Publish temperature - Virtual IoT Hardware and Raspberry Pi
In this part of the lesson, you will send the temperature values detected by the Raspberry Pi or Virtual IoT Device via MQTT so they can later be used to calculate GDD. In this part of the lesson, you will send the temperature values detected by the Raspberry Pi or Virtual IoT Device via MQTT so they can later be used to calculate GDD.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save