Arquivos para Tutorial

Com a ajuda do protocolo MQTT, enviaremos dados capturados de sensores, à um serviço de IoT, o ThingSpeak.com e a um aplicativo móvel, o Thingsview.

1. Introdução

Em meu post anterior, Programando MicroPython  no ESP8266 , aprendemos como instalar e executar MicroPython em um dispositivo ESP (tanto o ESP8266 quanto o ESP32). Utilizando o Jupyter Notebook como ambiente de desenvolvimento, também aprendemos a ler a partir de sensores (Temperatura, Umidade e Luminosidade), utilizando vários protocolos de comunicação e métodos como: Analógico, Digital, 1-Wire e I2C, este último para exibir os dados capturados em um display do tipo OLED.

Neste novo tutorial, utilizando-se do protocolo MQTT,  enviaremos os dados capturados, à um serviço the IoT, o ThingSpeak.com e para um aplicativo móvel, o Thingsview. 

Aqui, uma visão geral reavaliando nosso projeto:

Continue lendo…

Anúncios

Programando MicroPython no ESP8266

6 06UTC junho 06UTC 2018 — 1 Comentário

Vamos brincar com o MicroPython em um ESP8266 (ou ESP32) utilizando o um Jupyter Notebook. A idéia é obter dados de sensores, agindo em um mundo físico diretamente do Jupyter.

portada 3

1. Introdução

Em um artigo anterior publicado no Medium, explorei como controlar um Raspberry Pi usando-se do Jupyter Notebook: Computação Física Usando o Jupyter Notebook.

Foi uma ótima experiência, e uma vez que o projeto funcionou muito bem, pensei:

“Que tal testar também o Jupyter Notebook em um ESP8266 (ou mesmo no ESP32) usando como linguagem o MicroPython?”

Como sabemos, o Jupyter Notebook é um aplicativo Web de código aberto que permite criar e compartilhar documentos que contêm código ativo, equações, visualizações e texto narrativo. Os usos incluem limpeza e transformação de dados, simulação numérica, modelagem estatística, visualização de dados, aprendizado de máquina e muito mais. Para o “muito mais”, exploraremos  a “Computação Física”.

Até agora em meus projetos, explorei IoT e computação física utilizando o ESP8266–01, ESP8266–12E (NodeMCU) e o ESP32, programados pelo IDE do Arduino, utilizando-se de sua linguagem C / C ++. Mas outra ótima linguagem que pode ser usada na programação desses dispositivos é o MicroPython:

O MicroPython é uma implementação enxuta e eficiente da linguagem de programação Python 3 que inclui um pequeno subconjunto da biblioteca padrão do Python e é otimizada para rodar em microcontroladores e em ambientes restritos. O objetivo é ser tão compatível com o Python normal quanto possível para permitir que você transfira código com facilidade do desktop para um microcontrolador ou sistema embarcado.

Além disso, acho que usar o Jupyter Notebook para programar um dispositivo ESP usando o MicroPython pode ser uma ótima ferramenta para ensinar Computação Física para crianças e também ajudar os cientistas a acessar rapidamente o mundo real utilizando-se de sensores na aquisição de dados.

Isso é o que tentaremos realizar neste tutorial:

  • Saída de um sinal digital para ligar / desligar um LED
  • Ler uma entrada digital (através de um botão)
  • Saída de um sinal PWM para o controle do brilho de um LED
  • Controlar a posição de um servomotor utilizando-se de uma saída PWM
  • Leitura de sinal analógico (luminosidade) usando um LDR
  • Leitura de temperatura via bus 1-Wire (DS18B20)
  • Leitura de temperatura e umidade (DHT22)
  • Exibir dados usando um OLED via barramento I2C.

Continue lendo…

Neste tutorial, capturaremos dados remotos como UV (radiação ultravioleta), temperatura e umidade do ar. Esses dados serão muito importantes e serão usados em uma futura Estação Meteorológica completa.

O diagrama de blocos mostra o que obteremos no final.

Continue lendo…

Meu tutorial publicado no site do Instructables.com: Alexa – NodeMCU: WeMo Emulation Made Simple, foi um dos vencedores na competição “Automation Contest 2017”.

winner at Automation Contest.png

Muito obrigado por todos os votos que o tutorial recebeu. É sempre uma grande honra saber que meu trabalho está sendo reconhecido e acima de tudo sendo executado em varias cantos do mundo! 😉

mundo2

Fico muito feliz com este tipo de reconhecimento, pois mostra que estou no caminho certo com a decisão de escrever e compartilhar com a garotada e os velhos dinos, descobertas oriundas de minhas novas andanças pelos facinantes caminhos da eletrônica. A ideia era devolver ao mundo um pouquinho do muito que recebi, mas a cada vez que um garoto seja do Brasil, de Portugal, Índia, África, …. me escreve com uma dúvida ou agradecendo por um projeto meu, vejo que quem está recebendo algo mesmo, sou eu! 😉

Valeu moçada! Ah! O tutorial também pode ser visto em portugues aqui em meu blog:

Alexa – NodeMCU: Emulando um dispositivo WeMo

WeMo Emulation

Outros premios recebidos por projetos publicados no site do Instructables:

premios

Saludos desde el sur del mundo!

Até o próximo tutorial!

Obrigado

Marcelo

Neste tutorial, exploraremos  o ESP32, o mais novo dispositivo para uso no campo do IoT. Esta placa, desenvolvida pela Espressif, deverá ser a sucessora do ESP8266, devido ao seu baixo preço e excelentes recursos.

Mas é importante alertar que NEM TODAS as bibliotecas ou funções com que você está acostumado a trabalhar com ESP8266 e / ou Arduino estão funcionando nesta nova placa. Provavelmente isso ocorrerá em breve, mas neste momento ainda não estão todas. Confire regularmente o fórum do ESP para saber das atualizações: ESP 32 Forum WebPage.

Aqui, aprenderemos a como programar o ESP32 utilizando-se do Arduino IDE, explorando suas funções e bibliotecas mais comuns, apontar algumas das diferenças importantes com o ESP8266, bem como os novos recursos introduzidos neste grande chip.

Em suma, exploraremos:

  • Saída digital: piscar um LED
  • Entrada digital: leitura de um sensor de toque
  • Entrada analógica: leitura de uma tensão variável usando-se de um potenciômetro
  • Saída analógica: controlando o brilho de um LED
  • Saída Analógica: Controlando a posição de um Servo
  • Leitura de dados de temperatura / umidade utilizando-se de um sensor digital
  • Conectando-se à internet para obter o horário local
  • Receber dados de uma página web local simples, ligando / desligando um LED
  • Transmitir dados para uma simples webPage local
  • Incluir um OLED para apresentar localmente os dados capturados pelo sensor DHT (Temperatura e Umidade), bem como a hora local.

 

Continue lendo…

“Computer, Fire All Weapons!”

30 30UTC agosto 30UTC 2017 — 2 Comentários

Cover3

Este post é na verdade uma continuação de meu último tutorial: Alexa – NodeMCU: Emulando um dispositivo WeMo, onde apresentamos a grande biblioteca fauxmoESP, a qual simplifica muito o código necessário para desenvolver projetos de automação envolvendo a Alexa e a emulação de dispositivos inteligentes utilizando o NodeMCU.

Neste novo tutorial, partiremos desse conceito (emulação de dispositivos WeMo), mas em vez de usar relés para ligar / desligar aparelhos elétricos, “ativaremos” funções mais complexas, onde múltiplos dispositivos estarão envolvidos.

Somente por diversão, simularemos o disparo de algumas armas encontradas na Star Trek Enterprise, tais como Photon Torpedos e Phasers!

O NodeMCU controlará um LED RGB, que será o nosso “Torpedo fotônico” e um LED vermelho nosso “Phaser”. Para dar um efeito mais realista, também incluiremos um Buzzer que gerará algum som junto com o efeito visual.

O diagrama de blocos abaixo mostra o projeto:
No vídeo, voce terá uma idéia de como ficará o projeto final:

Continue lendo…

Electronic Playground With Arduino and Scratch 2

Este é o meu quarto tutorial procurando integrar o aprendizado da eletrônica com a linguagem SCRATCH e o primeiro que publico em português.

Anteriormente, já havia publicado, tanto no site do Instructables.com, quanto no Hackster.io:

  1. Physical Computing – Scratch 2.0 for Raspberry Pi
  2. Physical Computing – Scratch for Raspberry Pi   (Scratch V.1.4)
  3. Physical Computing – Scratch for Arduino   (S4A / Scratch V1.4)

Neste novo tutorial, desenvolveremos novos projetos e idéias integrando o Scratch 2.0 com o Arduino, verdadeiros “campeões” quando se fala sobre o ensino de eletrônica e programacão para crianças, educadores e iniciantes.

Existem poucas iniciativas disponíveis na web abrangendo Scratch 2 para Arduinos, sendo mais conhecidas as que foram desenvolvidas com foco em kits suportados oficialmente pelo site do Scratch, tais como Lego WeDo, PicoBoard, ou o alternativo editor mBlock , etc.

Como uma opção pessoal e para não ficar amarrado a nenhum fabricante ou solução proprietária, escrevi este tutorial com base no “s2aio“, uma extensão de hardware gratuita e aberta, criada por MrYsLab,  para ser utilizada com o o editor offline do Scratch 2.0.

Obrigado, Alan Yorinks, criador do MrYsLab por esta grande iniciativa!

Legal! Neste tutorial, aprenderemos como utilizar o Scratch 2.0 na programação de um ARDUINO de maneira a que possamos interagir com o mundo físico!

Em suma, aprenderemos como:

  • Ler entradas digitais tais como botões e sensores de movimento
  • Ler sensores analógicos como LDR (para medir luz) e temperatura
  • Gerar saídas digitais, ligando e desligando LEDs
  • Atuar em dispositivos analógicos controlando, por exemplo, o brilho de um LED usando-se de técnicas de modulação de pulso (PWM)
  • Gerar tons musicais utilizando-se de uma campainha (buzzer)
  • Controlar um servo motor
  • Medir distâncias com um sensor de ultra-som (como os morcegos)
  • Construir um “Playground eletrônico virtual” para interagir com dispositivos reais
  • Misturar animação com dispositivos do mundo real
  • Construir um radar

O diagrama acima mostra todos os sensores e atuadores conectados ao nosso Arduino. Mas não se preocupe, iremos passo a passo em cada componente.

Neste vídeo você poderá ver um radar de verdade desenvolvido a partir do Scratch 2 e do Arduino. Desenvolveremos este projeto juntos ao longo deste tutorial:

Continue lendo…

Uma linguagem de programação fantastica para iniciantes no mundo da informática, principalmente crianças, é o SCRATCH!

Mas o que é o Scratch?

Vejamos o que diz o Wikipedia:

Por não exigir o conhecimento prévio de outras linguagens de programação, ele é ideal para pessoas que estão começando a programar e foi desenvolvida para ajudar pessoas acima de 8 anos no aprendizado de conceitos matemáticos e computacionais. Com ele é possível criar histórias animadas, jogos e outros programas interativos.

E também controlar o mundo físico, juntamente com o Raspberry Pi e o Arduino!

Criado tendo em vista as experiências do Media Lab com a linguagem LOGO desenvolvida por Papert, o Scratch visa ir além dessa linguagem em três aspectos: fazer a linguagem mais suscetiva à manipulação, mais social e mais significante. Assim a forma como os blocos podem ser manipulados lhe confere uma possibilidade de aprendizagem auto-gerida através da prática de manipulação e teste dos projetos. A plataforma online permite que usuário interajam entre si, critiquem e aprendam com os projetos dos outros (remixing). Além disso, o Scratch permite a personalização através da incorporação de imagens e sons externos, bem como a possibilidade de desenhar e gravar som dentro da ferramenta. Continue lendo…

Neste tutorial, exploraremos como ler cores usando um Arduino e sensores como o TCS 3200. A idéia será detectar a cor de um objeto, exibindo-a em um LCD. Este tutorial é a primeira parte de um projeto maior, um braço robótico que decide que operação executar a partir da cor de uma peça.

O diagrama de blocos abaixo mostra os principais componentes:

Color Detector Block DiagramO vídeo abaixo mostra como ficará o projeto final:

Continue lendo…

A versão em inglês do ArduFarmBot já está na Amazon, mas não se esqueça que a versão original em português também poderá ser adquirida no link: ArduFarmBot (Portuguese Edition)

The English version of ArduFarmBot is alive at Amazon.com! You can get it, clicking the below banner:

Amazon_book

The book uses the electronic controller ArduFarmBot as a basis for learning how to work in both HW and SW, with a) LCD and OLED type displays; b) LEDs and buttons; c) Activation of pumps and lamps via relays and d) Sensors such as: DHT22 (temperature and relative air humidity), DS18B20 (soil temperature), YL69 (soil moisture) and LDR (luminosity).

Continue lendo…