私のホームオートメーションシステム。 オペレーティングシステムイメージの作成

はじめに



Raspberry Pi 2.3へのシステムのインストール



私の意見では、初心者にとって最も簡単な方法を説明します。



すべてのアクションはUbuntu 18.04で発生します。



コマンドのヘルプについては、「man」コマンド+目的のコマンドを使用してください。



man ls
      
      





または、キー--helpを使用した必要なコマンド



 ls --help
      
      







1. microSDカードにRaspbian Stretch Liteオペレーティングシステムをインストールします。



MicroSDカードはクラス10で、容量は8ギガバイトである必要があります。

SDカードをコンピューターに挿入し、次のコマンドを入力します。



 lsblk
      
      









この例では、マップはmmcblk0として定義されているため、この名前を使用します。



次に、以前に記録された情報のカードをクリアするには(ディスクイメージを作成します)、次のコマンドでそれを消去する必要があります。



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





このコマンドにはスーパーユーザー権限が必要です。このため、最初にキーワード「sudo」を追加する必要があります。 以下、 sudoなしでコマンドを提供します。 コマンドを入力するときにオートコンプリート(Tabキー)を使用する場合、これはコマンドとファイルパスの正しい入力を制御するために必要です。 コマンドの実行中に、オペレーティングシステムの新しいディストリビューションをダウンロードできます。



ここからダウンロード: raspberrypi.org

Raspbian Stretch Liteが必要です。 ダウンロードしたzipを解凍します。拡張子がimgのファイルが必要です。これは、カードにコピーするディスクイメージです。 したがって、ディスクイメージがあり、ddコマンドが完了したら、次に進みます。



画像をカードにコピーします。



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





完了後、次のコマンドを入力します。



 sync
      
      





カードを取り出して挿入し直します。



マップのブートディスクに空のファイルを作成します。



 touch /media/$USER/boot/ssh
      
      





これは、Raspberryでsshサーバーを起動するために必要です。



カードを安全に取り外し、Raspberryに挿入し、有線ネットワークに接続して通電する必要があります。 2 apmeraの電源ユニットがない場合は、USB3を搭載したコンピューターから電源を供給できます。 最初の起動時に、システムはディスクのサイズをカードのサイズまで増やしますが、しばらく時間がかかります。



RPiのIPアドレスを確認するには、arp-scanユーティリティを使用できます。 インストールされていない場合は、次を設定します。



 apt install arp-scan
      
      





ネットワークカードの名前を確認します。



 ip a
      
      





または



 netstat -i
      
      









wlp1s0という名前のwifiカードがあります。



arp-scanを実行します。



 arp-scan -I wlp1s0 -l
      
      









IP 192.168.0.114のRPiが必要です。アドレスはDHCPによって割り当てられ、何でもかまいません。



sshでRPiにアクセスします。



 ssh pi@192.168.0.114
      
      





最初の認証でyesと入力してから、pi- raspberryのパスワードを入力する必要があります。



Raspberryにログインできた場合は、次のコマンドを入力します。



 init 0
      
      





このコマンドは、RPiをオフにします。



カードをもう一度コンピューターに挿入する必要があります。 ここで、「gparted」プログラムが必要です。インストールされていない場合は、以下を設定します。



 apt install gparted
      
      





gpartedを開始します。ディスクmmcblk0p2のサイズを変更する必要があり、最後に300-500メガバイトまたはカードのサイズの2-3%の未割り当て領域を残します。これは、イメージが異なるメーカーのカードに収まるために必要です。 結果は次のようになります。







gpartedでの作業が完了したら、カードのバックアップコピーを作成できます。これにより、さらなる実験で問題が発生した場合に、既製のイメージが得られます。



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





これで、次のコマンドでいつでもディスクを復元できます。



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





その結果、すぐに使用できるオペレーティングシステムとそのバックアップコピーを備えたmicroSDカードができました。



2. Raspbian Stretch Liteを構成します。



sshでRPiにアクセスします。 有線ネットワークとwifiの静的アドレスを構成するには、/ etc / dhcpcd.confファイルの最後に次の設定を追加します。



インターフェースeth0

static ip_address = 192.168.0.10 / 24

静的ルーター= 192.168.0.1

static domain_name_servers = 8.8.8.8、8.8.4.4

インターフェイスwlan0

static ip_address = 192.168.0.10 / 24

静的ルーター= 192.168.0.1

static domain_name_servers = 8.8.8.8、8.8.4.4



これらの設定により、RPiは有線またはWiFiネットワークで同じIPを持ちます。



wifiを設定するためのファイル-/etc/wpa_supplicant/wpa_supplicant.conf

次の設定を追加します。



ネットワーク= {

ssid = "NAME"

psk = "PASS"

}

ここで、WiFiネットワークからのNAMEおよびPASSユーザー名とパスワード。 RPiの使用場所が事前にわからない場合は、名前とパスワードを後で入力できます。



cronプログラムにタスクを追加します



 crontab -e
      
      





最初の起動時には、テキストエディタnanoを選択する必要があります。nanoは最も馴染みのあるものです。







スケジュールを機能させるには、次の設定を追加します。



PATH = / usr / sbin:/ usr / bin:/ sbin:/ bin

シェル= / bin / bash



タスク自体、各ダウンロードの時間と連続操作の継続時間を記録します。これは将来役立つ情報になります。



リブートスリープ60 &&日付>> my-reboot.txt

@weekly uptime >> my-uptime.txt



終了するには、キーの組み合わせCtrl + x、Y、Enter



タイムゾーンの設定は、次のコマンドで行います。



 dpkg-reconfigure tzdata
      
      





SDカードのリソースを増やすには、ロギングを停止してスワップファイルを削除できます。



(これにより、動作中のRPiの突然のシャットダウン中にSDカードの障害やデータ破損の可能性を減らすことができると思います):



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





プログラムのインストール:



 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
      
      





homekit2mqttの場合、nodejsをインストールする必要があります。



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





インストールされているバージョンの確認



 node -v nodejs -v
      
      





node-redのインストール:



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





以下を開始します。



 node-red
      
      









ブラウザのアドレスバーに、RPi 192.168.0.10:1880のIPアドレスを入力します







node-redを終了し、Ctrl + cを押して、.node-redディレクトリーに移動します



 cd .node-red
      
      





node-redのパッケージをインストールすると、さまざまなデバイスのテスト、構成、および通信に必要になる場合があります。



 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
      
      





ホームディレクトリに戻ります



 cd
      
      





homekit2mqttをインストールします。



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





コマンドでホームキットを実行してみることができます



 homekit2mqtt
      
      









デフォルト設定で起動し、iPhoneまたはiPadのホームプログラムに新しいデバイスを追加できます



パスワードpiは現在のものを残します。



すべてがインストールおよび検証されたので、以前と同じ方法でSDカードをバックアップする必要があります。 これで、自動化システムをインストールする準備がすべて整いました。



All Articles