Índice:
- Etapa 1: Coisas que você precisa
- Etapa 2: preparar Raspberry Pi para 433 MHz
- Etapa 3: configurar o servidor doméstico inteligente
- Etapa 4: clientes de configuração
- Etapa 5: Conclusão
Vídeo: Smart Home by Raspberry Pi: 5 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Já existem vários produtos que tornam o seu apartamento mais inteligente, mas a maioria deles são soluções proprietárias. Mas por que você precisa de uma conexão com a Internet para ligar a luz do seu smartphone? Essa foi uma das razões para eu construir minha própria solução de casa inteligente.
Eu programei um aplicativo de servidor que roda em um Raspberry Pi. Este é um projeto de código aberto baseado em java que permite a você configurar seu apartamento e conectar vários clientes e 'unidades controláveis'. Eu mostro uma solução que lida com interruptores de fonte de alimentação rc, reproduz música e vídeo no Raspberry Pi, mostra o status no espelho inteligente e pode ser controlada por um aplicativo Android e dois aplicativos seixo. A fonte está hospedada no github
Etapa 1: Coisas que você precisa
Para configurar a casa inteligente, você precisa dos seguintes 'ingredientes'
- Raspberry Pi, pelo menos, modelo 2 B
- Remetente de 433 MHz, algo assim
- 3 cabos jumper conectando o Raspberry Pi e o remetente
- Algumas tomadas de controle de rádio a 433 MHz
- Smartphone Android para executar o aplicativo cliente
Além disso, você pode estender a casa inteligente com mais clientes opcionais e unidades como esta
- Pebble smartwatch
- Smart Mirror, veja este projeto
- Faixa de LED controlada de 433 MHz, consulte este
Etapa 2: preparar Raspberry Pi para 433 MHz
Nas etapas a seguir, você precisa acessar a linha de comando do Raspberry Pi. Para obter o acesso, você pode ler este https://www.instructables.com/id/Remote-SSH-access …
Conecte o emissor de 433 MHz com o Raspberry Pi como mostrado na imagem acima
- GND (remetente) 6 GND (raspi)
- VCC (remetente) 2 + 5V (raspi)
- DADOS (remetente) 11 GPIO 17 (raspi)
Conecte também uma antena de 17 cm ao pino ANT (remetente). Isso aumenta o sinal significativo.
Uma vez que precisamos de algumas bibliotecas de outros repositórios git, temos que instalar o git
sudo apt-get install git-core -y
Para configurar o Raspberry Pi para comunicação de 433 MHz, precisamos da biblioteca wiring Pi para melhor manuseio dos GPIOs.
git clone git: //git.drogon.net/wiringPi
cd wiringPi./build
Então, precisamos de uma biblioteca que implemente protocolos de fonte de alimentação tipicamente rc.
git clone git: //github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi make cp send / usr / bin /
O executável 'send' permite enviar códigos para trocar a maioria das fontes de alimentação disponíveis.
Na minha configuração de casa inteligente, eu também tenho uma faixa de LED rc descrita por este instrutível: https://www.instructables.com/id/RC-controlled-LED… Para definir as cores para esta faixa de LED, você precisa de outro executável de envio que permite para enviar qualquer valor inteiro (que codifica a cor).
Portanto, compile sendInt.cpp no repositório rcswitch-pi e mova-o para / usr / bin / sendInt.
sudo g ++ sendInt.cpp -o / usr / bin / sendInt /home/pi/rcswitch-pi/RCSwitch.o -I / home / pi / rcswitch-pi -lwiringPi
Agora você deve ser capaz de enviar comandos rc com os dois executáveis / usr / bin / send e / usr / bin / sendInt
Etapa 3: configurar o servidor doméstico inteligente
Em primeiro lugar, você precisa instalar vários pacotes. O aplicativo Smart Home é baseado em java e funciona bem com openjdk-11. Não tenho certeza sobre outros ambientes de execução java. O mplayer é um reprodutor de música de linha de comando minimalista. O omxplayer usa os gráficos Raspberry Pi para codificação de vídeo, portanto, deve ser usado para vídeos. O programa formiga é necessário para construir o aplicativo java.
sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y
Configure os diretórios para o arquivo jar e para os logs.
sudo mkdir / opt / neo
sudo chown pi: pi / opt / neo mkdir / home / pi / Logs
Configure o script de inicialização para iniciar o aplicativo automaticamente na inicialização. Portanto, copie o script de smart-home anexado para o diretório /etc/init.d/ Eu também criei um script em / usr / bin / que canaliza comandos para o script anexado, então eu apenas insiro smart-home no console para executar comandos.
sudo cp smart-home /etc/init.d/smart-home
sudo chmod + x /etc/init.d/smart-home sudo sh -c "echo '#! / bin / bash'> / usr / bin / smart-home" sudo sh -c "echo '/ etc / init. d / smart-home / $ 1 '>> / usr / bin / smart-home "sudo chmod + x / usr / bin / smart-home sudo update-rc.d padrões de casa inteligente
Agora é hora de verificar o repositório e construir o aplicativo. Se você não quiser compilá-lo sozinho, basta baixar o smarthome.jar anexado e movê-lo para / opt / neo /
git clone [email protected]: dabastynator / SmartHome.git
ant -f SmartHome / de.neo.smarthome.build / build.ant build_remote cp SmartHome / de.neo.smarthome.build / build / jar / * / opt / neo /
Tente iniciar a casa inteligente e verifique o arquivo de log. Para obter acesso aos GPIOs, o aplicativo deve ser iniciado por sudo.
sudo smart-home start
cat Logs / smarthome.log
Você deve ver a mensagem de erro O arquivo de configuração não existe, que nos indica a próxima etapa. O repositório contém um leia-me que explica o arquivo de configuração. Você pode ver isso muito bem renderizado no github:
Copie este xml para /home/pi/controlcenter.xml, em seguida, defina o local para o seu servidor de mídia e altere o conteúdo conforme necessário. Depois de terminar a configuração e reiniciar o smart-home (sudo smart-home restart), você deve ver o seguinte conteúdo no smarthome.log
24.05-08: 26 INFORMAÇÕES REMOTAS por de.neo.smarthome.cronjob. CronJob@15aeb7ab: Programar cron job
24.05-08: 26 INFORMAÇÕES REMOTAS por [trigger.light]: Aguarde 79391760 ms para a execução 24.05-08: 26 INFORMAÇÕES RMI por Adicionar manipulador web (5061 / ledstrip) 24.05-08: 26 INFORMAÇÕES RMI por Adicionar manipulador web (5061 / ação) 24.05-08: 26 INFORMAÇÕES RMI por Adicionar web-handler (5061 / mediaserver) 24.05-08: 26 INFORMAÇÕES RMI por Adicionar manipulador web (5061 / switch) 24.05-08: 26 INFORMAÇÕES RMI por Adicionar manipulador web (5061 / controlcenter) 24.05-08: 26 RMI INFORMATION by Start webserver with 5 handler (localhost: 5061) 24.05-08: 26 REMOTE INFORMATION by Controlcenter: Add 1. control unit: MyUnit (xyz)…
O servidor web agora está rodando:-)
Etapa 4: clientes de configuração
Cliente smartphone Android
O repositório git para o aplicativo smart-home também contém o código-fonte para o cliente Android, para que você possa compilá-lo sozinho. Mas anexei o APK para esta etapa, o que torna mais fácil. Na primeira vez que você inicia o aplicativo, ele pede um servidor, como na primeira imagem acima. Insira o url do servidor e o token de segurança.
Deve ser isso. Agora você tem acesso ao servidor e controla seu apartamento, reproduzindo músicas e assistindo vídeos remotamente no seu Raspberry Pi. Observe que você pode adicionar widgets à sua tela inicial, o que torna os interruptores e o controle de música mais acessíveis.
Cliente Smartwatch Pebble
A fonte para os dois clientes pebble está hospedada no github. Um aplicativo mostra o arquivo de música que está tocando: https://github.com/dabastynator/PebbleRemoteMusic… Isso também permite pausar / reproduzir e aumentar / diminuir o volume.
O segundo aplicativo aciona três ações: https://github.com/dabastynator/PebbleControl Os nomes dos acionadores são: mobile.come_home mobile.leaving e mobile.go_to_bed. Se você definir regras de evento para este gatilho em seu xml de configuração, você as ativa por seu relógio.
É tudo de código aberto, mas você não precisa compilá-lo sozinho, também anexei os aplicativos do pebble. Baixe os PBW's com seu smartphone, seu telefone deve instalá-los no seu relógio. Os aplicativos de seixo precisam de configurações para se comunicar com o servidor. Anexei uma captura de tela da aparência das minhas configurações.
Cliente Smartwatch Garmin
Há também um cliente disponível para Garmin Smartwatches. O aplicativo está disponível na loja de aplicativos garmin connect e pode ser instalado aqui:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Cliente Smart Mirror
Já criei um instrutivo que explica como criar o Smart Mirror, veja este https://www.instructables.com/id/Smart-Mirror-by-R…. O código-fonte também está hospedado no github: https:// github.com/dabastynator/SmartMirror. O software do Smart Mirror lê a configuração do arquivo smart_config.js que não faz parte do repositório git. O conteúdo do arquivo de configuração deve ser semelhante a esta lista:
var mOpenWeatherKey = 'sua chave aberta';
var mSecurity = 'seu-token de segurança';
Você também precisa ajustar as duas primeiras linhas do arquivo smart_mirror.js para especificar o endereço IP do servidor Smart Home e o local para obter o clima certo.
Mais clientes
O aplicativo do servidor é um servidor da web simples. Isso permite que você acione ações de qualquer cliente que desejar por meio de chamadas da web simples. No vídeo de demonstração, mostro o tasker do aplicativo Android em combinação com o AutoVoice. Isso me permite acionar eventos com comandos de voz simples. Por exemplo, "ok google, hora de dormir" pode acionar mobile.go_to_bed. Mas você também pode fazer chamadas pela web, por exemplo, do IFTTT. Que tal uma faixa de LED amarela piscando para notificação por e-mail?
Você pode solicitar ao servidor possíveis chamadas da web, como os links a seguir (substitua ip, porta e token por sua configuração)
localhost: 5061 / controlcenter / api? token = secu…
localhost: 5061 / action / api? token = security-to…
localhost: 5061 / mediaserver / api? token = securi…
localhost: 5061 / switch / api? token = security-to…
localhost: 5061 / ledstrip / api? token = security-…
Etapa 5: Conclusão
Existem ainda alguns recursos a serem implementados: Como o servidor fornece apenas uma API web simples, os clientes fazem muitas pesquisas. Para reduzir a pesquisa, quero uma integração MQTT para melhor notificação. Além disso, as fontes de alimentação wi-fi devem ter um desempenho mais confiável do que as fontes de alimentação rc, pois o rc é apenas uma comunicação unilateral.
É muito divertido desenvolver para este projeto. E é muito legal controlar o apartamento por vários dispositivos, mesmo que a conexão com a internet seja interrompida.
Recomendado:
Howto: Instalando Raspberry PI 4 Headless (VNC) com Rpi-imager e imagens: 7 etapas (com imagens)
Howto: Instalando Raspberry PI 4 Headless (VNC) com Rpi-imager e imagens: Eu pretendo usar este Rapsberry PI em um monte de projetos divertidos em meu blog. Sinta-se à vontade para dar uma olhada. Eu queria voltar a usar meu Raspberry PI, mas não tinha um teclado ou mouse no meu novo local. Já fazia um tempo desde que configurei um Raspberry
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
GO-4 Smart Home Arduino Bot: 7 etapas (com imagens)
GO-4 Smart Home Arduino Bot: Neste projeto, vou mostrar a você como construir um Smart Home Bot usando a tecnologia IOT para controlar seus eletrodomésticos remotamente através da Internet. Mas antes de começarmos, vamos falar sobre essa técnica que usamos o que fazer … O que é IOT?
Faça você mesmo no Google Home com alto-falante Bluetooth no hub de encaixe Raspberry Pi Zero: 7 etapas (com imagens)
Faça você mesmo no Google Home com alto-falante Bluetooth no hub de encaixe Raspberry Pi Zero: Temos um instrutível no DIY Amazon Echo Alexa - Alexa Voice Assistant no Raspberry Pi Zero Docking Hub. Desta vez, queremos mostrar a você como construir um DIY Google Home. Neste instrutível, mostraremos como instalar e configurar o Google Assistant
GassistPi (Google Home em Raspberry Pi): 7 etapas (com imagens)
GassistPi (Google Home em Raspberry Pi): Google Assistant para Raspberry Pi