Regue suas plantas com um aspersor inteligente DIY usando PiFace e Ubidots
Uma das razões pelas quais tenho cactos em casa é porque muitas vezes me esqueço de regar as plantas. É por isso que construo este projeto para controlar remotamente uma eletroválvula para irrigar minhas plantas de qualquer lugar apenas usando meu telefone.
Ao final deste tutorial, você deverá ser capaz de fazer algo assim:
Materiais
- Raspberry Pi modelo B:
- Piface digital
- Válvula de água plástica – 3/4″ – 12V nominal
- Fio flexível para 1A
- Macaco barril DC
- Adaptador de alimentação de comutação regulado de 12 VCC 1000mA
- Acoplamento roscado em pvc de 3/4”
- Fita de teflon
- Mangueira
- Aspersor
Conexões
As conexões elétricas são bastante fáceis:
- Em primeiro lugar, conecte seu piface ao Raspberry Pi sem conectar nenhum adaptador de energia.
- Siga o diagrama abaixo. O fio branco é GND e está conectado ao terminal comum do relé, o vermelho está conectado ao NO (normalmente aberto).
Quanto às conexões hidráulicas, certifique-se de usar fita de teflon em todas as uniões para evitar vazamento de água.
Configure sua conta Ubidots , variáveis e widgets
Se você é novo no Ubidots , crie uma conta aqui .
- Navegue até a guia “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 “My Raspberry Pi”
- Adicione duas novas variáveis chamadas “valve” e “relay_state” e não esqueça de preencher os campos nome e unidade.
- Anote o id da sua variável:
- Anote sua chave API encontrada em “ Meu perfil -> Chave API ”.
- Agora, vamos criar um novo widget para controlar a válvula remotamente:
- Escolha o widget “Switch” e vincule-o à variável “válvula”. Este widget escreverá “1” ou “0” na variável “válvula”, que pesquisaremos mais tarde em nosso Raspberry Pi.
- Adicione outro widget chamado “indicador” e escolha a variável Valve_State:
- Esta é a aparência do seu dashboard agora:
Codificação
Antes de começarmos a codificar, você já deve ter configurado seu Raspberry Pi com Internet. Caso contrário, verifique esta postagem do blog sobre como configurar o WiFi . Agora podemos seguir em frente, faça login através de um terminal no seu Raspberry Pi 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 e pressione CTRL-X, digite Y e Enter. Isso ativa o SPI desde a 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 Pi:
sudo reiniciar
Ótimo! estamos prontos para começar a codificar 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 de ubidots import ApiClient #Biblioteca para Ubidots pifacedigital = pifacedigitalio.PiFaceDigital() #Declarar objeto piface ##Conectar a Ubidots try: api = ApiClient("1fc7a56bf4b539725ace7a3f4aa623e9e9620612") #Não se esqueça de colocar sua própria válvula Apikey = api.get_variable('53cd4cb07625425b70f5c21e') #Coloque aqui o ID da sua válvula valveState = api.get_variable("53ce95547625420403d81468") #Coloque aqui seus IDs de estado real, exceto: print("cant connect") #Verifique seu Apikey, ID da variável e conexão com a internet while(True): lastValue = valve.get_values(1) #Obtenha o último valor da válvula de Ubidots rele = pifacedigital.relays[0].value #Save relé estado valveState.save_value({'value':rele}) #Envia o estado do relé para Ubidots para a in lastValue: print a['value'] if(a['value']): #Liga ou desliga o relé pifacedigital.output_pins [0].turn_on() senão: pifacedigital.output_pins[0].turn_off()
Execute seu programa:
$ sudo python valvula.py
Concluindo
Neste exemplo conseguimos controlar uma eletroválvula com Piface Digital. Ligamos/desligamos um atuador no dashboard Ubidots , que deve permitir controlar quase 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, fazer alertas e controlar outros dispositivos. Você pode querer verificar estes outros exemplos:
Você tem mais ideias de projetos? Crie uma conta Ubidots e faça acontecer.