Arduino – Sensor de temperatura Parte5

Depois de um longo tempo sem postar nada sobre Arduino, segue algo que eu sempre quiser passar aqui no blog mas não tinha um conteúdo para acompanhar, que seria Arduino com interação de banco de dados.

Vamos continuar utilizando todo o material dos posts anteriores porém agora vamos dar sentido a nossa aplicação, fazendo com que os dados coletados do Arduino sejam armazenados em um banco de dados, onde um arquivo será agendado para que de 5 em 5 minutos comunique com o Arduino e salve estes valores (temperatura) em um banco de dados.

Nossa aplicação web ficará assim:

SensorTempArduinoWebcomBanco

Não sou desenvolvedor front-end e tudo foi desenvolvido pelo que li e já usei algum dia, então fiquei a vontade em adaptar e modificar ao gosto deixar apenas os créditos, como eu detalhei bastante o código e as passagens e este post ficaria muito extenso resolvi escrever e gerar um .pdf que esta em um link no fim desta pagina junto aos arquivo compactado com toda estrutura do sistema web.

Para seguir este post será necessário a preparação do ambiente que será informado nos primeiros passos até o download do material necessário:

1) Este post foi escrito baseado em uma VM Linux.

2) É necessário ter instalado e funcionando (Apache2, MySQL, PHP5 e o modulo php5-mysql).

Caso precise de ajuda clique aqui, já escrevi um post sobre isso.

3) Esta sendo disponibilizado toda estrutura das paginas e do banco de dados MySQL, para só copiar e colar os arquivos e o banco apenas importar e já estará funcionando, caso não tenha experiencias com banco de dados MySQL instale o Phpmyadmin.

4) O diretório padrão do projeto é /var/www/tempuino/

5) O usuário e senha do banco de dados mysql utilizado é ‘operador’ para ambos.

6) Download do material.

Material passo-a-passo PDF

Arquivos da estrutura

Agora é só abrir a mente e expandir as idéias do que se pode fazer com web + Arduino + banco de dados.

ATENÇÃO: Na pagina principal utilizei para informar a data html5, no Google Chrome funcionou certo, porém no Mozilla Firefox não, então a data deve ser informada no seguinte padrão (2014-01-16), constatei isso apenas hoje após ter escrito o material em realizado um teste final.

Até a próxima!

Share Button

CC BY-NC-SA 4.0 Arduino – Sensor de temperatura Parte5 by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • Olá Cleiton, parabéns pelo compartilhamento dos seus conhecimentos. Tenho uma ideia bem legal para aprimorar essa sua interface e visualização dos dados, você conhece a ferramenta para gerar gráficos chamada RRDtool?

    • Opa, Felipe obrigado pelo feedback.
      Conheço RRDtool sim até utilizei no meu TCC https://www.youtube.com/watch?v=ouP55S_-zz4
      Porém acho um pouco complexo passar a criação e manipulação de um RRD, pois maioria é hobista, mas pretendo escrever sobre RRDtool ainda sim.
      Mas valeu a dica.

      Abraços.

  • Olá amigo, Muito bom o seu Projeto Parabéns.
    Também escrevo artigos e faço vídeos sobre o arduino, é fantástico as possibilidades com essa plaquinha.

    Fiz um projeto similar ao seu, a diferença é que fiz com Java Web + MySQL e com o Sensor DHT11 lendo Temperatura e Umidade.

    Caso tenha interesse segue o artigo passo a passo
    http://tecnologiaeciencia.com.br/projeto-arduino-com-ethernet-shield-sensor-aplicacao-web-java/

    Abraço!

  • Cleito não funcionou com Windows com Xampp da erro na leitura da porta, tem alguma correção?
    Reading serial port is not implemented for Windows”, E_USER_WARNING

  • Opa Wagner.
    Na verdade a Parte5 eu implementei no Linux e vai ser difícil eu testar ou soltar algum post desta serie para Windows porque minha VM deu problema no Windows e estou sem tempo de reparar.
    O post https://cleitonbueno.wordpress.com/2013/05/19/arduino-sensor-de-temperatura-parte4/ que é a Parte4 repara o problema da porta serial do PHP em Windows, porém outros problemas irão aparecer como o caminho das imagens e libraries já que no Linux é diferente.

    Abraço.

  • Daniel Duarte

    Cara parabéns pela iniciativa, achei seus artigos muito bacanas…

    Estou pensando em fazer um projeto com um raspberry como servidor, conectando em um arduino, pretendo acessar externamente esse servidor, visualizando uma câmera e tendo a opção de acender e apagar um refletor pela web.

    Criei uma vm linux ( ainda não comprei o raspberry) e comecei a desenhar a aplicação, minha maior dúvida e como fazer o arduino conversar com a aplicação, eu tenho um Ethernet Shield, mas não sei o que vale mais a pena: Ligar o arduino diretamente no raspberry e comunicar por serial ou fazer os dois conversarem pela rede…

    Abraço
    Daniel

  • Olá amigo excelente trabalho ! Queria pedir uma humilde ajuda !
    estou com um projeto , parado..

    bem no meu projeto queria adicionar o sensor dht11 , e exibir o valor temperatura e umidade na minha pagina ( php ) , conexão via socket
    ******
    $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_connect($sock,”192.168.10.108″, 8081); // IP do Arduino e porta de comunicação.
    ****

    Bem sou leigo no assunto, o código eu comprei , nao citarei nome por ética ! , pedi ajuda ao desenvolvedor porem , ate me atendeu , mais nao me ajudou muito. pois o que ele disse e muito complicado para mim.
    Bem , independente do código que comprei , queria saber como proceder.
    Estou com Arduino uno , Shield Ethernet w5100 ,

    Pois se eu souber como funciona, poderei adaptar ao código que comprei .

    De principio queria enviar o valor ( DHT11) e mostra os valores na pagina php .
    ele me disse assim


    Para enviar o valor float para via socket, utilize o dtostrf , ele coloca a variavel float dentro de um array caracter por caracter, ai é só imprimir o valor no PHP.

    http://forum.arduino.cc/index.php?topic=103935.0

    exemplo:

    char test[10];
    float temperatura1 = 30.12
    client.write(dtostrf(temperatura1, 6, 1, test));


    Só que não sei, montar isso no código Arduino e nem fazer o php ler isso :(
    se puder me ajudar Cleiton , ficaria muito grato
    obrigado.. sucesso sempre !

  • Bayardi Bonfim

    Olá Cleiton! Vi seu post e fiquei muito animado pois estou quebrando a minha cabeça com o arduino uno, ethernet shield w5100 + lcdkey, o meu projeto é o seguinte: eu tenho que medir a temperatura ambiente que varia de -30ºC a 30ºC, tenho que informar este valor a um display lcd e salvar um log em um arquivo txt no pc tipo c:logtemp.txt usando PHP, e como eu sou noob estou tendo dificuldades, hà lembrando eu uso sistema operacional Winodws, se vc puder me ajudar ficarei agradecido. sem mais, Obrigado!!!

    • Que bom que gostou do post Bayardi. Sobre sua dificuldade, com este post que escrevi você resolve ou já tem uma boa ideia de como fazer a parte do PHP + Arduino + Sensor temperatura, no caso fiz com banco de dados, já tem a estrutura caso queira migrar seu “datalogger” para um BD no lugar de um arquivo .txt.
      Escrevi outro post sobre comunicar com o Arduino via Ethernet usando UDP, a primeira parte esta aqui https://cleitonbueno.wordpress.com/2014/06/03/arduino-ethernet-shield-comunicacao-udp-parte1/, estou devendo a parte2, fiz em Python mas da para pegar a ideia e passar para PHP tranquilamente, como? Usando Sockets, olha o link abaixo.

      http://php.net/manual/pt_BR/book.sockets.php

      Ae só resta o Display LCD, que se utilizar um com CI HD44780 da Hitachi, que é muito comum encontrar por ae, é muito fácil para integrar com o Arduino.

      Espero ter ajudado e boa sorte.

  • André Weber Javorski

    Parabens pelo Blog, materiais muito bom, ta em meus favoritos já!! e a algum tempo kk

    • Obrigado André, fico feliz de receber este feedback e saber que o pessoal gosta e faz bom uso do material que disponibilizo.

      Aproveita e cadastra o e-mail para receber newsletter mensal ;)

      Abraço

  • Denys

    Cleiton, boa tarde!
    Seria muito difícil adaptar o seu trabalho feito aqui nesse post para o windows? usando por exemplo xampp

  • Williams Dantas

    amigo vc teria esta mesma aplicação para windows configurada no xamp ou wamp

  • Williams Dantas

    o codigo do arduino vc postou pra download

  • sergio silva

    Parabens, caiu como uma luva para as experiencias que estou fazendo.
    Mas não entendi a parte que vc fala do arquivo comunicacao_serial.php.
    será que pode postar o seu?
    Obrigado
    Sérgio