Meu sistema de automação residencial. Criando uma imagem do sistema operacional

1. Introdução

Instalando o sistema em um Raspberry Pi 2.3

Descreverei o caminho mais fácil, na minha opinião, para iniciantes.

Todas as ações ocorrerão no Ubuntu 18.04.

Para obter ajuda sobre os comandos, use o comando "man" + o comando desejado.

man ls 

Ou o comando necessário com a tecla --help

 ls --help 


1. Instalação do sistema operacional Raspbian Stretch Lite em um cartão microSD.

O cartão MicroSD deve ser da classe 10 e com capacidade de 8 gigabytes.
Insira o cartão SD no computador e digite o comando:

 lsblk 



No exemplo, o mapa é definido como mmcblk0, então usarei esse nome.

Em seguida, para limpar o cartão das informações gravadas anteriormente (criaremos uma imagem de disco), é necessário apagá-lo com o comando:

 dd if=/dev/zero of=/dev/mmcblk0 

Este comando requer direitos de superusuário, para isso você precisa adicionar a palavra-chave “sudo” no início. A seguir, eu dou comandos sem sudo . Ao digitar comandos, use o preenchimento automático (tecla Tab), isso é necessário para controlar a entrada correta de comandos e caminhos de arquivos. Enquanto o comando está em execução, você pode baixar uma nova distribuição do sistema operacional.

Faça o download aqui: raspberrypi.org
Precisamos do Raspbian Stretch Lite. Descompacte o zip baixado, precisamos de um arquivo com a extensão img - esta é a imagem do disco que copiaremos para o cartão. Portanto, se tivermos uma imagem de disco e o comando dd estiver concluído, prossiga.

Copie a imagem para o cartão:

 dd if=/path/to/raspbian.img of=/dev/mmcblk0 bs=4M status=progress 

após a conclusão, digite o comando:

 sync 

Retiramos o cartão e o inserimos de volta.

Crie um arquivo vazio no disco de inicialização do nosso mapa:

 touch /media/$USER/boot/ssh 

Isso é necessário para que um servidor ssh seja iniciado no Raspberry.

O cartão deve ser removido com segurança, inserido no Raspberry, conectado a uma rede com fio e energizado. Se não houver uma fonte de alimentação 2 apmera, você poderá ligá-la a partir de um computador com USB3. Na primeira inicialização, o sistema aumentará o tamanho do disco para o tamanho da placa, e isso levará algum tempo.

Para descobrir o endereço IP do nosso RPi, você pode usar o utilitário arp-scan. Se não estiver instalado, defina:

 apt install arp-scan 

Descobrimos o nome da nossa placa de rede:

 ip a 

ou

 netstat -i 



Eu tenho uma placa wifi chamada wlp1s0.

Execute arp-scan:

 arp-scan -I wlp1s0 -l 



Eu preciso de um RPi com IP 192.168.0.114, o endereço é atribuído pelo DHCP e pode ser qualquer coisa.

Vamos ao RPi por ssh:

 ssh pi@192.168.0.114 

você precisa digitar yes na primeira autenticação e, em seguida, digite a senha do pi - raspberry .

Se conseguimos fazer login no Raspberry, digite o comando:

 init 0 

Este comando desativa o RPi.

Você precisa inserir o cartão no computador novamente. Agora precisamos do programa “gparted”, se não estiver instalado, defina:

 apt install gparted 

Começamos com gparted, você precisa alterar o tamanho do disco mmcblk0p2, deixar no final uma área não alocada de 300 a 500 megabytes ou 2-3% do tamanho do cartão, isso é necessário para que nossa imagem se encaixe em cartões de fabricantes diferentes e eles podem variar de tamanho. O resultado deve ser algo como isto:



Após concluir o trabalho com o gparted, você pode fazer uma cópia de backup do cartão, para que, em caso de problemas em outras experiências, tenha uma imagem pronta.

 dd if=/dev/mmcblk0 | bzip2 > raspbian.bz2 

agora sempre podemos restaurar nosso disco com o comando:

 bzcat raspbian.bz2 | dd bs=4M of=/dev/mmcblk0 

Como resultado, temos um cartão microSD com um sistema operacional pronto para uso e sua cópia de segurança.

2. Configurando Raspbian Stretch Lite.

Vamos para RPi por ssh. Para configurar os endereços estáticos da rede com fio e do wifi, adicione as seguintes configurações ao final do arquivo /etc/dhcpcd.conf:

interface eth0
endereço_ip estático = 192.168.0.10 / 24
roteadores estáticos = 192.168.0.1
static domain_name_servers = 8.8.8.8, 8.8.4.4
interface wlan0
endereço_ip estático = 192.168.0.10 / 24
roteadores estáticos = 192.168.0.1
static domain_name_servers = 8.8.8.8, 8.8.4.4

Com essas configurações, o RPi terá o mesmo IP em uma rede com ou sem fio.

Arquivo para configurar o wifi - /etc/wpa_supplicant/wpa_supplicant.conf
adicione as seguintes configurações a ele:

network = {
ssid = "NAME"
psk = "PASS"
}
onde NAME e PASS nome de usuário e senha da rede wifi. Se não for conhecido antecipadamente onde usar nosso RPi, o nome e a senha poderão ser inseridos posteriormente.

Adicionar tarefas ao programa cron

 crontab -e 

No primeiro início, você precisará selecionar um editor de texto, nano - será o mais familiar.



Para que os agendamentos funcionem, adicione as seguintes configurações:

PATH = / usr / sbin: / usr / bin: / sbin: / bin
SHELL = / bin / bash

E as tarefas em si, registraremos o tempo de cada download e a duração da operação contínua; essas informações serão úteis no futuro.

reboot sleep 60 && date >> my-reboot.txt
@weekly uptime >> meu-uptime.txt

Para sair, a combinação de teclas Ctrl + x, Y, Enter

A configuração do fuso horário é feita pelo comando:

 dpkg-reconfigure tzdata 

Para aumentar o recurso do cartão SD, você pode parar o log e excluir o arquivo de troca:

(Acho que isso deve reduzir a probabilidade de falha do cartão SD ou corrupção de dados durante desligamentos repentinos de RPi durante a operação):

 apt update apt purge dphys-swapfile apt autoremove --purge apt install busybox-syslogd dpkg --purge rsyslog 

Instalação de programas:

 apt install mosquitto mosquitto-clients sqlite3 libsqlite3-dev mc htop arp-scan vim supervisor python-pip python3-pip python-virtualenv python-dev 

 pip install psutil paho-mqtt pip3 install psutil paho-mqtt 

Para o homekit2mqtt, você precisa instalar o nodejs:

 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - apt-get install -y nodejs 

Verificando a versão instalada

 node -v nodejs -v 

Instale o node-red:

 npm install -g --unsafe-perm node-red 

Lançamos:

 node-red 



Na barra de endereços do navegador, digite o endereço IP do RPi 192.168.0.10:1880



Conclua node-red, pressione Ctrl + c, vá para o diretório .node-red

 cd .node-red 

E instalar pacotes para o nó vermelho, eles podem ser necessários para teste, configuração e comunicação de vários dispositivos.

 npm i node-red-dashboard node-red-contrib-sonos node-red-contrib-knx node-red-node-serialport node-red-contrib-globalcache node-red-contrib-counter 

Retornamos ao diretório inicial

 cd 

Instale o homekit2mqtt:

 apt install libavahi-compat-libdnssd-dev npm install -g homekit2mqtt --unsafe-perm 

Você pode tentar executar o homekit com o comando

 homekit2mqtt 



Ele começará com as configurações padrão e você pode adicionar um novo dispositivo ao programa Home no seu iPhone ou iPad

A senha pi deixará a atual.

Agora que tudo está instalado e verificado, você precisa fazer backup de nosso cartão SD da mesma maneira que antes. Agora tudo está pronto para instalar o sistema de automação.

Source: https://habr.com/ru/post/pt446190/


All Articles