-- ラズパイとExcelを連携させる。 --
ということを追求しようと思いまずは、データベースサーバーとして使う方法について考えてみました。
ラズパイZeroシリーズは最も安価に手に入る機種で1000円以下で手に入れる事の出来るコンピュータです。
wifi付のラズパイZeroWで1500円、ピンヘッダが実装されているWHで2000円で手に入ります。
性能はARMのシングルコアCPUでメモリが512MByteと少ししか乗っていませんがDebianLinuxベースのLinuxが動作します。
以下CPUINFOの出力です。
processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 997.08 Features : half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2835 Revision : 9000c1 Serial : 0000000062e4f90b Model : Raspberry Pi Zero W Rev 1.1
ここにDebian10で供給されているProgreSQLサーバーVer11をインストールしてExcelで作ったフロントエンドで12万件オーバーの郵便番号データベースを検索するプログラムを作って実際に使えるかを試してみました。
ハードは先ほど説明したとおりですが、ラズパイではストレージにマイクロSDカードを使っているのでそう早く動くことはないのかと思っていました。
以下が実際に動作させてみた動画です。
ExcelからはADOというミドルウエアを使ってODBC経由でPostgreSQLに接続し、ラズパイ側はメモリに余裕がない事を考慮してGUIは使わずにCUIモードでOSを動作させています。さらにメモリ消費量が上がることを考慮してSWAPメモリサイズを2Gで使える設定をしています。
この状態(12万件の郵便番号データ+OS+SWAP2G)を考慮して使えるストレージは20G程度あり容量的にも十分使用できるようです。 これで1つのサーバーを起動する費用としては、
ラズパイZeroW ・・・・・ 1500円
5V3AマクロB電源 ・・・ 1200円
マイクロSDカード ・・・・ 1000円
と停電を考えなければ4000円弱でオンプレデータベースサーバーが出来上がり必要なスペースもごくわずかで済みます。
更に、GPIOで得た情報をラズパイ側から見るとローカルなデータベースに登録することでIoT機器自体をサーバーとして動かすことが出来ますのでラズパイZeroとArudinoを組み合わせた総合的な監視システム等も安価に作ることが可能です。