quarta-feira, 27 de julho de 2016

Balizadora Inteligente - PARTE 4

Chegamos a 4º etapa do projeto Balizadora Inteligente, se você perdeu algum post, sugiro fazer a leitura:


Nesse post vamos tornar nosso objeto inteligente, dando inicio a programação do modulo ESP8266 com NODEMCU, vale lembrar que para esse projeto vamos precisar dos seguintes pacotes:




Para gerar seu pacote customizado basta acessar: http://nodemcu-build.com/ 

Feito o pacote do NodeMCU é necessário gravar na sua placa ESP8266, no Windows podemos utilizar o nodemcu-flasher. É simples basta conectar sua placa no computador, e seguir o passo a passo: https://github.com/nodemcu/nodemcu-flasher

Com o firmware gravado, agora podemos escrever nosso software utilizando a linguagem LUA. Para conhecer mais sobre a linguagem acesse: https://www.lua.org/portugues.html

"Lua é inteiramente projetada, implementada e desenvolvida no Brasil, por uma equipe na PUC-Rio (Pontifícia Universidade Católica do Rio de Janeiro). Lua nasceu e cresceu no Tecgraf, o então Grupo de Tecnologia em Computação Gráfica da PUC-Rio. Atualmente, Lua é desenvolvida no laboratório LabLua do Departamento de Informática da PUC-Rio."

Para fazer a interface de comunicação entre o modulo e a linguagem LUA, assim como programação vamos utilizar o software ESPlorer. Com ele basta conectar via porta serial, assim é possível enviar comandos, assim como gramar seu script init.lua, que será executado sempre que o modulo for reiniciado automaticamente.

Falando em script, a ideia aqui foi criar uma conexão TCP com o meu servidor gratuito hospedado no 000webhost, então conectando no servidor smart.microembarcado.vacau.com utilizando porta 80, ao conectar executamos a função sendStatus(socketque se encarrega de fazer a leitura dos dados e enviar para pagina parser_smart.php, que se encarrega de escrever as informações no banco de dados.

Não conseguimos acessar o banco de dados diretamente desse servidor gratuito, por isso é necessário utilizar uma pagina em PHP para se encarregar disso.

A pagina deve ser construída com as informações lidas pelo modulo:

http://smart.microembarcado.vacau.com/parser_smart.php?temperature=XX&umidade=XX&T_painel=XX&status=XX



  1. tmr.alarm(0, 120000, 1, function() initSocketAndTransmitData() end)
  2. function initSocketAndTransmitData()
  3.     local socket = net.createConnection(net.TCP, 0)
  4.     socket:connect(80, "smart.microembarcado.vacau.com")
  5.     socket:on("connection", function(conn)
  6.         print("Connected to microembarcado")
  7.         sendStatus(socket)
  8.     end)
  9.     socket:on("receive", function(conn, message)
  10.             node.dsleep(180*10000000)
  11.             --node.dsleep(1000000)
  12.     end)
  13. end
  14. function sendStatus(socket)
  15.     status, temp, humi = dht.read(5)
  16.     --if status == dht.OK then
  17.          adc.force_init_mode(adc.INIT_ADC)
  18.          valadc = adc.read(0)
  19.          valadc = valadc * (5 / 1023)
  20.          gpio.mode(6,gpio.INPUT, gpio.PULLUP)
  21.          led = gpio.read(6)
  22.     --end
  23.    
  24.     local php = "GET /parser_smart.php?temperature=" ..temp..
  25.     "&umidade=" ..humi.. "&T_painel=" ..valadc.. "&status=" ..led..
  26.     " HTTP/1.1\r\nHost: smart.microembarcado.vacau.com\r\n" ..
  27.     "Connection: keep-alive\r\nAccept: */*\r\n\r\n"
  28.     socket:send(php)
  29. end


Esse script é muito simples, basicamente o que ele faz é tentar uma conexão no servidor, se a conexão for OK, faz a leitura dos dados (temperatura,umidade,tensão no painel solar...) encapsula todas informações, e envia utilizando a pagina parser_smart.php, logo apos o modulo dorme por 30 minutos para economia de energia, repetindo isso ciclicamente.


No próximo post vamos continuar falando sobre a programação do modulo ESP8266, e sobre o servidor WEB com banco de dados e paginas PHP. 

Nenhum comentário:

Postar um comentário