Pico W でCSVサーバー

Pico W でCSVサーバー

記事
IT・テクノロジー
低頻度で発生する複数のセンサーログをまとめて収録する手段として、Raspberry Pi Pico W (以下 Pico W)を使ってSDカードに記録してはどうかと思って試作を始めました。

構想図を描いてみました。

fig-2.jpg

LAN内にある複数のPico Wで測定値や制御結果を記録するサーバーとして使います。Pico W に接続したSDカードに随時記録して、グラフにしたり長期間のデータ分析にはPCを使います。消費電力の小さいPico Wでデータを収集し、必要な時だけPCで処理する用途に使いたいと思います。

以前に Raspberry Piを使ったSQLite簡易サーバーを作ったことがありますが、さらに手軽に使えると思います。複雑なselectなどはPCにCSVファイルを読み込んでから行うことにします。
CSVファイルは1か月分をまとめて記録し(例:data-2606.txt)、翌月になると自動で新しいファイルを作って記録を続ける予定です。年が2桁なので2100年問題が予想されます。

Pico Wに接続したmicroSDカードスロットと、Pico WオンボードのLEDとタクトスイッチ(BOOTSEL)を使います。

作りながら考えていますが、動作の概要は以下を予定しています。

< 起動 >
1, SDカードマウント、inti.txt読み出し
2. WiFi接続
3. 時刻合わせ
 以上、いずれかでエラーの時はWiFi切断、SDカードアンマウント、LED点滅して無限ループ
4. socket準備待ち受け開始
< メインループ >
終了ボタン押下無ければ以下ループ
 socketコマンドに応じて応答、処理中LED点灯、処理後消灯
 WiFi断で再接続、接続断の間はLED点灯
 定刻に時刻合わせ
終了ボタン押下検出で
 WiFi切断、SDカードアンマウント、LED点滅、無限ループ
クライアントからのコマンド&レスは以下を予定しています。
コマンド&レス
< コマンド >
TIM 現在日時要求 (例:260604,164800を返す) 
DIR ファイル名一覧 (一覧を返す)
LS* 前方一致のファイル名一覧 (一覧を返す)LSF 指定ファイル名の有無を確認 (例:LSF test-0000.txt)標準レス ACK=有り NAK=無し
MKF ファイル作成 MKF(例:MKF,test 重複確認後test-0000.txtを作成)標準レスADn 指定ファイルに一行追加 (例:ADn,test.txt,123 当月ファイルtest-2606.txtが無い場合は作成)標準レス
ADt 指定ファイルに時刻入り1行追加 (例:ADt,test.txt,123 当月ファイルが無い場合は作成) 標準レス
RDF 指定ファイルの全文要求 (全文を返信)
RDE 指定はファイルの最終行要求 (最終行を返信)
< 標準レス >
ACKNAK
急がないので、のんびり作ってから最初のクライアントとしてドア開閉などの接点入力を記録するデバイスを作ってみようと思います。電池駆動にしてPICでスイッチ検出し、WiFi接続しない間はPico Wの電源を切って省電力仕様にしてみます。
電池駆動の場合は電池の電圧も記録した方が良さそうです。



今後とも宜しくお願いいたします。




サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す