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. 

quarta-feira, 20 de julho de 2016

Balizadora Inteligente - PARTE 3

Fala galera! Tudo beleza?

Se você não viu a ultimo post, de uma olhada em: Balizadora Inteligente - PARTE 2.

Nessa etapa vamos abordar testes com painel solar, e consumo de corrente de todo circuito para cálculos de autonomia.


Analisando a tensão do painel solar quando o LED se apaga e acende, cheguei a conclusão que existe um limiar de tensão para fazer o controle do LED, uma tensão abaixo de 0.9v, faz com que o LED acenda, e qualquer nível de tensão que exceda 0.9v faz o LED apagar. Não percebi nenhuma variação na intensidade do brilho, apenas controle ON/OFF. Isso é feito  pelo circuito integrado no epóxi, uma outra forma de controlar, seria a utilização de um sensor de luminosidade como um LDR, na parte plastica é visível um orifício que poderia ser utilizado para isso, pois ele deixa passar a luz.


Com isso utilizando uma bateria com capacidade de 250mA, e consumo total variando de 10mA até 60mA. Vale lembrar que o consumo do NODEMCU varia de acordo com as funcionalidades ativas, poderemos tratar isso melhor na construção do software, abaixo segue tabela de consumo:



Post curto para esclarecer alguns dados, no próximo post vamos tratar da parte de programação do ESP8266.

Fica imagem do que vem pela frente!!


quarta-feira, 13 de julho de 2016

Balizadora Inteligente - PARTE 2

Fala galera! Tudo beleza?

Se você não viu a ultimo poste, de uma olhada em: Balizadora Inteligente - PARTE 1.


Enfim vamos colocar a mão nos componentes, começando pela balizadora:



Caixa onde vem a luminária:



Componentes da caixa e manual:




Bateria de 3,2V e 250mA acompanha o kit:





É muito tranquilo montar a balizadora:




Foto no jardim, sem flash:



Já com flash a LED apaga, provavelmente um circuito de controle de luminosidade ou tensão no painel solar:



Bom, esse é o funcionamento normal, sem nenhuma modificação. Vamos agora abrir o equipamento e fazer alguns testes com multímetro. Para abrir a caixa é muito simples, basta retirar os quatro parafusos com uma chave philips, é importante retirar a bateria para evitar qualquer dano.


Após abrir a tampa, temos acesso ao painel solar, o fio vermelho indica o polo positivo e o preto negativo, interessante notar que em volta do painel existe um tipo de cola/resina para evitar a entrada de água:


Focando no circuito de controle, é possível visualizar uma placa simples, existe um circuito integrado, porém com epóxi, assim não conseguimos identificar nenhuma informação, além disso a placa possui alguns resistores e capacitores.

            

LED é do tipo SMD:


A primeira modificação feita, foi adição de dois fios, positivo e negativo, partindo da bateria para alimentar o ESP8266, lembrando que a saída da bateria é de 3.2v, assim podemos ligar direto no VIN e GND do modulo NODEMCU:

Feito a conexão para alimentação do modulo, vamos adicionar agora outros fios para coleta de informações. Com um multímetro fiz a leitura da tensão do painel solar, utilizando uma luz externa foi possível perceber a variação da tensão onde o fio verde foi soldado, nesse ponto já temos um divisor de tensão do próprio circuito, possibilitando a leitura pelo canal analógico:


Um segundo fio azul, foi soldado no anodo(+) do LED, possibilitando assim a leitura digital para definir em software se LED esta aceso ou apagado:


Conectando os sinais no ESP8266, e adicionando o sensor DHT11 e acomodando os componentes:


Feito isso, no diagrama abaixo é possível visualizar as conexões feitas no modulo.




Bom é isso!! No próximo post vamos verificar o consumo de corrente, e fazer testes com o painel solar.

quarta-feira, 6 de julho de 2016

Balizadora Inteligente - PARTE 1

Olá a todos!!

Se você perdeu o ultimo post, veja "De volta".

Como comentei no ultimo post, nessa etapa vou mostrar como foi a compra dos componentes. Inicialmente vamos adquirir o principal, para depois se necessário ir comprando mais coisas.


O primeiro item é ESP8266, que pode ser encontrado em diversas versões, nesse caso vamos utilizar o ESP8266 NODEMCU.

         Essa versão do modulo foi escolhida, pois todos os pinos ficam disponíveis e de fácil acesso, além do mais temos uma porta USB que serve para comunicação com PC e alimentação, outro grande detalhe, a placa já possui um conversor de tensão para 3,3v, que é a tensão de alimentação do ESP8266, assim tudo fica mais fácil de ser alimentado. Em contrapartida a placa é um pouco maior que as demais, o que pode ser um problema para encaixar tudo em nossa luminária balizadora.

O modulo pode ser encontrado facilmente na internet com valores variando de 40 reais até 50 reais, por exemplo, no Mercado Livre.

O segundo item do nosso projeto é a luminária balizadora, existem diversas opções no mercado, a que achei interessante foi da marca Ecoforce, que pode ser encontrada na loja web do Walmart e do Leroy Merlin, em lojas de jardim e de iluminação também é possível encontrar.

A compra foi feita na loja física do Leroy Merlin em Contagem/MG o modelo 16738


Esse modelo foi escolhido por causa do seu espaço interno, é fácil adicionar uma bateria com maior capacidade e acomodar o modulo ESP8266. 




É isso ai pessoal, no próximo post vamos desmontar a luminária e fazer alguns testes em campo, até mais!!