Índice:

Tomada de energia habilitada para Internet: 13 etapas
Tomada de energia habilitada para Internet: 13 etapas

Vídeo: Tomada de energia habilitada para Internet: 13 etapas

Vídeo: Tomada de energia habilitada para Internet: 13 etapas
Vídeo: Como identificar as FASES na rede de alta tensão e na rede de baixa tensão 2024, Novembro
Anonim
Image
Image
Suprimentos necessários
Suprimentos necessários

Projeto do PowerHub Webserver e instruções de configuração da tomada habilitada para Internet

Hub central de persistência de dados para luz e tomadas habilitadas para Internet em sua casa!

Etapa 1: Projeto do servidor da web do PowerHub e instruções de configuração da tomada habilitada para Internet

Hub central de persistência de dados para luz habilitada para Internet e tomadas em sua casa

Flashing RaspberriPi Hard Disk / Instale o software necessário (usando Ubuntu Linux) Baixe "RASPBIAN JESSIE LITE"

Crie seu novo disco rígido para o DashboardPI

Insira o microSD em seu computador via adaptador USB e crie a imagem de disco usando o comando dd

Localize o cartão microSD inserido por meio do comando df -h, desmonte-o e crie a imagem de disco com o comando disk copy dd

$ df -h / dev / sdb1 7,4G 32K 7,4G 1% / media / XXX / 1234-5678

$ umount / dev / sdb1

Cuidado: certifique-se de que o comando é totalmente preciso, você pode danificar outros discos com este comando

if = localização do arquivo de imagem RASPBIAN JESSIE LITE de = localização do seu cartão microSD

$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img de = / dev / sdb (nota: neste caso, é / dev / sdb, / dev / sdb1 era uma partição de fábrica existente no microSD)

Configurando seu RaspberriPi

Insira seu novo cartão microSD no raspberrypi e ligue-o com um monitor conectado à porta HDMI

Conecte-se

usuário: pi pass: framboesa

Altere a senha da sua conta para segurança

sudo passwd pi

Etapa 2: ativar as opções avançadas do RaspberriPi

sudo raspi-config

Escolha: 1 Expandir sistema de arquivos

9 opções avançadas

Nome do host A2 altere para "WIFI-OUTLET"

SSH A4 Habilitar Servidor SSH

A7 I2C Habilitar interface i2c

Habilite o teclado inglês / americano

sudo nano / etc / default / keyboard

Altere a seguinte linha: XKBLAYOUT = "us"

Reinicialize o PI para alterações de layout do teclado / redimensionamento do sistema de arquivos para entrar em vigor

$ sudo shutdown -r now

Auto-conectar ao seu WiFi

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Adicione as seguintes linhas para que o raspberrypi se conecte automaticamente ao WiFi doméstico (se a sua rede sem fio se chamar "linksys", por exemplo, no exemplo a seguir)

network = {ssid = "linksys" psk = "WIRELESS PASSWORD HERE"} Reinicialize o PI para se conectar à rede WiFi

$ sudo shutdown -r now

Agora que seu PI está finalmente na rede local, você pode fazer login remotamente nele via SSH. Mas primeiro você precisa obter o endereço IP que possui atualmente.

$ ifconfig Procure por "inet addr: 192.168. XXX. XXX" na seguinte saída de comando para o endereço IP do seu PI

Vá para outra máquina e faça login no seu raspberrypi via ssh

$ ssh [email protected]. XXX. XXX

Etapa 3: comece a instalar os pacotes necessários

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install vim git python-requisições python-gpiozero python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev python3-spidev python-spidev

Atualize as configurações de fuso horário local

$ sudo dpkg-reconfigure tzdata

selecione seu fuso horário usando a interface

Configure o diretório simples l comando [opcional]

vi ~ /.bashrc

adicione a seguinte linha:

alias l = 'ls -lh'

fonte ~ /.bashrc

Corrigir o realce de sintaxe padrão do VIM [opcional]

sudo vi / etc / vim / vimrc

descomente a seguinte linha:

sintaxe em

Instalar drivers i2c Python

Etapa 4: CONSTRUA A WEB API

As instruções a seguir permitirão que você construa o hub central que explica as várias tomadas habilitadas para wi-fi e interruptores de parede que você pode construir, quais dispositivos são ligados e desligados. Este é um pequeno script PHP para colocar em um host da web de sua escolha. Ele tem a seguinte API para obter e definir informações para ele. Nota: não se esqueça de incluir o arquivo.htaccess para que o roteamento de URL apropriado ocorra.

Instale a pasta "index.php", "values /" e settings.php (configurado com seus próprios valores) em um servidor web habilitado para PHP de sua escolha. O valor da chave secreta no arquivo "settings.php" deve corresponder ao valor da chave secreta que você configuraria no arquivo "settings.py". Em um nível básico, isso evitará que qualquer outro tráfego da web configure / grave valores, ligando seus dispositivos. Agora, você precisa desta chave API com hash no cabeçalho da solicitação HTTP para fazer isso.

A API suporta os seguintes recursos, para este projeto usaremos apenas os valores "flag", que são valores booleanos que dizem ao switch para ligar e desligar. Talvez se você quisesse tirar vantagem dos valores de "leitura", poderia fazê-lo se a temperatura ambiente ficar muito quente salvando uma temperatura lá, ele poderia ligar um ventilador de janela, etc.

Obtenha o código

Clone o seguinte projeto do GitHub para obter o código para executar o servidor da web e o outlet RaspberryPI.

github.com/khinds10/PowerHub

Endpoints da API ao executar no servidor da web

myhost / message (obtenha o conjunto de mensagens atual)

myhost / message / set (HTTP POST um valor de string bruto para este URL para definir uma nova mensagem)

myhost / flag / {id} (obter o status booleano atual do sinalizador por inteiro: {id})

myhost / flag / all (obtém todos os status booleanos atuais de todos os sinalizadores como uma matriz)

myhost / flag / {id} / set (defina o status booleano atual como 'true' para o sinalizador por inteiro: {id})

myhost / flag / {id} / unset (defina o status booleano atual como 'false' para o sinalizador por inteiro: {id})

myhost / reading / {id} (obtenha o valor médio atual para a leitura por inteiro: {id})

myhost / reading / all (obtenha o valor médio atual de todas as leituras como uma matriz)

myhost / reading / {id} / set (HTTP POST um valor numérico bruto para este URL para adicionar um novo valor à média calculada atual) - veja abaixo quantos valores no total são compilados para o valor médio Configuração Os valores de 'leituras' são calculados como médias de um certo número de valores numéricos de leitura persistentes recentes. Defina a seguinte constante para quantas das leituras mais recentes devem ser incluídas para produzir a média.

$ readingsA AverageLimit = 5;

O Datastore Server manterá os valores em arquivos simples localizados pelas convenções de nomenclatura abaixo. Nota: {id} será substituído pelo inteiro real apresentado pelo URL da solicitação de entrada.

$ valueFileFolder = 'values' (nome da pasta que contém os arquivos de medição) $ messageFileName = 'message.msg' (nome do arquivo de texto da mensagem) $ readingsFilesNames = 'reading {id}.avg' (nome do CSV médio arquivo de leituras) $ flagFilesNames = 'flag {id}.flg' (nome do arquivo de flag de valor do flag booleano)

Certifique-se de que todos os arquivos de valor podem ser gravados pelo systemchmod 777 values / *

Etapa 5: suprimentos necessários

Suprimentos necessários
Suprimentos necessários
Suprimentos necessários
Suprimentos necessários
Suprimentos necessários
Suprimentos necessários

Serra copo de 1 polegada (para uma broca)

Módulo de Relé de 2 Canais 5V

Placa de parede de receptáculo duplex

Receptáculo Duplex

Pi Zero W

Caixa dupla de montagem em superfície

Botões de pressão iluminados brancos

Etapa 6: Construindo o Outlet

Construindo o Outlet
Construindo o Outlet

Break Outlet Tabs

Quebre a guia na lateral da tomada para que cada tomada seja ligada / desligada independentemente

Etapa 7: botões de instalação

Botões de instalação
Botões de instalação
Botões de instalação
Botões de instalação

No painel frontal da saída, usando a serra copo de 1 , corte 2 orifícios para os botões a serem colocados ao lado das saídas

Teste de dimensionamento de componentes

Certifique-se de que todos os componentes cabem na caixa de montagem de superfície de saída

Etapa 8: relé de fio

Relé de fio
Relé de fio
Relé de fio
Relé de fio

Conecte o relé à tomada, do cabo de extensão que vai até a parede, conecte o terra (verde) e neutro (branco) diretamente à tomada. individualmente

Etapa 9: Imagens adicionais de fiação e montagem

Imagens adicionais de fiação e montagem
Imagens adicionais de fiação e montagem

Etapa 10: Diagrama de fiação

Diagrama de Fiação
Diagrama de Fiação

Use o diagrama para conectar corretamente os componentes para trabalhar com o código RaspberryPI Python.

Etapa 11: Teste de operação a seco

Teste de funcionamento a seco
Teste de funcionamento a seco
Teste de funcionamento a seco
Teste de funcionamento a seco
Teste de funcionamento a seco
Teste de funcionamento a seco

Após a montagem final, antes de aparafusar a unidade de orifício, execute uma simulação do dispositivo para se certificar de que não há curtos, fiação ruim

Etapa 12: definir os scripts de inicialização

crontab -e

adicione as seguintes linhas

@reboot python /home/pi/PowerHub/device/outlet/buttons.py @reboot python /home/pi/PowerHub/device/outlet/relay.py

Recomendado: