Regue suas plantas com um aspersor inteligente faça-você-mesmo usando PiFace e Ubidots
Um dos motivos pelos quais tenho principalmente cactos em casa é porque frequentemente me esqueço de regá-los. Por isso, desenvolvi este projeto para controlar remotamente uma válvula eletromagnética e irrigar minhas plantas de qualquer lugar, usando apenas meu celular.
Ao final deste tutorial, você deverá ser capaz de fazer algo como isto:
Materiais
- Raspberry Pi modelo B:
- Piface digital
- Válvula de água de plástico – 3/4″ – 12V nominal
- Fio flexível para 1A
- macaco de barril DC
- Adaptador de alimentação comutada regulada de 12 VCC 1000 mA
- Acoplamento roscado de PVC de 3/4”
- Fita de Teflon
- Mangueira
- Aspersor
Conexões
As ligações elétricas são bastante simples:
- Primeiramente, conecte seu PiFace ao Raspberry Pi sem conectar nenhum adaptador de energia.
- Siga o diagrama abaixo. O fio branco é o GND e está conectado ao terminal comum do relé, enquanto o fio vermelho está conectado ao NA (normalmente aberto).
Quanto às conexões hidráulicas, certifique-se de usar fita de teflon em todas as uniões para evitar vazamentos de água.
Configure sua conta Ubidots , variáveis e widgets
Se você é novo no Ubidots , crie uma conta aqui .
- Acesse a aba “Fontes” e adicione uma nova fonte.
- Selecione Raspberry Pi como sua nova fonte de dados e preencha o formulário.
- Agora clique na nova fonte “Meu Raspberry Pi”
- Adicione duas novas variáveis chamadas “valve” e “relay_state” e não se esqueça de preencher os campos nome e unidade.
- Anote o ID da sua variável:
- Anote sua chave de API, que você encontra em “ Meu Perfil –> Chave de API ”.
- Agora, vamos criar um novo widget para controlar a válvula remotamente:
- Selecione o widget “Interruptor” e associe-o à variável “válvula”. Este widget escreverá “1” ou “0” na variável “válvula”, que verificaremos posteriormente no nosso Raspberry Pi.
- Adicione outro widget chamado “indicador” e escolha a variável Valve_State:
- Veja como seu dashboard está agora:
Codificação
Antes de começarmos a programar, você já deve ter configurado seu Raspberry Pi com a internet. Caso contrário, confira este post do blog sobre como configurar o Wi-Fi . Agora podemos prosseguir. Faça login no seu Raspberry Pi através de um terminal e configure o módulo SPI para se comunicar com o PiFace Digital:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Adicione um caractere “#” antes da linha spi-bcm2708, pressione CTRL-X, digite Y e pressione Enter. Isso habilita o SPI na inicialização. Agora, vamos instalar e configurar a biblioteca PiFace Digital:
sudo apt-get update sudo apt-get install python3-pifacedigitalio python-pifacedigitalio
Reinicie seu Raspberry Pi:
sudo reboot
Ótimo! Estamos prontos para começar a programar nosso projeto. Crie um novo arquivo chamado “valve.py” e cole o seguinte código nele:
sudo nano válvula.py
import pifacedigitalio #Biblioteca para pifacedigitalio #Biblioteca para atrasos do ubidots import ApiClient #Biblioteca para Ubidots pifacedigital = pifacedigitalio.PiFaceDigital() #Declara o objeto piface ##Conecta ao Ubidots try: api = ApiClient("1fc7a56bf4b539725ace7a3f4aa623e9e9620612") #Não se esqueça de inserir sua própria chave de API valve = api.get_variable('53cd4cb07625425b70f5c21e') #Insira aqui os IDs das suas válvulas valveState = api.get_variable("53ce95547625420403d81468") #Insira aqui os IDs dos estados reais except: print("não foi possível conectar") #Verifique sua chave de API, ID da variável e conexão com a internet while(True): lastValue = valve.get_values(1) #Obtém o último valor da válvula do Ubidots rele = pifacedigital.relays[0].value #Salva o estado do relé valveState.save_value({'value':rele}) #Envia o estado do relé para Ubidots for a in lastValue: print a['value'] if(a['value']): #Liga ou desliga o relé pifacedigital.output_pins[0].turn_on() else: pifacedigital.output_pins[0].turn_off()
Execute seu programa:
$ sudo python valve.py
Concluindo
Neste exemplo, conseguimos controlar uma eletroválvula com o Piface Digital. Ligamos/desligamos um atuador a partir do dashboardUbidots , o que deve permitir o controle de praticamente qualquer processo físico, desde que possa ser controlado por um relé.
Você também pode usar Ubidots para medir dados de séries temporais, como níveis de sinal, gerar alertas e controlar outros dispositivos. Confira também estes outros exemplos:
Tem mais ideias de projetos? Crie uma conta Ubidots e coloque-as em prática.