====== RasberryPi4のこと ====== アイディア:温度・湿度・気圧のデータをLINEで確認する->WEBでグラフ表示 アイディア:サーボでネギ振り+ アイディア:(ラズパイじゃないけど)車載CO2センサーで疲れ居眠防止 アイディア:(ラズパイじゃないけど)撮影画像から距離測定(車載) ===== セットアップ ===== 面倒だったのでスタータキット購入したため、何もしてない。 ===== 設定など ===== ==== アップデート ==== sudo apt update sudo apt full-upgrade -y sudo apt autoremove -y sudo apt clean ==== マウスが遅い ==== 設定ファイルに記述します sudo vi /boot/cmdline.txt 以下を追加 usbhid.mousepoll=0 ==== i2c ==== センサーとのベーシックな通信方法。 === 有効化 === i2cインターフェースがデフォルトで無効になってるので有効化する。 sudo raspi-config Interface Option -> I2C (EnableとかはいとかYESとかする) 参考:[[https://rb-station.com/blogs/article/raspberry-pi-i2c-activation]] === ツール === apt-getでi2cのチェックツールをインストール sudo apt-get update sudo apy-get install i2c-tools ==== センサ ==== === BME280を使う === スイッチサイエンスの「BME280搭載 温湿度・気圧センサモジュール」 ライブラリをインストール sudo pip3 install smbus2 なお、スイッチサイエンスのGitHubリポリトジにサンプルコードあり。ただし、Python2.xのサンプルなので、Python3.xで実行の場合は、”Print”部分を関数にしてやる必要あり。\\ [[https://github.com/SWITCHSCIENCE/BME280]] 参考:[[https://qiita.com/yukataoka/items/8f9046587c978e91f689]] ==== WEB関連 ==== (この項目はいづれ分離させるのが良いと思われ) === nginx === sudo apt-get install nginx http://igarashi-systems.com/sample/translation/raspberry-pi/remote/remote-web-server-nginx.html === Flask === vi->[[https://docs.oracle.com/cd/E19253-01/816-3946/editorvi-tbl-83/index.html]] 取り合えずFlask付属のhtmlサーバーを使う。[[https://aiacademy.jp/media/?p=57]]<-ここの手順通りにする。ただし、app.run引数に「host='0.0.0.0'」を追加する [[https://taku-info.com/flaskapp-raspberypicontroller/]] === LINE === 登録とかは検索すればページが大量にあるのでそれを見て登録する。「LINE IDでログイン」しておくのが無難。\\ プッシュ通知は、適当なプログラムから送ればいいが、ユーザーからのメッセージを受けるには「受ける」ためのWEBサーバーが必要になるので必要に応じて建てる。 LINE Bot API (Python):[[https://github.com/line/line-bot-sdk-python]] Messaging APIリファレンス(プッシュメッセージの場所への直リンク):[[https://developers.line.biz/ja/reference/messaging-api/#send-push-message]] サンプルなどは、実は公式のドキュメント・リファレンスが充実しているので、そこを漁った方が案外手間がかからないかも。 === Microsoft Azure === 大クラウド時代!AWSを使わないのは、やはりWindows系・Office系との連携のしやすさ(いつかするかもしれないからね)\\ (MSFTの株主だからというのもありますが...) LINEのボットを作成するには「Azure Function」を使うようです。 この説明が一番しっくり来たので載せておきます(リンク先より) 「Azure Functions」は、さまざまなイベントによって駆動し、 サーバーの構築や保守をすることなくプログラムを実行できるサービスで Azure Portal画面から作成できる。 [[https://www.purin-it.com/azure-portal-functions]] 参考情報1->[[https://matsujirushi.hatenablog.jp/entry/2017/09/02/224305]] 参考情報2->[[https://qiita.com/mstakaha1113/items/1c9b8f61452147a87640]] IoT HUB->デバイスのデータ送信はサンプルが少ない。-> [[https://cloudsteady.jp/post/14723/]] 参考情報3->[[https://www.cloudou.net/azure-iot-suite/iot003/]] === Visual Studio Code === サンプルがあったのでこれでやってみました。 [[https://zenn.dev/mochan_tk/articles/d01a24bb576d18]] VSCodeにAzureのプラグイン導入->ローカルでプロジェクト作ってコーディング->(Azureに接続して)ローカルで作ったプロジェクトをデプロイ(アップロード) Azure Portalいろいろいじってたら、Visual Studio Codeで「No subscriptions were found」とか、「Select subscription...」といったような、サブスクリプションの状態がうまく読めていないような感じになった。->[Ctrl]+[Shift]+[P]でコマンド「Azure: Sign in」入力実行でブラウザ開いてログインすると復旧した。 [[https://docs.microsoft.com/ja-jp/azure-stack/user/azure-stack-dev-start-vscode-azure?view=azs-2108]]