O “Mars Rover” tupiniquim – Protótipo de uma estação móvel para captura de dados ambientais

Descrição geral:

A idéia deste projecto é o desenvolvimento de um protótipo totalmente funcional para uma estação móvel  usada na coleta de dados ambientais tais como: temperatura, umidade e luminosidade.  Este protótipo foi desenvolvido somente para fins didáticos e fez parte de meu projeto final no curso de especialização do Coursera em parceria com a University of California, Irvine:  “Uma Introdução à Programação da Internet of Things (IOT)“.

Considerações do projeto:
  • O Rover será controlado remotamente por um dispositivo Android com capacidade Bluetooth. Os dados serão continuamente capturados e transmitidos independentemente se o Rover está parado ou em movimento.
  • O usuário deve receber um feedback visual (streaming de vídeo ao vivo)
  • Os dados capturados serão analisados através de um site público (neste caso: thingspeak.com)
  • Os dados estarão disponíveis para os usuários em um formato gráfico e tabela
  • Alarmes via Twitter serão gerados localmente pela estação ou pelo website
  • O Rover terá capacidade autónoma para evitar obstáculos a fim de proteger-se em caso de mau controle por parte do usuário.
Opções de projeto:

Com base nos requisitos, inicialmente 2 opções foram consideradas para este projeto.

  1. Um único processador responsável por todas as tarefas, que neste caso deveria ser um Raspberry Pi.
  2. Um processador dual , sendo as funções divididos entre eles ( Arduino e RPI ) :
    • Processor 1: RPi
      • Captura de dados
      • Comunicação com a Web
      • Transmissão de vídeo
      • Envío de mensagens via mídia social
    • Processor 2: Arduino
      • Controle dos motores (movimento e posicionamento da câmera)
      • Evasão de obstáculos
      • Comunicação com o controle remoto

Em termos de custos, utilizar 2 processadores é de fato menos custoso do que a opção de um único processador. Isso ocorre porque o Arduino é um item muito barato e portanto mais acessível que a opção de “Servo Hat”, necessária para o RPi controlar os servos de maneira adequada. Outra diferença é o módulo de BT. Para o Arduino, um módulo barato como o HC – 06 BT 3.0 é suficiente, sendo que o mesmo custa a metade do preço do “BT Dongle” a ser adicionado ao Rpi.  Assim,a opção escolhida foi o projeto com processador dual.

diag Block complete

A Lista de materiais:

BoM

Instalação e testes da Camera (Pi-Cam) no RPi
  1. Instale PIP
    • sudo apt- get install python- pip
  2. Instalar a biblioteca picamera :
    • pip install picamera
  3. Instalar a biblioteca flask Python:
    • sudo pip install flask
  4. Baixar projeto de streaming de vídeo Flask:
  5. Na pasta do projeto editar o arquivo app.py , comente esta linha:
    • #from camera import Camera
  6.  Tirar o comentario da linha:
    • from camera_pi import Camera
  7. Salve o arquivo app.py
  8. Executar ifconfig para descobrir o endereço IP local do seu Raspberry Pi “yourLocalIPaddress ” .
  9. Inicie o servidor Flask executando este comando :
    • python app.py 
  10. Uma mensagem será impressa no monitor:
  11. Abra um navegador e acesse este endereço :
    • ” YourLocalIPaddress ” : 5000
Instalando o sensor de temperatura e humidade: HC-11

DH11-RPiDH11-RPi hw

  1. Em primeiro lugar, obter a Biblioteca do Github :
  2. Instalação da Biblioteca :
    • sudo apt-get update
    • sudo apt- get install build-essential python -dev python- openssl
    • cd / Home / Pi / Adafruit_Python_DHT
    • sudo python setup.py install
  3. Teste o sensor, executando o programa: AdafruitDHT.py no monitor. Entre os parâmetros como : 11 ( sensor DHT11 ) e 4 ( GPIO onde o sensor está ligado )
    • sudo Python AdafruitDHT.py 11 4
  4. O resultado deve ser a temperatura ea humidade lido pelo sensor

DH11-RPi monitor

Enviando dados para a internet

Para a configuração básica do sensor DH- 11 com a RPI e envio dos dados à internet , uma grande ajuda foi começar a partir deste tutorial:

Plotting DHT11 sensor data at ThingSpeak.com using Raspberry Pi

Passos:

  • A definição de um canal em ThingSpeak.com :

ThinkSpeak1

  • Execução do códigoPython para testes:
    • sudo Python temp_hum_test.py
    • NOTA: Todos os códigos fonte estão disponíveis ao final do post.

ThinkSpeak2

ThinkSpeak3

Adicionando o sensor de luz:

Um tutorial muito bom que serviu de base para esta parte do projeto, pode ser visto aqui:

Continue Lendo “O “Mars Rover” tupiniquim – Protótipo de uma estação móvel para captura de dados ambientais”