Automatização


Fala pessoal blz?
Hoje venho trazer uma dica bacana. Nunca tinha usado o modo texto para criar ou dar permissão para um database no MySql ou Maria DB, sempre usei o PhpMyAdmin, porem no meu projeto de automação residencial, precisei instalar o MariaDB para criar uma tabela de autenticação, porem não conseguia acessar o Banco pelo NodeJS, dava erro de “Client does not support authentication protocol requested by server; consider upgrading MariaDB client”, então após alguns minutos pesquisando no google qual podia ser esse erro e vi que que era porque não conseguia autenticar no banco de dados, muitos falaram em trocar a senha, porem como eu tinha criado um usuário novo então vi que era algo relacionado a grants do database com o usuário criado.

Create user smarthome identified by 'senha_forte';

CREATE DATABASE smarthomedb;

GRANT ALL PRIVILEGES ON smarthomedb.* TO 'smarthome'@'%' WITH GRANT OPTION;

Assim resolvi meu problema de acessar o database novo.

Flw até a próxima.

Anúncios

Olá pessoal tudo bem? Hoje venho mostrar como fiz para acionar o portão eletrônico de casa com um Raspberry.

WhatsApp Image 2018-09-12 at 07.44.21

Equipamentos que usei:

  • 1 Raspberry Pi 3
  • 1 placa com dois relés (pode ser apenas um relé)
  • 1 protoboard
  • 6 jumpers macho-fêmea
  • 20cm de fio flexível (peguei um fio de fonte ATX que tinha desmontado)
  • controle do portão
  • Ferro de solda
  • Estanho

De onde surgiu a ideia

Queria abrir e fechar o portão pelo celular, porem pesquisei na internet e não encontrei nenhum lugar que tinha um tutorial explicando como fazer, então peguei uma ideia aqui um detalhe ali e fui estudar a placa do meu portão eletrônico, a minha placa é uma Smart G2 da Garen, vi que ela tem a opção de colocar uma botoeira extra para ser acionada por porteiros ou condôminos que não estão portando seu controle, porem não queria passar fios entre os conduítes para fazer a ligação com meu Raspberry.

Parti para algo que não precisasse de passar fios nas tubulações, vi um vídeo no YouTube onde um cidadão tinha modificado o controle dele para acionar o portão, porem não explicou como fez, comecei a fazer alguns testes então.

Testes

Tinha um controle velho que não estava mais acionando o portão, então como eu iria abrir ele para verificar se era pilha fraca ou outra coisa, aproveitei para fazer esse experimento, após verificar que era apenas uma oxidação nos contatos da pilha com o controle, limpei os contatos, passei uma fita isolante para segurar a pilha ligada ao controle e fechei contato entres os polos de um dos botões, bingoo!!! O motor do portão foi acionado.

Como fazer

Agora precisava de algo que fechasse o circuito e que fosse acionado pelo Raspberry, comecei pesquisando por transistor, onde havia lido uma vez que ele pode funcionar como um interruptor, mas achei um pouco complicado pelos fatos de que: primeiro eu precisava saber se o transistor que eu queria era NPN ou PNP, controlar corrente e tensão, era muitas variáveis para uma coisa simples, segundo eu precisava adquirir um transistor, então no meio dessa busca pro acionamento de led por transistor, achei também, acionamento de luz  com relé, então me perguntei: Porque não?

Eu tinha comprado um relé a um tempo atrás para fazer acionamento de uma lâmpada, porem o projeto nunca saiu da ideia, então procurei como fazer funcionar o relé com o Raspberry, peguei algumas sacadas importantes que explicarei na sequencia.

Mão na massa

Raspberry-Pi-GPIO-Layout-Model-B-Plus-rotated-2700x900

Gabarito GPIO Raspberry

Primeiro vamos para a parte física:

  1. Raspberry – Protoboard
    • Eu alimentei a protoboard com 5V usando o pino 2
    • depois coloquei o ground pino 6
    • depois conectei pino 11 na protoboard
  2. Relé – Protoboard
    • liguei o jumper no 5vcc e na trilha energizada pelo 5v do rasp
    • liguei o ground na trilha da protoboard que estava o ground vindo  do rasp
    • e pino do relé 1 (o meu estava escrito K1) na trilha que eu conectei o pino 11 do rasp
  3. cortei o fio ao meio de 20cm ao meio e soldei um pedaço em cada terminal de um dos botões do controle.
  4. conectei os fios que soldei no controle aos bornes aberto e comum do relé 1

Agora vamos a parte de programação:

Liguei o Raspberry rodando Raspbian, liguei ele na TV para acessar a minha rede Wifi, e ver qual ip ele pegou, habilitei o OpenSSH que já havia instalado previamente, então anotei o ip e desconectei ele do HDMI da TV.

Agora sim ambiente configurado, acessei o rasp via Putty e então dei os seguintes comandos.

vi script1.py

Então fiz a seguinte código na linguagem Python

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(11, GPIO.OUT)
GPIO.output(11, 0)
time.sleep(1)
GPIO.output(11, 1)
Apertei ESC
Digitei :wq para poder salvar

Então testei o programa da seguinte forma

python script1.py

O controle foi acionado por 1 segundo e parou, e o portão abriu!!

Aqui está o pulo do gato, o relé e acionado quando é passado ground para o “pino de dados”, no caso do python é aquele 0.

O portão abriu até o final, porem quando tentei fecha-lo ele tentou fechar e parou, então diminui o tempo de sleep para 0.6 segundos e não houve mais problemas.

Instalei o aplicativo JuiceSSH no celular e consegui acessar o Raspberry e executar o script, mas ainda estava complicado, então fui atrás de alternativas e descobri que existe uma biblioteca do nodejs que consegue se comunicar com os GPIO do Raspberry, mas esse assunto fica para um próximo post,

 

Valeu e flw!