自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Raspberry PiのセットアップからPython実行環境構築とイメージファイルバックアップまで

Raspberry Piを購入してから10ヶ月ほど経ちましたが、分からないなりに色々いじくり回していると余計に訳がわからない事態に陥ることもしばしば。

仕方ないクリーンインストールするか・・・ということが何度もありました。

その手間をなるべく省くために大まかなセットアップ手順とリセットを楽にするためのimgバックアップの方法をメモしておきます。

  • Raspberry PiのRaspbianセットアップと設定後イメージファイルのバックアップ
    • ①OSのイメージファイルをダウンロード
      • どちらを選べばいいのか
    • ② EtcherでSDカードに書き込む
    • ③ 起動後すぐにSSH接続できるように設定しておく
      • Wi-Fi設定
        • 最新版では一度有線接続してセットアップが必要かも
      • SSHの有効化
    • ④ Raspberry Piにセットして起動し、SSH接続
      • 有線LANで直接接続する場合
      • 無線LANでする場合
    • ⑤ raspi-configで各種設定
      • 1 ChangeUser Password
      • 3 Boot Options・・・起動方法
      • 4 Localisation Options
      • 5 Interfacing Options
      • 7 Advanced Options
    • ⑥ IPアドレスを固定する
  • こだわり設定
    • ①「SDカード寿命対策」
      • 1. Swap領域の無効化
      • 2. テンポラリ領域 を RAM へ
      • 3. rsyslog の ログ出力を抑制
      • 4. ログ出力ディレクトリ を RAM へ
    • ② 軽量化・高速化
      • 1. カーネルのログを抑制
      • 2. CPU の 動作クロック設定
      • 3. アップデートやらクリーンアップやらをshファイルで一括実行
  • イメージファイルのバックアップ
  • Python実行環境を整える
    • git経由でpyenvをインストール
    • 依存関係のあるライブラリをインストール
    • pipenvをインストール
    • pipenvでプロジェクト単位の仮想環境構築
    • 仮想環境でHello World!
      • pipでパッケージをインストールするには
      • 別の仮想環境に切り替える
  • あとがき

Raspberry PiのRaspbianセットアップと設定後イメージファイルのバックアップ

NOOBSが書き込まれたSDカードが付属しているパターンならそれを使ってもいいと思います。

①OSのイメージファイルをダウンロード

RASPBIAN

www.raspberrypi.org

RASPBIANにはDESKTOP版とLITE版の2種類が用意されています。

DESKTOP LITE
容量 4.49GB 1.73GB
UI GUI / CLI CLIのみ

GUI・・・グラフィックユーザーインターフェース。Windowsのようにマウスを使って視覚的、直感的な操作。

CLI・・・コマンドラインインターフェース。マウスなどは使わずキーボードでのコマンド入力のみで操作。

どちらを選べばいいのか

CLIでの操作に慣れていない場合やSDカードの容量に余裕がある(8GB以上)場合はDESKTOP版。

とりあえず手持ちの古いSDカード(4GB)などで安く済ませたい、Raspberry Pi Zeroなのでスペックが低いという場合はLITE版。

※DESKTOP版も設定で後からCLIに切り替えることが可能です。

続きを読む

Google HomeをPythonで自在に喋らせてみた(VoiceTextを使ってるので声も選べます)

f:id:maru0014:20180923220401p:plain

昨年末から愛用してきたGoogle Home Mini。

手に入れて最初にやったのがNode.jsの「google-home-notifier」で色んな通知を喋らせるというもの。

しかし、自分のjavascriptの知識なんてjQueryでウェブサイトに動きをつけて遊んだりする程度。よくわからないまま先人の知恵たるブログを参考にして実装しましたが、仕組みがよくわからなくてモヤモヤしていました。

でもようやく出来ました!Pythonで!これを「google-home-notifier-vt」と名付けます。

  • できるようになること
  • 参考にした記事
  • 改良点
    • Voice Text API対応
    • slackの特定チャンネルに投稿したら喋る
    • 文字化け対策
    • 謎の空白対策
  • コード全文
  • 導入手順
    • ① 各種ライブラリをインストール
      • python-voicetextのインストールでエラーが発生した場合
    • ② ngrokの準備
      • インストール
      • ユーザー登録・認証
    • ③ VoiceText APIユーザー登録
    • ④ Slackのチャンネルと着信Webフックを用意
    • ⑤ Pythonコード編集
    • ⑥ 実行
      • SSHで実行する場合
    • ⑦ Slackの発信Webフックを用意
      • その他オプションなど
  • あとがき

できるようになること

  • Slack→ngrok→Raspberry Pi→VoiceText→Google Homeを喋らせる
  • 声や読み上げ速度を選べる(Voice Text API)

参考にした記事

このQiita記事を見てこれはやれる!と思いました。

Pythonを使って、Google Homeに喋らせてみる - Qiita

決定打はこれ。Flaskで作られていますが素晴らしい出来栄え。

Chromecastデバイスに喋らせるPython スクリプト · GitHub

最初はBottleで自分なりにやってみたもののキャストしたあとの遅延が長くて3日間くらい悩みましたが、Slash Nephyさんのようにファイル名を時間から出力してユニークなものにすることで多分解決?

そして楽したいのでそのままFlaskでやります笑

続きを読む

Raspberry PiからPythonでWEB経由でWoLしてみる

前回はAndroidアプリの「Wol Wake on Lan Wan」からグローバルIPを指定してポートフォワーディングでマジックパケットを転送していました。

しかし、これではルーターに穴を開けることになるのでセキュアじゃない。

ような気がするので自宅で常時起動しているRaspberry Piを経由してWOLすることにします。

あと、なんか9月になってから「Wol Wake on Lan Wan」が公開停止になってるし。

できるようになること

  • Google Homeなどから音声コマンドでPCを起動

用意するもの

  • Raspberry Pi
  • IFTTTアカウント
  • Beebotteアカウント
  • Google Assistantが使える端末
  • WoLできるようにしたPC

WoLできるようにする設定は前回の記事の「PCのMACアドレスを確認」までを参照ください。

code-life.hatenablog.com

まずはPythonのライブラリをインストールしてテスト

wakeonlan

https://pypi.org/project/wakeonlan/

続きを読む