【ラズパイ日記】購入〜リモートアクセス
まえがき
本来ソフトウェア(もっと言えばアプリケーション層)が専門なのだが、諸事情あってRaspberry Piとセンサなどの簡単な電子回路を作成する必要に迫られた。
購入
以下はあくまで自分が今回買ったものでオススメとかはわかりません。
本体+α
今回買ったのは Raspberry Pi 4B (RAM4GB)のTRASKITスターターキット。
購入日2022/6/25の価格はクーポン利用で25,900円。なんか高くね??
調べると品薄状態が続いているらしい。一度購入を躊躇したが適正価格を待っている時間的余裕がなかったため思い切って購入。
電子部品
電子部品も全く持っていないのでラズパイ対応の電子部品セットも購入。
参考書
ラズパイを触るのも初めてで電子回路も初学者なので日本語で体系的に学べる本が1つは欲しいと思い購入。
開封
翌日早速届いた。さすがAmazon仕事が速い。
中身を確認。ラズパイ本体は思ってたより二回りぐらい小さい。
OS起動
最初はリモートする術がないので有線で色々差しまくる。HDMI-mini HDMIケーブルとACアダプタ(USB-TypeC)はTRASKITスターターキットに入っているがマウス・キーボード・LANケーブルは自前なので注意(自分の家にたまたまあった)。
スターターキットのmicroSDにはあらかじめNOOBS(現在は非推奨らしいけど…)が入っているのでそれを挿入した状態で電源を入れるとNOOBSが起動し、OSを選択できる。
今回はRaspberry Pi OS (64-Bit) (with desktopのやつ)を選択。
OSがインストールできたらウィザードに従って初期設定をして準備完了。
リモートアクセス
上記参考書(これ1冊でできる! ラズベリー・パイ 超入門 改訂第7版 Raspberry Pi 1+/2/3/4/400/Zero/Zero W/Zero 2 W 対応)を眺めているとラズパイには最初からSSHとVNC(リモートデスクトップ)のサービスが入っているらしい。
本の中身になるので手順等は伏せるがやったことだけ列挙しておく。
メインのWIndows PCからラズパイのデスクトップ画面が開けた!
ラズパイ側も必要なケーブルが電源だけでよくなって取り回し◎
【ログ】「表領域'SYSTEM'に対する権限がありません」への対応(暫定)
※この記事はQrunchログからの移行記事です。
現象
node-oracledbのexample.js実行時に下記のエラーが発生。
ORA-01950: 表領域'SYSTEM'に対する権限がありません
対策
GRANT UNLIMITED TABLESPACE TO user001
参考
【ログ】Oracleでのユーザ作成
※この記事はQrunchログからの移行記事です。
sysdbaセッションで以下のクエリを実行する。
また、必要に応じてcreate xxx
やalter yyy
などの権限を追加する。
create user hoge identified by "pass"; grant create session to hoge; grant create table to hoge;
【ログ】SQLAlchemyでOracleのPDBに接続する
※この記事はQrunchログからの移行記事です。
PDBはサービス名として記述する。SIDと異なり"/"区切りでは受け付けてくれないのでDSN形式で記述する。以下のようにcx_Oracle
の関数を利用するとよい。
また、新しい(Oracle18以降?)の場合はmax_identifier_length
を明示的に設定する。
import sqlalchemy import cx_Oracle dsnStr = cx_Oracle.makedsn('localhost','1521','pdb-name') connect_str = 'oracle://user:pass@' + dsnStr.replace('SID', 'SERVICE_NAME') engine = sqlalchemy.create_engine(connect_str, max_identifier_length=128)
【ログ】Anaconda環境設定
※この記事はQrunchログからの移行記事です。
Anacondaインストール
インストーラを起動してウィザードに従ってインストール
- すべてデフォルト設定を選択
Anaconda Promptを開いて確認
``` (base) C:\Users\kurukuruz>python --version Python 3.7.6
(base) C:\Users\kurukuruz>conda --version conda 4.8.2 ```
仮想環境作成
環境作成
Environmentsタブを開く
:heavy_plus_sign: Createボタンを押す
適当な名前を付けてPythonを選択してOKを押す
作成した環境の :arrow_forward: を押してOpen Terminalを選択して確認
``` (sandbox1) C:\Users\kurukuruz>python --version Python 3.7.7
(sandbox1) C:\Users\kurukuruz>conda --version conda 4.8.2 ```
Notebook追加
- 上で作成した仮想環境をアクティベートする
- プルダウンをNot Installedに変更し、検索ボックスに
jupyter
と入力する - notebook (Jupyter notebook)のチェックボックスをオンにしてApplyを押す
- 確認ダイアログで再度Applyを押す(ダイアログには依存パッケージが表示される)
- :arrow_forward: を押してOpen with jupyter Notebookがアクティブであることを確認
ライブラリインストール
仮想環境のターミナルを開き、以下のようにconda
コマンドでインストールする。
(sandbox1) C:\Users\kurukuruz>conda install cx_oracle
Visual Studio Code環境設定
※Visual Studio Code自体のインストールは割愛
拡張機能追加
設定
- ファイル(F) > 基本設定 > 設定 から設定ウィザードを開く
- 検索ボックスに
python.pythonpath
と入力する - Python: Python Pathに仮想環境のpython.exeのパスを入力する
(anaconda-root)\envs\sandbox1\python.exe
のようなパスになるはず
実行
適当な.pyファイルを作成し、右クリック > ターミナルでPythonファイルを実行 をクリックする。
Visual Studio Codeのターミナルでsandbox1がアクティベートされてファイルが実行される。
※Python: Conda Pathも設定したほうがよいかも(自分は設定しなくても動いたので未確認)
参考サイト
【ログ】Vue(TypeScript)とESLintの設定
※この記事はQrunchログからの移行記事です。
ESLint導入
Vue CLIでESLintを選択する。
? Pick a linter / formatter config: > ESLint + Standard config
Script変更
vue-cli-service lint
はデフォルトでauto fixが走るので、誤操作を防ぐためにScriptを変更しておく。
// package.json { "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "test:unit": "vue-cli-service test:unit", - "lint": "vue-cli-service lint" + "lint": "vue-cli-service lint --no-fix", + "lint:fix": "vue-cli-service lint" }, ... }
ルール設定
comma-dangle
とsemi
は独自ルールを設定する。
// .eslintrc.js module.exports = { rules: { 'comma-dangle': ['error', { 'arrays': 'always-multiline', 'objects': 'always-multiline', 'imports': 'never', 'exports': 'never', 'functions': 'never', }], semi: ['error', 'always'], 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', }, ... }