Sensing the Air Quality

22 22-03:00 agosto 22-03:00 2019 — 1 Comentário

A low-cost IoT Air Quality Monitor based on RaspberryPi 4

santiago_contamination

I have the privilege of living in one of the most beautiful countries in the world, but unfortunately, it’s not all roses. Chile during winter season suffers a lot with air contamination, mainly due to particulate materials as dust and smog.

Chile

Because of cold weather, in the south, air contamination is mainly due to wood-based calefactors and in Santiago (the main capital in the center of the country) mixed from industries, cars, and its unique geographic situation between 2 huge mountains chains.

 

Nowadays, air pollution is a big problem all over the world and in this article we will explore how to develop a low expensive homemade Air Quality Station, based on a Raspberry Pi.

If you are interested to understand more about it,  please visit the “World Air Quality Index” Project.

Continue lendo…

How safe are the streets of Santiago?

16 16-03:00 agosto 16-03:00 2019 — 1 Comentário

Let’s answer it with Python and GeoPandas!

Costanera Center, Santiago / Benja Gremler

Some time ago I wrote an article, explaining how to work with geographic maps in Python, using the “hard way” (mainly Shapely and Pandas): Mapping Geography Data in Python. Now it is time to do it again, but this time, explaining how to do it in an easy way, using GeoPandas,  that can be understood as Pandas + Shapely at the same package.

Geopandas is an open source project to make working with geospatial data in Python easier. GeoPandas extends the datatypes used by Pandas to allow spatial operations on geometric types.

The motivation for this article was a recent project proposed by our professor Oscar Peredo and developed with my colleagues, Fran Gortari and Manuel Sacasa for the Big Data Analytics course of UDD’s (Universidad del Desarrollo) Data Science Master Degree.

bannerThe objective of that project was to explore the possibility of, taking advantage of state of the art Machine Learning Algorithms, to predict crash risk score for an urban grid, based on public car crash data from 2013 to 2018. By the other hand, the purpose of this article is simply to learn how to use GeoPandas,  on a real problem, answering a question:

“How safe are the streets in Santiago?”.

If you want to know what we have done with the proposed project for our DS Master deegre , please visit its GitHub repository.

Continue lendo…

When we are talking about physical variables, as temperature, pressure, etc., as a Data Scientist, usually we start working from a dataset that was created somewhere else. But have you thought about how to capture those data yourself?

On this tutorial we will get data from several different sensors, sending them to an IoT service, ThingSpeak.com and to a mobile App (Thingsview), where we can log and play with data. We will explore several different communication ways of connecting sensors to a Raspberry Pi, as:

  • DHT22 – Temperature & Humidity Sensor – Digital Comm
  • DS18B20 – Temperature Sensor – 1-Wire
  • BMP180 – Temperature & Pressure Sensor – I2C
  • UV – Ultra Violet Sensor – Analog Sensor via A/D and SPI bus

In short, all data will be captured, saved locally on a CSV file and send to an IoT service (ThingSpeak.com), via MQTT protocol, as you can see on below block diagram:

To complete a real Weather Station, on the final step, you will also learn how to measure wind speed and direction, following Mauricio Pinto‘s tutorial.
Continue lendo…

The idea with this tutorial is to capture tweets and to analyze them regarding the most used words and hashtags, classifying them regarding the sentiment behind them (positive, negative or neutral).

Continue lendo...

Aprenda a instalar o Jupyter Notebook em um Raspberry Pi e, diretamente ler e controlar sensores e atuadores.

Todos sabemos que o Jupyter Notebook é uma ferramenta fantástica, ou melhor, um aplicativo Web de código aberto que permite criar e compartilhar documentos que contenham códigos ativos, equações, visualizações e texto.

O Jupyter Notebook é amplamente utilizado no campo do Data Science, limpando e transformando dados, fazendo simulações numéricas, modelagem estatística, visualização de dados, aprendizado de máquina e muito mais!

Mas, que tal usar os Jupyter Notebooks para controlar os GPIOs de um Raspberry Pi?

É exatamente  isso que faremos neste tutorial. Aprenderemos como instalar o Jupyter Notebook em um Raspberry Pi, e diretamente nele, ler sensores e atuar em atuadores.

Continue lendo…

Este é um dos meus quatro tutoriais com foco em Scratch e “Physical Computing”. Em relação a esse tópico, já publiquei aqui em meu blog:

Aprendendo eletrônica com o Arduino e a linguagem Scratch 2.0

Existem mais dois tutoriais em ingles, (um para o Arduino e outro para o Raspberry), onde exploro a versão 1 do Scratch:

Aqui, exploraremos projetos usando a versão mais recente do Scratch disponível para o Raspberry Pi, a 2.0.

Em resumo,

Aprenderemos:

  • O que é o Scratch 2.0 e suas diferenças com o Scratch 1.4
  • Como interagir com LEDs, botões de pressão e campainha
  • Como criar blocos especiais
  • Como lidar com variáveis
  • Como integrar animações com o mundo físico.

Vamos lá!

Continue lendo…

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…

Programando MicroPython no ESP8266

6 06-03:00 junho 06-03:00 2018 — 3 Comentários

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…

MJRoBot termina em 3o. lugar no concurso: Remote Control Contest 2017 promovido pelo Instructables.com, o maior site Maker do mundo!

O tutorial ganhador, foi sobre os sambas, quero dizer, sobre minhas experiencias com o pequeno robô Cozmo (é que sambei um pouquinho para entender como programar o rapaz ;-)!

Cozmo é muito mais que um brinquedo, é uma grande ferramenta didática tanto para crianças como adultos. Cozmo pode ser programado tanto por uma linguagem parecida ao Scratch quanto por Python. Daí, minha idéia de interagir o robozinho com o Raspberry Pi.

O tutorial completo pode ser encontrado aqui no site:

When COZMO, the Robot meets the RASPBERRY PI

portada

O site oficial do Raspberry Pi na Inglaterra também escreveu sobre o tutorial:

WHEN TINY ROBOT COZMO MET OUR TINY RASPBERRY PI

Isso aí! Espero no futuro publicar novos tutoriais com o Cozmo! E por falar em samba…..

mjrobot_samba.gif

Abracão!!!!!